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

(1)通过提示菜单选择可以进行的操作。(2)将职工的信息存入文件中,并命名为EmployeeInfo.txt。(3)在本系统中可以进行管理系统包含的基本操作,其中包括a) 查看所有职工的信息b) 输入一个职工的职工号,从当前职工中进行查找,如果找到则显示该职工的相关信息,如果没有找到则给出提示信息c) 添加一个职工的基本信息,通过输入职工号,首先查找是否存在该职工号的职工,如果存在则提示重新输入,否则将该职工按照顺序插入到相应位置d) 删除一个职工的基本信息,通过输入职工号,首先查找是否存在该职工号的职工,如果存在则将该职工删除,否则给出提示信息,提示该职工不存在(4)职工基本信息包括职工号、姓名、性别、生日、工作、薪水和电话这些简单信息(5)职工信息文件中每一行存放一个职工的信息职工的信息 可以不要做,做好的发邮件到[email protected]。不要抄袭哦!!!!

第1个回答  2013-12-28
#include<iostream>
#include<string>
#include<fstream>
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<<mn<<endl;
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<<"新员工学历,请输入相应学历的序号:"<<endl;
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<<"输入有误,请重新输入:"<<endl;
cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
}

cout<<"新员工所在部门,请输入相应部门的序号:"<<endl;
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<<"输入有误,请重新输入:"<<endl;
cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
}

cout<<"新员工职位,请输入相应职位的序号:"<<endl;
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<<"输入有误,请重新输入:"<<endl;
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<<"添加新成员成功!"<<endl;

return;
}

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

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

cout<<"请选择查询方式:"<<endl;
cout<<"******************************************"<<endl;
cout<<"*输出全体职工信息---------------------1"<<endl;
cout<<"*按职工部门输出-----------------------2"<<endl;
cout<<"*按职工学历输出-----------------------3"<<endl;
cout<<"*按职工年龄输出-----------------------4"<<endl;
cout<<"*按职工编号输出-----------------------5"<<endl;
cout<<"******************************************"<<endl;
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<<"出错啦!"<<endl;break;

}

}

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

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

}
}

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

}
}

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

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

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

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

cout<<"工作时长>"<<eworktime[i]<<"小时"<<endl;
cout<<"额定工资>"<<epay[i]<<"元"<<endl;
cout<<"**********************************"<<endl;
}
elsecontinue;
}
}

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

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

for(inti=0;i<mn;i++)//遍历数据文件,查找要修改的员工数据
{
if(enum[i]==cnum)
{
employee::shownum(cnum);

cout<<"请输入该员工的新信息:"<<endl;

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<<"新员工学历,请输入相应学历的序号:"<<endl;
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<<"输入有误,请重新输入:"<<endl;
cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
}
edegree[i]=employee::employeedegree;

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

cout<<"新员工职位,请输入相应职位的序号:"<<endl;
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<<"输入有误,请重新输本回答被网友采纳
相似回答