C++第一大题程序报告

  • 格式:doc
  • 大小:39.50 KB
  • 文档页数:4

#include<iostream>
#include<string>
#define MAX 10
using namespace std;
class worker //信息表基类
{
public:
string num;
string name;
char sex; //性别用F(女)和M(男)表示
int age;
virtual void display(){}
};
class Dispwk:public worker //简表类声明
{
public:
virtual void display();
};
class Dispwks:public worker //信息表声明
{
public:
virtual void display();
};
int nemu_select(); //菜单选择函数
void addin(Dispwks a[],int&n); //增加职工记录
float brevity(Dispwks det[],Dispwk sin[],int&n); //生成信息简表float printer(worker*pt,int&n); //显示原始信息简表
/*主函数和菜单实现函数*/
int main()
{
cout<<"\t\t\t-----------------------------------"<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t 欢迎使用"<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t 职工信息表系统"<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t-----------------------------------"<<endl;
Dispwk wk[MAX]; //定义简表数组
Dispwks wks[MAX]; //定义信息表数组
int lastnum=0,t=1;
bool exit=false;
do
{
switch(nemu_select())
{
case 1: //1.增加职工记录
addin(wks,lastnum);
cout<<"增加职工信息成功!"<<endl;
break;
case 2: //2.生成信息简表
brevity(wks,wk,lastnum);
cout<<"生成信息简表成功!"<<endl;
break;
case 3: //3.显示原始记录
printer(wks,lastnum);
cout<<"返回主菜单!"<<endl;
break;
case 4: //4.显示简表记录
printer(wk,lastnum);
cout<<"返回主菜单!"<<endl;
break;
case 5: //5.结束程序运行
exit=true;
break;
}
}
while(exit==false);
cout<<"\t欢迎下次继续使用,再见!\n"<<endl;
return 0;
}
int nemu_select() //菜单选择函数
{
int cn=5;
do
{
cout<<"\t\t\t***********************************\n";
cout<<"\t\t\t 1.增加职工信息\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t 2.生成信息简表\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t 3.显示原始记录\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t 4.显示简表记录\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t 5.结束程序运行\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t***********************************\n";
cout<<"\t选择1-5:";
cin>>cn;
}
while(cn<1||cn>5);
return cn;
}
void Dispwk::display()
{
//输出屏幕数据
cout<<"姓名"<<name<<endl;
cout<<"年龄"<<age<<endl;
}
void Dispwks::display()
{
//输出屏幕数据
cout<<"编号"<<num<<endl;
cout<<"姓名"<<name<<endl;
cout<<"性别"<<sex<<endl;
cout<<"年龄"<<age<<endl;
}
//1.增加职工记录
void addin(Dispwks a[],int&n)
{
cout<<"您选择的是:1.增加职工记录"<<endl;
cout<<"注意:当编号为零时,进入主界面:"<<endl;
for(n=0;n<10;n++)
{
//判断编号是否重复
cout<<"输入编号";
cin>>a[n].num;
if(a[n].num=="0")
break; //结束输入
for(int k=0;k<n;k++)
{
if(a[n].num==a[k].num)
cout<<"输入编号重复!"<<endl;
}
//判断姓名是否重复
cout<<"输入姓名:";
cin>>a[n].name;
for(k=0;k<n;k++)
{
if(a[n].name==a[k].name)
cout<<"输入姓名重复!"<<endl;
}
cout<<"请输入性别(f为女,m为男):";
cin>>a[n].sex;
if(a[n].sex!='f'&&a[n].sex!='m')
{
cout<<"输入性别错误";
cout<<"请输入性别(f为女,m为男):";
cin>>a[n].sex;
}
cout<<"请输入年龄:";
cin>>a[n].age;
}
}
//2.生成信息简表
float brevity(Dispwks det[],Dispwk sim[],int&n)
{
if(n<10)
{
for(int i=0;i<=n;n++)
{
sim[i].name=det[i].name;
sim[i].age=det[i].age;
}
return 1;
}
else return 0;
}
//信息输出函数
float printer(worker*pt,int&n)
{
for(int i=0;i<n;i++)
{
cout<<"**************************"<<endl;
(pt+i)->display();
}
cout<<"**************************"<<endl;
return 0;
}。