第一题实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

wks[i].setage(w_age); cout<<endl; } cout<<endl; for(i=0;i<number;i++) wk[i]=wks[i]; cout<<"\t职工信息详表"<<endl; cout<<"编 号"<<"\t姓 名"<< "\t年 龄"<<"\t性 别"<<endl; for(i=0;i<number;i++) printer(wks[i]); cout<<endl; cout<<"\t职工信息简表"<<endl; cout<<"\t姓 名"<<"\t年 龄"<<endl; for(i=0;i<number;i++) printer(wk[i]); }
二、内容要求
1、设计题目 使用继承的方法,编写最多能输入10个职工的信息表,再根据这个 表产生一个职工信息简表,并利用多态性实现信息的输出。 2、设计要求 设计要求实现如下功能: (1).建立职工信息数据,包括职工编号、姓名,性别和年龄。 (2)据职工信息表,建立只含姓名和年龄的职工信息简表。 (3)使用继承的方法构造2个类,使用相应的对象数组放置10个职工 信息。 (4)编写同名display( )成员函数,用来输出数组的内容。 (5)编写函数printer( ),用来根据实际对象输出它们的内容。
{cout<<sex; return(1); } void Workers::display(){ cout<<num<<"\t"<<name<<"\t" <<getage()<<"\t"<<sex<<endl; } //显示职工信息处理函数 void printer(Worker&s) {s.display();} //主函数 void main(){ Workers wks[SIZE]; Worker wk[SIZE]; int number; int w_num; char ch[10]; int w_age; cout<<endl<<endl<<"\t"<<"职工信息表"<<endl<<endl; cout<<"请输入职工信息,以输入编号为0结束!"<<endl; for(int i=0;i<SIZE;i++){ cout<<"编号:"; cin>>w_num; if(0==w_num){ number=i; break; } wks[i].setnum(w_num); cout<<"姓名:"; cin>>ch; wks[i].setname(ch); cout<<"性别:"; cin>>ch; wks[i].setsex(ch); cout<<"年龄:"; cin>>w_age;
姓名 年龄 张三 25 2、多态性 将worker的display()成员函数设计为虚函数,printer()函数使用基 类worker对象的引用作为参数,即可实现多态性。 void printer(worker&s) { s.display(); } 3、设计主函数 要求编写最多输入10个职工的信息表,这里的意思是可以少于10个 职工。使用ch存放读入的字符,当输入0时退出输入,同时将输入个数 作为输出语句的循环次数。例如使用整型变量number存放输入个数,则 可使用如下方法实现: if(0==w_num) { number=i; break; } 使用const定义一个常量SIZE=10,这样可以增加程序的灵活性。
三、设计思想
1、类的结构 这里把简表的内容作为基类worker,由它派生详表类workers。这样, 简表可以由赋值兼容规则得到。例如workers的一个对象wks为: 编 号 姓 名 性 别 年 龄 1001 张三 男 25 则worker的对象wk可以通过以下赋值兼容规则得到: wk=wks; 这时wk的信息为:
第一题实验报告Baidu Nhomakorabea
一 设计题目一 使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简 表,并利用多态性实现信息的输出。 1 基本设计要求 设计要求实现如下功能: 1) 建立职工信息数据,包括职工编号、姓名、性别和年龄。 2) 根据职工信息表,建立只含有姓名和年龄的职工信息简表。 3) 使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。 4) 编写同名display()成员函数,用来输出数组的内容。 5) 另外编制一个函数printer(),用来根据实际对象输出它们的内容。 2 进一步的要求 设计菜单,简单界面为: 1. 增加职工记录 2. 生成信息简表 3. 显示原始记录 4. 显示简表记录 5. 结束程序运行 选择1-5: 3 涉及到的主要知识点: (1)函数的定义;(2)类的定义;(3)类的继承;(4)对象数组(向量数组)等。
++sum; worker[10].write(worker ,sum); goto circle; } case 3: //显示职工简表 { worker[10].displaySim(worker, sum); goto circle; } case 4: // 显示所有职工 { worker[10].displayAll(worker, sum); goto circle; } case 5: { cout<<"\t输入要显示职工的编号\n"; int num; cin>>num; worker[10].priter(worker, sum); goto circle; } case 6: break; default: { cout<<"请输入1-6的数字!"<<endl; goto circle; } } return 0; }
int main() { int sum=0; //计算职工人数 workers worker[10]; circle: cout<<"\t\t职工信息记录\n"; //破碎之圆 cout<<"\t按1后, 增加职工记录\n"; cout<<"\t按2后, 显示职工人数\n"; cout<<"\t按3后, 显示所有职工简表记录\n"; cout<<"\t按4后, 显示所有职工原始记录\n"; cout<<"\t按5后, 显示特定编号的职工\n"; cout<<"\t按6后, 结束程序(数据无法保存)"<<endl<<endl; cout<<"-----------选择任一操作后,按enter-----------"<<endl; cout<<"你要按:"<<endl; int select; cin>>select; switch (select) { case 2: //显示职工人数 { cout<<"\t职工人数为\t:"<<sum<<endl; goto circle; } case 1: //增加职工信息 {
}; 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() { cout<<name; return(1); } void Worker::setage(int a) {age=a;} int Worker::getage() {return age;} void Worker::display(){ cout<<"\t"<<name<<"\t"<<age<<endl; } void Workers::setnum(int n) {num=n;} int Workers::getnum() {return num;} void Workers::setsex(char s[SIZE]) {strcpy(sex,s);} char Workers::getsex()
四、程序代码
#include<iostream> #include<string> 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();
运行结果:
相关文档
最新文档