資源簡介
設計一個虛基類Staff(員工),包含編號、姓名和年齡保護數據成員以及相關的成員函數;由Staff派生出工程師類Engineer,包含專業和職稱保護數據成員以及相關的成員函數;再由Staff派生出領導類Leader,包含職務和部門保護數據成員以及相關的成員函數;然后由Engineer和Leader派生出主任工程師類Chairman。
設計一個利用文件處理方式實現對公司人員(包括工程師、領導和主任工程師)進行管理,具有增加數據、更新數據、查詢數據、刪除數據以及重組文件的功能

代碼片段和文件信息
#include“iostream“
#include“fstream“
using?namespace?std;
class?Staff??????
{
protected:
char?num[10];
char?name[10];
int?age;
public:
Staff?*?Next;
void?set_staff()
{
cout<<“請輸入編號:“;cin>>num;
cout<<“請輸入姓名:“;cin>>name;
cout<<“請輸入年齡:“;cin>>age;
}
void?InputFromFile(istream?&in)
{
in>>num>>name>>age;
}
void?show()
{
cout<<“編號:“< cout<<“姓名:“< cout<<“年齡:“< }
char?*get_num()
{
return?num;
}
char?*get_name()
{
return?name;
}
int?get_age()
{
return?age;
}
};
class?Engineer:virtual?public?Staff
{
protected:
char?major[10];
char?t_title[10];
public:
Engineer?*?Next;
void?set_engineer()
{
cout<<“請輸入編號:“;cin>>num;
cout<<“請輸入姓名:“;cin>>name;
cout<<“請輸入年齡:“;cin>>age;
cout<<“請輸入專業:“;cin>>major;
cout<<“請輸入職稱:“;cin>>t_title;
}
void?InputFromFile(istream?&in)
{
in>>num>>name>>age>>major>>t_title;
}
void?show_engineer()
{
cout<<“編號:“< cout<<“姓名:“< cout<<“年齡:“< cout<<“專業:“< cout<<“職稱:“<tle< }
char?*get_major()
{
return?major;
}
char?*get_t_title()
{
return?t_title;
}
};
class?Leader:virtual?public?Staff
{
protected:
char?job[10];
char?dept[10];
public:
Leader?*?Next;
void?set_leader()
{
cout<<“請輸入編號:“;cin>>num;
cout<<“請輸入姓名:“;cin>>name;
cout<<“請輸入年齡:“;cin>>age;
cout<<“請輸入職務:“;cin>>job;
cout<<“請輸入部門:“;cin>>dept;
}
void?InputFromFile(istream?&in)
{
in>>num>>name>>age>>job>>dept;
}
void?show_leader()
{
cout<<“編號:“< cout<<“姓名:“< cout<<“年齡:“< cout<<“職務:“< cout<<“部門:“< }
char?*get_job()
{
return?job;
}
char?*get_dept()
{
return?dept;
}
};
class?Chairman:public?Engineerpublic?Leader
{
public:
Chairman?*?Next;
void?set_chairman()
{
cout<<“請輸入編號:“;cin>>num;
cout<<“請輸入姓名:“;cin>>name;
cout<<“請輸入年齡:“;cin>>age;
cout<<“請輸入專業:“;cin>>major;
cout<<“請輸入職稱:“;cin>>t_title;
cout<<“請輸入職務:“;cin>>job;
cout<<“請輸入部門:“;cin>>dept;
}
void?InputFromFile(istream?&in)
{
in>>num>>name>>age>>major>>t_title>>job>>dept;
}
void?show_chairman()
{
cout<<“編號:“< cout<<“姓名:“< cout<<“年齡:“< cout<<“專業:“< cout<<“職稱:“<tle< cout<<“職務:“< cout<<“部門:“< }
};
class?StaffChart
{
public:
StaffChart();
~StaffChart();
void?find();???????????????????//輸出單個條目
void?save();???????????????????//將信息輸出到文件
void?modifyItem();?????????????//修改Staff條目
void?removeItem();?????????????//刪除Staff條目
void?display()?????????????????//輸出全部條目
{
Staff?*p=Head->Next;
for(p;p!=End;p=p->Next)
{
p->show();
cout< }
}
void?addItem()?????????????????//添加條目
{
End->set_staff();
End->Next=new?Staff;
End=End->Next;
save();
}
private:
Staff?*?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14805??2013-01-05?19:15??C++大作業\lyp.cpp
?????文件?????499718??2013-01-05?19:15??C++大作業\lyp.exe
?????文件?????122368??2013-01-05?19:32??C++大作業\lyp員工管理系統.doc
?????目錄??????????0??2013-01-05?19:33??C++大作業
-----------?---------??----------?-----??----
???????????????636891????????????????????4
- 上一篇:DAA算法 VC++實現 畫線
- 下一篇:超牛B的漢字識別
評論
共有 條評論