南昌大学C实验题目及要求.docx

上传人:b****5 文档编号:29382789 上传时间:2023-07-22 格式:DOCX 页数:21 大小:216.14KB
下载 相关 举报
南昌大学C实验题目及要求.docx_第1页
第1页 / 共21页
南昌大学C实验题目及要求.docx_第2页
第2页 / 共21页
南昌大学C实验题目及要求.docx_第3页
第3页 / 共21页
南昌大学C实验题目及要求.docx_第4页
第4页 / 共21页
南昌大学C实验题目及要求.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

南昌大学C实验题目及要求.docx

《南昌大学C实验题目及要求.docx》由会员分享,可在线阅读,更多相关《南昌大学C实验题目及要求.docx(21页珍藏版)》请在冰豆网上搜索。

南昌大学C实验题目及要求.docx

南昌大学C实验题目及要求

实验报告

 

实验课程:

C++面向对象程序设计

*******

学号:

**********

专业班级:

计算机软件081

 

2010年11月11日

 

南昌大学实验报告

学生姓名:

慎镛日学号:

**********专业班级:

计算机软件081

实验类型:

■验证□综合□设计□创新实验日期:

2010.11.12实验成绩:

一、实验项目名称:

小型公司人员管理

二、实验目的:

1、理解继承在面向对象程序设计中的重要作用;

2、理解继承和派生的概念;

3、掌握通过继承派生出一个新类的方法;

4、进一步学习简单面向对象程序的编写;

5、理解多态的概念;

6、理解虚函数的作用;

7、掌握虚函数的定义和使用方法;

8、学习实现多态;

9、了解纯虚函数和抽象类的概念和使用方法;

三、实验内容

1、题目内容描述

2、输入和输出信息描述及数据类型确定;

(1)、输入数据

序号输入数据描述数据类型

1

2

………………

(2)、输出数据

序号输出数据描述数据类型

1

2

………………

(3)、自定义数据类型

如果程序中有自定义数据类型,如枚举、结构体、联合体等,请代码方式列出并概要解释其作用。

3、类的解释

(1)、类的定义

例如:

类Point成员数据定义成员数据作用描述

intm_X2维坐标点的X坐标

…………

成员函数定义成员函数功能描述

voidSetX(intx);设置2维坐标点X坐标

…………

(2)、类之间的关系

4、程序调试

错误错误信息是否解决方法

序号列出你认为最重要的10个错误信息解决(简要描述)

1……

2……

3……

……

 

5、测试与结果分析

(1)、测试数据与结果(至少两组)

源文件名可执行文件名测试序号测试输入数据测试输出结果是否正确结果分析

三、实验总结

1、问题总结

1)结合本次实验目的,熟悉或掌握了那些内容。

程序是否实现并测试通过

2)代码是否独立完成

3)那些方面的知识理解或掌握的不到位;程序存在什么问题

4)对于程序存在的问题如何去改进,写出其方法

2、经验总结

1)简述你在本题目积累了在开发工具使用、编成程序、调试程序、测试程序方面的实践经验

四、列出源代码

源文件:

employee.cpp

#include"employee.h"

#include

usingnamespacestd;

employee:

:

employee(char*n,intnu,char*s,intp,intsa,inty,intm,intd)

{

strcpy(name,n);

num=nu;

strcpy(sex,s);

position=p;

salary=sa;

bdate.setyear(y);

bdate.setmonth(m);

bdate.setday(d);

}

intemployee:

:

getyear(){returnbdate.gety();}

intemployee:

:

getmonth(){returnbdate.getm();}

intemployee:

:

getday(){returnbdate.getd();}

char*employee:

:

getname(){returnname;}

intemployee:

:

getnum(){returnnum;}

char*employee:

:

getsex(){returnsex;}

intemployee:

:

getposition(){returnposition;}

intemployee:

:

getsalary(){returnsalary;}

inoutdata.cpp:

#include"main.h"

voidinoutdata(intn)

{

ofstreamoutdata("data.txt",ios:

:

app);

charname[20],sex[4];

intnum,salary,year,month,day,area;

cout<<"请输入姓名:

";

cin>>name;

outdata<<"姓名:

"<

cout<<"请输入编号:

";

cin>>num;

outdata<<"编号:

"<

cout<<"请输入性别:

";

cin>>sex;

outdata<<"性别:

"<

outdata<<"职位:

"<

cout<<"请输入工资或销售量:

";

cin>>salary;

cout<<"请输入哪一年出生:

";

cin>>year;

cout<<"请输入出生月份:

";

cin>>month;

cout<<"请输入出生在哪天:

";

cin>>day;

outdata<<"生日:

"<

if(n==1)

{

managerm(name,num,sex,n-1,salary,year,month,day);

outdata<<"薪水:

"<

m.display();

}

if(n==2)

{

cout<<"请选择部门(1、华北,2、华东):

"<

cin>>area;

salesmanagersm(name,num,sex,n-1,salary,year,month,day,area-1);

outdata<<"部门:

"<

outdata<<"薪水:

"<

sm.display();

}

if(n==3)

{

cout<<"请选择部门(1、华北,2、华东):

"<

cin>>area;

salesmans(name,num,sex,n-1,salary,year,month,day,area-1);

outdata<<"部门:

"<

outdata<<"薪水:

"<

s.display();

}

if(n==4)

{

techniciant(name,num,sex,n-1,salary,year,month,day);

outdata<<"薪水:

"<

t.display();

}

outdata<<"\n";

outdata.close();

}

 

main.cpp:

#include"main.h"

voidinout()

{

inti;

while

(1)

{

cin>>i;

if(i!

=1&&i!

=2&&i!

=3&&i!

=4)

return;

inoutdata(i);

};

}

voidoutf()

{

chara;

cout<<"是否要输出所有数据(y/n)?

"<

cin>>a;

if(a!

='y'&&a!

='Y')return;

ifstreamindata;

indata.open("data.txt");

while(indata.get(a))

{

cout<

}

indata.close();

}

voidmain()

{

cout<<"请选择要输入的数据:

\n1、总经理\n2、销售经理\n3、销售员\n4、技术员\n"<

inout();

outf();

}

manager.cpp:

#include"manager.h"

#include

manager:

:

manager(char*n,intnu,char*s,intp,intsa,inty,intm,intd):

employee(n,nu,s,p,sa,y,m,d)

{

mpay=sa;

}

manager:

:

getpay()

{

returnmpay;

}

voidmanager:

:

pay()

{

mpay=mpay;

}

voidmanager:

:

display()

{

cout<<"名字:

"<

cout<<"编号:

"<

cout<<"性别:

"<

cout<<"职位:

"<

cout<<"出生日期:

"<

cout<<"工资:

"<

cout<

}

salesman.cpp:

#include"salesman.h"

#include

salesman:

:

getsale()

{

returnsale;

}

salesman:

:

getpay()

{

pay();

returnspay;

}

salesman:

:

salesman(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta):

employee(n,nu,s,p,sa,y,m,d)

{

sale=sa;

area=a;

}

voidsalesman:

:

setsale(intp)

{

sale=p;

}

voidsalesman:

:

pay()

{

spay=getsale()*4/100;

}

char*salesman:

:

getarea()

{

returnar[area];

}

voidsalesman:

:

display()

{

cout<<"名字:

"<

cout<<"编号:

"<

cout<<"性别:

"<

cout<<"职位:

"<

cout<<"出生日期:

"<

cout<<"工资:

"<

cout<<"所属部门:

"<

cout<

}

salesmanager.cpp:

#include"salesmanager.h"

#include

salesmanager:

:

salesmanager(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta):

salesman(n,nu,s,p,sa,y,m,d,a),manager(n,nu,s,p,sa,y,m,d)

{

sale=sa;

}

salesmanager:

:

getsmpay()

{

pay();

returnsmpay;

}

salesmanager:

:

getmpay()

{

returnmanager:

:

getpay();

}

voidsalesmanager:

:

setsale(ints)

{

sale=s;

}

voidsalesmanager:

:

setpay(intg)

{

gpay=g;

}

voidsalesmanager:

:

pay()

{

smpay=5000+sale*5/1000;

}

char*salesmanager:

:

getare()

{

returngetarea();

}

voidsalesmanager:

:

display()

{

cout<<"名字:

"<

:

getname()<

cout<<"编号:

"<

:

getnum()<

cout<<"性别:

"<

:

getsex()<

cout<<"职位:

"<

:

getposition()]<

cout<<"出生日期:

"<

:

getyear()<<"年"<

:

getmonth()<<"月"<

:

getday()<<"日"<

cout<<"工资:

"<

cout<<"所属部门:

"<

cout<

}

technician.cpp:

#include"technician.h"

#include

technician:

:

technician(char*n,intnu,char*s,intp,intsa,inty,intm,intd):

employee(n,nu,s,p,sa,y,m,d)

{

time=sa;

}

technician:

:

gettime()

{

returntime;

}

technician:

:

getpay()

{

pay();

returntpay;

}

voidtechnician:

:

pay()

{

tpay=time*25;

}

voidtechnician:

:

display()

{

cout<<"名字:

"<

cout<<"编号:

"<

cout<<"性别:

"<

cout<<"职位:

"<

cout<<"出生日期:

"<

cout<<"工资:

"<

cout<

}

头文件:

empolyee.h:

#ifndefempolyee_h

#defineempolyee_h

staticcharp[4][20]={

{"总经理"},

{"销售经理"},

{"销售员"},

{"技术人员"}

};

classdate//定义时间类

{

private:

intyear,month,day;//定义时间类的年月日

public:

date(){}//时间类的构造函数

voidsetyear(inty=1988){year=y;}

voidsetmonth(intm=5){month=m;}

voidsetday(intd=16){day=d;}

intgety(){returnyear;}

intgetm(){returnmonth;}

intgetd(){returnday;}

};

classemployee//基类,被雇佣者

{

private:

charname[20];//名字

intnum;//编号

charsex[4];//性别

datebdate;//出生时间

intposition;//职位

intsalary;//薪水

public:

employee(){}//基类构造函数

employee(char*n,intnu,char*s,intp,intsa,inty,intm,intd);//基类构造函数的重载

intgetyear();

intgetmonth();

intgetday();

char*getname();

intgetnum();

char*getsex();

intgetposition();

intgetsalary();

virtualvoidpromote(){}//虚升职函数

virtualvoidpay()=0;//纯虚的计算工资函数

virtualvoiddisplay()=0;//纯虚的显示函数

};

#endif

main.h:

#include

#include

usingnamespacestd;

#include"employee.h"

#include"salesman.h"

#include"manager.h"

#include"salesmanager.h"

#include"technician.h"

voidinoutdata(int);

manager.h:

#include"employee.h"

#ifndefmanager_h

#definemanager_h

classmanager:

publicemployee//定义经理类,继承employee类

{

private:

intmpay;//定义经理类的工资

public:

manager(char*n,intnu,char*s,intp,intsa,inty,intm,intd);

virtualvoidpromote(){}

intgetpay();

virtualvoidpay();

virtualvoiddisplay();

};

#endif

 

salesman.h

#include"employee.h"

#ifndefsalesman_h

#definesalesman_h

staticcharar[4][20]={//定义储存部门的数组,以便后面你用整数来表示部门

{"华北地区"},

{"华东"}

};

classsalesman:

publicemployee//定义销售员的类,继承employee类

{

private:

intsale,spay;//定义销售量,和销售员的工资变量

intarea;//定义销售员的部门

public:

salesman(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta);

intgetsale();

intgetpay();

char*getarea();

voidsetsale(int);

virtualvoidpromote(){}//虚升职函数

virtualvoidpay();//虚计算工资的函数

virtualvoiddisplay();//虚显示函数

};

#endif

 

salesmanager.h:

#include"salesman.h"

#include"manager.h"

#ifndefsalesmanager_h

#definesalesmanager_h

classsalesmanager:

publicsalesman,publicmanager//定义销售经理的类,继承销售员类和经理类

{

private:

intsmpay,sale,gpay;

public:

salesmanager(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta);

intgetsmpay();//获得销售经理的工资

intgetmpay();//获得销售经理的固定工资

voidsetsale(int);//设置销售经理的总销售量

voidsetpay(int);//设置销售经理的固定工资

char*getare();//获得销售经理的部门

virtualvoidpromote(){}//虚升职函数

voidpay();//销售经理的计算工资的函数

voiddisplay();//销售经理的显示函数

};

#endif

technician.h:

#include"employee.h"

#ifndeftechnician_h

#definetechnician_h

classtechnician:

publicemployee//定义技术员的类,继承employee类

{

private:

inttime,tpay;//定义技术员的工作时间和工资

public:

technician(char*n,intnu,char*s,intp,intsa,inty,intm,intd);

intgettime();//获得技术员的工作时间

intgetpay();//获得技术员的工资

virtualvoidpromote(){}//虚升职函数

virtualvoidpay();//销售经理的计算工资的函数

virtualvoiddisplay();//销售经理的显示函数

};

#endif

 

五、参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1