公司员工管理系统_第1页
公司员工管理系统_第2页
公司员工管理系统_第3页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、郑州轻工业学院实训报告实训名称:公司员工管理系统设计'时间:2009年12月31日至2010年1月3日郑州轻工业学院软件学院学生实训任务书一、题目“公司员工管理系统”设计二、学生信息专业信息安全07-03 学号2 姓名宋伯剑三、基本要求及约束条件1需求及内容为了方便对公司员工基本信息进行电子化管理,利用面向对象的程序设计技术实现对员工信息的自动化管理。系统应能满足如下的需求:增加员工数据信息更新员工数据信息查询员工数据信息删除员工数据信息良好的人际交互界面方便操作2难度分析及目标该课题涉及到面向对象程序设计技术,难度适中,工作量适中。该次实训的总体目标是培养学生对系统开发总体流程的了解

2、,经过本次实训,学生应能对系统开发的步骤和面向对象程序设计的思路有较好的理解和掌握。3要求及要点分析设计一个虚基类Staff (员工),包括编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出工程师类Engineer包含专业和职称保护数据成员以及相关的成员 函数,再由Staff派生出领导类Leader,包括职务和部门保护数据成员以及相关的成员函 数;然后由Engineer和Leader类派生出主任工程师类 Chairman。设计一个利用文件处理方式实现对公司人员(包括工程师、领导和主任工程师)进 行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能。编写程序实现游

3、戏,按照要求实现程序。游戏程序运行输出如下所示:C*建文件夹(3) Sf 建文件夹(2) Sf 建文 fl'YdrtYDebuEYcoBpany-staff, eze亮有 择加新询类: 1汪:28湫亠一一:2占:31巻増更*i删退魯宁各辭血各阶务習話业称务名龄业 连嗚a.3.4.5.1人编姓善职继人编姓年职量人编萼职职量人编姓萼职继4帀工 e>?# -(: 电级體>?帀nF壬戟<-:TT-r 马e : 长计丽妝名T- 气筆产 40电亠n屛生-C -吗<ein型hk:4:3:4i? n_C :主任工柱师=e丄:领导,“领导,“领导,Z主任工程师2主任工程师址3c

4、:主任工程师:e4.设计要求、技术参数及设计规格1、设计的系统能够运行,提交压缩程序;2、提交实训报告,按“实训报告要求”撰写;3、 程序设计环境为 visual C+6.0 和 WindosXp 或 Windows2000;4、所有的设计工作需要同学自己真实地、独立地完成。5工作量天/日期任务描述09年12月31日需求分析;算法分析;绘制流程图10年01月01日程序代码设计与实现10年01月02日程序代码实现、测试10年01月03日实训文档书写、作品成绩评定四、考核形式、考核时间、考核指标及成绩评定实训成绩由下面构成:实训纪律、实训态度和平时表现占20%;实训结果占50%;实训报告占30%。

5、考核形式:1)老师每日对学生的考察、评估和考核;2)最后对实训项目完成的质 量进行考核和验收。完成期限:2008年1月3日指导教师签章:郭锋、王秉政专业负责人签章:教学院长签章 :公司员工管理系统1.需求分析1)企业员工设计理论分析在人才过剩的今天, 企业对于有用人才的需求逐步加大, 企业内部的人事变动和部 门的规划也开始加速, 传统的人事档案已经不能满足各个企业的人员流动速度迫使人们 启用新的管理方法来管理员工的相关信息。 科学技术日新月异的进步, 让人类生活发生 了巨大的变化, 计算机技术的飞速发展, 使各行各业在计算机技术应用方面得到了广泛 的普及和实用。 信息化时代的到来成为不可抗拒的

6、潮流, 人类文明正在进入一个崭新的 时代。因此,员工管理系统也以方便,快捷,费用低,绿色环保的优点正在慢慢的进入 各个行业和领域,将传统的员工管理方式彻底解放出来,提高效率,减轻工人人员以往 繁忙的工作加速信息的更新速度, 使企业管理层第一时间了解到员工的信息, 从而进一 步的进行对员工的调配。2)系统设计思想 采用现有的资源,先进的管理系统开发方案,充分利用企业现有的资源,减少 开发中的时间和财力、 物力、提高系统开发的水平和应用效果。 系统就满足企业的需求, 例如职工信息的录入、查询、更新等。能够及时根据用户需求进行数据录入、查找,修 改,删除等操作。3)系统设计分析本系统适用于中型企业,

7、 其功能为:用于对用户的添加, 及对用户的修改, 查询、删除。职工信息包括职工号、姓名、工资、部门、员工类型、工作时间等(职工号不重复)。本系统性能力求易于使用,具体有较高的扩展性和可维护性。4)系统功能分析查询功能:为所有用户提供查询的功能。录入功能:录入员工信息,用于完善员工信息的功能。修改功能:为所有用户进行修改,维护,用于维护信息 退出功能:用于退出管理系统。5)企业员工管理系统所需完成具体的功能:能够从屏幕上读取一个职工的信息。能够将指定的职工信息从文件中删除、修改。系统总体应能满足如下的需求:增加员工数据信息更新员工数据信息查询员工数据信息删除员工数据信息良好的人际交互界面方便操作

8、2.算法分析利用C+类对象的应用,创建类函数 Staff和void display1();void setup();int lookfor(int m);void lookfor1(int m);voidedit();void Delete(); 具体每个步骤中利用 Case 语句和 If 语句进行条件判断,利用数组存储输入的数据,进入主菜单后,每一个选项对应一个switchcase 选择语句,里面包含主菜单调用语句 goto loop ;和时间延迟语句 Sleep(1500) ,主函数调用语句等。 查找和输入员工信息模块采用ifelse条件判断语句。在显示所有员工信息的模块中用数组的形式存放

9、数据。用 for 循环语句循环输出信息車新选择土 杏找员丄信息返冋主菜单3绘制流程图匚菜单修改姓名修改年龄修改专业修改职称修改部门员T姓年专部职编 号名龄业门4.代码程序设计,实现,与测试进入主菜单:环 VIOOTST»pRar*DID8. 704DebueCppl.exe*氏件不存在请选择相应功能寰昇鼻牺: :SXJCMMXMKM且弹8W:1录入职工信息II 2蛊示厉有职工的信息 ;i孑按工资查谒:i 4技学历查询;! £巻学历撫序! 7携职工号删除职工信息! 8按职工寻修改职工信息;! ?退岀!输入职工信息:頁 *C: f IHD0TST»pRar*DID8.

10、 704DebueCppU exe*胡输入职工号27请输入阴工姓名Xsongbojidin请输入职工性别;nam 请输入职工岀生年月;1860929请输入职工学历benke请输入职工职位yuansrong请输入职工工资;80Q请选择相应功能風具風E H!比凰m:-貝貝-MrMrKMttli且!M !M風具! z的信息显示所有职工的信息:姓名性别岀生年月学历职务工资27HWW29songbojianl?S&d929lisi nv请选择相应功能!M M! !«e N M!M:M JM 貫! 1鑒入职工信息:2覺示所有职工的信息:孑按工资查询i 4找学历查询磔除职口 职工寻修改职口

11、;嵌工融序自 n,戸 Jiii*i 6! 7! SZ退出!風貝 if 8K 貝民呉MrMrMrKMHIi JM 貫:M !M W! if 凰良可以根据工资的多少查询到职工本人:曲 *C:<INl)OfSTeBpRar»DID8. 704DebueCppl.exe:$拱职工号修改职工信息! 9退出!请输入职工的工资1806职工号姓名 性别岀生年月学历 职务工资lisi nv请选择相应功能870929 benlfe昶騎除职工信息 职工寻修改职工信息la n k p此工号姓名 性别岀注年月7songbojianQO请选择相应功能nanXl?®60929学历 职务工资17S&

12、amp;0929benkeyuangonv:1录入职工信息I 2蛊示爺有职工的信 i孑按工资查询i 4技学历查询 i我堂井毛学历揶序职工号删除职工 职工寻修改职工 ! 9退出!Q_信自心自心風具良風址良X鼻JK Jtf KJf-K-K-MrU 且且且崑!M !K風具風貝轨! 1逮职工信息1I 2壷示箭有顚工的信息::孑按工资查询i 4技学历查询 i嵌工融序! 6:7! S ! 9退出!風具風風良聲鼻Hm按学历查询职工的相关信息:环 *C: TTNDOVST»pRar*DID8. 704DebueCppl.exe*! 9退出!删除后显示所有人员信息:环 *C: >IOOfSTe&

13、#187;pRar$Dl08. 704DebueCppl.exe息自心 T-T- 职职S F-序删修 制历工工: mis 弓 6 7 8 9*e X e息息 工工 职职 除改修改职工信息:馬柯入职工姓名;lis 1商输人新的职工号:请输入新的学历:dazhuan请输入新的工资匕请输入新的岀生年月,1986B7OS情输入新的性别:lLin鬲输入新的职位;1逐选择相应功能#include<stdio.h>#include<conio.h>#include<malloc.h>#include<string.h>typedef struct Staff

14、/*虚基类 Staff*/char zhigongNumber10;/* 职工号 */ char zhigongName20;/* 职工姓名 */ char zhigongsex4; /* 职工性别 */ char zhigongage10; /* 出生年月 */ char zhigongedu10;/* 学历 */ char zhigongposition30; /* 职务 */ char zhigongwage1000; /*工资 */struct Staff *next;Staff;Staff *headLink;/*链表表头指针 */* 以下是函数声明 */void ReadInfoF

15、ormFile(void);void DesplayMenu(void);void CreateHeadLink(void);Staff *MallocNode(void);void GetInformation(Staff *t);void InsertOneNode(Staff *t);void DesplayInfoByzhigongwage(void);void DesplayInfoByezhigongedu(void);void DesplayOneNode(Staff *t);void DeleteNodeByzhigongNumber(void); void OutputInf

16、ormation(void);void ChangeMarkByzhigongName(void); void CompositorByTotalzhigongwage(void); void CompositorByTotalzhigongedu(void);void SaveLinkToFile(void);int choose;/* 用于接受用户的选择 */* 主函数 */void main()CreateHeadLink();ReadInfoFormFile();DesplayMenu();SaveLinkToFile();void ReadInfoFormFile(void)FILE

17、 *fp;Staff *p;fp=fopen("zhigong.txt","r");if(!fp)printf(" 文件不存在 n"); return;p=MallocNode();while(fscanf(fp,"%s%s%s%s%s%s%s",p->zhigongNumber,p->zhigongName,p->zhigongsex, p->zhigongage,p->zhigongedu,p->zhigongposition,p->zhigongwage)Insert

18、OneNode(p);p=MallocNode();fclose(fp);void DesplayMenu(void)Staff *p;printf(" 请选择相应功能 nn");printf("| 1录入职工信息|n");printf("| 2显示所有职工的信息|n");printf("| 3按工资查询|n");printf("| 4按学历查询|n");printf("| 5按工资排序|n");printf("| 6按学历排序|n");printf(&q

19、uot;| 7按职工号删除职工信息 |n")printf("*n");printf(" | 9 退出 |n");printf("*nn");scanf("%d",&choose);/* 取得用户的选择 */switch(choose)p=MallocNode();/* GetInformation(p);/* InsertOneNode(p);/* break;case 2:先申请一个新结点 */ 要求用户输入信息到新结点中 */ 将新结点加到链表中 */OutputInformation();/

20、*显示所有职工的信息 */case 1:break;case 3:DesplayInfoByzhigongwage();/* break;case 4:DesplayInfoByezhigongedu(); /*break;case 5:CompositorByTotalzhigongwage();/* break;case 6:CompositorByTotalzhigongedu();/* break;case 7:DeleteNodeByzhigongNumber();/*根据用户输入的职工工资显示该职工的信息 */根据用户输入的职工学历显示该职工的信息 */ 按工资排序 */按学历排序

21、 */根据用户输入的职工号删除该职工信息 */break;case 8:ChangeMarkByzhigongName();/*根据用户输入的职工姓名修改该职工信息*/break;case 9:SaveLinkToFile();/* 保存数据后再退出 */ free(headLink);default: break;DesplayMenu();/* 递归调用 */* 函数功能:建立链表表头 */ void CreateHeadLink(void) Staff *p; p=(Staff*)malloc(sizeof(Staff); headLink=p;p->next=NULL; /* 函

22、数功能:申请一个新结点,并将其初始化 */Staff *MallocNode(void)Staff *p;int i;p=(Staff*)malloc(sizeof(Staff); if(p=NULL) return NULL;for(i=0;i<10;i+) p->zhigongNumberi='0'for(i=0;i<20;i+) p->zhigongNamei='0'for(i=0;i<4;i+) p->zhigongsexi='0'for(i=0;i<10;i+) p->zhigongage

23、i='0'for(i=0;i<10;i+) p->zhigongedui='0'for(i=0;i<30;i+) p->zhigongpositioni='0' for(i=0;i<1000;i+)p->zhigongwagei='0' p->next=NULL;return p;/*函数功能:取得用户输入的职工信息*/void GetInformation(Staff *t)printf(" 请输入职工号: n"); scanf("%s",t-&g

24、t;zhigongNumber);printf(" 请输入职工姓名: n"); scanf("%s",t->zhigongName);printf(" 请输入职工性别: n"); scanf("%s",t->zhigongsex);printf(" 请输入职工出生年月: n"); scanf("%s",t->zhigongage);printf(" 请输入职工学历: n"); scanf("%s",t->zhig

25、ongedu);printf(" 请输入职工职位: n"); scanf("%s",t->zhigongposition);printf(" 请输入职工工资: n");scanf("%s",t->zhigongwage);/* 函数功能:在链表的结尾处增加一个结点 */ void InsertOneNode(Staff *t)Staff *p;p=headLink;while(p->next)p=p->next;p->next=t;/* 函数功能:根据用户输入的职工工资显示该职工的信息

26、 */ void DesplayInfoByzhigongwage(void)Staff *p;char zhigongwage1000;char flag=0;p=headLink->next;printf(" 请输入职工的工资: n");scanf("%s",zhigongwage);while(p)if(strcmp(p->zhigongwage,zhigongwage)=0)printf(" 职工号 t 姓名 t 性别 t 出生年月 t 学历 t 职务 t 工资 nn"); DesplayOneNode(p);fl

27、ag=1;break;p=p->next;if(!flag)printf(" 对不起,不存在工资为 %s 的职工 n",zhigongwage);/* 函数功能:根据用户输入的职工学历显示该职工的信息 */ void DesplayInfoByezhigongedu(void)Staff *p;char zhigongedu10;char flag=0;p=headLink->next;printf(" 请输入职工学历: n");scanf("%s",zhigongedu);while(p)if(strcmp(p->

28、zhigongedu,zhigongedu)=0)printf(" 职工号 t 姓名 t 性别 t 出生年月 t 学历 t 职务 t 工资 nn"); DesplayOneNode(p);flag=1;break;p=p->next;if(!flag)printf(" 对不起,不存在学历为 %s 的职工 n",zhigongedu);/* 函数功能:输出一个结点的信息*/void DesplayOneNode(Staff *t) printf("%st",t->zhigongNumber); printf("%s

29、t",t->zhigongName);printf("%st",t->zhigongsex);printf("%st",t->zhigongage);printf("%st",t->zhigongedu);printf("%st",t->zhigongposition);printf("%stn",t->zhigongwage);/* 函数功能:根据用户输入的职工号删除该职工的信息 */ void DeleteNodeByzhigongNumber(

30、void)char zhigongNumber10;Staff *p,*q;char flag=0;printf(" 请输入要删除的职工的职工号: ");scanf("%s",zhigongNumber);p=headLink;q=headLink->next;while(q)if(strcmp(q->zhigongNumber,zhigongNumber)=0) p->next=q->next;free(q);flag=1;break;p=p->next;q=q->next;if(!flag)printf("

31、; 不存在该职工号的职工 n");return;printf(" 成功删除 n");/* 函数功能:显示所有职工的信息 */ void OutputInformation(void)Staff *p;p=headLink->next;if(p=NULL)printf(" 现在没有职工信息,请先输入职工信息 nn");return;printf(" 职工号 t 姓名 t 性别 t 出生年月 t 学历 t 职务 t 工资 nn"); while(p)DesplayOneNode(p);p=p->next;/* 函数功

32、能:根据输入的职工姓名修改员工的信息 */ void ChangeMarkByzhigongName(void)Staff *p;char zhigongName10;char flag=0;char zhigongedu,zhigongwage,zhigongage,zhigongNumber,zhigongsex,zhigongposition; p=headLink->next;printf(" 请输入职工姓名: n");scanf("%s",zhigongName);while(p) if(strcmp(p->zhigongName,

33、zhigongName)=0)printf("请输入新的职工号: n");scanf("%s",&zhigongNumber);printf("请输入新的学历: n");scanf("%s",&zhigongedu);printf("请输入新的工资: n");scanf("%s",&zhigongwage);printf("请输入新的出生年月: n");scanf("%s",&zhigongage);pr

34、intf("请输入新的性别: n");scanf("%s",&zhigongsex);printf("请输入新的职位: n");scanf("%s",&zhigongposition);strcpy(p->zhigongposition,&zhigongposition); strcpy(p->zhigongsex,&zhigongsex); strcpy(p->zhigongNumber,&zhigongNumber); strcpy(p->zhig

35、ongedu,&zhigongedu); strcpy(p->zhigongwage,&zhigongwage); strcpy(p->zhigongage,&zhigongage);flag=1;printf(" 修改成功 n");break;p=p->next;if(!flag)printf(" 对不起,不存在姓名为 %s 的职工 n",zhigongName);/*函数功能:保存链表数据到文件中*/void SaveLinkToFile(void)Staff *p;FILE *fp;p=headLink-&

36、gt;next;if(p=NULL)printf(" 现在没有职工信息,请先输入职工信息 nn");return;fp=fopen("zhigong.txt","w+");if(!fp)printf(" 文件不存在 n");return;while(p)fprintf(fp,"%s%s%s%s%s%s%s",p->zhigongNumber,p->zhigongName,p->zhigongsex, p->zhigongage,p->zhigongedu,p->

37、;zhigongposition,p->zhigongwage);p=p->next;fclose(fp);/*函数功能:按职工工资排序*/void CompositorByTotalzhigongwage(void)Staff exchange,*r,*p,*q;r=headLink->next;if(r=NULL)printf(" 现在还没职工信息 , 请先输入职工信息 n");return;while(r)/* 两层 while 循环实现排序 */p=r;q=r->next;while(q)if(p->zhigongwage)>(p

38、->zhigongwage)strcpy(exchange.zhigongNumber,q->zhigongNumber);/* strcpy(exchange.zhigongName,q->zhigongName); strcpy(exchange.zhigongsex,q->zhigongsex);strcpy(exchange.zhigongage,q->zhigongage);strcpy(exchange.zhigongedu,q->zhigongedu); strcpy(exchange.zhigongposition,q->zhigong

39、position); strcpy(exchange.zhigongwage,q->zhigongwage);先复制 q 结点信息到exchange*/strcpy(q->zhigongNumber,p->zhigongNumber);/* strcpy(q->zhigongName,p->zhigongName); strcpy(q->zhigongsex,p->zhigongsex); strcpy(q->zhigongage,p->zhigongage);strcpy(q->zhigongedu,p->zhigongedu

40、); strcpy(q->zhigongposition,p->zhigongposition); strcpy(q->zhigongwage,p->zhigongwage);再复制 p 结点信息到 q*/strcpy(p->zhigongNumber,exchange.zhigongNumber);/*最后复制 exchange 结点信息到p*/ strcpy(p->zhigongName,exchange.zhigongName); strcpy(p->zhigongsex,exchange.zhigongsex); strcpy(p->zh

41、igongage,exchange.zhigongage); strcpy(p->zhigongedu,exchange.zhigongedu); strcpy(p->zhigongposition,exchange.zhigongposition); strcpy(p->zhigongwage,exchange.zhigongwage);q=q->next;r=r->next;OutputInformation();/*函数功能:按职工学历排序*/void CompositorByTotalzhigongedu(void)Staff exchange,*r,*p

42、,*q;r=headLink->next;if(r=NULL)printf(" 现在还没职工信息 , 请先输入职工信息 n");return;while(r)/* 两层 while 循环实现排序 */p=r;q=r->next;while(q)if(q->zhigongedu)>(p->zhigongedu)strcpy(exchange.zhigongNumber,q->zhigongNumber);/* strcpy(exchange.zhigongName,q->zhigongName); strcpy(exchange.zh

43、igongsex,q->zhigongsex); strcpy(exchange.zhigongage,q->zhigongage);先复制 q 结点信息到exchange*/strcpy(exchange.zhigongedu,q->zhigongedu); strcpy(exchange.zhigongposition,q->zhigongposition); strcpy(exchange.zhigongwage,q->zhigongwage);再复制 p 结点信息到 q*/最后复制 exchange 结点信息到strcpy(q->zhigongNumber,p->zhigongNumber);/* strcpy(q->zhigongName,p->zhigongName); strcpy(q->zhigongsex,p->zhigongsex); strcpy(q->zhigongage,p->zhigon

温馨提示

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

评论

0/150

提交评论