南昌大学(2010-11C++)实验一题目及要求_第1页
南昌大学(2010-11C++)实验一题目及要求_第2页
南昌大学(2010-11C++)实验一题目及要求_第3页
南昌大学(2010-11C++)实验一题目及要求_第4页
南昌大学(2010-11C++)实验一题目及要求_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告实验课程: C+ 面向对象程序设计 学生姓名: 慎镛日 学 号: 8000608039 专业班级: 计算机软件081 2010年11月 11日 南昌大学实验报告学生姓名: 慎镛日 学 号: 8000608039 专业班级: 计算机软件081 实验类型: 验证 综合 设计 创新 实验日期: 2010.11.12 实验成绩: 一、实验项目名称:小型公司人员管理二、实验目的:1、理解继承在面向对象程序设计中的重要作用; 2、理解继承和派生的概念; 3、掌握通过继承派生出一个新类的方法; 4、进一步学习简单面向对象程序的编写;5、理解多态的概念; 6、理解虚函数的作用; 7、掌握虚函数的

2、定义和使用方法; 8、学习实现多态; 9、了解纯虚函数和抽象类的概念和使用方法;三、实验内容 1、题目内容描述 2、输入和输出信息描述及数据类型确定; (1)、输入数据 序号 输入数据描述 数据类型 1 2 (2)、输出数据 序号 输出数据描述 数据类型 1 2 (3)、自定义数据类型 如果程序中有自定义数据类型,如枚举、结构体、联合体等,请代码方式列出并概要解释其作用。 3、类的解释(1)、类的定义 例如: 类 Point 成员数据定义 成员数据作用描述 int m_X 2维坐标点的 X坐标 成员函数定义 成员函数功能描述 void SetX(int x); 设置 2 维坐标点 X坐标 (2

3、)、类之间的关系 4、程序调试错误 错误信息 是否 解决方法 序号 列出你认为最重要的 10 个错误信息 解决 (简要描述) 1 2 3 5、测试与结果分析 (1)、测试数据与结果(至少两组)源文件名 可执行文件名 测试序号 测试输入数据 测试输出结果 是否正确结果分析 三、 实验总结 1、问题总结 1) 结合本次实验目的,熟悉或掌握了那些内容。程序是否实现并测试通过 2)代码是否独立完成3)那些方面的知识理解或掌握的不到位;程序存在什么问题4)对于程序存在的问题如何去改进,写出其方法2、经验总结 1)简述你在本题目积累了在开发工具使用、编成程序、调试程序、测试程序方面的实践经验四、列出源代码

4、源文件:employee.cpp#includeemployee.h#includeusing namespace std;employee:employee(char*n,int nu,char *s,int p,int sa,int y,int m,int d)strcpy(name,n);num=nu;strcpy(sex,s);position=p;salary=sa;bdate.setyear(y);bdate.setmonth(m);bdate.setday(d);int employee:getyear()return bdate.gety();int employee:getm

5、onth()return bdate.getm();int employee:getday()return bdate.getd();char* employee:getname()return name;int employee:getnum()return num;char* employee:getsex()return sex;int employee:getposition()return position;int employee:getsalary()return salary;inoutdata.cpp:#includemain.hvoid inoutdata(int n)of

6、stream outdata(data.txt,ios:app);char name20,sex4;int num,salary,year,month,day,area;coutname;outdata姓名:namet;coutnum;outdata编号:numt;coutsex;outdata性别:sext;outdata职位:pn-1t;coutsalary;coutyear;coutmonth;coutday;outdata生日:year-month-dayt;if(n=1)manager m(name,num,sex,n-1,salary,year,month,day);outdata

7、薪水:m.getpay()t;m.display();if(n=2)cout请选择部门(1、华北,2、华东):area;salesmanager sm(name,num,sex,n-1,salary,year,month,day,area-1);outdata部门:ararea-1t;outdata薪水:sm.getsmpay()t;sm.display();if(n=3)cout请选择部门(1、华北,2、华东):area;salesman s(name,num,sex,n-1,salary,year,month,day,area-1);outdata部门:ararea-1t;outdata薪

8、水:s.getpay()t;s.display();if(n=4)technician t(name,num,sex,n-1,salary,year,month,day);outdata薪水:t.getpay()t;t.display();outdatai;if(i!=1&i!=2&i!=3&i!=4)return;inoutdata(i);void outf()char a;cout是否要输出所有数据(y/n)?a;if(a!=y&a!=Y)return;ifstream indata;indata.open(data.txt);while(indata.get(a)couta;indata

9、.close();void main()cout请选择要输入的数据:n1、总经理 n2、销售经理 n3、销售员 n4、技术员nendl;inout();outf();manager.cpp:#includemanager.h#includemanager:manager(char*n,int nu,char *s,int p,int sa,int y,int m,int d):employee(n,nu,s,p,sa,y,m,d)mpay=sa;manager:getpay()return mpay;void manager:pay()mpay=mpay;void manager:displa

10、y()cout 名字:getname()endl;cout 编号:getnum()endl;cout 性别:getsex()endl;cout 职位:pgetposition()endl;cout 出生日期:getyear()年getmonth()月getday()日endl;cout 工资:getpay()endl;coutendl;salesman.cpp:#includesalesman.h#includesalesman:getsale()return sale;salesman:getpay()pay();return spay;salesman:salesman(char*n,in

11、t nu,char* s,int p,int sa,int y,int m,int d,int a):employee(n,nu,s,p,sa,y,m,d)sale=sa;area=a;void salesman:setsale(int p)sale=p;void salesman:pay()spay=getsale()*4/100;char *salesman:getarea()return ararea;void salesman:display()cout 名字:getname()endl;cout 编号:getnum()endl;cout 性别:getsex()endl;cout 职位

12、:pgetposition()endl;cout 出生日期:getyear()年getmonth()月getday()日endl;cout 工资:getpay()endl;cout所属部门:getarea()endl;coutendl;salesmanager.cpp:#includesalesmanager.h#includesalesmanager:salesmanager(char*n,int nu,char* s,int p,int sa,int y,int m,int d,int a):salesman(n,nu,s,p,sa,y,m,d,a),manager(n,nu,s,p,sa

13、,y,m,d)sale=sa;salesmanager:getsmpay()pay();return smpay;salesmanager:getmpay()return manager:getpay();void salesmanager:setsale(int s)sale=s;void salesmanager:setpay(int g)gpay=g;void salesmanager:pay()smpay=5000+sale*5/1000;char *salesmanager:getare()return getarea();void salesmanager:display()cou

14、t 名字:salesman:getname()endl;cout 编号:salesman:getnum()endl;cout 性别:salesman:getsex()endl;cout 职位:psalesman:getposition()endl;cout 出生日期:salesman:getyear()年salesman:getmonth()月salesman:getday()日endl;cout 工资:getsmpay()endl;cout所属部门:getare()endl;coutendl;technician.cpp:#includetechnician.h#includetechnic

15、ian:technician(char*n,int nu,char* s,int p,int sa,int y,int m,int d):employee(n,nu,s,p,sa,y,m,d)time=sa;technician:gettime()return time;technician:getpay()pay();return tpay;void technician:pay()tpay=time*25;void technician:display()cout 名字:getname()endl;cout 编号:getnum()endl;cout 性别:getsex()endl;cout

16、 职位:pgetposition()endl;cout 出生日期:getyear()年getmonth()月getday()日endl;cout 工资:getpay()endl;coutendl;头文件:empolyee.h:#ifndef empolyee_h#define empolyee_hstatic char p420=总经理,销售经理,销售员,技术人员;class date/定义时间类private:int year,month,day;/定义时间类的年月日public:date()/时间类的构造函数void setyear(int y=1988)year=y;void setmo

17、nth(int m=5)month=m;void setday(int d=16)day=d;int gety()return year;int getm()return month;int getd()return day;class employee/基类,被雇佣者private:char name20;/名字int num;/编号char sex4;/性别date bdate;/出生时间int position;/职位int salary;/薪水public:employee()/基类构造函数employee(char*n,int nu,char* s,int p,int sa,int

18、y,int m,int d);/基类构造函数的重载int getyear();int getmonth();int getday();char* getname();int getnum();char* getsex();int getposition();int getsalary();virtual void promote()/虚升职函数virtual void pay()=0;/纯虚的计算工资函数virtual void display()=0;/纯虚的显示函数;#endifmain.h:#include#includeusing namespace std;#includeemplo

19、yee.h#includesalesman.h#includemanager.h#includesalesmanager.h#includetechnician.hvoid inoutdata(int);manager.h:#includeemployee.h#ifndef manager_h#define manager_hclass manager:public employee/定义经理类,继承employee类private:int mpay;/定义经理类的工资public:manager(char*n,int nu,char *s,int p,int sa,int y,int m,i

20、nt d);virtual void promote()int getpay();virtual void pay();virtual void display();#endifsalesman.h#includeemployee.h#ifndef salesman_h#define salesman_hstatic char ar420=/定义储存部门的数组,以便后面你用整数来表示部门华北地区,华东;class salesman:public employee/定义销售员的类,继承employee类private:int sale,spay;/定义销售量,和销售员的工资变量int area;

21、/定义销售员的部门public:salesman(char*n,int nu,char* s,int p,int sa,int y,int m,int d,int a);int getsale();int getpay();char* getarea();void setsale(int);virtual void promote() /虚升职函数 virtual void pay();/虚计算工资的函数virtual void display();/虚显示函数;#endifsalesmanager.h:#includesalesman.h#includemanager.h#ifndef salesmanager_h#define salesmanager_hclass salesmanager:public salesman,public manager/定义销售经理的类,继承销售员类和经理类pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论