员工管理系统毕业设计论文Word格式.docx
《员工管理系统毕业设计论文Word格式.docx》由会员分享,可在线阅读,更多相关《员工管理系统毕业设计论文Word格式.docx(38页珍藏版)》请在冰点文库上搜索。
![员工管理系统毕业设计论文Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/3bda4985-8f61-4aa8-af86-f625550b8386/3bda4985-8f61-4aa8-af86-f625550b83861.gif)
更新
图3-2第二层数据流图
事务:
删除,添加,修改,查询;
职工信息E-R图
323数据字典
数据流字典
1数据流名称
:
职工-主管类
数据结构:
职工编号
id
姓名name
性别sex工资salary
出生时间birth
参加工作时间worktime
职位a
2数据流名称:
职工-工人类
职工编号id姓名name
职位b
3.2.4处理逻辑的定义
①处理名:
添加职工信息
输入:
根据选择录入数据
输出:
显示所添加的信息
处理定义:
当选择了要输入的数据类型时,按照提示输入所需要的信息,并录入到职工信息库里
激发条件:
选择添加职工信息
②处理名:
删除职工信息
键入要删除的职工号
显示输入职工好所对应的信息
处理定义:
根据键入的职工号查到相关的信息,经确认后,从信息库中删除
选择删除职工信息
3处理名:
修改职工信息
键入要修改的职工号,并选择要修改的项
显示修改后的该职工信息
键入要修改的职工号,显示该职工的信息,根据提示选择要修改的项,修改成功后显示
修改后的职工信息
选择修改职工信息
4处理名:
查找职工信息
选择要查找的类型(职工号,姓名,年龄)
显示所要查找的职工信息
选择要查找的类型,从信息库中查找并显示
选择查找记录
5处理名:
列出信息
选择输出类型
根据选择输出数据
根据选择的输出类型,输出职工信息
选择列出信息功能
6处理名:
计算平均年龄
无
输出职工的平均年龄
调用函数,输出职工的平均年龄
选择计算平均年龄功能
7处理名:
创建职工信息简表
显示职工信息简表
创建并显示职工信息简表
选择创建职工信息简表功能
8处理名:
存入磁盘
把数据输出到磁盘文件中
输出职工信息文件
选择存入磁盘功能
职工信息包括职工号,姓名,性别,年龄,工资,出生日期,工作时间,试设计一职工信息
管理系统,使之能提供以下功能:
1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和
年龄(必须计算得到)。
2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。
3)抽取并计算职工的平均年龄。
4)检索(查找)指定信息。
(如按姓名检索、按年龄检索)
5)修改职工信息
6)删除职工信息
7)保存数据文件3.3.1功能设计
功能框架图如下:
Y
N
Default
<
Case6
Case7
Case5
Case8
列出信息break
平均年龄break
_.1创建简表break
存入磁盘break
选择错误break
结束
332系统运行环境
VisualC++是一个功能强大的可视化软件开发工具。
VisualC++6.0不仅是
个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境
(integrated
developmentenvironment,IDE
)。
VisualC++6.0由许多组件组成,包括编辑器、调
试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一
个名为DeveloperStudio的组件集成为和谐的开发环境。
3.4系统实施
3.4.1程序代码
#include<
iostream>
string>
iomanip>
fstream>
usingnamespacestd;
intnum仁0,num2=0,num=0;
floatavery=0.0;
charsave1;
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:
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);
}while(f==1||f==2);
请输入职工姓名
name;
请输入职工性别(1.男\t2.女):
sex1;
switch(sex1)case1:
sex=man;
break;
case2:
sex=woman;
default:
选择错误,重新选择\n"
}while(sex1!
=1&
&
sex1!
=2);
请输入基本工资:
salary;
if(salary<
1000)
输入错误,基本工资应在1000以上!
\n"
}while(salary<
1000);
请输入出生日期:
\t"
birth;
请输入参加工作日期:
worktime;
添加职工信息如下:
\n"
display();
是否保存?
y/n:
save1;
if(save1=='
y'
||save1=='
Y'
)
num++;
保存成功!
else
您放弃了保存!
添加失败\n"
display(){
inti;
工号:
id<
'
\n'
姓名:
name<
性别:
if(sex==man)cout<
男"
elseif(sex==woman)cout<
女"
elsecout<
无"
endl;
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;
}p1):
employee(i,na,s,sa,bi,wt){
a=p1;
voidmanager:
addmanager(){
add();
a=1;
classwork:
publicemployee{public:
intb;
work();
work(stringi,stringna,tsexs,intsa,intbi,intwt);
~work(){};
voidaddwork();
}w[100];
work:
work(){b=0;
work(string
i,string
na,tsex
s,int
sa,int
bi,int
wt):
b=0;
voidwork:
addwork(){
voidaddnew(){
intselect;
charf;
select;
switch(select){case1:
m[num1].addmanager();
num1++;
w[num2].addwork();
num2++;
f=exit();
}while(select!
select!
=2||f=='
n'
);
voidjiludelete(){
managert1;
workt2;
inti,j;
stringid1,id2;
charb,f;
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();
{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();
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;
请输入要修改信息的职工号:
elseif(foundhao(id2)==1){
要修改职工号的信息:
for(t=0;
t<
t++)
if(m[t].getid()==id2){
修改的选项:
1职工号2姓名3性别4工资5出生日期6工
作时间"
\t'
j;
switch(j){
case1:
新的职工号:
str;
m[t].setid(str);
case4:
case3:
case5:
新的姓名:
m[t].setname(str);
新的性别(1.男\t2.女)"
k;
m[t].setsex(k);
新的工资:
m[t].setsalary(k);
新的出生日期
m[t].setbirth(k);
case6:
error"
m[t].display();
if(w[t].getid()==id2){
1职工号2姓名3性别4工资5出生日期
switch(j){case1:
setw(20);
w[t].setid(str);
新的姓名"
w[t].setname(str);
女)"
cin>
>
w[t].setsex(k);
新的工资"
w[t].setsalary(k);
w[t].setbirth(k);
w[t].setworktime(k);
w[t].display();
voidfound(){
stringi;
charse,f;
请选择查询方式:
1职工号2姓名3
年龄\t"
se;
switch(se){
case'
1'
请输入要查找的职工号:
i;
你要查询的人的信息如下:
foundid(i);
2'
请输入要查找的姓名:
"
foundname(i);
3'
请输入要查找的年龄"
a;
foundage(a);
没有此选项,请重新选择"
}while(se!
='
se!
||f=='
intfoundhao(stringid1){
for(i=0;
if(m[i].getid()==id1){
return1;
for(j=0;
if(w[j].getid()==id1){
return2;
return0;
voidfoundid(stringid1){
intflage=0;
m[i].display();
flage=1;
w[j].display();
if(flage==0)cout<
对不起!
没有找到\t"
voidfoundname(stringn){
if(m[i].getname()==n){
if(w[j].getname()==n){
flage=2;
voidfoundage(inta){
if(m[i].getage()==a){
if(w[j].getage()==a){
stringoutsex(tsexs){
stringoutposition(ints){
elsereturn"
工人"
voidlistbiao(){
inti,j,z;
请选择输出类别:
1主管类2工人类3全部信息"
z;
id"
name"
sex"
salary"
birthday"
\t'
worktime"
age"
switch(z){
i++)cout<
m[i].getid()<
m[i].getname()<
outsex(m[i].getsex())<
m[i].getsalary()<
m[i].getbirth()<
m[i].getworktime()<
m[i].getage()<
j++)cout<
w[j].getid()<
w[j].getname()<
outsex(w[j].getsex())<
w[j].gets