面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统

上传人:乐*** 文档编号:114561486 上传时间:2019-11-11 格式:DOCX 页数:19 大小:146.86KB
返回 下载 相关 举报
面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统_第1页
第1页 / 共19页
面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统_第2页
第2页 / 共19页
面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统_第3页
第3页 / 共19页
面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统_第4页
第4页 / 共19页
面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统》由会员分享,可在线阅读,更多相关《面向对象程序方案(c++)课程方案报告,通过组合和派生构成类人员信息管理系统成绩管理系统(19页珍藏版)》请在金锄头文库上搜索。

1、面向对象的程序设计课程设计报告姓 名: 张聪 学 号: 100511217 班 级: 大类1002班 院 系: 数学与计算机学院 日 期: 2011.12.30 题目1:通过组合和派生构成新的类本设计题目的任务是使用Point类产生Line类。分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。1. 设计框图:XYLinePoint(X,Y)lineLine2输出l

2、ine输出line22、源程序(1)组合类实现#include#includeusing namespace std;class Pointpublic:Point(int xx=0,int yy=0)X=xx;Y=yy;Point(Point &p);int GetX()return X;int GetY()return Y;private:int X,Y;Point:Point(Point &p)X=p.X;Y=p.Y;coutPoint拷贝构造函数被调用endl;/类的组合class Linepublic:Line(Point xp1,Point xp2);Line(Line &);do

3、uble GetLen()return len;private:Point p1,p2;double len;/组合类的构造函数Line:Line(Point xp1,Point xp2):p1(xp1),p2(xp2)coutLine构造函数被调用endl;double x=double(p1.GetX()-p2.GetX();double y=double(p1.GetY()-p2.GetY();len=sqrt(x*x+y*y);/组合类的拷贝构造函数Line:Line(Line &L):p1(L.p1),p2(L.p2)coutLine拷贝构造函数被调用endl;len=L.len;/

4、主函数void main()Point myp1(1,1),myp2(3,7);Line line(myp1,myp2);Line line2(line);coutThe length of the line is:;coutline.GetLen()endl;coutThe length of the line2 is:;coutline2.GetLen()endl;编译结果;(2)派生类实现#include #include using namespace std;class Point /Point类public:Point(int xx=0, int yy=0)coutPoint类的构

5、造函数被调用endl;X=xx;Y=yy;Point(Point &p);Point()coutPoint类的析构函数被调用endl;int GetX() return X;int GetY() return Y;private:int X,Y;Point:Point(Point &p)/拷贝构造函数的实现X=p.X;Y=p.Y;coutPoint类的拷贝构造函数被调用endl;class Line:public Point /派生类Linepublic:Line (int x1, int y1,int x2,int y2,double z=0.0):p1(x1,y1),p2(x2,y2) /

6、初始化列表coutLine类的构造函数被调用endl;len=z;double x=double(p1.GetX()-p2.GetX();double y=double(p1.GetY()-p2.GetY();len=sqrt(x*x+y*y);Line (Line &L);Line()coutLine类的析构函数被调用endl;double GetLen()return len; /返回得到的长度private:Point p1,p2;/Point类的对象p1,p2double len;Line:Line(Line &L):p1(L.p1),p2(L.p2)coutLine类的拷贝构造函数被

7、调用endl;len=L.len;int main() /主函数Point myp1(1,1),myp2(4,6); /建立Point类的对象Line line1(1,1,4,6);Line line2(line1); /利用拷贝构造函数建立一个新对象coutThe length of the line1 is:;coutline1.GetLen()endl;coutThe length of the line2 is:;coutline2.GetLen()endl;return 0;3、编译结果:4、小结首先由于刚开始没读懂题意,我直接把课题中的模板类实现做成只有一个display()函数,

8、根本没有真正显示出模板类的优点,后来通过和其他同学的讨论研究才发现自己在理解上有些偏差,于是我毫不犹豫地把原来学的程序放弃了,直接重新开始我的新任务,最后终于搞出来时,心情异常激动。题目2:人员信息管理系统本设计题目的任务是设计一个人员信息管理系统,并使用虚函数实现多态性,完成显示不同人员信息的任务。设计employee类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。以employee为基类派生出technician类,表示兼职技术人员,以及manager类,表示经理,以及salesman类,表示兼职推销员。利用manage类和salesman类派生出salesmanager

9、类,表示销售经理。注意使用虚基类。进一步使用虚函数和抽象类改进上面的程序。本设计题目的目的是让学生进一步理解和掌握C+中类的继承,虚基类,多态性,虚函数以及抽象类技术及实现方法。employee# name:char20# individualEmpNo:int#grade:int#accumPay:float#employeeNo:int=1000+ employee()+ employee()+ pay():void+ promote(:int): void+ SetName(: char*): void+ GetName():char*+ GetindividualEmpNo();int

10、salesman# CommRate:float# sales:float+ salesman()+ pay():voidmanager# monthliyPay:float+ manager()+pay():voidsalesmanager+ salesmanager()+ pay(): voidtechnician- hourlyRate:float- workHours:int+ technician()+SetworkHours(wh:int:void)1. 设计框图:2、源程序:#include#includeusing namespace std;class employeepro

11、tected:char name20; /姓名int individualEmpNo; /个人编号int grade; /级别float accumPay; /月薪总额static int employeeNo; /本公司职员编号目前最大值public:employee(); /够造函数employee(); / void pay();void promote(int);void SetName(char *);char * GetName();int GetindividualEmpNo();int Getgrade();float GetaccumPay();class technicia

12、n:public employeeprivate:float hourlyRate;int workHours;public:technician();void SetworkHours(int wh);void pay();class salesman:virtual public employeeprotected:float CommRate;float sales;public:salesman();void Setsales(float sl);void pay();class manager:virtual public employeeprotected:float monthlyPay;public:manager();void pay();class salesmanager:public manager,public salesmanpublic:salesmanager();void pay();int employee:emp

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号