王雪晶 wxj@mail.buct.edu.cn
教材 《C++程序设计》.谭浩强. 清华大学出版社. 2004.
参考书 《C++ Primer Plus》.Stephen Prata.人民邮电出版社.2002年. 《C++Primer_3rd》.潘爱民,张丽译.中国电力出版社.
教学安排 理论课:星期二5、6节(3-11周) 上机:4-12周 信工星期二1、2节 测控星期二7、8节 通信星期四5、6节 考试:第13周
教学要求 上课记笔记 课后复习 上课、上机不得缺席
教学内容 第1章 C++的初步知识 第8章 类和对象 第9章 关于类和对象的进一步讨论 第10章 运算符重载 第11章 继承与派生 第8章 类和对象 第9章 关于类和对象的进一步讨论 第10章 运算符重载 第11章 继承与派生 第12章 多态性与虚函数 第13章 输入输出流
第1章 C++的初步知识 1.1 从C到C++ 1.2 最简单的C++程序 1.3 C++程序的构成和书写形式
1.1 从C到C++ 1954年,FORTRAN语言; 1964年,BASIC语言; 1972年,C语言由美国贝尔实验室的D.M.Ritchie研制; 20世纪80年代初, C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于在C语言的基础上开发成功的。
1.1 从C到C++ C++1.0 1988 C++2.0 1989 C++3.0 1991 C++4.0 ANSI C++ 1997
C++对C的“增强”,表现在两个方面: (1) 在原来面向过程的机制基础上,对C语言的功能做了不少扩充。 (2) 增加了面向对象的机制。 面向过程与面向对象不是矛盾的
过程式程序设计 程序设计风格: 确定你需要哪些过程; 采用你能找到的最好的算法。 例:平方根函数 double sqrt(double arg) { // code for calculating a square root } void f() double root2 = sqrt(2); //…
面向对象的程序设计 用户定义类型(将数据和函数封装起来) 类层次结构设计
1.2 最简单的C++程序 例1.1 输出一行字符: “This is a C++ program.”。 程序如下: #include <iostream> //包含头文件iostream using namespace std; //使用命名空间std int main( ) { cout<<″This is a C++ program.″; return 0; } 在运行时会在屏幕上输出以下一行信息: This is a C++ program.
例1.2 求a和b两个数之和。 #include <iostream> //预处理命令 using namespace std; //使用命名空间std int main( ) //主函数首部 { //函数体开始 int a,b,sum; //定义变量 cin>>a>>b; //输入语句 sum=a+b; //赋值语句 cout<<″a+b=″<<sum<<endl; //输出语句 return 0; //如程序正常结束,返回一个零值 } //函数结束
例1.3 给两个数x和y,求两数中的大者。 #include <iostream> //预处理命令 using namespace std; int max(int x,int y) //定义max函数 { int z; if(x>y) z=x; //if语句,如果x>y,则将x的值赋给z else z=y; //否则,将y的值赋给z return z; //将z的值返回,通过max带回调用处 } //max函数结束 int main( ) //主函数首部 { int a,b,m; //定义变量 cin>>a>>b; //输入语句 m= max(a,b); cout<<″max=″<<m<<endl; //输出语句 return 0; //如程序正常结束,向操作系统返回一个零值 } //函数结束
例1.4 包含类的C++程序。 #include <iostream> // 预处理命令 using namespace std; class Student // 声明一个类,类名为Student { private: // 以下为类中的私有部分 int num; // 私有变量num int score; // 私有变量score public: // 以下为类中的公用部分 void setdata( ) // 定义公用函数setdata {cin>>num; // 输入num的值 cin>>score; // 输入score的值 }
void display( ) // 定义公用函数display {cout<<″num=″<<num<<endl; // 输出num的值 cout<<″score=″<<score<<endl; //输出score的值 } }; // 类的声明结束 Student stud1,stud2; int main( ) // 主函数首部 { stud1.setdata( ); // 调用对象stud1的setdata函数 stud2.setdata( ); // 调用对象stud2的setdata函数 stud1.display( ); // 调用对象stud1的display函数 stud2.display( ); // 调用对象stud2的display函数 return 0;
程序运行情况如下: 1001 98.5 ↙ (输入学生1的学号和成绩) 1002 76.5 ↙ (输入学生2的学号和成绩) num=1001 (输出学生1的学号) score=98.5 (输出学生1的成绩) num=1002 (输出学生2的学号) score=76.5 (输出学生2的成绩)
1.3 C++程序的构成和书写形式 一个C++程序可以由一个程序单位或多个程序单位构成。 在一个程序单位中,可以包括以下几个部分: ① 预处理命令。 ② 全局声明部分(在函数外的声明部分)。 ③ 函数。 一个函数由两部分组成: ① 函数首部,即函数的第一行。 ② 函数体,即函数首部下面的大括号内的部分。
1.3 C++程序的构成和书写形式 语句包括两类: 声明语句 执行语句 一个C++程序总是从main函数开始执行的。 类(class)是C++新增加的重要的数据类型。 C++程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。 必要的注释,以增加程序的可读性。
1.4 C++程序的编写和实现 图1.1
1.5 关于C++上机实践 Visual C++ 6.0 或 Visual C++.NET GCC