面向对象的程序设计课程设计报告

上传人:aa****6 文档编号:30014833 上传时间:2018-01-26 格式:DOC 页数:45 大小:483.50KB
返回 下载 相关 举报
面向对象的程序设计课程设计报告_第1页
第1页 / 共45页
面向对象的程序设计课程设计报告_第2页
第2页 / 共45页
面向对象的程序设计课程设计报告_第3页
第3页 / 共45页
面向对象的程序设计课程设计报告_第4页
第4页 / 共45页
面向对象的程序设计课程设计报告_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《面向对象的程序设计课程设计报告》由会员分享,可在线阅读,更多相关《面向对象的程序设计课程设计报告(45页珍藏版)》请在金锄头文库上搜索。

1、面向对象的程序设计课程设计报告姓 名: 学 号: 班 级: 院 系: 日 期: 2一设计目的课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。本次课程设计通过设计和实现几个应用程序,达到以下目标:1.使学生能够比较熟练地掌握 C+语言的基本语法规则;2.熟练掌握基本的面向对象的程序设计方法,如类的实现、创建类的实例对象、实现类的继承等;3.掌握各种面向对象的程序设计技术,如继承和派生,虚继承、虚函数、抽象类、多态的实现、运算符重载

2、、使用 C+标准库等;4.掌握在 VC+平台上进行程序设计和调试的方法。二内容及要求1.内容与功能要求题目一:通过组合和派生构成新的类本设计题目的任务是使用 Point 类产生 Line 类。分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。题目二:人员信息管理系统设计题目:本设计题目的任务是设计一个人员信息管理系统,并使用虚函数实现多态性,完成显示不同人员信息的

3、任务。设计要求:设计 employee 类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。以 employee 为基类派生出 technician 类,表示兼职技术人员,以及 manager 类,表示经理,以及 salesman 类,表示兼职推销员。利用 manage 类和 salesman 类派生出salesmanager 类,表示销售经理。注意使用虚基类。3题目三:学生考勤管理系统设计题目:在学生考勤管理系统中,考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。系统功能包括信息录入、修改、查询、统计等。设计要求

4、:录入学生的缺课记录; 修改某个学生的缺课记录;查询某个学生的缺课情况;统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;2.软件开发环境Windows 7,Visual C+6.04第一题 通过组合和派生构成新的类1.设计思路本题目的任务是使用 Point 类产生 Line 类。分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。本题目的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。另外本设计题目要

5、让学生进一步掌握和理解类模板的技术及其实现方法。2.程序详细代码及描述(1)/cpp1.h 头文件#if !defined(CPP1_H)#define CPP1_H#include #include class Pointdouble X,Y;public:Point(double=0,double=0);Point(Pointvoid Display()cout#include /声明 Point 类template class PointT X,Y;public:Point(T=0,T=0);Point(Pointvoid Display()coutPoint:Point(T a,T b

6、):X(a),Y(b)coutPoint:Point(Point&a)X=a.X;Y=a.Y;coutT Point:Distance(Point&a)return sqrt(X-a.X)*(X-a.X)+(Y-a.Y)*(Y-a.Y);template Point:Point()coutclass Line7Point a,b;Cow cw;public:Line(PointLine(LineT Display(LineLine();/实现 Line 类template Line:Line(Point&a1,Point&a2,Cow&a3):a(a1),b(a2),cw(a3)coutLin

7、e:Line(Line&s):a(s.a),b(s.b),cw(s.cw)coutLine:Line()coutT Line:Display(Line&a)a.a.Display();a.b.Display();T x=a.a.Getx()-a.b.Getx();T y=a.a.Gety()-a.b.Gety();return sqrt(x*x+y*y);#endif(2)/cpp11.cpp 文件#include cpp13.hvoid main()Point a;Point b(5.2,11.8),c(38.9,85.6)a=c;couts(a,b,cw);Line s1(s);cout#

8、include /using namespace std;class Pointdouble X,Y;public:Point(double=0,double=0);Point(Pointvoid Display()cout10#include template class PointT X,Y;public:Point(T=0,T=0);Point(Pointvoid Display()coutPoint:Point(T a,T b):X(a),Y(b)coutPoint:Point(Point&a)X=a.X;Y=a.Y;coutdouble Point:Distance(Point&a)

9、return sqrt(X-a.X)*(X-a.X)+(Y-a.Y)*(Y-a.Y);struct Cowint Color;int Width;template class Line:public PointT X2,Y2;Cow cw;public:Line(T,T,T,T,CowLine(Linedouble Display(LineLine()coutLine:Line(T a1,T a2,T a3,T a4,Cow&c):Point(a1,a2),X2(a2),Y2(a4),cw(c)coutLine:Line(Line&s):Point(s),X2(s.X2),Y2(s.Y2),c

10、w(s.cw)coutdouble Line:Display(Line&a)Point:Display();couta;Point b(7.8,9.8),c(34.5,67.8);a=c;couts(7.8,9.8,34.5,67.8,cw);Lines1(s);cout*p=p-Display();cout d.Display();4.运行结果及分析12(1)用包含的方法构成的新类(2)使用模板的方法构成的新类(3)通过继承的方法构成的新类13(4)通过模板继承的方法构成的新类程序完成了实验要求。14第二题 人员信息管理系统1.设计思路本题目的任务是设计一个人员信息管理系统,并使用虚函数实现

11、多态性,完成显示不同人员信息的任务。设计 employee 类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。以 employee 为基类派生出 technician 类,表示兼职技术人员,以及 manager 类,表示经理,以及 salesman 类,表示兼职推销员。利用 manage 类和 salesman 类派生出salesmanager 类,表示销售经理。注意使用虚基类。2.程序详细代码及描述#include #include #include #include /全局数据,对象double ManagerSalary; /经理固定月薪double SalesManag

12、erSalary; /销售经理固定月薪double SalesManagerPercent; /销售经理提成double SalesPercent; /兼职推销员提成double WagePerHour; /兼职技术人员小时工资int ID; /员工标识class Employee /员工类protected:int No; /编号char Name20; /姓名int Birthday; /生日char Specialty20; /特长char Bloodtype; /血型int Attend; /加入公司时间int Duty; /岗位double Earning; /收入Employee

13、*next;public:Employee(char ID,char *Name,int Duty)15this-Duty=Duty;strcpy(this-Name,Name);this-No=ID;virtual void CalcSalary()=0; virtual void Output()=0;friend class Company;class Manager:public Employee /经理类public:Manager(char ID,char *Name,int Duty):Employee(ID,Name,Duty)void CalcSalary()Earning=ManagerSalary;void Output()CalcSalary();coutt=T;double GetT()return t;void SetT(double T)this-t=T;void Ca

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

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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