用C语言设计职工信息管理系统

2025-04-06 22:54:13
推荐回答(1个)
回答1:

#include
#include
#include
usingnamespacestd;

constn=50;//定义系统可录入的员工最大数值

stringename[n];
longenum[n];
charesex[n];
inteage[n];
charemarriage[n];
intedepart[n];
inteposition[n];
intedegree[50];
inteworktime[n];
floatepay[n];

classemployee
{
public:
stringemployeename;
longemployeenum;
charemployeesex;
intemployeeage;
charemployeemarriage;
intemployeedepart;
intemployeeposition;
intemployeedegree;
intemployeeworktime;
floatemployeepay;

staticlongemployeemaxnum;
staticfloatemployeebasepay;

voidnewinfo();
voidshowinfo();
voidshowall();
voidshowdepart(intdepart);
voidshowdegree(intdegree);
voidshowage(intmin,intmax);
voidshownum(longnumber);
voidrefreshinfo();
voiddeleteinfo();
floatpay(intemployeegrade);
staticintmaxnum();
};

classdboperate
{
public:
stringemployeename;
longemployeenum;
charemployeesex;
intemployeeage;
charemployeemarriage;
intemployeedepart;
intemployeeposition;
intemployeedegree;
intemployeeworktime;
floatemployeepay;

staticlongemployeemaxnum;
staticfloatemployeebasepay;

voidwritein(intiflag);
voidreadout();
voidrefreshmaxnum(intiflag);//i=1or-1or0
};

longemployee::employeemaxnum=1000;
floatemployee::employeebasepay=1500;

intemployee::maxnum()//返回系统已经存储的人数
{
intmn=0;
ifstreammyf;
myf.open("employeemaxnum.txt");
myf>>mn;
cout<myf.close();
returnmn;
}

voidemployee::newinfo()//添加新成员函数
{
cout<<"新员工姓名:";
cin>>employee::employeename;

employee::employeenum=employeemaxnum+employee::maxnum()+1;

cout<<"新员工性别(f为女性,m为男性):";
cin>>employee::employeesex;

cout<<"新员工年龄:";
cin>>employee::employeeage;

cout<<"新员工婚姻状况(y为已婚,n为未婚):";
cin>>employee::employeemarriage;

cout<<"新员工学历,请输入相应学历的序号:"<cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
while(employee::employeedegree!=1&&employee::employeedegree!=2&&employee::employeedegree!=3&&employee::employeedegree!=4&&employee::employeedegree!=5)
{
cout<<"输入有误,请重新输入:"<cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
}

cout<<"新员工所在部门,请输入相应部门的序号:"<cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
while(employee::employeedepart!=1&&employee::employeedepart!=2&&employee::employeedepart!=3&&employee::employeedepart!=4&&employee::employeedepart!=5)
{
cout<<"输入有误,请重新输入:"<cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
}

cout<<"新员工职位,请输入相应职位的序号:"<cout<<"[1:临时职员2:正式职员3:主任4:部门经理5:董事长]";
cin>>employee::employeeposition;
while(employee::employeeposition!=1&&employee::employeeposition!=2&&employee::employeeposition!=3&&employee::employeeposition!=4&&employee::employeeposition!=5)
{
cout<<"输入有误,请重新输入:"<cout<<"[1:临时职员2:正式职员3:主任4:部门经理5:董事长]";
cin>>employee::employeeposition;
}

cout<<"新员工的工作时(不需要输入单位):";
cin>>employee::employeeworktime;

employee::employeepay=employee::pay(employee::employeeposition);

dboperatedbo;
dbo.readout();

intmaxnum=employee::maxnum();

enum[maxnum]=employee::employeenum;
ename[maxnum]=employee::employeename;
esex[maxnum]=employee::employeesex;
eage[maxnum]=employee::employeeage;
emarriage[maxnum]=employee::employeemarriage;
edegree[maxnum]=employee::employeedegree;
edepart[maxnum]=employee::employeedepart;
eposition[maxnum]=employee::employeeposition;
eworktime[maxnum]=employee::employeeworktime;
epay[maxnum]=employee::employeepay;

dbo.writein(1);
cout<<"添加新成员成功!"<
return;
}

voidemployee::showinfo()//程序主体数据输出函数
{

intchoice1,choice2,min,max;
longsearchnum;
employeee;

cout<<"请选择查询方式:"<cout<<"******************************************"<cout<<"*输出全体职工信息---------------------1"<cout<<"*按职工部门输出-----------------------2"<cout<<"*按职工学历输出-----------------------3"<cout<<"*按职工年龄输出-----------------------4"<cout<<"*按职工编号输出-----------------------5"<cout<<"******************************************"<cin>>choice1;

switch(choice1)
{
case1:showall();break;
case2:cout<<"请输入要查询职工的部门编号:[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>choice2;
e.showdepart(choice2);break;
case3:cout<<"请输入要查询职工的学历编号:[1:初中2:高中3:本科4:硕士5:博士]";
cin>>choice2;
e.showdegree(choice2);break;
case4:cout<<"请输入要查询的年龄范围:";
cout<<"最小值:";
cin>>min;
cout<<"最大值:";
cin>>max;
e.showage(min,max);break;
case5:cout<<"请输入要查询的员工号:";
cin>>searchnum;
e.shownum(searchnum);break;

default:cout<<"出错啦!"<
}

}

voidemployee::showall()//全体员工输出函数
{inti;
longnumber;
for(i=0;i{
number=enum[i];
shownum(number);
}
}

voidemployee::showdepart(intdepart)//按员工所在部门输出函数
{
inti;
switch(depart)
{
case1:cout<<"董事会的成员有:>"<case2:cout<<"市场部的成员有:>"<case3:cout<<"公关部的成员有:>"<case4:cout<<"客服中心成员有:>"<case5:cout<<"信息中心成员有:>"<default:cout<<"输入错误!>"<}
for(i=0;i{
if(edepart[i]==depart)
{
longnumber=enum[i];
shownum(number);
}elsecontinue;

}
}

voidemployee::showdegree(intdegree)//按员工学历输出函数
{
inti;
switch(degree)
{
case1:cout<<"初中学历的员工有:"<case2:cout<<"高中学历的员工有:"<case3:cout<<"本科学历的员工有:"<case4:cout<<"硕士学位的员工有:"<case5:cout<<"博士学位的员工有:"<}
for(i=0;i{
if(edegree[i]==degree)
{
longnumber=enum[i];
shownum(number);
}elsecontinue;

}
}

voidemployee::showage(intmin,intmax)//按员工年龄段输出函数
{
inti;
for(i=0;i{
if(eage[i]>=min&&eage[i]<=max)
{
longnumber=enum[i];
shownum(number);
}
elsecontinue;
}
}

voidemployee::shownum(longnumber)//按员工编号输出函数
{
inti;
for(i=0;i{
if(enum[i]==number)
{
cout<<"**********************************"<cout<<"员工编号>"<cout<<"姓名>"<cout<<"性别>";
if(esex[i]=='f')cout<<"女"<elseif(esex[i]=='m')cout<<"男"<cout<<"年龄>"<cout<<"婚姻情况>";
if(emarriage[i]=='y')cout<<"已婚"<elseif(emarriage[i]=='n')cout<<"未婚"<cout<<"学历>";
switch(edegree[i])
{
case1:cout<<"初中"<case2:cout<<"高中"<case3:cout<<"本科"<case4:cout<<"硕士"<case5:cout<<"博士"<}

cout<<"所在部门>";
switch(edepart[i])
{
case1:cout<<"董事会"<case2:cout<<"市场部"<case3:cout<<"公关部"<case4:cout<<"客服中心"<case5:cout<<"信息中心"<}

cout<<"所任职务>";
switch(eposition[i])
{
case1:cout<<"临时成员"<case2:cout<<"正式员工"<case3:cout<<"主任"<case4:cout<<"部门经理"<case5:cout<<"董事长"<}

cout<<"工作时长>"<cout<<"额定工资>"<cout<<"**********************************"<}
elsecontinue;
}
}

voidemployee::refreshinfo()//修改员工信息的函数
{
intcnum=1000;
dboperatedbo;
dbo.readout();
voidemployee::shownum(longnumber);

cout<<"请输入您要修改的员工编号:>";
cin>>cnum;
intmn;
mn=employee::maxnum();

for(inti=0;i{
if(enum[i]==cnum)
{
employee::shownum(cnum);

cout<<"请输入该员工的新信息:"<
cout<<"新员工姓名:";//录入员工的新的数据,员工号保持不变
cin>>employee::employeename;
ename[i]=employee::employeename;

cout<<"新员工性别:[f为女性,m为男性]:";
cin>>employee::employeesex;
esex[i]=employee::employeesex;

cout<<"新员工年龄:";
cin>>employee::employeeage;
eage[i]=employee::employeeage;

cout<<"新员工婚姻状况(y为已婚,n为未婚):";
cin>>employee::employeemarriage;
emarriage[i]=employee::employeemarriage;

cout<<"新员工学历,请输入相应学历的序号:"<cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
while(employee::employeedegree!=1&&employee::employeedegree!=2&&employee::employeedegree!=3&&employee::employeedegree!=4&&employee::employeedegree!=5)
{
cout<<"输入有误,请重新输入:"<cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
}
edegree[i]=employee::employeedegree;

cout<<"新员工所在部门,请输入相应部门的序号:"<cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
while(employee::employeedepart!=1&&employee::employeedepart!=2&&employee::employeedepart!=3&&employee::employeedepart!=4&&employee::employeedepart!=5)
{
cout<<"输入有误,请重新输入:"<cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
}
edepart[i]=employee::employeedepart;

cout<<"新员工职位,请输入相应职位的序号:"<cout<<"[1:临时职员2:正式职员3:主任4:部门经理5:董事长]";
cin>>employee::employeeposition;
while(employee::employeeposition!=1&&employee::employeeposition!=2&&employee::employeeposition!=3&&employee::employeeposition!=4&&employee::employeeposition!=5)
{
cout<<"输入有误,请重新输