資源簡介
學校教職工信息表
設計要求:
設計要求實現如下功能:
(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?< cout?<“無任何職工信息“?< return;?
}
cout<<“*?*?*?*?*?*?*?*?*全體職工信息*?*?*?*?*?*?*?*?*?*“< for(int?i?=?0;i? cout?<}
void?employee::cal(){
if(length?==?0){
cout?< cout?<“無任何職工信息“?< return;?
}
int?sum?=?0;
for(int?i?=?0;i? sum+=data[i].age;
cout?< cout?<“全體職工平均年齡為:“?<}
void?employee::del(int?id){
bool?flag?=?false;
int?i;
for(i?=?0;i? if(data[i].id?==?id){
flag?=?true;
break;
}
for(;i? length--;
if(flag) cout?<“id為“< else?cout<<“未發現id為“< }
void?employee::Find(char?name[]){
int?i;
for(?i?=?0;i? if(strcmp(data[i].namename)?==?0){
cout?< break;
}
if(i?==?length) cout<<“未找到姓名為“?<}?
void?employee::Find(int?id){
int?i;
for(?i?=0;i? if(data[i].id?==?id){
cout?< break;
}
if(i?==?length) cout<<“未找到工號為“?<}
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?< cout?<“無任何職工信息“?< return;?
}
cout<<“*?*?*?*?*?*?*?*?*教師信息*?*?*?*?*?*?*?*?*?*“< for(int?i?=?0;i? cout?<}
void?teacher::cal(){
if(length?==?0){
cout?< cout?<“無任何職工信息“?< return;?
}
int?sum?=?0;
for(int?i?=?0;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??教職工信息管理系統\
- 上一篇:電子琴.zip
- 下一篇:TCP/IP聊天室群聊MFC版
評論
共有 條評論