版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 告验 报实 实验课程: C+ 面向对象程序设计 学生姓名: 慎镛日 学 号: 8000608039 081 计算机软件专业班级: 日月11年2010 11 1 / 14 南昌大学实验报告 学生姓名: 慎镛日 学 号: 8000608039 专业班级: 计算机软件 081 实验类型: 验证 综合 设计 创新 实验日期: 2010.11.12 实验成绩: 一、实验项目名称:小型公司人员管理 二、实验目的: 1、理解继承在面向对象程序设计中的重要作用; 2、理解继承和派生的概念; 3、掌握通过继承派生出一个新类的方法; 4、进一步学习简单面向对象程序的编写; 5、理解多态的概念; 6、理解虚函数的
2、作用; 7、掌握虚函数的定义和使用方法; 8、学习实现多态; 9、了解纯虚函数和抽象类的概念和使用方法; 三、实验内容 1、题目内容描述 2、输入和输出信息描述及数据类型确定; (1)、输入数据 序号 输入数据描述 数据类型 1 2 (2)、输出数据 序号 输出数据描述 数据类型 1 2 (3)、自定义数据类型 如果程序中有自定义数据类型,如枚举、结构体、联合体等,请代码方式列出并概要解释其作用。 3、类的解释 (1)、类的定义 例如: 类 Point 成员数据定义 成员数据作用描述 int m_X 2维坐标点的 X坐标 成员函数定义 成员函数功能描述 void SetX(int x); 设置
3、 2 维坐标点 X坐标 2 / 14 (2)、类之间的关系 4、程序调试 错误 错误信息 是否 解决方法 序号 列出你认为最重要的 10 个错误信息 解决 (简要描述) 1 2 3 5、测试与结果分析 (1)、测试数据与结果(至少两组) 源文件名 可执行文件名 测试序号 测试输入数据测试输出结果是否正确结果分析 3 / 14 实验总结 三、 1、问题总结 ) 结合本次实验目的,熟悉或掌握了那些内容。程序是否实现并测试通过1 )代码是否独立完成2 )那些方面的知识理解或掌握的不到位;程序存在什么问题3 4)对于程序存在的问题如何去改进,写出其方法 、经验总结 2)简述你在本题目积累了在开发工具使
4、用、编成程序、调试程序、测试程序方面的1 实践经验 四、列出源代码 源文件:employee.cpp #includeemployee.h #include using 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); 4 / 14 position=p; salary=sa; bdate.setyear(y); bdate.setmonth(m); bdate.setday(d); int e
5、mployee:getyear()return bdate.gety(); int employee:getmonth()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()retu
6、rn salary; inoutdata.cpp: #includemain.h void inoutdata(int n) ofstream outdata(data.txt,ios:app); char name20,sex4; int num,salary,year,month,day,area; 潣瑵?请输入姓名:; cinname; 畯摴瑡?尼姓名:namenum; 畯摴瑡?尼编号:numsex; 畯摴瑡?尼性别:sex; 畯摴瑡?尼职位:pn-1salary; 潣瑵?请输入哪一年出生:; cinyear; 潣瑵?请输入出生月份:; cinmonth; 潣瑵?请输入出生在哪天:; c
7、inday; 畯摴瑡?尼生日:year-month-day; if(n=1) 5 / 14 manager m(name,num,sex,n-1,salary,year,month,day); 畯摴瑡?尼 薪水:m.getpay(); m.display(); if(n=2) 潣瑵?请选择部门(1 、华北,2、华东):area; salesmanager sm(name,num,sex,n-1,salary,year,month,day,area-1); 畯摴瑡?尼 部门:ararea-1; 畯摴瑡?尼薪水:sm.getsmpay(); sm.display(); if(n=3) 潣瑵?请选择
8、部门(1 、华北,2、华东):area; salesman s(name,num,sex,n-1,salary,year,month,day,area-1); 畯摴瑡?尼部门:ararea-1; 畯摴瑡?尼 薪水:s.getpay(); s.display(); if(n=4) technician t(name,num,sex,n-1,salary,year,month,day); 畯摴瑡?尼薪水: t.getpay(); t.display(); outdatai; if(i!=1&i!=2&i!=3&i!=4) 6 / 14 return; inoutdata(i); ; void ou
9、tf() char a; 潣瑵?是否要输出所有数据(y/n)?a; if(a!=y&a!=Y)return; ifstream indata; indata.open(data.txt); while(indata.get(a) couta; indata.close(); void main() 潣瑵?请选择要输入的数据:n1、总经理 n2、销售经理 n3、销售员 n4、技术员nendl; inout(); outf(); manager.cpp: #includemanager.h #include manager:manager(char*n,int nu,char *s,int p,i
10、nt 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() 7 / 14 mpay=mpay; void manager:display() 潣瑵?尼名字:getname()endl; 潣瑵?尼编号:getnum()endl; 潣瑵?尼性别:getsex()endl; 潣瑵?尼职位:pgetposition()endl; 潣瑵?尼出生日期:?朼瑥敹牡?年?朼瑥潭瑮?尼月?朼瑥慤?尼日endl; 潣瑵?尼工资:getpay()endl;
11、 coutendl; salesman.cpp: #includesalesman.h #include salesman:getsale() return sale; salesman:getpay() pay(); return spay; salesman:salesman(char*n,int 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
12、() spay=getsale()*4/100; char *salesman:getarea() 8 / 14 return ararea; void salesman:display() 潣瑵?尼名字:getname()endl; 潣瑵?尼编号:getnum()endl; 潣瑵?尼性别:getsex()endl; 潣瑵?尼职位:pgetposition()endl; 潣瑵?尼出生日期:?朼瑥敹牡?年?朼瑥潭瑮?尼月?朼瑥慤?尼日endl; 潣瑵?尼工资:getpay()endl; 潣瑵?所属部门:getarea()endl; coutendl; salesmanager.cpp: #inc
13、ludesalesmanager.h #include salesmanager:salesmanager(char*n,int nu,char* s,int p,int d,int m,int y,int sa,int a):salesman(n,nu,s,p,sa,y,m,d,a),manager(n,nu,s,p,sa,y,m,d) sale=sa; salesmanager:getsmpay() pay(); return smpay; salesmanager:getmpay() return manager:getpay(); void salesmanager:setsale(i
14、nt s) sale=s; void salesmanager:setpay(int g) gpay=g; void salesmanager:pay() smpay=5000+sale*5/1000; 9 / 14 char *salesmanager:getare() return getarea(); void salesmanager:display() 潣瑵?尼名字:salesman:getname()endl; 潣瑵?尼编号:salesman:getnum()endl; 潣瑵?尼性别:salesman:getsex()endl; 潣瑵?尼职位:psalesman:getpositi
15、on()endl; cout ?出生日期:?猼污獥慭?机瑥敹牡?年?猼污獥慭?机瑥潭瑮?尼月?猼污獥慭?机瑥慤?尼日endl; 潣瑵?尼工资:getsmpay()endl; 潣瑵?所属部门:getare()endl; coutendl; technician.cpp: #includeechnician.h #include technician: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() re
16、turn time; technician:getpay() pay(); return tpay; void technician:pay() tpay=time*25; void technician:display() getname()endl; 潣瑵?尼 名字:getnum()endl; 潣瑵?尼 编号:getsex()endl; 潣瑵?尼 性别:10 / 14 潣瑵?尼职位:pgetposition()endl; 潣瑵?尼出生日期:?朼瑥敹牡?年?朼瑥潭瑮?尼月?朼瑥慤?尼日endl; 潣瑵?尼工资:getpay()endl; coutendl; 头文件: empolyee.h:
17、#ifndef empolyee_h #define empolyee_h static char p420= 屻总经理, 屻销售经理, 屻销售员, 屻技术人员 ; class date /定义时间类 private: int year,month,day; /定义时间类的年月日 public: date() /时间类的构造函数 void setyear(int y=1988)year=y; void setmonth(int m=5)month=m; void setday(int d=16)day=d; int gety()return year; int getm()return mon
18、th; 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 y,int m,int d);/基类构造函数的重载 int getyear(); int getmonth(); 11 / 14 in
19、t getday(); char* getname(); int getnum(); char* getsex(); int getposition(); int getsalary(); /虚升职函数 virtual void promote() /virtual void pay()=0; 纯虚的计算工资函数 / virtual void display()=0; 纯虚的显示函数 ; #endif main.h: #include #include using namespace std; #includeemployee.h #includesalesman.h #includemana
20、ger.h #includesalesmanager.h #includeechnician.h void inoutdata(int); manager.h: #includeemployee.h #ifndef manager_h #define manager_h class manager:public employee /定义经理类,继承employee类 private: int mpay; /定义经理类的工资 public: manager(char*n,int nu,char *s,int p,int sa,int y,int m,int d); virtual void pr
21、omote() int getpay(); virtual void pay(); virtual void display(); ; #endif salesman.h #includeemployee.h 12 / 14 #ifndef salesman_h #define salesman_h static char ar420= /定义储存部门的数组,以便后面你用整数来表示部门 屻华北地区, 屻华东 ; class salesman:public employee /定义销售员的类,继承employee类 private: int sale,spay; /定义销售量,和销售员的工资变量
22、 int area; /定义销售员的部门 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(); /虚显示函数 ; #endif salesmanager.h: #includesalesman.h #includemanager.h #ifndef salesmanager_h #define salesmanager_h class salesmanager:public salesman,public manager /定义销售经理的类,继承销售员类和经理类 private: int smpay,sal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新力突破瓶颈-创新能力教育培训
- 2026年初级经济师之初级建筑与房地产经济考前冲刺测试卷及参考答案详解(考试直接用)
- 初中九年级化学中考二轮复习专题:科学情境下材料阅读题的解析与建构教案
- 2026私募基金投资咨询公司对外投资管理制度
- 2025-2030中国黄金行业市场发展分析及投资潜力与前景研究报告
- 安全生产责任制考核制度
- 审计完善报销制度
- 宣传部日常监督制度汇编
- 宾馆工作制度大全
- 小企业内部员工管理制度
- 《剪映短视频剪辑+即梦AI从入门到精通》AI短视频生成与剪辑全套教学课件
- 2025届浙江省杭二中化学高一下期末质量跟踪监视试题含解析
- QGDW1392-2015风电场接入电网技术规定
- 2025年中级制冷工(四级)技能认定理论考试指导题库(含答案)
- 浙江省衢州市衢江区2023-2024学年五年级下学期语文期中试卷(含答案)
- 四川开放大学2024年秋《土木工程CAD》形考作业1-2终考答案
- T-CSAE 176-2021 电动汽车电驱动总成噪声品质测试评价规范
- 敦煌曲子词地域文化研究
- 雷雨-剧本原文-高中语文雷雨剧本原文
- 网络机房日巡检记录表
- 2024年广东佛山市南海区大沥镇镇属企业招聘笔试参考题库含答案解析
评论
0/150
提交评论