`
桔红糕
  • 浏览: 42724 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

From C To C++课程设计

    博客分类:
  • CPP
阅读更多
1) 初步了解编程语言的发展的过程。面向对象的意义,C++的应用。

2) 熟悉IDE.
  a) 解决方案和项目
  b) 程序基本结构(函数,参数,返回值)
练习:完成hello world

3) 第一个CPP程序。
  a) Include(<> ,“”)
  b) 命名空间
  c) 熟悉各种数据类型。
    i. 基本类型Char, int, float, double, bool
    ii. 说明符 long, short,signed, unsigned
练习:打印各种数据类型的占用内存

4) 变量和作用域。
  a) 全局变量、局部变量
  b) 作用域(特别是for循环变量)
  c) 静态变量
  d) 常量
  e) 变量定义和变量声明—外部变量
练习:用静态变量和全局变量完成两个不同函数被调用次数计数

5) 熟悉各种流程语句,运算符
  a) 控制语句 if-else, while, do-while, for, switch/ break,continue
  b) 运算符 赋值运算符,数学运算符,关系运算符,逻辑运算符,位运算,移位,一元运算,三元运算
练习:猜数游戏

6) 熟悉各种复合类型
  a) 枚举、联合
  b) 数组
  c) 指针
    i. 指针+1,加了多少字节
    ii. 数组和指针,作为函数参数时的数组和指针
练习:switch枚举类型,打印不同内容

7) .h文件,语言翻译的过程,一个复杂的c程序
  a) .h文件
    i. 函数声明和定义
    ii. Match 定义和声明
    iii. 只可以写声明,不可以写定义
    iv. #define
  b) 语言翻译过程
    i. 预编译-》编译-》链接
    ii. 库文件的使用
练习:完成doubleContainer 框架

8) 聚合数据类型struct
练习:实现DoubleContainer

9) 数据抽象
  a) 成员变量
  b) 成员函数
  c) 对象、实例
  d) This指针
练习:完成DoubleContainer 数据抽象

10) 嵌套类型
演习:用双向链表实现IntContainer

11) 访问控制
  a) Private, public(单例模式)
  b) Friend(函数,类)
  c) Class 和 struct的区别
练习:完成DoubleContainer访问控制

12) 初始化和清除
  a) 构造函数
  b) 带参数的构造函数
  c) 析构函数
  d) New/Delete
  e) 重温全局变量,局部变量和静态变量的作用域
练习:完成DoubleContainer(构造函数和析构函数)

13) 函数重载
  a) 函数重载(参数不同,返回值不同)
  b) 占位符
  c) 默认参数
练习:完成DoubleContainer(构造函数重载)

14) 介绍iostream,fstream和string
  a) String,构造函数, find, substring
  b) Ifstream读取内容
  c) Getline
  d) Ofstream写文件
  e) Ios::app
  f) Fsteam
练习:创建一个Text类保存文件内容,不同的构造函数。

15) 指针,引用
  a) 函数值传递和指针传递
    i. 返回地址时不可以是局部变量,除非是静态的
    ii. 文件域,局部域,动态管理
  b) 引用代替指针
演习:用指针和引用分别完成swap函数max函数

16) 常量
  a) 值定义
  b) 常量指针和指针常量(赋值检查)
  c) 参数和返回值中的常量
    i. 内部类型和自定义类型值传递const
    ii. 内部类型按值返回const
    iii. 自定义类型按值返回const
    iv. 内部类型和自定义类型传递和返回地址的const
    v. 引用和指针的选择
  d) 自定义类型常量
    i. 常量定义(初始化列表,内部类型构造函数)
    ii. 静态常量(初始化)
    iii. 常量对象和常量成员函数(mutable)
    iv. 静态成员函数
练习:完成DoubleContainer的常量设定

17) inline函数
练习:完成DoubleContainer修改成内联函数

18) Operator= 和 Copy构造函数
  a) 何时调用拷贝构造函数,何时调用=
  b) 默认拷贝构造函数,默认=操作
  c) 指针的问题
  d) 实现自检
练习:DoubleContainer的拷贝构造函数

19) 组合
练习:用双向链表实现Container

20) 继承
  a) 子类具有父类所有成员变量和成员函数(直接调用)
  b) 子类重定义父类的函数和成员
    i. 针对父类的重载函数
    ii. 如何在外部调用父类和子类的相关内容
    iii. 如何在子类中调用父类的相关内容
  c) 非自动继承函数
    i. 构造函数,析构函数,copy构造函数,operator=
    ii. 函数默认实现方式
    iii. 构造函数和析构函数调用次序
    iv. 其他操作符重载会被继承
  d) 构造函数初始化
    i. 区别成员变量的初始化
  e) 向上类型转换(值的转换和指针的转换不同)
练习:俄罗斯方块

21) 多态
  a) 虚函数
    i. 强调只能用地址方式的调用获得虚函数的实现
    ii. 虚函数必须函数名,函数参数和返回值完全一致,包括const申明,除了返回基类的地址
  b) 纯虚函数,抽象类
  c) 虚析构函数,纯虚析构函数
  d) RTTI
    i. 向下类型转换(Static_cast, dynamic_cast)
    ii. Typeinfo
练习:俄罗斯方块

22) 模板介绍
  a) 模板方法
  b) 模板类(函数实现放在.h中)
练习:模板Container

23) 迭代器介绍
  a) 容器vector,类属方法find的简单实现
  b) 迭代器演变
  c) 五种类型

24) 运算符重载
  a) 成员函数类型的单目运算符重载(前++,后++)
  b) 双目运算符重载
    i. 全局函数类型的+,-,*,/
    ii. 成员函数类型的+=,-=,*=,/=,(检测自赋值)
  c) 非成员运算符(<< >>)
  d) 自动类型转换
    i. 构造函数转换(阻止构造函数转换)
    ii. 运算符转换
    iii. 解释为什么双目运算符是全局的
练习:Complex类,实现各种运算。
练习:DoubleContainer的[]和=重载
练习:具有Iterator的模板Container


25) 标准库介绍
  a) 主要容器
    i. Vector
    ii. Map
    iii. Set
  b) 算法应用
    i. 所有容器的共同操作(==,!=,empty(),size(),clear(),begin(),end(),insert(),erase())
    ii. 非可变序列算法(find,count,search)
    iii. 可变序列算法(sort, merge, copy,fill,shuffle,remove,replace, reverse,swap)
    iv. 迭代器适配器
    v. 数值算法(accumulate,)
  c) 主要类属方法
  d) 函数对象
    i. 自定义函数(函数,类)
    ii. Stl 函数对象
    iii. 函数对象适配器
练习:字符串解析

26) 其他
  a) Exception
    i. 抛出异常
    ii. 捕捉异常
    iii. 自定义异常
  b) 命名空间
    i. 尽量小范围使用命名空间
    ii. 自定义命名空间

27) 练习:

分享到:
评论

相关推荐

    c++课程设计 汉诺塔

    在这个C++课程设计中,学生需要实现将一个柱子(A)上的所有盘子通过另外两个柱子(B和C)按照规则移动到目标柱子(B)上。这个过程涉及到深度优先搜索和回溯等概念。 首先,我们要理解汉诺塔问题的基本规则: 1. ...

    c/c++课程设计学生成绩管理系统

    关于c语言和c++的课程成绩信息管理系统,共有将近6000行代码,建议使用vs2012或2010便于管理也可使用VC6.0++环境修改运行但查找麻烦,所有的语言没有脱离c和c++,主要采用模块思想,也可以转换成面向对象型的语言,...

    C++课程设计(汉诺塔)代码及报告

    在这个C++课程设计中,我们将深入探讨汉诺塔问题及其解决方案。 首先,我们要了解汉诺塔的基本规则:有三个柱子,A、B和C,柱子A上有一些大小不一的圆盘,目标是将所有圆盘从柱子A移动到柱子C,但每次只能移动一个...

    C++课程设计 游戏汉诺塔源代码和论文

    在这个C++课程设计中,我们将深入探讨如何利用C++编程语言实现汉诺塔游戏的算法,以及如何撰写相关的技术论文来阐述设计思路和过程。 首先,我们需要理解汉诺塔的基本规则。游戏由三根柱子和一堆大小不一的圆盘组成...

    C++课程设计之汉诺塔源代码

    汉诺塔是一个经典的递归问题,它源自一个古老的印度传说,涉及三个柱子和一堆盘子。在编程中,我们通常使用C++等语言来实现汉诺塔问题的...通过这个课程设计,学生可以巩固C++基础,同时提高逻辑思维和解决问题的能力。

    课程设计 Hannoi塔.rar

    《Hannoi塔:课程设计详解》 Hannoi塔,又称汉诺塔,是一个经典的递归问题,常被用于教学和课程设计中,旨在帮助学生理解和掌握递归算法及其应用。这个古老的数学游戏源于19世纪的法国,由数学家艾德蒙·兰道什提出...

    C++课程上机实验常见错误汇集.doc

    以下是一些C++课程上机实验中常见的错误及其解决方案: 1. **遗失分号“;”**:C++语言中,语句末尾通常需要分号来结束,如果遗漏会导致语法错误。调试器会提示“missing ';'”。 2. **缺少命名空间使用**:在使用...

    高斯消元法解线性方程组 C实现

    printf("Press the input matrix from top to bottom:\n"); for(int i=1; i; i++) { for(int j=1; j; j++) { scanf("%lf",&A[i][j]); } } for(int i=1; i; i++) { scanf("%lf",&B[i]); } for(int i=1...

    基于数据结构的汉诺塔问题

    课程设计中,汉诺塔问题常被用来教授学生如何理解和应用递归,因为它的逻辑清晰,易于理解,但又包含了递归的精髓。通过解决这个问题,学生可以深入理解递归的本质,同时掌握如何将复杂问题分解成更小的部分来解决。...

    C-from-primary-to-advanced:参考书目:C++程序设计语言 written by Bjarne Stroustrup

    C-from-primary-to-advanced 参考书目:C++程序设计语言 Bjarne Stroustrup 参考课程: C++语言程序设计基础 清华大学 郑莉 进度:21.60% C++语言程序设计进阶 清华大学 郑莉

    Windows 课程设计基于UDP网络聊天室

    Windows 课程设计基于 UDP 网络聊天室 ...本次设计的课程设计是基于 UDP 协议的 Windows 网络聊天室,旨在编写一个简单的 C/S 模式的网络聊天室软件,并进一步掌握利用 Visual C++ 进行程序设计的能力。

    学习C++从入门到精通的的十本最经典书籍

    - **原书名称**:C++ Programming: From Problem Analysis to Program Design (Money-Saving Bundle) - **作者**:钱平 - **出版社**:未提及 - **简介**:本书是一本综合性很强的教材,适合希望系统学习C++的读者。...

    汉诺塔问题 分治法——C++代码

    std::cout &lt;&lt; "Move disk " &lt;&lt; n &lt;&lt; " from " &lt;&lt; from &lt;&lt; " to " &lt;&lt; to ; // 移动第n个圆盘 moveDisks(n - 1, aux, to, from); // 将n-1个圆盘从aux移动到to } } int main() { int numDisks = 3; // 示例中的...

    计算机网络课程设计实验报告

    - **目的**:通过本实验,掌握Socket通信的基本原理,并能够运用C/C++语言进行网络编程,设计出具备基本聊天功能的应用程序。 - **思路**:实验采用客户端-服务器模式,客户端负责发送消息给服务器,服务器则负责...

    关于汉诺塔游戏课程设计

    在编程实现中,通常会定义一个递归函数,例如`MoveTower(int n, char from, char aux, char to)`,其中`n`表示盘子的数量,`from`和`to`表示起始柱和目标柱,`aux`是辅助柱。函数的主体部分会调用自身来处理子问题,...

    c++笔试题大全C++

    (2) 学生和课程登记系统设计:一般会包含学生表(Student),课程表(Course),选课表(Enrollment),分别存储学生信息、课程信息以及学生的选课情况。 5. **技术架构与中间件**: 需要简要描述熟悉的架构,如微服务...

    2013-2014华南理工大学操作系统课程设计(完整源代码和详细文档)

    4. The task needs to be completed using C++ or C 5. Tasks/Functionalities The following functions are required in your file system: 1. Allocate 16MB space in memory as the storage for your file ...

    计算机网络课程设计报告-利用C 实现SMTP协议.doc

    总的来说,完成这样的课程设计需要深入理解SMTP协议、网络编程基础,以及使用C++进行系统级编程的能力。通过实现SMTP协议,学生能够巩固计算机网络和编程的基础知识,同时也能提升实际问题解决能力。

    哈希表课程设计报告

    ### 哈希表课程设计报告 #### 实验目的与背景 本次实验旨在通过实际操作加深对哈希表的理解,并掌握其基本应用方法。实验基于一个具体的场景:编写一篇英文的自我介绍,然后对该文本进行处理,统计其中各个单词...

    c语言实现的汉诺塔演示程序.zip

    此程序对于学习C语言的递归概念,以及提高逻辑思维能力非常有帮助,适合作为课程设计或编程练习的参考。 此外,这个C语言实现的汉诺塔演示程序还可能包含了错误处理、输入验证或其他优化,如动态规划等,这些都是...

Global site tag (gtag.js) - Google Analytics