视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
第一题实验报告
2025-09-25 14:18:55 责编:小OO
文档
第一题实验报告

一  设计题目一

 使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。

1  基本设计要求

 设计要求实现如下功能:

1)建立职工信息数据,包括职工编号、姓名、性别和年龄。

2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。

3)使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。

4)编写同名display()成员函数,用来输出数组的内容。

5)另外编制一个函数printer(),用来根据实际对象输出它们的内容。

2  进一步的要求

设计菜单,简单界面为:

1.增加职工记录

2.生成信息简表

3.显示原始记录

4.显示简表记录

5.结束程序运行

选择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(worker&s)

{

   s.display();

}

   3、设计主函数

   要求编写最多输入10个职工的信息表,这里的意思是可以少于10个职工。使用ch存放读入的字符,当输入0时退出输入,同时将输入个数作为输出语句的循环次数。例如使用整型变量number存放输入个数,则可使用如下方法实现:

   if(0==w_num)

{

number=i;

break;

}

   使用const定义一个常量SIZE=10,这样可以增加程序的灵活性。

四、程序代码

#include

#include

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()

{ cout<  return(1);

}

void Worker::setage(int a)

{age=a;}

int Worker::getage()

{return age;}

void Worker::display(){

cout<<"\"<}

void Workers::setnum(int n)

{num=n;}

int Workers::getnum()

{return num;}

void Workers::setsex(char s[SIZE])

{strcpy(sex,s);}

char Workers::getsex()

{cout< return(1);

}

void Workers::display(){

cout< <}

//显示职工信息处理函数

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< cout<<"请输入职工信息,以输入编号为0结束!"< for(int i=0;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;

        wks[i].setage(w_age);

     cout<    }

cout< for(i=0;i        wk[i]=wks[i];

cout<<"\职工信息详表"< cout<<"编 号"<<"\姓 名"<<

        "\年 龄"<<"\性 别"< for(i=0;i        printer(wks[i]);

cout< cout<<"\职工信息简表"< cout<<"\姓 名"<<"\年 龄"< for(i=0;i        printer(wk[i]);

}

int main()

{

 计算职工人数

 职工信息记录\\n"; //破碎之圆

 按1后, 增加职工记录\\n";

 按2后, 显示职工人数\\n";

 按3后, 显示所有职工简表记录\\n";

 按4后, 显示所有职工原始记录\\n";

 按5后, 显示特定编号的职工\\n";

 按6后, 结束程序(数据无法保存)"< 选择任一操作后,按enter-----------"< 你要按:"< 显示职工人数

  

   职工人数为\:"<  

 

 增加职工信息

 

 

 

 

 

 显示职工简表

 

 

 

 

 显示所有职工

 

  

 

 

 

  输入要显示职工的编号\\n";

 

 

 

 

 

  

  

   请输入1-6的数字!"<  

 

 

return 0;

}

运行结果:下载本文

显示全文
专题