• 大小: 47KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: C/C++
  • 标签: C++  

资源简介

学校教职工信息表 设计要求: 设计要求实现如下功能: (1)建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。 (2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。 (3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)使用相应的对象放置10个(或以上)职工信息。 (4)编写同名display()成员函数,用来输出数组的内容。 (5)按不同类别输出职工信息,比如按系输出教师信息。 (6)要求对“<<”和“>>”运算符进行重载。考虑到输人职工编号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。 (7)抽取并计算职工的平均年龄。 (8)检索(查找)指定信息。(如按姓名检索、按年龄检索) (9)显示各年龄段分布的情况 (10)参考界面如下:  增加 (一位教师记录 、增加一位工人记录)  计算 (教师平均年龄、计算工人平均年龄)  删除 (一个教师、删除一个工人)  显示 (全部职工记录、按系输出教师信息)  检索 (按姓名检索所有信息 按按职工号检索所有信息)  结束程序运行

资源截图

代码片段和文件信息

#include
#include
#include
#include
#define cutline cout<<“* * * * * * * * * * * * * * * * * * * * * * * * * * * *“<using namespace std;
const int maxsize = 100;
class Time{ 
public: 
     int year; 
     int month; 
     int day;
}; 
class base{
//此类为基类,是所有员工共有的属性。 
public:
char name[20];
Time birth_day;
char sex[10];
int age;
int id;
int paid;
Time work_time;
char xibie[20];
friend istream& operator>>(istream& isbase& b); 
      friend ostream& operator<<(ostream& obase& b); 
     friend int operator-(Time & t1Time & t2);
};
class employee:virtual  public base { 
//雇员类 
public: 
       employee(); 
           virtual void add(base &b); //添加一个成员 
           virtual void display(); //输出数组的内容
           virtual void cal();//计算平均年龄 
           virtual void del(int id);//删除一个成员
   virtual void Find(char name[]);//按姓名检索 
   virtual void Find(int id);//按工号检索 
protected: 
       base data[maxsize]; 
       Time now; 
       int length; 
}; 
employee Allworker;
void employee::add(base &b){
data[length++] = b;
}
void employee::display(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return; 
}
cout<<“* * * * * * * * *全体职工信息* * * * * * * * * *“< for(int i = 0;i < length;i++)
cout << data[i]; 
}
void employee::cal(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return; 
}
int sum = 0;
for(int i = 0;i < length;i++)
sum+=data[i].age;
cout << endl;
cout << “全体职工平均年龄为:“ << sum/length << endl;
}
void employee::del(int id){
bool flag = false;
int i;
for(i = 0;i < length;i++)
if(data[i].id == id){
flag = true;
break;
}
for(;i < length-1;i++) data[i] = data[i+1];
length--;
if(flag) cout << “id为“< else cout<<“未发现id为“<}
void employee::Find(char name[]){
int i;
for( i = 0;i < length;i++)
if(strcmp(data[i].namename) == 0){
cout << data[i];
break;
}
if(i == length) cout<<“未找到姓名为“ << name << “的职工“<
void employee::Find(int id){
int i;
for( i =0;i < length;i++)
if(data[i].id == id){
cout << data[i];
break;
}
if(i == length) cout<<“未找到工号为“ << id << “的职工“<}
employee::employee(){ 
    length=0; 
    now.year=2018; 
    now.month=6; 
    now.day=5; 
}
class teacher:virtual employee{
public:
void add();
void display();
void cal();
void del(int id);
}; 
void teacher::add(){
cin >> data[length];
Allworker.add(data[length]);
length++;
}
void teacher::display(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return; 
}
cout<<“* * * * * * * * *教师信息* * * * * * * * * *“< for(int i = 0;i < length;i++)
cout << data[i]; 
}
void teacher::cal(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return; 
}
int sum = 0;
for(int i = 0;i < length;i++)
sum+=data[i].age;
co

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7293  2018-06-05 19:12  教职工信息管理系统\教职工信息管理系统.cpp
     文件      130005  2018-06-05 19:14  教职工信息管理系统\教职工信息管理系统.exe
     文件          60  2018-06-05 19:17  教职工信息管理系统\新建文本文档.txt
     目录           0  2018-06-05 19:16  教职工信息管理系统\

评论

共有 条评论