职工管理系统Word文档格式.docx
《职工管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《职工管理系统Word文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
ShowInfo();
员工信息变更:
RefreshInfo();
发放工资:
Pay(intEG);
//EG为员工级别
解聘员工:
DeleteInfo();
保存员工信息:
WriteIn(intiflag);
读取员工信息:
ReadOut();
更新员工总人数:
RefreshMaxNum(intiflag);
注释:
当iflag为1时,人数增大;
为零时,人数不变,即是修改;
为-1时,人数减少。
3.4具体代码如下:
longEmployee:
:
EmployeeMaxNum=1000;
floatEmployee:
EmployeeBasePay=1500;
intEmployee:
MaxNum()
{
intMN=0;
ifstreammyf("
c:
\\EmployeeMaxNum.txt”);
myf〉〉MN;
myf。
close();
returnMN;
}
voidEmployee:
:
NewInfo()
chartmpName[50];
cout<
<
”newEmployeeName〉"
;
//输入员工名字
cin〉>
tmpName;
Employee:
EmployeeName=newchar[strlen(tmpName)+1];
strcpy(Employee:
EmployeeName,tmpName);
//////////////////////////////////////////
Employee:
EmployeeNum=EmployeeMaxNum+Employee:
MaxNum()+1;
//自动分配员工编号,为基础标号+员工人数
chartmpDepart[50];
"
newEmployeeDepartment>
”;
//输入员工部门名称
cin>
>
tmpDepart;
EmployeeDepart=newchar[strlen(tmpDepart)+1];
strcpy(Employee:
EmployeeDepart,tmpDepart);
cout〈〈”newEmployeeGrade(1:
zhiyuan2:
zhuren3:
jingli4:
dongshizhang)>
”;
//输入员工等级,1为职员,2为主任,3为经理,4为董事长
Employee:
EmployeeGrade;
while(Employee:
EmployeeGrade!
=1&&
=2&
&
EmployeeGrade!
=3&
&
=4)
YourInputError!
InputAgainbecareful:
)”<
〈endl;
cout〈〈"
newEmployeeGrade(1:
zhiyuan2:
jingli4:
;
〉Employee:
”newEmployeeWorkTime>
//输入员工合同期
Employee:
EmployeeWorkTime;
EmployeePay=Employee:
Pay(Employee:
EmployeeGrade);
DBOperatedbo;
dbo。
ReadOut();
//将原来的数据文件中的数据读出,并加入新的数据
intMaxNum=Employee:
MaxNum();
EN[MaxNum]=Employee:
EmployeeName;
ENum[MaxNum]=Employee:
EmployeeNum;
ED[MaxNum]=Employee:
EmployeeDepart;
EG[MaxNum]=Employee:
EWT[MaxNum]=Employee:
EmployeeWorkTime;
EP[MaxNum]=Employee:
EmployeePay;
dbo.WriteIn
(1);
//将新的信息全部写入数据文件
return;
ShowInfo()
for(inti=0;
i〈Employee:
MaxNum();
i++)
{//顺序输出所有员工的信息,Employee:
MaxNum()为员工人数
〈”TheEmployee'
sInformation:
”〈〈endl;
cout〈〈”**********************************"
〈"
*EmployeeName>
”〈〈EN[i]〈<
endl;
*EmployeeNum>
〈〈ENum[i]〈〈endl;
”*EmployeeDepart〉”〈〈ED[i]〈<
endl;
cout〈〈”*EmployeeGrade>
〈〈EG[i]<
〈endl;
cout〈<
*EmployeeWorkTime〉"
EWT[i]〈<
*EmployeePay〉"
〈EP[i]<
**********************************"
〈<
}
RefreshInfo()
{
intcNum=1000;
//基础编号
DBOperatedbo;
//先将所有员工信息输出
PleaseinputtheEmployee’sNum>
cin〉〉cNum;
intMN;
MN=Employee:
i<
MN;
if(ENum[i]==cNum)//通过编号找到指定要更新的员工
{//依次更新员工信息
***********************************"
〈”Yourchoice'
stheEmployee"
cout〈〈”**********************************"
*EmployeeName〉"
〈〈EN[i]<
cout〈〈”*EmployeeNum〉”<
ENum[i]〈〈endl;
*EmployeeDepart〉”〈〈ED[i]〈〈endl;
”*EmployeeGrade〉"
〈〈EG[i]〈<
EWT[i]<
EP[i]〈〈endl;
**********************************”<
InputyourRefresh:
chartmpName[50];
cin〉〉tmpName;
EmployeeName=newchar[strlen(tmpName)+1];
EmployeeName,tmpName);
EN[i]=Employee:
EmployeeName;
chartmpDepart[50];
newEmployeeDepartment〉”;
tmpDepart;
EmployeeDepart=newchar[strlen(tmpDepart)+1];
EmployeeDepart,tmpDepart);
ED[i]=Employee:
zhuren3:
dongshizhang)〉”;
=1&
YourInputError!
)"
”newEmployeeGrade(1:
〉Employee:
EmployeeGrade;
EG[i]=Employee:
〈”newEmployeeWorkTime>
EmployeePay=Employee:
Pay(EG[i]);
EP[i]=Employee:
EmployeePay;
break;
dbo.WriteIn(0);
//将更新信息写入数据文件
DeleteInfo()
dbo.ReadOut();
ShowInfo();
cout〈〈”PleaseinputtheEmployee’sNum>
MN=Employee:
for(inti=0;
i〈MN;
if(ENum[i]==cNum)
***********************************"
Yourchoice'
stheEmployee”〈<
cout〈〈”**********************************”〈〈endl;
cout〈〈”*EmployeeName>
”<
EN[i]<
*EmployeeNum〉”〈<
ENum[i]<
*EmployeeDepart>
ED[i]<
”*EmployeeGrade>
〈〈EG[i]<
*EmployeeWorkTime〉”<
EWT[i]〈<
〈EP[i]〈<
〈”**********************************”<
”DeletetheEmployee'
sInformation(Y/N)>
charc;
〉c;
if(i==MN-1)//如果指定要删除的员工信息在文件末尾,那么只要将员工人数减1就行
dbo.WriteIn(—1);
//重新将信息写入数据文件
else
for(intj=i;
j<
MN-1;
j++)
EN[j]=EN[j+1];
dbo.WriteIn(-1);
DeleteSuccess!
"
floatEmployee:
Pay(intEG)
floattmpPay;
tmpPay=Employee:
EmployeeBasePay+EG*Employee:
EmployeeBasePay;
returntmpPay;
voidDBOperate:
WriteIn(intiflag)
DBOperate:
RefreshMaxNum(iflag);
ofstreammyf("
\\Employee.txt"
);
//打开C盘下的数据文件
Employeee;
MN=e.MaxNum();
myf〈〈EN[i]<
'
\n’〈〈ENum[i]<
\n’〈〈ED[i]<
〈'
\n’〈<
EG[i]<
\n’〈〈EWT[i]<
\n’〈〈EP[i]〈<
’\n'
//依次写入
close();
ReadOut()
ifstreammyf(”c:
\\Employee.txt”);
//打开C盘下的数据文件
chartmpName[50];
chartmpDepart[50];
for(inti=0;
myf>
〉tmpName>
〉DBOperate:
EmployeeNum>
tmpDepart〉>
DBOperate:
EmployeeGrade>
〉DBOperate:
EmployeeWorkTime〉〉DBOperate:
//依次读出
EmployeeName=newchar[strlen(tmpName)+1];
EmployeeDepart=newchar[strlen(tmpDepart)+1];
strcpy(DBOperate:
strcpy(DBOperate:
EN[i]=DBOperate:
ENum[i]=DBOperate:
EmployeeNum;
ED[i]=DBOperate:
EG[i]=DBOperate:
EWT[i]=DBOperate:
EP[i]=DBOperate:
RefreshMaxNum(intiflag)
intMaxNum=0;
ifstreammyif(”c:
\\EmployeeMaxNum.txt"
);
myif>
MaxNum;
〈MaxNum〈<
myif。
MaxNum=MaxNum+iflag;
//将员工人数做相应变动
ofstreammyof(”c:
\\EmployeeMaxNum。
txt”);
myof〈〈MaxNum;
myof.close();
四系统运行入口的设计
提供一个操作界面入图:
注意:
系统中有全局变量用于存储从数据文件中读出的员工信息
char*EN[50];
longENum[50];
char*ED[50];
intEG[50];
longEWT[50];
floatEP[50];
该系统的操作就是围绕这些全局变量展开。
代码如下:
voidmain()
{
intc2=0;
while(c2!
=5)
{
EmployeeInformationManageSystem”〈<
”******************************************”〈〈endl;
”*EmployeeList—-—-----—--1"
*AddNewEmployeeInformation--—-——--———2”<
”*RefreshEmployeeInformation——--——-————3"
〈〈endl;
*DeleteEmployeeInformation-——-—-—-——-4"
”******************************************"
”*ExitEIMS——-—————-——-5"
******************************************"
Inputyourchoiceonhere>
c2;
Employeee;
switch(c2)
case1:
dbo.ReadOut();
e。
break;
case2:
NewInfo();
case3:
e.RefreshInfo();
case4:
DeleteInfo();
case5:
default:
Error!
YourChoicedoesn'
tExit”<
if(c2==5)
}
五运行步骤
运行主界面:
【步骤1】:
选择1,系统将已有的员工信息依次显示在屏幕上.
【步骤2】:
选择2,系统将添加新的员工信息。
【步骤3】:
选择3,系统将更新指定的员工信息。
【步骤4】:
选择4,系统将删除指定的员工信息。
【步骤5】:
选择5,退出系统。
六数据文件
Employee.txt存储员工的基本信息
EmployeeMaxNum.txt存储员工的人数
数据文件都存放在C盘根目录下。
该系统对数据文件的操作在系统运行过程中非常重要,是使整个系统正常运行的关键.
七参考文献
【1】《C语言程序设计》谭浩强编著清华大学出版社
【2】《C++程序设计教程》钱能主编清华大学出版社
八附录
完整代码:
#include<
iostream>
#include〈string>
#include〈fstream>
usingnamespacestd;
char*EN[50];
longENum[50];
char*ED[50];
intEG[50];
longEWT[50];
floatEP[50];
classEmployee
public:
char*EmployeeName;
longEmployeeNum;
char*EmployeeDepart;
intEmployeeGrade;
longEmployeeWorkTime;
floatEmployeePay;
staticlongEmployeeMaxNum;
staticfloatEmployeeBasePay;
voidNewInfo();
voidShowInfo();
voidRefreshInfo();
voidDeleteInfo();
floatPay