实训总结报告.doc
《实训总结报告.doc》由会员分享,可在线阅读,更多相关《实训总结报告.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实训总结报告实训总结报告-面向对象程序设计 实训的目的与系统概述 1、目的: (1)掌握面向对象设计开发的基本思想和方法,培养学生在已有的知识基础上进一步获取新知识的能力,提高分析问题和解决问题的能力。 (2)进一步巩固面向对象程序设计课程中所学到的知识,熟练掌握C+语言程序设计,加强对VC+编程环境的使用能力,掌握VC+编程环境中的调试功能,增强实际编程能力。 (3)培养和提高逻辑思维、抽象思维和统筹规划能力,培养独立完成程序设计开发的工作能力。为今后从事专业性软件开发工作打下基础。 2、 功能 通过将不同类型的人员设计成相应的类,完成的学校人员的管理。 3、 系统概述 学校的人员包括学生、
2、职工;职工又分为教师和行政人员;在职进修教师又具备学生和教师的属性和行为。 a) 人员具有姓名、年龄、性别、地址和人员类别等属性,有显示属性的功能和设置属性的功能。 b) 学生具有人员的属性和行为,此外,添加学号、成绩属性。具有的行为有:设置属性的函数:让用户能够通过键盘的输入设置除了成绩之外的基本属性;录入成绩:输入学生的各门成绩;显示:显示基本属性和他的平均成绩。 c) 职工具有人员的属性和行为,此外,添加职工号、职称和工资属性。 d) 教师具有职工的属性和行为,此外,添加教研室、教授的课程属性。具有的行为有:设置属性的函数:让用户能够通过键盘的输入设置除了课程信息之外的基本属性;录入课程
3、:输入教师所教的各门成绩;显示:显示基本属性。 e) 行政人员具有职工的属性和行为,此外,添加办公室属性。 f) 在职进修教师具有教师与学生的属性和行为,此外,添加进修时间,工作单位属性。 通过实现此系统,让我综合运用所学知识,掌握面向对象设计开发的基本思想和方法和C+的编程思想来完成简单的面向对象的程序设计。让我在已有的知识基础上进一步获取新知识的能力,提高分析问题、解决问题和独立完成程序设计开发的工作能力。为今后从事专业性软件开发工作打下基础。 类的实现 编程实现上面类的设计。 主程序中的验证 创建对象,检验类的功能是否能够实现。 总结 1、遇到的困难、解决办法及收获: 各类属性的实现。
4、利用对象数组即方便又能固定调用哪个属性。在构造函数中定义属性类型,利用对象数组调用。 对象数组中字符串的赋值。 分配(new实现)一个char型变量长度加一的字符串,再利用拷贝函数拷贝原变量并放在name里,如: name=new charstrlen(na)+1;strcpy(name,na); 因为没有给原带参构造函数的形参赋值,主函数中不能声明类的无参对象。 在定义一个无参构造函数,如: person() 在派生类带参构造函数与基类带参构造函数所带参数不同时没有对基类构造函数的参数初始化。 构造函数无法被继承,当派生类带参构造函数与基类带参构造函数所带参数不同时,要在派生类构造函数中对基
5、类构造函数的参数进行初始化,如: worker(int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):person(na,a,s,ad,l) 平均分的实现。 利用对象数组正确调用分数属性再利用返回值为float的成员函数实现平均分,如: float getaverage(student st,int i) int a=sti.mathscore; int b=sti.cscore; return sti.average=(a+b)/2; 正确输入和调用属性。 利用pn.属性名实现属性的各种行为,如: cinpn+1.age
6、; cout姓名:pn.nameendl; switch语句总执行完一个case后还继续执行。 加入break语句跳出switch语句。 2、 程序中还需要改进的地方。 姓名,年龄,地址等属性限制的实现。 附件:源程序#include iostream.h#include stringusing namespace std;class personprotected: char *name; int age; char *sex; char *address; char *lb;public: person(char *na,int a,char *s,char *ad,char *l)/对象
7、数组 name=new charstrlen(na)+1; strcpy(name,na); age=a; sex=new charstrlen(s)+1; strcpy(sex,s); address=new charstrlen(ad)+1; strcpy(address,ad); lb=new charstrlen(l)+1; strcpy(lb,l); person()/无参构造函数,方便声明无参对象 virtual void getinf(person p,int n) char na1128; cout姓名:; cinna1; pn.name=new charstrlen(na1)
8、+1;/分配na1长度+1的字符串 strcpy(pn.name,na1);/拷贝字符串 coutendl; cout年龄:; cinpn+1.age; coutendl; char s12; cout性别:(n:男,w:女); cins1; pn+2.sex=new charstrlen(s1)+1; strcpy(pn+2.sex,s1); coutendl; char ad1128; cout地址:; cinad1; pn+3.address=new charstrlen(ad1)+1; strcpy(pn+3.address,ad1); coutendl; virtual void d
9、isp(person p,int n)/有参虚函数,对象数组输出的事现 cout姓名:pn.nameendl; cout年龄:pn+1.ageendl; cout性别:pn+2.sexendl; cout地址:pn+3.addressendl;class student:public virtual personprotected: int number; int mathscore,cscore; float average;public: student(int nu,int ms,int cs,float av,char *na,int a,char *s,char *ad,char *
10、l):person(na,a,s,ad,l)/构造函数无法被继承,在派生类构造函数带参数与基类构造函数所带参数不同时要先对基类构造函数初始化 number=nu;mathscore=ms;cscore=cs;average=av; student() virtual void getvalue(student st,int i) cout学号:; cinsti.number; coutendl; void getscore(student st,int i) cout数学成绩:; cinsti.mathscore; coutendl; coutC+成绩:; cinsti.cscore; cou
11、tendl; float getaverage(student st,int i)/平均分的实现 int a=sti.mathscore; int b=sti.cscore; return sti.average=(a+b)/2; void show(student st,int i) cout学号:sti.numberendl; virtual void show1(student st,int i) sti.show(st,i); cout数学成绩:sti.mathscoreendl; coutC+成绩:sti.cscoreendl; sti.getaverage(st,i); cout平
12、均成绩:sti.averageendl; ;class worker:public virtual personprotected: int number; float pay; char *value;public: worker(int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):person(na,a,s,ad,l) number=num; value=new charstrlen(v)+1; strcpy(value,v); pay=p; worker() void getvalue(worker w,int i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 总结报告 doc
限制150内