C++课程设计职工信息管理系统.docx
《C++课程设计职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计职工信息管理系统.docx(21页珍藏版)》请在冰点文库上搜索。
![C++课程设计职工信息管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-5/12/398e0b60-ada5-48d1-8473-4711ad8be7d7/398e0b60-ada5-48d1-8473-4711ad8be7d71.gif)
C++课程设计职工信息管理系统
C++课程设计
职工信息管理系统
指导老师:
组长:
组员:
设计时间:
2007年9月
一.系统的软硬件环境
1.软件环境:
WindowsXP、VisualC++6.0
2.硬件环境:
CPU(pentium42.4Hz)、内存(256MB)、硬盘(80G)
二.需求分析
本系统适用于各企事业、机关单位的人事管理工作。
系统储存的人事信息包括:
在职及离职职工的基本情况、工作情况、组织情况、工资情况、学历情况、以及奖惩情况,个人简历、配偶和家庭成员信息等等。
系统可以实现对这些信息的录入、删除、查询、统计、打印和分析操作,方便灵活、准确、迅速。
可以帮助用户实现对人事信息的全面管理。
本系统作为人力资源管理的计算机管理系统,秉承以“人”为主的管理方式:
对于企业、部门、职工以及它们相互之间复杂的人事关系,本系统是无法取代‘人’去处理的,因而在某些人事事务的处理上,本系统为‘人’的处理留出了较大的余地。
三.系统总体框架图
.
四.模块功能实现
1、该系统存储了某个单位所有职工的基本信息,对每一个职工存储:
职工编号,姓名,性别,出生年月,部门,职称,最后学历,工资和婚否等信息。
形成了统一的档案管理系统,便于公司对职工的管理。
2、创建存储该单位职工信息的存储系统,在第一次输入基本信息时,创建文件将职工信息写入文件。
3、增加职工信息,增加新职工时输入新职工的基本信息并加入文件。
4、删除某职工的基本信息,同时修改文件中相应的内容。
5、修改某职工的某些信息,如加工资,获新学位,晋升职称。
6、可以输出符合某种特征的职工信息列表,包括:
a)全体职工信息;
b)某职称的职工全部信息;
c)出生日期在某一范围的全部职工信息;
d)某一部门全部职工信息。
五.程序的使用说明
在运行此程序时出现如下如所示的界面
此时就可以按照需要来查找有关员工的信息了,例如你想按条件输出员工的数据,那么就在“请选择您要服务的类别:
”处输入2再按回车,您会看见如下信息:
之后您可以选择按职工部门、职工学历、或是年龄、辩护等方式来查找员工,同样您要是想修改员工信息就重新运行之后输入3来重复上述操作,这里不再赘述,请您自己把握。
六.结束语
constN=50;//用常量定义系统可录入的员工最大数值
intEmployee:
:
MaxNum()//返回系统已经存储的人数
voidEmployee:
:
shownum(longnumber)//按员工编号输出函数
voidEmployee:
:
RefreshInfo()//修改员工信息的函数
voidDBOperate:
:
RefreshMaxNum(intiflag)//更新系统中员工计数文件的函数
2到4行为定义一个函数属于某个类,实现其功能
for(inti=0;i利用for循环语句实现函数的功能
staticlongEmployeeMaxNum;
staticfloatEmployeeBasePay;
利用静态长整型数和静态浮点数实现函数的功能
while(Employee:
:
Employeedepart!
=1&&Employee:
:
Employeedepart!
=2&&Employee:
:
Employeedepart!
=3&&Employee:
:
Employeedepart!
=4&&Employee:
:
Employeedepart!
=5)
while循环
switch(choice1)
开关语句
for(inti=0;i{
if(Enum[i]==cNum)
for循环和if的嵌套
七.成员分工
张佳:
负责创建classEmployee、classDBOperateswitch(choice1)、
voidDBOperate:
:
WriteIn(intiflag)
王彦艳:
负责编辑intEmployee:
:
MaxNum()、voidEmployee:
:
NewInfo()
voidEmployee:
:
ShowInfo()、voidEmployee:
:
showall()
八.程序源代码如下
#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:
MaxNum();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:
MaxNum();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:
MaxNum();i++)
{
if(Edegree[i]==degree)
{
longnumber=Enum[i];
shownum(number);
}elsecontinue;
}
}
voidEmployee:
:
showage(intmin,intmax)//按员工年龄段输出函数
{
inti;
for(i=0;i:
MaxNum();i++)
{
if(Eage[i]>=min&&Eage[i]<=max)
{
longnumber=Enum[i];
shownum(number);
}
elsecontinue;
}
}
voidEmployee:
:
shownum(longnumber)//按员工编号输出函数
{
inti;
for(i=0;i:
MaxNum();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为未婚):
";
ci