员工管理系统论文Word文档下载推荐.docx
《员工管理系统论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《员工管理系统论文Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
![员工管理系统论文Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/14/374e15ec-7b2d-40d8-9173-8c03510a8b9a/374e15ec-7b2d-40d8-9173-8c03510a8b9a1.gif)
3.2.2业务流程分析
现行管理系统的业务流程图
………
图3-2第二层数据流图
事务:
删除,添加,修改,查询;
职工信息E-R图
3.2.3数据字典
数据流字典
数据流名称:
职工-主管类
数据结构:
职工编号id
姓名name
性别sex
工资salary
出生时间birth
参加工作时间worktime
职位a
数据流名称:
职工-工人类
职位b
3.2.4处理逻辑的定义
处理名:
添加职工信息
输入:
根据选择录入数据
输出:
显示所添加的信息
处理定义:
当选择了要输入的数据类型时,按照提示输入所需要的信息,并录入到职工信息库里
激发条件:
选择添加职工信息
处理名:
删除职工信息
键入要删除的职工号
显示输入职工好所对应的信息
根据键入的职工号查到相关的信息,经确认后,从信息库中删除
激发条件:
选择删除职工信息
修改职工信息
键入要修改的职工号,并选择要修改的项
显示修改后的该职工信息
键入要修改的职工号,显示该职工的信息,根据提示选择要修改的项,修改成功后显示修改后的职工信息
选择修改职工信息
查找职工信息
选择要查找的类型(职工号,姓名,年龄)
显示所要查找的职工信息
选择要查找的类型,从信息库中查找并显示
选择查找记录
列出信息
选择输出类型
根据选择输出数据
根据选择的输出类型,输出职工信息
选择列出信息功能
计算平均年龄
无
输出职工的平均年龄
调用函数,输出职工的平均年龄
选择计算平均年龄功能
创建职工信息简表
显示职工信息简表
创建并显示职工信息简表
选择创建职工信息简表功能
存入磁盘
把数据输出到磁盘文件中
输出职工信息文件
选择存入磁盘功能
3.3系统设计
职工信息包括职工号,姓名,性别,年龄,工资,出生日期,工作时间,试设计一职工信息管理系统,使之能提供以下功能:
(1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。
(2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。
(3)抽取并计算职工的平均年龄。
(4)检索(查找)指定信息。
(如按姓名检索、按年龄检索)
(5)修改职工信息
(6)删除职工信息
(7)保存数据文件
3.3.1功能设计
功能框架图如下:
职工信息管理系统流程图
3.3.2系统运行环境
VisualC++是一个功能强大的可视化软件开发工具。
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
3.4系统实施
3.4.1程序代码
#include<
iostream>
string>
iomanip>
fstream>
usingnamespacestd;
intnum1=0,num2=0,num=0;
floatavery=0.0;
charsave1;
charexit();
enumtsex{man,woman,mid};
voidfoundid(stringid1);
voidfoundname(stringn);
voidfoundage(inta);
intfoundhao(stringid1);
voidsave();
voidlisebiao(){};
classemployee{
stringid;
stringname;
tsexsex;
intsalary;
intbirth;
intworktime;
intage;
public:
employee();
employee(stringi,stringna,tsexs,intsa,intbi,intwt);
~employee(){};
employee&
operator=(employee&
e){
id=e.id;
name=e.name;
sex=e.sex;
salary=e.salary;
birth=e.birth;
worktime=e.worktime;
age=e.age;
return*this;
}
voidadd();
voiddisplay();
stringgetid(){returnid;
}
stringgetname(){returnname;
intgetage(){returnage;
tsexgetsex(){returnsex;
intgetsalary(){returnsalary;
intgetbirth(){returnbirth;
intgetworktime(){returnworktime;
voidsetid(stringid1){id=id1;
voidsetname(stringn1){name=n1;
voidsetsex(ints){
if(s==1)sex=man;
elseif(s==2)sex=woman;
elsesex=mid;
voidsetsalary(intsa){salary=sa;
voidsetbirth(intbi){birth=bi;
voidsetworktime(intwt){worktime=wt;
voidclean(){employee();
};
employee:
:
employee(){
sex=mid;
salary=0;
birth=0;
worktime=0;
age=0;
employee(stringi,stringna,tsexs,intsa,intbi,intwt){
id=i;
name=na;
sex=s;
salary=sa;
birth=bi;
worktime=wt;
age=2009-bi/10000;
voidemployee:
add(){
intf,sex1;
do{
cout<
<
"
请输入职工号:
\t"
;
cin>
>
id;
f=foundhao(id);
if(f==0){cout<
该职工号可以使用"
endl;
break;
elseif(f==1||f==2)cout<
此职工号已存在"
}while(f==1||f==2);
请输入职工姓名:
name;
cout<
请输入职工性别(1.男\t2.女):
sex1;
switch(sex1)
{
case1:
sex=man;
break;
case2:
sex=woman;
default:
选择错误,重新选择\n"
}
}while(sex1!
=1&
&
sex1!
=2);
do{
请输入基本工资:
salary;
if(salary<
1000)
输入错误,基本工资应在1000以上!
\n"
}while(salary<
1000);
cout<
请输入出生日期:
\t"
cin>
birth;
请输入参加工作日期:
worktime;
添加职工信息如下:
display();
是否保存?
y/n:
save1;
if(save1=='
y'
||save1=='
Y'
)
{
num++;
保存成功!
}
else
您放弃了保存!
添加失败\n"
display(){
inti;
cout<
工号:
id<
'
\n'
姓名:
name<
性别:
if(sex==man)cout<
男"
elseif(sex==woman)cout<
女"
elsecout<
无"
age=2009-birth/10000;
年龄:
age<
出生年月:
i=birth;
i/10000<
年"
i=i%10000;
i/100<
月"
i%100<
日"
工资:
salary<
参加工作时间:
worktime<
classmanager:
publicemployee{
inta;
manager();
manager(stringi,stringna,tsexs,intsa,intbi,intwt,intp1);
~manager(){};
voidaddmanager();
}m[100];
manager:
manager(){a=1;
manager(stringi,stringna,tsexs,intsa,intbi,intwt,intp1):
employee(i,na,s,sa,bi,wt){
a=p1;
voidmanager:
addmanager(){
add();
a=1;
classwork:
intb;
work();
work(stringi,stringna,tsexs,intsa,intbi,intwt);
~work(){};
voidaddwork();
}w[100];
work:
work(){b=0;
work(stringi,stringna,tsexs,intsa,intbi,intwt):
b=0;
voidwork:
addwork(){
b=0;
voidaddnew(){
intselect;
charf;
请输入添加的职工类型:
1.主管\t2.工人\t"
cin>
select;
switch(select){
case1:
m[num1].addmanager();
num1++;
break;
case2:
w[num2].addwork();
num2++;
default:
选择错误!
f=exit();
}while(select!
select!
=2||f=='
n'
);
voidjiludelete(){
managert1;
workt2;
inti,j;
stringid1,id2;
charb,f;
请输入要删除的职工号:
\t'
id2;
if(foundhao(id2)==0){cout<
对不起!
没有这个工人的记录"
return;
你要删除的信息是:
foundid(id2);
确定要删除该记录?
y/n\n"
b;
if(b=='
)return;
if(foundhao(id2)==1){
if(m[0].getid()==id2&
num1==1)m[0].clean();
elseif(m[num-1].getid()==id2)m[num1-1].clean();
else
{for(i=0;
i<
num1-1;
i++)
if(m[i].getid()==id2&
num1!
=1){
t1=m[i];
for(j=i;
j<
num1;
j++)
m[j]=m[j+1];
}
num1--;
elseif(foundhao(id2)==2){
if(w[0].getid()==id2&
num2==1)w[0].clean();
elseif(w[num-1].getid()==id2)w[num2-1].clean();
else
{for(i=0;
num2-1;
if(w[i].getid()==id2&
num2!
t2=w[i];
num2;
w[j]=w[j+1];
num2--;
num--;
删除成功!
}while(f=='
voidchange(){
stringid2,str;
intt,j,k;
请输入要修改信息的职工号:
if(foundhao(id2)==0)cout<
elseif(foundhao(id2)==1){
要修改职工号的信息:
foundid(id2);
for(t=0;
t<
t++)
if(m[t].getid()==id2){
修改的选项:
1职工号2姓名3性别4工资5出生日期6工作时间"
j;
switch(j){
新的职工号:
cin>
str;
m[t].setid(str);
新的姓名:
m[t].setname(str);
case3:
新的性别(1.男\t2.女)"
k;
m[t].setsex(k);
case4:
新的工资:
m[t].setsalary(k);
case5:
新的出生日期:
m[t].setbirth(k);
case6:
新的工作时间:
m[t].setworktime(k);
default:
cout<
error"
m[t].display();
if(w[t].getid()==id2){
setw(20);
w[t].setid(str);
新的姓名"
w[t].setname(str);
w[t].setsex(k);
新的工资"
w[t].setsalary(k);
新的出生日期"
w[t].setbirth(k);
新的工作时间"
w[t].setworktime(k);
w[t].display();
voidfound(){
stringi;
charse,f;
do{
请选择查询方式:
1职工号2姓名3年龄\t"
se;
switch(se){
case'
1'
请输入要查找的职工号:
i;
cout<
你要查询的人的信息如下:
foundid(i);
2'
请输入要查找的姓名:
foundname(i);
3'
请输入要查找的年龄"
a;
foundage(a);
没有此选项,请重新选择"
}while(se!
='
se!
||f=='
intfoundhao(stringid1){
for(i=0;
nu