- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一题实验报告
第一题实验报告
一 设计题目一
使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。
1 基本设计要求
设计要求实现如下功能:
建立职工信息数据,包括职工编号、姓名、性别和年龄。
根据职工信息表,建立只含有姓名和年龄的职工信息简表。
使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。
编写同名display()成员函数,用来输出数组的内容。
另外编制一个函数printer(),用来根据实际对象输出它们的内容。
2 进一步的要求
设计菜单,简单界面为:
增加职工记录
生成信息简表
显示原始记录
显示简表记录
结束程序运行
选择1-5:
3 涉及到的主要知识点:
(1)函数的定义;(2)类的定义;(3)类的继承;(4)对象数组(向量数组)等。
二、内容要求
1、设计题目
使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。
2、设计要求
设计要求实现如下功能:
(1).建立职工信息数据,包括职工编号、姓名,性别和年龄。
(2)据职工信息表,建立只含姓名和年龄的职工信息简表。
(3)使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。
(4)编写同名display( )成员函数,用来输出数组的内容。
(5)编写函数printer( ),用来根据实际对象输出它们的内容。
三、设计思想
1、类的结构
这里把简表的内容作为基类worker,由它派生详表类workers。这样,简表可以由赋值兼容规则得到。例如workers的一个对象wks为:
编 号 姓 名 性 别 年 龄
1001 张三 男 25
则worker的对象wk可以通过以下赋值兼容规则得到:
wk=wks;
这时wk的信息为:
姓名 年龄
张三 25
2、多态性
将worker的display()成员函数设计为虚函数,printer()函数使用基类worker对象的引用作为参数,即可实现多态性。
void printer(workers)
{
s.display();
}
3、设计主函数
要求编写最多输入10个职工的信息表,这里的意思是可以少于10个职工。使用ch存放读入的字符,当输入0时退出输入,同时将输入个数作为输出语句的循环次数。例如使用整型变量number存放输入个数,则可使用如下方法实现:
if(0==w_num)
{
number=i;
break;
}
使用const定义一个常量SIZE=10,这样可以增加程序的灵活性。
四、程序代码
#includeiostream
#includestring
using namespace std;
const int SIZE=10;
//职工简表类
class Worker{
private:
int age;
public:
char name[100];
void setname(char n[100]);
char getname();
void setage(int a);
int getage();
virtual void display();
};
class Workers:public Worker{
private:
int num;
char sex[6];
public:
void setnum(int n);
int getnum();
void setsex(char s[SIZE]);
char getsex();
void display();
};
void printer(Worker);
void Worker::setname(char n[100])
{strcpy(name,n);}
char Worker::getname()
{ coutname;
return(1);
}
void Worker::setage(int a)
{age=a;}
int Worker::getage()
{return age;}
void Worker::display(){
cout\tname\tageendl;
}
void Workers::setnum(int n)
{num=n;}
int Workers::getnum()
{return num;}
void Workers::setsex(char s[SIZE])
{strcpy(sex,s);}
char
文档评论(0)