职工信息管理系统说明书自制.docx

上传人:b****6 文档编号:8769041 上传时间:2023-02-01 格式:DOCX 页数:24 大小:252.40KB
下载 相关 举报
职工信息管理系统说明书自制.docx_第1页
第1页 / 共24页
职工信息管理系统说明书自制.docx_第2页
第2页 / 共24页
职工信息管理系统说明书自制.docx_第3页
第3页 / 共24页
职工信息管理系统说明书自制.docx_第4页
第4页 / 共24页
职工信息管理系统说明书自制.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

职工信息管理系统说明书自制.docx

《职工信息管理系统说明书自制.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统说明书自制.docx(24页珍藏版)》请在冰豆网上搜索。

职工信息管理系统说明书自制.docx

职工信息管理系统说明书自制

数学与计算机学院

课程设计说明书

课程名称:

面向对象程序设计-课程设计

课程代码:

8404101

题目:

职工信息管理系统

年级/专业/班:

2006级\软件工程\3班

学生姓名:

肖兰艳

学  号:

200609100317

开始时间:

2008年6月12日

完成时间:

2008年6月26日

课程设计成绩:

学习态度及平时成绩(30)

技术水平与实际能力(20)

创新(5)

说明书(计算书、图纸、分析报告)撰写质量(45)

总分(100)

指导教师签名:

年月日

目录

1引言1

1.1问题的提出1

1.2国内外研究的现状1

1.5任务与分析1

2程序的主要功能2

2.1添加功能2

2.2删除功能2

2.3录入职员信息2

2.4查找功能2

2.5修改功能2

3程序运行平台3

4总体设计4

5程序类的说明5

6模块分析6

6.1添加模块6

6.2显示模块7

6.3修改模块8

6.4查找模块9

6.5删除模块11

6.6录入模块12

6.7排序模块14

6.8年龄分布模块15

6.9文化分布模块15

6.10平均分布模块16

7系统测试17

8结论21

参考文献22

摘要

在信息化时代,计算机已经进入了各行各业,同时也促进了各行各业的发展,因此,像以前的手工操作已经不可取了。

职工信息管理系统的计算机软件开发是势在必行,本次课程设计主要是运用C++来设计职工信息管理系统。

C++是现今比较流行的软件开发工具,它主要是面向对象的思想,简单易操作。

本次课程设计利用VisualStudio6.0对职工信息管理系统进行软件开发。

根据实际要求,对于职工的管理,主要有以下几方面工作:

职工年龄的分布、文化的分布情况和平均工资、平均年龄以及平均工龄等,职工信息的查询、添加、删除和修改,以及浏览所有职工信息。

为便于插入和删除数据,本次课程设计采用链表的形式建立职工信息,并且运用了两种不同的查询方式,对职工信息进行查找.

关键词:

职工信息管理系统;计算机;管理;

1引言

1.1问题的提出

在现代化的企业管理中,职工信息管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。

某小型企业出与这种目的制作了这个职工信息管理系统。

1.2国内外研究的现状

近几十年来社会化大生产的发展规模越来越大,综合性越来越强,生产专业化分工越来越细,行业有部门之间的相互联系、相互依存和相互作用更不密切。

组织管理日趋复杂;而现代化科学技术也正以史无前例的速度不断分化,全方位地向高又立体的微观、宏观方向进军。

 随着电信技术和计算机技术的飞速发展,现代MIS从地域上划分已逐渐由局域范围走向广域范围.从而,各个企业都面临着巨大的挑战和机遇.相对我国的信息化发展而言,国外已经处于相对领先水平,ERP的广泛应使职工信息管理系统更好的发挥其功能,更有效的提高了企业的运作效率.由此看出,信息管理现代化是管理现代化不可缺少的重要一环,它是把现代化管理的理论、方法和手段运用到企业的各项工作中,使信息管理管理达到最大限度地提高工作效率的目的,以适应社会和科学技术的发展。

 目前,计算机在我国的信息管理工作中,主要可用来进行数据输入,档案管理,数据统计,信息查询,综合分析。

数据多而且杂,若利用手工进行统计,编辑,整理工作,不仅繁琐,而且需要花费大量的人力,物力,财力等。

 电子计算机作为数据处理系统,已逐渐成为职工信息管理现代化的重要工具,在职工信息管理中正在发挥着重要的作用。

在我国,已经开始运用电子计算机进行货物流动数据管理,人员工资管理、人事统计和查询、干部考评和人事档案管理以及人才预测和规划等。

无纸化办公已经初具规模。

1.5任务与分析

本课题主要的目的是设计一个职工信息管理系统,实现对职工信息进行录入、添加,删除、修改等功能。

2程序的主要功能

2.1添加功能

添加一个职员的基本信息,包括职工号,姓名,性别,年龄,工资,家庭住址,家庭电话号码,参加工作时间。

2.2删除功能

能够对一个职员的信息进行删除按职工号进行删除。

2.3录入职员信息

录入职工的所有信息。

2.4查找功能

方式一:

根据你键入的职工姓名,显示其详细信息!

方式二:

根据你键入的职工学历,显示其详细信息!

2.5修改功能

对职工的信息进行修改。

3程序运行平台

VC++6.0。

具体操作如下:

启动VC++6.0,单击File菜单中New,单击Project标签,并选择Win32ConsoleApplication,新建sheji工程;Finish后进入C++的源程序文件“职工信息管理系统”建立,选择C+++SourceFile,单击OK按钮,完成新建C++院程序文件;在文件编辑窗口中输入代码,选择菜单命令File|Save保存这个文件;选择菜单命令Build|Build职工信息管理系统.Exe建立可执行程序,运行可调试,选择菜单命令Build|Execute职工信息管理系统.exe即可在屏幕上显示内容;选择菜单命令FILE+CloseWorkspace关闭工作空间。

4总体设计

图4.1系统总体框架图

5程序类的说明

∙//职工类声明

classemployee

{

public:

intemployeeno;//职工号

stringname;//姓名

stringsex;//性别

intage;//年龄

intdegree;//学历[1:

初中2:

高中3:

本科4:

硕士5:

博士]

intpay;//工资

stringaddress;//住址

inttel;//电话

inttime;//参加工作时间

staticintcount;

staticintage_total;

staticintpay_total;

employee*next;

employee(){}

~employee(){}

friendemployee*create_form();

friendvoidsave(employee*head);

friendemployee*add(employee*head);

friendemployee*del(employee*head);

friendvoidsearch(employee*head);

friendvoidage_sort();

friendvoiddegree_sort();

friendvoidmodify(employee*head);

friendvoidprint(employee*head);

friendvoidaverage(employee*head);

friendvoidsort(employee*head);

};

6模块分析

6.1添加模块

系统将提示用户输入新添加的职员的信息,插入在链表中。

employee*add(employee*head)//添加职工信息

{employee*ptr,*ptr2,*p1;

charch='a',ch1;

while(ch!

='')

{p1=newemployee;

ptr=p1;

cout<<"\n\n★★★\t添加职工信息\n\n";

cout<<"\n职工号:

";cin>>p1->employeeno;

cout<<"\n姓名:

";cin>>p1->name;

cout<<"\n性别:

";cin>>p1->sex;

cout<<"\n年龄:

";cin>>p1->age;

cout<<"\n学历:

";cin>>p1->degree;

cout<<"\n工资:

";cin>>p1->pay;

cout<<"\n住址:

";cin>>p1->address;

cout<<"\n电话:

";cin>>p1->tel;

cout<<"\n参加工作时间:

";cin>>p1->time;//输入相关数据

p1->count++;

if(head==NULL){

head=ptr;

head->next=NULL;}

else{

for(ptr2=head;ptr2;ptr2=ptr2->next)

if(ptr2->next==NULL){

ptr2->next=p1;

p1->next=NULL;

break;}}

cout<<"继续插入请按回车,结束请按空格:

"<

ch1=getchar();//将回车键赋给CH1,否则subj->time输完后输入的回车键会赋给CH,因此用CH1填补。

ch=getchar();}

returnhead;}

图6.1添加程序流程图

6.2显示模块

显示模块将输出所有职员的主要资料。

voidprint(employee*head)

{employee*ptr;

if(head==NULL)

{printf("NORECORDS!

\n");return;}

cout<<"职工号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<"\t"<<"学历"<<"\t\t"<<"工资"<<"\t"<<"住址"<<"\t"<<"电话号码"<<"\t"<<"参加工作时间"<

for(ptr=head;ptr;ptr=ptr->next)cout<employeeno<<"\t"<name<<"\t"<sex<<"\t"<age<<"\t"<degree<<"\t\t"<pay<<"\t"<address<<"\t"<tel<<"\t"<time<

6.3修改模块

首先由用户输入要修改的职员的职工号,然后系统用修改函数查找,然后系统提示用户输入需要的新的资料。

voidmodify(employee*head)//修改

{cout<<"\n\n★★★\t修改职员信息\n\n";

intno;

employee*p1=head;

cout<<"\t\t职工编号:

";cin>>no;

if(p1->employeeno!

=no)

cout<<"\n\n\t对不起,你想修改的职员不存在!

!

!

!

"<

else

{cout<<"\n\t\t输入新的信息:

\n\n";

cout<<"\n职工号:

";cin>>p1->employeeno;

cout<<"\n姓名:

";cin>>p1->name;

cout<<"\n性别:

";cin>>p1->sex;

cout<<"\n年龄:

";cin>>p1->age;

cout<<"\n学历:

";cin>>p1->degree;

cout<<"\n工资:

";cin>>p1->pay;

cout<<"\n住址:

";cin>>p1->address;

cout<<"\n电话:

";cin>>p1->tel;

cout<<"\n参加工作时间:

";cin>>p1->time;//输入相关数据

}}

图6.2修改流程图

6.4查找模块

首先由用户选择查找方式:

1、输入要查找的职工工资2、输入要查找的职工的学历。

然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的职员资料。

voidsearch(employee*head)

{inta,edegree;

intt=1;

intepay;

charch='a',ch1;

employee*ptr;

while(ch!

='')

{cout<<"若要按工资查找请输入1,若要按学历查找请输入2:

"<

cin>>a;

switch(a)

{//按工资查询

case1:

cout<<"请输入要查找的工资:

"<

cin>>epay;

for(ptr=head;ptr;ptr=ptr->next)

if(epay==ptr->pay){

cout<employeeno<<"\t"<name<<"\t"<sex<<"\t"<age<<"\t"<degree<<"\t\t"<pay<<"\t"<address<<"\t"<tel<<"\t"<time<

t=0;}

if(t)

printf("未找到!

\n");

t=1;break;

//按学历查询

case2:

cout<<"输入要查找的学历:

"<

cin>>edegree;

for(ptr=head;ptr;ptr=ptr->next)if(ptr->degree==edegree)

{cout<employeeno<<"\t"<name<<"\t"<sex<<"\t"<age<<"\t"<degree<<"\t\t"<pay<<"\t"<address<<"\t"<tel<<"\t"<time<

t=0;}

if(t)printf("未找到!

\n");

t=1;}

cout<<"继续查找请按回车键,结束请按空格键:

"<

ch1=getchar();//将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。

ch=getchar();}}

图6.3查找流程图

6.5删除模块

首先由用户输入要删除的单个职员职工号,然后调用删除函数,删除该名职员的资料。

employee*del(employee*head)

{cout<<"\n\n★★★\t删除职工信息\n\n";

intno;

employee*p1,*p2;

charch='a',ch1;

while(ch!

='')

{cout<<"\t\t职工编号:

";cin>>no;

if(head->employeeno==no)

{p2=head;

head=head->next;

p2->count--;

deletep2;}

if(head==NULL)

returnNULL;

p1=head;

p2=head->next;

while(p2)

{if(p2->employeeno==no)

{

p1->next=p2->next;

p1->count--;

p1->age_total-=p2->age;

p1->pay_total-=p2->pay;

deletep2;}

else

p1=p2;

p2=p1->next;}

printf("继续删除请按回车,结束请按空格:

\n");

ch1=getchar();//将回车键赋给CH1,否则employeeno输完后再输入的回车键会赋给CH,因此用CH1填补。

ch=getchar();}

returnhead;}

6.6录入模块

系统将会把所有职员的资料全部录入,将链表建起。

employee*create_form()

{employee*head=NULL;

employee*pend,*p;

cout<<"\n\n★★★请输入职工信息:

\n\n"<

p=newemployee;

cout<<"\n姓名:

";cin>>p->name;

cout<<"\n性别:

";cin>>p->sex;

cout<<"\n年龄:

";cin>>p->age;

cout<<"\n学历[1:

初中2:

高中3:

本科4:

硕士5:

博士]";cin>>p->degree;

cout<<"\n工资:

";cin>>p->pay;

cout<<"\n住址:

";cin>>p->address;

cout<<"\n电话:

";cin>>p->tel;

cout<<"\n参加工作时间:

";cin>>p->time;

cout<<"\n职工号:

";cin>>p->employeeno;//输入相关数据

pend=p;

while(p->employeeno!

=0)

{if(head==NULL)head=p;

elsepend->next=p;

pend=p;

p=newemployee;

cout<<"\n姓名:

";cin>>p->name;

cout<<"\n性别:

";cin>>p->sex;

cout<<"\n年龄:

";cin>>p->age;

cout<<"\n学历:

";cin>>p->degree;

cout<<"\n工资:

";cin>>p->pay;

cout<<"\n住址:

";cin>>p->address;

cout<<"\n电话:

";cin>>p->tel;

cout<<"\n参加工作时间:

";cin>>p->time;

cout<<"\n职工号:

";cin>>p->employeeno;//输入相关数据

if(p->employeeno==0)break;

p->count++;}

pend->next=NULL;

returnhead;}

6.7排序模块

系统将会把所有职员的资料按工资升序排列,并输出结果。

voidsort(employee*head)//排序

{employeee;

employees[16];

employee*p=head;

if((p==0)||(p->next==0))//此步条件判断非常有价值。

{cout<<"\n\n\n\t\t数据节点数少于2个,不用排序!

!

!

!

"<

system("pause");}

else

{for(inti=0;icount;p=p->next,i++)

{s[i].employeeno=p->employeeno;

s[i].name=p->name;

s[i].sex=p->sex;

s[i].age=p->age;

s[i].pay=p->pay;

s[i].degree=p->degree;

s[i].address=p->address;

s[i].tel=p->tel;

s[i].time=p->time;}

for(i=0;icount-1;i++)

for(intj=0;jcount-1-i;j++)

{if(s[j].pay>s[j+1].pay)

{e=s[j];

s[j]=s[j+1];

s[j+1]=e;}}

cout<<"职工号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<"\t"<<"学历"<<"\t\t"<<"工资"<<"\t"<<"住址"<<"\t"<<"电话号码"<<"\t"<<"参加工作时间"<

for(i=0;icount;i++){cout<

6.8年龄分布模块

voidage_sort(employee*head)//各年龄段职工人数的分布情况

{employee*p;

inti(0),j(0),k(0),l(0);

for(p=head;p;p=p->next)

{if(p->age>18&&p->age<=25)i++;

if(p->age>25&&p->age<=35)j++;

if(p->age>35&&p->age<=45)k++;

if(p->age>45&&p->age<=55)l++;}

cout<<"年龄在18~25之间的职工有:

"<

cout<<"年龄在25~35之间的职工有:

"<

cout<<"年龄在35~45之间的职工有:

"<

cout<<"年龄在45~55之间的职工有:

"<

6.9文化分布模块

voiddegree_sort(employee*head)//各文化程度职工人数的分布情况

{employee*a;

inti(0),j(0),k(0),l(0),m(0);

for(a=head;a;a=a->next)

{if(a->degree==1)i++;

if(a->degree==2)j++;

if(a->degree==3)k++;

if(a->degree==4)l++;

if(a->degree==5)m++;}

cout<<"初中文化程度的职工有"<

cout<<"高中文化程度的职工有"<

cout<<"大学文化程度的职工有"<

cout<<"硕士文化程度的职工有"<

cout<<"博士文化程度的职工有"<

6.10平均分布模块

voidaverage(employee*head)//平均年龄/平均工资/平均工龄

{inti,j;

intnowtime(2008),sum(0),l;

employee*p1;

cout<count<

for(p1=head;p1;p1=p1->next)

{p1->age_total+=p1->age;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1