小型企业单位员工管理组织系统.docx
《小型企业单位员工管理组织系统.docx》由会员分享,可在线阅读,更多相关《小型企业单位员工管理组织系统.docx(39页珍藏版)》请在冰豆网上搜索。
小型企业单位员工管理组织系统
计算机科学与技术系
课程设计
(2009--2010年度第一学期)
课程名称:
面向对象程序与设计
题目:
建立职工管理信息系统
姓名:
高超
学号:
2009110513
指导教师:
潘正高
设计周数:
2周
成绩:
日期:
2009年12月27日
小组成员分工说明:
系统分析:
王涛
系统编程:
高超
撰写报告:
余超
组长:
高超
小组成员:
王涛………………………………2009110520
余超………………………………2009110501
一封面1
二设计小组成员2
三正文...................................................4
3.1课程设计的目的与要求................................4
3.2系统分析4
3.2.1系统开发背景、开发范围、建设目标与必要性..........4
3.2.2业务流程分析.................................4
3.2.3数据字典......................................6
3.2.4处理逻辑的定义................................6
3.3系统设计...........................................8
3.3.1功能设计.......................................8
3.3.2系统运行环境...................................9
3.4系统实施...........................................10
3.4.1程序代码........................................10
3.4.2运行结果........................................29
四课程设计总结或结论35
五参考文献35
《建立职工信息管理》
三、正文
3.1课程设计的目的与要求
通过管理信息系统课程设计,进一步掌握管理信息系统的理论和方法。
培养和锻炼开发管理信息系统的能力。
为今后信息系统开发打下良好的基础。
要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理信息系统的开发方法。
主要包括:
系统调研方法;业务分析、数据分析、系统逻辑模型设计方法;数据库设计、功能设计、物理模型设计方法;系统的实现等方法。
完成一个小型系统的设计与开发。
3.2系统分析
3.2.1系统开发背景、开发范围、建设目标与必要性
随着本世纪以来科学技术的突飞猛进和社会生产力的迅速发展,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。
电子计算机以强大的信息处理能力作为人类脑力劳动的有力助手登上历史舞台以后,出现了把人类从繁琐的脑力劳动下解放出来的现代信息革命。
为了适应现代企业或公司经营发展的需要,为提高企业工作效率、保证企业职工信息管理质量、快而准确地为企业制定好的经营方针与决策,我们有必要开发一个职工信息管理系统。
3.2.2业务流程分析
现行管理系统的业务流程图
………
图3-2第二层数据流图
事务:
删除,添加,修改,查询;
职工信息E-R图
3.2.3数据字典
数据流字典
数据流名称:
职工-主管类
数据结构:
职工编号id
姓名name
性别sex
工资salary
出生时间birth
参加工作时间worktime
职位a
数据流名称:
职工-工人类
数据结构:
职工编号id
姓名name
性别sex
工资salary
出生时间birth
参加工作时间worktime
职位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
#include
#include
#include
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:
:
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<<"该职工号可以使用"<elseif(f==1||f==2)cout<<"此职工号已存在"<}while(f==1||f==2);
cout<<"请输入职工姓名:
\t";
cin>>name;
do{
cout<<"请输入职工性别(1.男\t2.女):
\t";
cin>>sex1;
switch(sex1)
{
case1:
sex=man;
break;
case2:
sex=woman;
break;
default:
cout<<"选择错误,重新选择\n";
}
}while(sex1!
=1&&sex1!
=2);
do{
cout<<"请输入基本工资:
\t";
cin>>salary;
if(salary<1000)
cout<<"输入错误,基本工资应在1000以上!
\n";
}while(salary<1000);
cout<<"请输入出生日期:
\t";
cin>>birth;
cout<<"请输入参加工作日期:
\t";
cin>>worktime;
cout<<"添加职工信息如下:
\n";
display();
cout<<"是否保存?
y/n:
";
cin>>save1;
if(save1=='y'||save1=='Y')
{
num++;
cout<<"保存成功!
\n";
}
else
{
cout<<"您放弃了保存!
添加失败\n";
}
}
voidemployee:
:
display(){
inti;
cout<<"工号:
\t"<\t"<\t";
if(sex==man)cout<<"男"<<'\n';
elseif(sex==woman)cout<<"女"<<'\n';
elsecout<<"无"<age=2009-birth/10000;
cout<<"年龄:
\t"<cout<<"出生年月:
\t";
i=birth;
cout<
i=i%10000;
cout<
cout<<"工资:
\t"<cout<<"参加工作时间:
\t"<}
classmanager:
publicemployee{
public:
inta;
manager();
manager(stringi,stringna,tsexs,intsa,intbi,intwt,intp1);
~manager(){};
voidaddmanager();
}m[100];
manager:
:
manager(){a=1;}
manager:
:
manager(stringi,stringna,tsexs,intsa,intbi,intwt,intp1):
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:
:
work(stringi,stringna,tsexs,intsa,intbi,intwt):
employee(i,na,s,sa,bi,wt){
b=0;
}
voidwork:
:
addwork(){
add();
b=0;
}
voidaddnew(){
intselect;
charf;
do{
cout<<"请输入添加的职工类型:
1.主管\t2.工人\t";
cin>>select;
switch(select){
case1:
m[num1].addmanager();
num1++;
break;
case2:
w[num2].addwork();
num2++;
break;
default:
cout<<"选择错误!
";
}
f=exit();
}while(select!
=1&&select!
=2||f=='n');
}
voidjiludelete(){
managert1;
workt2;
inti,j;
stringid1,id2;
charb,f;
do{
cout<<"请输入要删除的职工号:
"<<'\t';
cin>>id2;
if(foundhao(id2)==0){cout<<"对不起!
没有这个工人的记录";return;}
cout<<"你要删除的信息是:
"<foundid(id2);
cout<<"确定要删除该记录?
y/n\n";
cin>>b;
if(b=='n')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;iif(m[i].getid()==id2&&num1!
=1){
t1=m[i];
for(j=i;jm[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;iif(w[i].getid()==id2&&num2!
=1){
t2=w[i];
for(j=i;jw[j]=w[j+1];}
}
num2--;
}
num--;
cout<<"删除成功!
";
f=exit();
}while(f=='n');
}
voidchange(){
stringid2,str;
intt,j,k;
charf;
do{
cout<<"请输入要修改信息的职工号:
\t";
cin>>id2;
if(foundhao(id2)==0)cout<<"对不起!
没有这个工人的记录"<elseif(foundhao(id2)==1){
cout<<"要修改职工号的信息:
\t";
foundid(id2);
for(t=0;tif(m[t].getid()==id2){
cout<<"修改的选项:
1职工号2姓名3性别4工资5出生日期6工作时间"<<'\t';
cin>>j;
switch(j){
case1:
cout<<"新的职工号:
\t";cin>>str;m[t].setid(str);break;
case2:
cout<<"新的姓名:
\t";cin>>str;m[t].setname(str);break;
case3:
cout<<"新的性别(1.男\t2.女)";cin>>k;m[t].setsex(k);break;
case4:
cout<<"新的工资:
\t";cin>>k;m[t].setsalary(k);break;
case5:
cout<<"新的出生日期:
\t";cin>>k;m[t].setbirth(k);break;
case6:
cout<<"新的工作时间:
\t";cin>>k;m[t].setworktime(k);break;
default:
cout<<"error"<}
m[t].display();
}
}
elseif(foundhao(id2)==2){
cout<<"要修改职工号的信息:
\t";
foundid(id2);
for(t=0;tif(w[t].getid()==id2){
cout<<"修改的选项:
1职工号2姓名3性别4工资5出生日期6工作时间"<<'\t';
cin>>j;
switch(j){
case1:
cout<<"新的职工号:
"<>str;w[t].setid(str);break;
case2:
cout<<"新的姓名"<>str;w[t].setname(str);break;
case3:
cout<<"新的性别(1.男\t2.女)"<>k;w[t].setsex(k);break;
case4:
cout<<"新的工资"<>k;w[t].setsalary(k);break;
case5:
cout<<"新的出生日期"<>k;w[t].setbirth(k);break;
case6:
cout<<"新的工作时间"<>k;w[t].setworktime(k);break;
default:
cout<<"error"<}
w[t].display();
}
}
f=exit();
}while(f=='n');
}
voidfound(){
inta;
stringi;
charse,f;
do{
cout<<"请选择查询方式:
1职工号2姓名3年龄\t";
cin>>se;
switch(se){
case'1':
cout<<"请输入要查找的职工号:
"<<'\t';
cin>>i;cout<<"你要查询的人的信息如下:
"<case'2':
cout<<"请输入要查找的姓名:
"<<'\t';
cin>>i;cout<<"你要查询的人的信息如下:
"<case'3':
cout<<"请输入要查找的年龄"<<'\t';
cin>>a;cout<<"你要查询的人的信息如下:
"<default: