-
大小: 11KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-06-04
- 語言: C/C++
- 標(biāo)簽:
資源簡介
職工工資管理
基本要求:
定義職工(employee )類,其中至少包括姓名、性別、工號、電話、所在科室和工資。
功能要求:
1、設(shè)計菜單實現(xiàn)功能選擇;
2、輸入功能:輸入職工信息,并保存到文件中;
3、查詢功能:
1)能夠根據(jù)工號精確查詢職工信息;
2)能夠根據(jù)姓名、科室查詢職工信息
3)分科室進(jìn)行工資統(tǒng)計,計算各科室的平均工資
4、根據(jù)職工的工資排序輸出
5、根據(jù)工號修改職工信息
6、根據(jù)工號刪除職工信息
代碼片段和文件信息
/*定義職工(employee?)類,其中至少包括姓名、性別、工號、電話、所在科室和工資。*/
#include
#include
#include
#include
using?namespace?std;
class?employee
{
private:
int?m_Id;????//職工號
float?m_salary;????//工資
char?m_name[20];????//職工姓名
char?m_tel[14];?????//電話
char?m_office[20];????//科室
char?m_sex[5];?????//性別
public:
employee()?{}
employee&?operator?=(employee?&re)
{
strcpy(m_name?re.m_name);
strcpy(m_tel?re.m_tel);
strcpy(m_office?re.m_office);
strcpy(m_sex?re.m_sex);
m_Id?=?re.m_Id;
m_salary?=?re.m_salary;
return?*this;
}
char?*get_name()
{
return?m_name;
}
char?*get_office()
{
return?m_office;
}
float?get_salary()
{
return?m_salary;
}
int?get_ID()
{
return?m_Id;
}
friend?ostream&?operator?<<(ostream?&os?const?employee?&re)
{
os?< return?os;
}
friend?istream&?operator?>>(istream?&is?employee?&re)
{
is?>>?re.m_name?>>?re.m_sex?>>?re.m_Id?>>?re.m_tel?>>?re.m_office?>>?re.m_salary;
return?is;
}
~employee()?{}
};
/*?2、輸入功能:輸入職工信息,并保存到文件中;*/
void?AddEmployee()
{
fstream?fs;
fs.open(“employeeinfo.dat“?ios::out?|?ios::app?|?ios::binary);
if?(!fs)
cout?<“Failed.“?< else?{
int?len;
cout?<“請輸入添加的職工數(shù):“;
cin?>>?len;
if?(len?>?0)
{
employee?*emp?=?new?employee[len];
cout?<“請輸入職工的姓名、性別、工號、電話、所在科室和工資“?< for?(int?i?=?0;?i? {
cin?>>?emp[i];
fs.write((char*)&emp[i]?sizeof(emp[i]));
}
delete[]emp;
}
}
fs.close();
fs.clear();
}
/*?3、查詢功能:1)能夠根據(jù)工號精確查詢職工信息;*/
void?ReseachByID()
{
fstream?fs;
fs.open(“employeeinfo.dat“?ios::in?|?ios::binary);
if?(!fs)
cout?<“Failed.“?< else
{
int?id?i;
cout?<“請輸入你要查詢的人的工號:“;
cin?>>?id;
fs.seekg(0?ios::end);?????//文件指針調(diào)到文件末尾
int?s?=?fs.tellg();????????//計算文件大小
int?n?=?s?/?sizeof(employee);????//計算文件中職工人數(shù)
fs.seekg(ios::beg);????//文件指針調(diào)到文件開頭
employee?*e?=?new?employee[n];
employee?temp;
for?(i?=?0;?i? fs.read((char?*)&e[i]?sizeof(e[i]));
int?j?=?-1;
for?(i?=?0;?i? if?(id?==?e[i].get_ID())
j?=?i;
if?(j?==?-1)
cout?<“無此職工號!“?< else
{
cout?<“姓名???????|????性別???|????????工號????????|?????電話???????????|?????科室?????|???????工資?????“?< cout?<“-----------|-----------|--------------------|--------------------|--------------|-------------“?< cout?< }
delete[]?e;
}
fs.close();
fs.clear();
}
/*3、查詢功能:2)能夠根據(jù)姓名、科室查詢職工信息*/
void?ReseachByNameAOffice()
{
fstream?fs;
fs.open(“employeeinfo.dat“?ios::in?|?ios::binary);
if?(!fs)
cout?<“Failed.“?< else
{
char?name[20];
char?office[20];
cout?<“請輸入你要查詢的人的姓名:“;
cin?>>?name;
cout?<“請輸入你要查詢的人的科室:“;
cin?>>?office;
fs.seekg(0?i
評論
共有 條評論