1、1第一讲一、自我介绍主讲教师:唐敏主讲课程:离散数学、程序设计、数据结构、计算机网络、软件工程E-mail: Tel:13978309010二、课程安排 面向对象程序设计共 40 学时,其中 32 个理论学时,8 个实验学时。 任选课,实用,学了 C+,进入 VC,开发软件 实验课的要求:赵汝文 期评成绩考核成绩70实验10平时20三、 面向对象程序设计C+的前导课程 C 语言(有关 C 的语法,自行复习)四、选用教材和参考教材 课程选用教材C+程序设计 谭浩强 编著 清华大学出版社 参考教材:编译器五、 面向对象程序设计课程的作用和地位 C 和 C+是必修的两门语言 C+是面向对象的,更符合
2、现代的程序设计思想 进一步掌握集成化的开发环境,为开发和设计软件打基础六、 面向对象程序设计的学习方法和要求 理解课程内容 认真完成作业和实验 加强上机实践2课程安排第 1 次课 第 1 章 C+的初步知识第 2 次课第 8 章 类和对象第 3 次课 第 4 次课 习题课第 5 次课第 9 章 关于类和对象的进一步讨论第 6 次课 第 7 次课 习题课第 8 次课 第 10 章 运算符重载第 9 次课 习题课第 10 次课第 11 章 继承与派生第 11 次课 第 12 次课 习题课 第 13 次课 第 12 章 多态性与虚函数第 14 次课 第 13 章 输入输出流第 15 次课 复习课第
3、16 次课 考试习题课安排:自由组合,34 人为一小组,每次习题课派一位代表讲解自己小组的解答。老师和同学针对该小组的解答进行讨论。3第 1 章 C+的初步知识一、面向对象的基本概念 对象/实例(object/instance) 类(class) 封装(encapsulation) 继承(inheritance) 多态(polymorphism) 重载(overload) 消息(message ) 这些面向对象的基本概念尽管很重要,如果现在提出来,大家很难理解。有关于 C 和 C+的特点、比较、产生背景,可以自己看书,这些知识对于掌握 C+也没什么用。我们直接从 C+程序开始学习。二、C+的开
4、发运行环境1、Visual C+2、GCC3、WinTC三、最简单的 C+程序1、例题 1.1#includeusing namespace std;int main()coutiostream 输入、输出流(2)using namespace std;使用命名空间 std。4(3)C+的主函数名与 C 一样,都是 main。(4)C+的输出使用 coutusing namespace std;int main()int a=2;coutusing namespace std;int main()int a,b,sum;cinab;sum=a+b;coutab;cin:输入流对象:提取运算符若
5、想输入一个整数,一个实数,一个字符怎么写?#includeusing namespace std;int main()int a;float b;char c;cinabc;coutusing namespace std;int main()int a;float b;char c;cinabc;coutusing namespace std;int max(int x, int y)int z;if(xy) z=x;else z=y;return(z);int main()int a,b,m;cinab;m=max(a,b);coutusing namespace std;class Stu
6、dentprivate:int num;int score;public:void setdata()cinnum;cinscore;void display()couta) a=b;if(ca) a=c;8return a;int max4(int a, int b) if(ab) return a;else return b;而 C+通过函数重载,可以使用同一个函数名,实现上述六个子函数的功能。 int max(int a, int b, int c); float max(float a, float b, float c); long max(long a, long b, long
7、c); int max(int a, int b); float max(float a, float b); long max(long a, long b);程序代码:#includeusing namespace std;int max(int a, int b, int c)if(ba) a=b;if(ca) a=c;return a;float max(float a, float b, float c)if(ba) a=b;if(ca) a=c;return a;int main()int a,b,c;float d,e,f;cinabc;coutdef;coutusing nam
8、espace std;struct Studentint num;char name20;char sex;Student get_information()Student stud;int i;coutstud.num;coutstud.name0;while(stud.namei!=#)i+;cinstud.namei;coutstud.sex;return stud;11void display(Student stud)int i;coutusing namespace std;class Studentprivate:int num;char name20;char sex;publ
9、ic:void get_information()int i;coutnum;coutname0;while(namei!=#)i+;cinnamei;coutsex;void display( )int i;coutusing namespace std;class Studentprivate:int num;char name20;char sex;void get_name()int i;i=0;cinname0;while(namei!=#)i+;cinnamei;public:void get_information() coutnum;coutsex;15void display
10、( )int i;coutusing namespace std;class Studentprivate:int num;char name20;char sex;void get_name()int i;i=0;cinname0;while(namei!=#)i+;cinnamei;void display_name()int i;i=0;while(namei!=#)coutnum;coutsex;void display( )cout#includeusing namespace std;class Studentprivate:int num;string name;char sex
11、; public:void get_information() coutnum;coutname;coutsex;void display( )cout#includeusing namespace std;class Studentprivate:int num;string name;char sex;public:void get_information();void display( );void Student:get_information()coutnum;coutname;coutsex;void Student:display( )cout#includeusing name
12、space std;class Studentprivate:int num;string name;char sex;public:void get_information();void display( );class Teacherprivate:int num;string name;char sex;public:void get_information();void display( );void Student:get_information()coutnum;coutname;coutsex;void Student:display( )23coutnum;coutname;c
13、outsex;void Teacher:display( )couthour;(3)通过对象的引用变量访问对象中的成员class Time public:int hour;int minute;Time t1;Time coutusing namespace std;class Timepublic:int hour;int minute;int sec;int main()Time t1;cint1.hour;cint1.minute;cint1.sec;coutusing namespace std;class Timepublic:int hour;int minute;int sec;
14、int main()Time t1;cint1.hour;cint1.minute;cint1.sec;coutt2.hour;cint2.minute;cint2.sec;coutusing namespace std;class Timepublic:int hour;int minute;int sec;int main()void set_time(Time void show_time(Time Time t1;set_time(t1);show_time(t1);Time t2;set_time(t2);show_time(t2);return 0;void set_time(Ti
15、me cint.minute;cint.sec;void show_time(Time class Timepublic:int hour;int minute;int sec;int main()void set_time(Time void show_time(Time Time t1;set_time(t1,12,23,34);show_time(t1);Time t2;set_time(t2);show_time(t2);return 0;void set_time(Time t.minute=minute;30t.sec=sec;void show_time(Time class Timepublic:void set_time();void show_time();private:int hour;int minute;int sec;int main()Time t1;t1.set_time();t1.show_time();