实训一-职工信息管理系统_第1页
实训一-职工信息管理系统_第2页
实训一-职工信息管理系统_第3页
实训一-职工信息管理系统_第4页
实训一-职工信息管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、福建江夏学院电子信息科学学院课程设计报告 课 题: 职工信息管理系统 专业班级: 12信息管理与信息系统(本科)4班 学 号: 1631208144%$1 姓 名: 指导老师: * 丽 新 日 期: 2014.1.10. 目 录1.课题简介32. 设计过程33. 具体设计44.测试5 5. 总结28设计体会28参考文献281. 课题简介职工信息管理系统本软件是为职工信息开发的职工信息管理系统软件。该软件结合当前的工作流程,职工信息管理、查询、修改、添加、删除等方面提供完全的计算机职工信息化管理。手工的记录与查询,是一项非常繁重而枯燥的劳动,耗费许多人力和物力,而且会因人的情绪烦躁而出现失误,因

2、此在计算机飞速发展的今天,应用计算机技术实现学生信息的计算机管理是可行而必要的工作 。本系统设计旨在对公司信息实现计算机管理,提高工作效率,提高管理水平。2. 设计过程(一)系统功能分析:职工信息管理系统要实现的主要功能是: Ø 创建职工信息功能:包括职工姓名、年龄、工龄、性别、婚姻状况、是否在职的录入功能。Ø 查询功能:按姓名、工龄、级别进行查询职工基本信息。Ø 修改功能:按姓名、工龄、级别进行职工个人信息的修改。Ø 添加功能:成功添加新进员工的个人信息。Ø 删除功能:按姓名、工龄、级别将离职员工的个人信息删除 Ø 调整工资功能:按

3、员工级别进行工资调整。Ø 保存文件功能:将职工信息保存。Ø 读取文件功能:读取职工信息。Ø 输出功能:将更新的职工信息打印。Ø 退出功能:退出程序.(二)系统流程分析:l 登陆口令功能的流程图:NYYN定义字符指针或数组p初始化循环变量n输出提示:"请输入登录口令:"1,条件都成立输入p比较p和abcd输出提示:"输入口令错误,请重新输入!"n+n=3输出提示:"已输入三次,您无权进行操作!"exit(1),退出程序,返回系统输出提示:"输入口令正确!"函数返回值1图1-1:

4、口令函数功能模块流程图 登陆口令功能:用户进入系统须先登录,输入登录口令并对其进行身份验证。功能分析:提示用户输入口令,用户输入口令后,程序对其进行检查,用户的口令输入次数有限制,连续输入错误口令超过三次就自动关闭程序。l 系统主界面函数的流程图: 编程实现系统初始界面输出系统主界面定义一个整形变量m,输入值m返回值ml 主函数的流程图:定义结构体数组password()exit(1),退出程序,返回系统N1,条件都成立主界面选择:switch (xitongjiemian()case1case2case3case4case5case6case7case81defaultY图1-2:主函数功能

5、模块流程图主函数的执行。实现接下来的各项功能。l 创建函数的流程图:YN初始化循环变量i输出提示:"开始创建职工信息表!"i<n输入各个结构体数组元素的成员值函数返回值:结构体数组指针输出提示:"顺序输入姓名,年龄,工龄,性别,婚姻状况,级别,工资和是否在职"i+图1-3:创建职工信息功能模块流程图 创建职工信息功能:职工基本信息的录入。功能分析:职工信息包括姓名(name)、年龄(age)、工龄(worktime)、性别(sex)和婚姻状况(marrige)、级别(grade:1-5级)、工资(wage)、是否在职(tired)等信息。l 查询函

6、数的流程图:switch (m)Case4default输出查询子界面输入选择项mcase1: 按姓名查询Case2输出提示:"请输入查询的职工姓名:"设标志位flag=0;输入namei<n比较name和当前职工记录abcd输出对应格式的记录详细信息置标志位flag=1flag=0输出提示:"不存在符合条件的职工信息!"退出switchCase3退出switch输出提示:"输入有误,请重新进行选择!"YN图1-4:查询职工信息功能模块流程图 查询功能:按姓名、工龄、级别查询职工基本信息察看是否正确。l 修改职工信息功能模块程序

7、流程图修改职工信息switch (m)按姓名锁定按级别锁定按工龄锁定退出11图1-5:修改职工信息功能模块流程图 修改功能:按姓名、工龄、级别修改职工个人信息的。l 删除职工信息功能模块程序流程图删除职工信息switch (m)按姓名删除按级别删除按工龄删除退出1111图1-6:删除职工信息功能模块流程图 删除功能:按姓名、工龄、级别删除职工个人信息的。l 添加函数的流程图:m<=01,条件都成立输出提示:"请输入插入人数:"输入m输出提示:"输入有误,请重新输入!"i=0i<m输出提示:"顺序输入姓名,年龄,工龄,性别,婚姻状况,

8、级别,工资和是否在职"输入下标为n+i的数组记录n=n+m函数返回值:结构体数组指针NYY图1-7:添加职工信息功能模块流程图 添加功能:成功添加新进员工的个人信息。l 工资调整函数的流程图: 调整工资功能:按员工级别进行工资调整。 功能分析:对职工工资进行调整的程序规定如下:退休职工增加工资50元,在职职工1-5级的工资分别增加20,40,60,80,100。i=0i<nwwi.tired=0退休职工增加工资50元Yswitch(wwi.grade)case1: 工资增加20Case2: 工资增加40Case3: 工资增加60Case4: 工资增加80Case5: 工资增加1

9、00退出switchYN结束N图1-8:添加职工信息功能模块流程图l 输出函数的流程图: 输出功能:将更新的职工信息打印N开始n=0输出提示:"职工信息表为空!"Y输出提示:"开始输出职工信息表:"i<n输出对应格式的记录详细信息1wwi.sex='x'输出”男”输出”女”输出对应格式的记录详细信息2结束YNYN图1-9:输出职工信息功能模块流程图(三)具体设计分析如下:1.主函数实现:zgxxglxt.cpp(1)建立一个头文件:worker.h,其中,定义一个结构体worker,存放某个职工信息记录。结构如下:char name

10、20; /姓名int age; /年龄int worktime; /工龄char sex; /性别,x 代表男,y代表女int marrige; /婚姻状况,0 代表末婚,1代表已婚int grade; /级别int wage; /工资int tired; /是否在职,0 代表离职,1代表在职注意:为防止以后设计过程中的某一个源文件多次包含结构体worker的定义,应该使用条件编译指令。(2)定义一个整数100的常量M,用来定义结构数组。定义一个指针:worker *ww;以及ww=new workerM;(3)建立函数:int password();在zjm.h声明,在zjm.cpp定义。用

11、于口令验证。说明:无参。返回1,程序继续执行;否则,超过3次输入错误,退出系统。这里,退出函数可用:exit(1)。exit(0)表示正常退出。(4)建立函数:int xitongjiemian();在zjm.h声明,在zjm.cpp定义。用于主界面设计。说明:无参。返回主界面的选择项。(5)调用各个功能函数。以下是各个功能函数的设计。建立函数:worker *chuangjian(worker *ww,int n);在clgn.h声明,在clgn.cpp定义。用于创建一个或多个职工信息。说明:参数1,结构体指针;参数2,职工人数。返回结构体指针。2、建立函数:void print(worke

12、r *ww,int n);在clgn.h声明,在clgn.cpp定义。用于打印职工信息,查看每次操作结果。说明:参数1,结构体指针;参数2,职工人数。无返回。3、建立函数:void chaxun(worker *ww,int n);在clgn.h声明,在clgn.cpp定义。用于查询职工信息。说明:参数1,结构体指针;参数2,职工人数。无返回。4、建立函数:worker *insert(worker *ww,int &n);在clgn.h声明,在clgn.cpp定义。用于添加一个或多个职工信息。说明:参数1,结构体指针;参数2,职工人数,注意引用的使用。返回结构体指针。5、建立函数:v

13、oid gongzitiaozheng(worker *ww,int n); 在clgn.h声明,在clgn.cpp定义。用于工资调整。说明:参数1,结构体指针;参数2,职工人数。无返回。6、建立函数:worker *xiugai(worker *ww,int &n); 在update.h声明,在update.cpp定义。用于修改职工信息,调用子界面。说明:参数1,结构体指针;参数2,职工人数。返回结构体指针。7、建立函数:void updatename(worker *ww,int n); 在update.h声明,在update.cpp定义。用于按姓名修改职工信息。说明:参数1,结构

14、体指针;参数2,职工人数。无返回。8、建立函数:void updategongling(worker *ww,int n); 在update.h声明,在update.cpp定义。用于按工龄修改职工信息。说明:参数1,结构体指针;参数2,职工人数。无返回。9、建立函数:void updatejibie(worker *ww,int n); 在update.h声明,在update.cpp定义。用于按级别修改职工信息。说明:参数1,结构体指针;参数2,职工人数。无返回。10、建立函数:worker *Delete(worker *ww,int &n); 在delete.h声明,在delete

15、.cpp定义。用于删除职工信息,调用子界面。说明:参数1,结构体指针;参数2,职工人数。返回结构体指针。11、建立函数:worker *Deletename(worker *ww,int &n); 在delete.h声明,在delete.cpp定义。用于按姓名删除职工信息。说明:参数1,结构体指针;参数2,职工人数。返回结构体指针。12、建立函数:worker *Deletegongling(worker *ww,int &n);在delete.h声明,在delete.cpp定义。用于按工龄删除职工信息。说明:参数1,结构体指针;参数2,职工人数。返回结构体指针。13、建立函数

16、:worker *Deletejibie(worker *ww,int &n);在delete.h声明,在delete.cpp定义。用于按级别删除职工信息。说明:参数1,结构体指针;参数2,职工人数。返回结构体指针。3. 具体设计(一) 主界面头文件及源程序/zjm.hint password();int xitongjiemian();/*/* zjm。cpp */*#include<iostream.h>#include<string.h>#include<stdlib.h>int password() /登陆指令函数char p20;int n

17、=0;cout<<"请输入登录口令:"<<endl;while(1)cin>>p;if(strcmp(p,"abcd")=0)cout<<"输入口令正确!"<<endl;return 1;elsecout<<"输入口令错误,请重新输入!"n+;if(n=3)cout<<"已输入三次,您无权进行操作!"exit(1);int xitongjiemian() /系统欢迎界面cout<<"*&qu

18、ot;<<endl; cout<<"*-*"<<endl; cout<<"* 欢迎使用职工信息管理系统 * "<<endl; cout<<"* *"<<endl; cout<<"* 1.创建职工信息"<<"t"<<"2.查询职工信息 *"<<endl; cout<<"* 3.修改职工信息"<<"

19、;t"<<"4.添加职工信息 *"<<endl; cout<<"* 5.删除职工信息"<<"t"<<"6.调整工资 *"<<endl; cout<<"* 7.输出职工信息"<<"t"<<"8.退出! *"<<endl; cout<<"* *"<<endl; cout<<&q

20、uot;*-*"<<endl; cout<<"* 请输入相对应编码 *"<<endl; cout<<"*"<<endl; cout<<"请输入您要操作的功能编码"<<endl;int m;cin>>m;return m;(二) 主函数源程序/*/* zgxxglxt。cpp */*#include<iostream.h>#include<string.h>#include<stdlib.h>#i

21、nclude"worker.h"#include"zjm.h"#include"clgn.h"#include"delete.h"#include"update.h"const int M=100;void main()worker *ww;int n=0;ww=new workerM;if(password()while(1)switch(xitongjiemian()case 1 :cout<<"请输入创建职工信息的人数:"cin>>n;ww=ch

22、uangjian(ww,n); print(ww,n);break;case 2:chaxun(ww,n);break;case 3:xiugai(ww,n);break;case 4:ww=insert(ww,n);cout<<"插入后的职工信息表为:"<<endl;print(ww,n);break;case 5:ww=Delete(ww,n);cout<<"删除后的职工信息表为:"<<endl;print(ww,n);break;case 6:gongzitiaozheng(ww,n);break;c

23、ase 7:print(ww,n); break;case 8:exit(0);default:cout<<"输入有误,请重新进行选择!"<<endl;(三) 创建、查询、添加等函数的头文件及源程序/*/* clgn.h */*#include"worker.h"worker *chuangjian(worker *ww,int n);void chaxun(worker *ww,int n);worker * insert(worker *ww,int &n);void gongzitiaozheng(worker *w

24、w,int n);void print(worker *ww,int n);/*/* clgn.cpp */*#include<iostream.h>#include<string.h>#include<stdlib.h>#include"worker.h" worker *chuangjian(worker *ww,int n) / 员工信息创建 int i;cout<<"开始创建职工信息表!"<<endl;cout<<"顺序输入姓名,年龄,工龄,性别,婚姻状况,级别,工

25、资和是否在职"<<endl;for(i=0;i<n;i+)cin>>;cin>>wwi.age;cin>>wwi.worktime;cin>>wwi.sex;cin>>wwi.marrige;cin>>wwi.grade;cin>>wwi.wage;cin>>wwi.tired;return ww;void chaxun(worker *ww,int n) /员工信息查询cout<<" *n" cout<<&qu

26、ot; * *n" cout<<" * 1.按姓名查询 2.按工龄查询 *n" cout<<" * 3.按级别查询 4. 退出 *n" cout<<" * *n" cout<<" * 请输入相应编号: *n" cout<<" * *n" cout<<" *"<<endl;int m;int i,time,jibie,flag=0;char name20;cin>>m;sw

27、itch(m)case 1:cout<<"请输入查询的职工姓名:"<<endl;cin>>name;for(i=0;i<n;i+)if(strcmp(,name)=0)cout<<"第"<<i+1<<"个职工信息"<<endl; cout<<"姓名:"<<<<endl; cout<<"年龄:"<<wwi.age<

28、;<endl; cout<<"工龄:"<<wwi.worktime<<endl; if(wwi.sex='x')cout<<"性别:"<<"男"<<endl; else cout<<"性别:"<<"女"<<endl; if(wwi.marrige=0) cout<<"婚姻状况:"<<"未婚"<<

29、;endl; else cout<<"婚姻状况:"<<"已婚"<<endl; cout<<"级别:"<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl; if(wwi.tired=0) cout<<"是否在职:"<<"离职"<<endl; else cout<<"是否在职

30、:"<<"在职"<<endl;flag=1;if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl;break;case 2:cout<<"请输入查询的职工工龄:"<<endl;cin>>time;for(i=0;i<n;i+)if(wwi.worktime=time)cout<<"第"<<i+1<<"个职工信息"<<endl;

31、cout<<"姓名:"<<<<endl; cout<<"年龄:"<<wwi.age<<endl; cout<<"工龄:"<<wwi.worktime<<endl; if(wwi.sex='x')cout<<"性别:"<<"男"<<endl; else cout<<"性别:"<<&

32、quot;女"<<endl; if(wwi.marrige=0) cout<<"婚姻状况:"<<"未婚"<<endl; else cout<<"婚姻状况:"<<"已婚"<<endl; cout<<"级别:"<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl; if(wwi

33、.tired=0) cout<<"是否在职:"<<"离职"<<endl; else cout<<"是否在职:"<<"在职"<<endl;flag=1;if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl;break;case 3:cout<<"请输入查询的职工级别:"<<endl;cin>>jibie;for(i=0;i&l

34、t;n;i+)if(wwi.grade=jibie)cout<<"第"<<i+1<<"个职工信息"<<endl; cout<<"姓名:"<<<<endl; cout<<"年龄:"<<wwi.age<<endl; cout<<"工龄:"<<wwi.worktime<<endl; if(wwi.sex='x')co

35、ut<<"性别:"<<"男"<<endl; else cout<<"性别:"<<"女"<<endl; if(wwi.marrige=0) cout<<"婚姻状况:"<<"未婚"<<endl; else cout<<"婚姻状况:"<<"已婚"<<endl; cout<<"级别

36、:"<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl; if(wwi.tired=0) cout<<"是否在职:"<<"离职"<<endl; else cout<<"是否在职:"<<"在职"<<endl; flag=1;if(flag=0)cout<<"不存在符合条件的职工信息!"

37、<<endl;break;case 4:exit(0);default:cout<<"输入有误,请重新进行选择!"<<endl; void print(worker *ww,int n) /员工信息的输出int i;if(n=0)cout<<"职工信息表为空!"<<endl;elsecout<<"开始输出职工信息表:"<<endl;for(i=0;i<n;i+)cout<<"第"<<i+1<<

38、;"个职工信息"<<endl; cout<<"姓名:"<<<<endl; cout<<"年龄:"<<wwi.age<<endl; cout<<"工龄:"<<wwi.worktime<<endl;if(wwi.sex='x') cout<<"性别:"<<"男"<<endl;elsecout&l

39、t;<"性别:"<<"女"<<endl;if(wwi.marrige=0) cout<<"婚姻状况:"<<"未婚"<<endl;elsecout<<"婚姻状况:"<<"已婚"<<endl; cout<<"级别:"<<wwi.grade<<endl; cout<<"工资:"<<w

40、wi.wage<<endl;if(wwi.tired=0) cout<<"是否在职:"<<"离职"<<endl;elsecout<<"是否在职:"<<"在职"<<endl;worker * insert(worker *ww,int &n) /添加新进员工的个人信息 int m;int i; cout<<"请输入插入人数:"<<endl; cin>>m;if(m<

41、=0)cout<<"输入有误,请重新输入!"<<endl;elsefor(i=0;i<m;i+)cout<<"顺序输入姓名,年龄,工龄,性别,婚姻状况,级别,工资和是否在职"<<endl;cin>>wwn+; cin>>wwn+i.age; cin>>wwn+i.worktime; cin>>wwn+i.sex;cin>>wwn+i.marrige; cin>>wwn+i.grade; cin>>wwn+i

42、.wage; cin>>wwn+i.tired;n=n+m;return ww;void gongzitiaozheng(worker *ww,int n) /员工工薪调整for(int i=0;i<n;i+)if(wwi.tired=0)wwi.wage+=50;elseswitch(wwi.grade)case 1:wwi.wage+=20;break;case 2:wwi.wage+=40;break;case 3:wwi.wage+=60;break;case 4:wwi.wage+=80;break;case 5:wwi.wage+=100;break;(四) 删除

43、员工信息头文件及其源程序/*/* delete.h */*#include"worker.h"worker *Delete(worker *ww,int &n);worker *Deletename(worker *ww,int &n);worker *Deletegongling(worker *ww,int &n);worker *Deletejibie(worker *ww,int &n);/*/* delete.cpp */*#include<iostream.h>#include<string.h>#incl

44、ude<stdlib.h>#include"delete.h"#include"worker.h"worker *Delete(worker *ww,int &n)/删除职工信息cout<<" *"<<endl;cout<<" * *"<<endl;cout<<" * 1.按姓名删除 2.按工龄删除 *"<<endl;cout<<" * 3.按级别删除 4. 退出 *"&l

45、t;<endl;cout<<" * *"<<endl;cout<<" * 请输入相应编号: *"<<endl;cout<<" * *"<<endl;cout<<" *"<<endl;int m;cin>>m;switch(m)case 1:Deletename(ww,n);break;case 2:Deletegongling(ww,n);break;case 3:Deletejibie(ww,n);b

46、reak;case 4:exit(0);default:cout<<"输入有误,请重新输入!"<<endl;return ww;worker *Deletename(worker *ww,int &n) / 按职工姓名删除 int i,k,flag=0; char name20; char a;cout<<"请输入删除的职工姓名:"<<endl;cin>>name;for(i=0;i<n;i+) if(strcmp(,name)=0)cout<<&quo

47、t;找到符合条件的记录:"<<endl;cout<<"第"<<i+1<<"个职工信息"<<endl; cout<<"姓名:"<<<<endl;cout<<"年龄:"<<wwi.age<<endl;cout<<"工龄:"<<wwi.worktime<<endl;if(wwi.sex='x')

48、cout<<"性别:"<<"男"<<endl;elsecout<<"性别:"<<"女"<<endl;if(wwi.marrige=0)cout<<"婚姻状况:"<<"未婚"<<endl;elsecout<<"婚姻状况:"<<"已婚"<<endl;cout<<"级别:&quo

49、t;<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl;if(wwi.tired=0)cout<<"是否在职:"<<"离职"<<endl;elsecout<<"是否在职:"<<"在职"<<endl; cout<<"是否删除该记录,请确认<y/n>"<<endl; cin

50、>>a; if(a='y') for(k=i;k<n;k+) wwk-i=wwk; n-; i-;flag=1; if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl;return ww; worker *Deletegongling(worker *ww,int &n) / 按职工工龄删除 int i,time,k,flag=0; char a;cout<<"请输入删除的职工工龄:"<<endl;cin>>time;for(i=0

51、;i<n;i+) if(wwi.worktime=time)cout<<"找到符合条件的记录:"<<endl;cout<<"第"<<i+1<<"个职工信息"<<endl; cout<<"姓名:"<<<<endl;cout<<"年龄:"<<wwi.age<<endl;cout<<"工龄:"<<

52、;wwi.worktime<<endl;if(wwi.sex='x')cout<<"性别:"<<"男"<<endl;elsecout<<"性别:"<<"女"<<endl;if(wwi.marrige=0)cout<<"婚姻状况:"<<"未婚"<<endl;elsecout<<"婚姻状况:"<<&qu

53、ot;已婚"<<endl;cout<<"级别:"<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl;if(wwi.tired=0)cout<<"是否在职:"<<"离职"<<endl;elsecout<<"是否在职:"<<"在职"<<endl; cout<<&q

54、uot;是否删除该记录,请确认<y/n>"<<endl; cin>>a; if(a='y') for(k=i;k<n;k+) wwk-i=wwk; n-; i-;flag=1; if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl;return ww; worker *Deletejibie(worker *ww,int &n) / 按职工工龄级别int i,jibie,k,flag=0; char a;cout<<"请输入删除的职

55、工级别:"<<endl;cin>>jibie;cout<<"找到符合条件的记录:"<<endl;for(i=0;i<n;i+) if(wwi.grade=jibie)cout<<"第"<<i+1<<"个职工信息"<<endl; cout<<"姓名:"<<<<endl;cout<<"年龄:"<<wwi.age<<endl;cout<<"工龄:"<<wwi.worktime<<endl;if(wwi.sex='x')cout<<"性别:"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论