




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训总结报告实训总结报告-面向对象程序设计实训的目的与系统概述1、目的:(1)掌握面向对象设计开发的基本思想和方法,培养学生在已有的知识基础上进一步获取新知识的能力,提高分析问题和解决问题的能力。(2)进一步巩固面向对象程序设计课程中所学到的知识,熟练掌握C+语言程序设计,加强对VC+编程环境的使用能力,掌握VC+编程环境中的调试功能,增强实际编程能力。(3)培养和提高逻辑思维、抽象思维和统筹规划能力,培养独立完成程序设计开发的工作能力。为今后从事专业性软件开发工作打下基础。2、 功能通过将不同类型的人员设计成相应的类,完成的学校人员的管理。3、 系统概述学校的人员包括学生、职工;职工又分为教师和行政人员;在职进修教师又具备学生和教师的属性和行为。a) 人员具有姓名、年龄、性别、地址和人员类别等属性,有显示属性的功能和设置属性的功能。b) 学生具有人员的属性和行为,此外,添加学号、成绩属性。具有的行为有:设置属性的函数:让用户能够通过键盘的输入设置除了成绩之外的基本属性;录入成绩:输入学生的各门成绩;显示:显示基本属性和他的平均成绩。c) 职工具有人员的属性和行为,此外,添加职工号、职称和工资属性。d) 教师具有职工的属性和行为,此外,添加教研室、教授的课程属性。具有的行为有:设置属性的函数:让用户能够通过键盘的输入设置除了课程信息之外的基本属性;录入课程:输入教师所教的各门成绩;显示:显示基本属性。e) 行政人员具有职工的属性和行为,此外,添加办公室属性。f) 在职进修教师具有教师与学生的属性和行为,此外,添加进修时间,工作单位属性。通过实现此系统,让我综合运用所学知识,掌握面向对象设计开发的基本思想和方法和C+的编程思想来完成简单的面向对象的程序设计。让我在已有的知识基础上进一步获取新知识的能力,提高分析问题、解决问题和独立完成程序设计开发的工作能力。为今后从事专业性软件开发工作打下基础。类的实现编程实现上面类的设计。主程序中的验证创建对象,检验类的功能是否能够实现。总结1、遇到的困难、解决办法及收获:各类属性的实现。利用对象数组即方便又能固定调用哪个属性。在构造函数中定义属性类型,利用对象数组调用。对象数组中字符串的赋值。分配(new实现)一个char型变量长度加一的字符串,再利用拷贝函数拷贝原变量并放在name里,如:name=new charstrlen(na)+1;strcpy(name,na);因为没有给原带参构造函数的形参赋值,主函数中不能声明类的无参对象。在定义一个无参构造函数,如:person()在派生类带参构造函数与基类带参构造函数所带参数不同时没有对基类构造函数的参数初始化。构造函数无法被继承,当派生类带参构造函数与基类带参构造函数所带参数不同时,要在派生类构造函数中对基类构造函数的参数进行初始化,如: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;cout姓名:endl;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)/对象数组 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; =new charstrlen(na1)+1;/分配na1长度+1的字符串 strcpy(,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 disp(person p,int n)/有参虚函数,对象数组输出的事现 cout姓名:endl; 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 *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; coutendl; 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平均成绩: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) cout职工号:; cinwi.number; coutendl; char v1128; cout职称:; cinv1; wi.value=new charstrlen(v1)+1; strcpy(wi.value,v1); coutendl; cout工资:; cinwi.pay; coutendl; void show(worker w,int i) cout职工号:wi.numberendl; cout职称:wi.valueendl; cout工资:wi.payendl; ;class teacher:public virtual worker,public virtual personprotected: char *kemu; int chengji; char *office; public: teacher(char *of,char *ke,int ch,int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):worker(num,v,p,na,a,s,ad,l),person(na,a,s,ad,l) office=new charstrlen(of)+1; strcpy(office,of); kemu=new charstrlen(ke)+1; strcpy(kemu,ke); chengji=ch; teacher() void getmessage(teacher t,int i) char of1128; cout教研室:; cinof1; ti.office=new charstrlen(of1)+1; strcpy(ti.office,of1); coutendl; char ke1128; cout科目:; cinke1; ti.kemu=new charstrlen(ke1)+1; strcpy(ti.kemu,ke1); coutendl; cout成绩:; cinti.chengji; coutendl; void show1(teacher t,int i) cout教研室:ti.officeendl; cout科目:ti.kemuendl; cout成绩:ti.chengjiendl; ;class employee:public virtual worker,public virtual personprivate: char *office; public: employee(char *of,int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):worker(num,v,p,na,a,s,ad,l),person(na,a,s,ad,l) office=new charstrlen(of)+1; strcpy(office,of); employee() void getmessage(employee e,int i) char of1128; cout教研室:; cinof1; ei.office=new charstrlen(of1)+1; strcpy(ei.office,of1); coutendl; void show1(employee e,int i) cout教研室:ei.officeendl; ;class jingx:public virtual student,public virtual teacher,public virtual worker,public virtual personprivate: int time; char *danwei; public: jingx(int ti,char *da,int nu,int ms,int cs,float av,char *of,char *ke,int ch,int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):student(nu,ms,cs,av,na,a,s,ad,l),teacher(of,ke,ch,num,v,p,na,a,s,ad,l),worker(num,v,p,na,a,s,ad,l),person(na,a,s,ad,l) time=ti; danwei=new charstrlen(da)+1; strcpy(danwei,da); jingx() void getmessage1(jingx j,int i) cout进修时间:; cinji.time; coutendl; char da1128; cout单位属性:; cinda1; ji.danwei=new charstrlen(da1)+1; strcpy(ji.danwei,da1); coutendl; void show2(jingx j,int i) cout进修时间:ji.timeendl; cout单位属性:ji.danweiendl; ;int i;person p1; student st1; worker wo1; teacher te1; employee em1; jingx jx1;void main() cout请选择人员类别:endl; cout1、普通人 2、学生 3、学生及成绩 4、员工 5、教师 6、行政人员 7、在职进修教师endl; cini; cout请依次录入信息endl; switch(i)/录入信息种类选择的实现 case 1: p1.getinf(p,1); cout*endl; p1.disp(p,1); break;/要有break语句否则将执行case2 case 2: st1.getvalue(st,1); p1.getinf(p,1); cout*endl; st1.show(st,1); p1.disp(p,1); break; case 3: st1.getvalue(st,1); p1.getinf(p,1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 监事聘任与公司内部控制与合规风险防范合同范本
- 离职员工知识产权转让与保密协议书
- 知识产权保护与保密协议范本(适用于动漫产业)
- 上市公司高管离职补偿金及离职后竞业限制协议
- 离婚申请书模板及子女抚养权及赡养费支付合同
- 数字化转型对区域经济发展协调性的作用
- 2025年烧结理论考试试题及答案
- 电炉炉前工考试题及答案
- 西双版纳活动拓展策划方案
- 2025年五级下册数学的试卷及答案
- 某水库调度规程完整
- Cpk 计算标准模板
- 封起DE日子博文 2006
- 锂离子电池生产安全讲座
- 画魂空手套无删减全文下载
- 五猖会原文 五猖会
- 主题教育苏轼生平介绍人物经历等PPT模板(内容完整)
- 眼科学-眼科检查(课件)
- 产品碳足迹课件
- 美国地图高清中文版
- 监控中心值班人员绩效考核月度考核表
评论
0/150
提交评论