C语言程序设计基础课程设计工资系统报告全新精选_第1页
C语言程序设计基础课程设计工资系统报告全新精选_第2页
C语言程序设计基础课程设计工资系统报告全新精选_第3页
C语言程序设计基础课程设计工资系统报告全新精选_第4页
C语言程序设计基础课程设计工资系统报告全新精选_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、目录一、需求分析2二、概要设计2三、详细设计4四、调试分析4五、用户手册5六、测试数据6七、程序代码14A'需求分析1 .第一步,依据身份进行登录,管理员和职工所能进行的操作不同,具备较高安全性,同时用户可根据需要修改自己的密码,管理员还可添加和删除用户,首次使用时不存在用户,管理员可进行注册,注册成功后再进入使用。2 .多职工信息进行操作时,建立动态链表,每个节点包含一个职员的工号、姓名、工资等全部信息,通过链表构建一个完整的职工信息库,链表具备录入、删除、修改、查询及统计功能,各功能显示在菜单中,由主函数分别调用。3 .为了避免一个函数体过长,进行细化子函数,小型子函数在各个主调函

2、数里多次调用,便于使用。4 .以可读可写可追加方式新建一个文本文件,用于存储链表里所有节点上包含的信息,将节点信息导入文件时,从头指针开始,依次写入。5 .查询、修改、删除、职工信息时,调用子函数以只读方式打开系统库文件,并将文件从头至尾读取一遍,每次读取一个节点的长度,将每次读取到的信息依次导入到链表的节点中去,再对链表进行所需功能的操作。修改和删除完成后,将整个链表包含的信息重新写入文件,写入之前打开系统库文件同时进行格式化。6 .统计职工最高、最低工资及工资均方差时,以同时方式将职工工资等信息导入到链表中,然后以子菜单的形式输出统计的项目,包括各部门和全公司以及最高、最低工资和工资均方差

3、。统计各部门最高、最低工资和工资均方差时需再调用子函数分别进行操作。统计全公司最高、最低工资和工资均方差时采用多分支结构进行。7 .通过屏幕操作等函数对界面进行处理,相对美观。菜单及所有操作提示信息均采用中文输出,每一步操作后会有相应的提示。如文件不存在或为空时,会提示“文件打开失败!”或“文件是空的!”或输入有误时提示重新输入。二、概要设计1 .函数设计main();主函数控制整个程序流程,先登录再进行子函数调用menu1();管理员菜单函数menu2();职工菜单函数,可操作范围比管理员小createlianbiao();创建链表函数,用链表构建整个信息库input();录入函数,将链表存

4、进文件readwenjian(structemployee_gz*head);读取文件内容至U指定链表search(structemployee_gz*head,charxinxi);查询员工工资信息shuchuxinxi(structemployee_gz*head,charxinxi);输出查询至U的员工信息xiugai(structemployee_gz*head,charinfor);修改链表信息送至U主修改里去modify(structemployee_gz*head);修改文件里员工工资信息Delete(structemployee_gz*head);删除文件里某员工信息shanc

5、hujd(structemployee_gz*head,charinfo);删除节点信息zhuceyh();注册账号tianjiayh();添加账户信息deleteyh();删除用户信息choose(structemployee_gz*head,charbumen);选择统计的项目count_zdgz(structemployee_gz*head,charbumen);用于某部门计算最低工资count_zggz(structemployee_gz*head,charbumen);用于某部门计算最高工资count_pjgz(structemployee_gz*head,charbumen);用于

6、某部门计算平均工资count_gzfc(structemployee_gz*head,charbumen);用于某部门计算工资方差count_gz(structemployee_gz*head,charbumen);浏览统计的各项工资指标tianjiayh();管理员可进行添加职工账户信息,用于职工登录系统查询信息2 .流程控制(1)主函数模块intmain()读取账户文件;do管理员登录;函数分支:1)录入记录:调用读取职工工资信息文件函数和创建链表函数后写入文件;2)删除记录:调用读取职工工资信息文件函数和修改链表函数后重新写入文件;3)查询记录:调用读取职工工资信息文件函数和输出所查节点

7、信息函数;4)修改记录:调用读取职工工资信息文件函数和修改节点信息函数后重新写入文件;5)统计记录:采用两层多分支结构,第一层分支结构进行部门选择,调用读取职工工资信息文件函数和统计最低、最高、平均工资和工资方差函数,统计全公司工资时直接查找和计算;6)重新登录:返回主函数;7)添加登录账户:调用添加账户函数;8)修改账户密码:调用修改密码函数;9)删除登录账户:调用删除账户函数;0)退出系统:exit(0);职工登录;函数分支:1)查询个人记录:调用输出符合搜索条件的节点信息函数;2)浏览公司记录:调用统计工资函数;3)重新登录:返回主函数;4)修改登录密码:调用修改密码函数;0)退出系统:

8、exit(0);while(退出系统:exit(0)三、详细设计1 .基本数据类型字符串型;(2)长整数型;2 .程序设计步骤说明及注释(1)函数介绍及调用关系见概要设计。(2)注释见附录(源代码中以标出注释)。四、调试分析1 .开始创建了链表之后,将整个链表中的信息写入文件时,写入方式不对,向文件里写入数据块内容时,数据以二进制方式存储,新建文件和打开文件的方式必须加上b,并用循环控制,从头结点开始,每次写入一个节点,数据长度为1,而不是其他的数字。2 .修改和删除后文件里的数据出现错乱,再次查询时出现乱码,原因还是操作后的写入方式不对,需要以“wb”方式将原文件清空再将整个链表中的信息写入

9、。3 .进行工资信息统计时,输出结果有错误,加入员工数的输出后发现输出的员工数比录入的多,且其工资为0的情况,进行查询函数检验时发现会输出多余的空信息(无职工名、无工号、工资为零等)或者重复输出,原因应该是存入文件时存在问题,因此在输出查询信息及统计时加入了限制条件将空节点或者多余的信息筛选掉。4 .统计分为各部门和全公司,如果只用一个子函数实现所有统计功能则比较繁琐、函数体太大,因此需再使用子函数分别对各项目进行统计,那么进行不同部门的统计时调用子函数就比较困难。因此在这些统计最低工资、最高工资、平均工资、工资方差的函数中,需要定义一个部门变量,在条件语句里把部门信息通过参数传递在子函数中使

10、用,从而通过条件语句找到该部门信息并统计。5 .在删除和修改函数中,为了避免繁琐,同样调用子函数对链表进行操作,在进行修改方式和删除方式选择时,需要重新定义一个共同变量并传递给子函数,在判断语句里采用“或”语句对姓名和工号同时搜索。6 .在进行职工信息添加时,开始没有避免重复信息的输入,输入已有的职工工号时,应提示“已有该职工信息!”,因此要对原文件的内容进行便利检索,同时要对正在建立的链表进行检索,因为无法将原文件内容与正在建立的链表连接起来,只能通过对两个链表进行两次检索,将正在建立的链表以追加的方式写到已经建立好的文件中(添加到元数据后面)。7 .进行菜单内的操作提示输入有误时,再按任意

11、键会直接退到主菜单,再要进行该操作需重新选择菜单,耗费时间,使用循环语句控制,提示“输入有误时!”再次提示输入,将新输入的数据重新赋给变量,知道输入信息正确时,包括部门及职务的合法性检验。8 .将职工的基金、税金、应发工资等信息修改后,输出查询的各项结果除以修改的其他的不变,那么就不符合要求,因为应发工资等于基本工资与岗位工资、奖金之和,实发工资等于应发工资减去基金和税金,因此修改这些信息时,需要重新计算,保证各项信息正确。9 .上一界面或者上一语句操作完成后需跳转下一语句,有时会出现两层信息重叠在一起,甚至错误,原因是没有消除上一层内容,因此需要在很多地方加入清屏操作或是删除上一行的操作,进

12、行删除上面多行时,要从所需删的最下面一行开始删除,依次向上。10 .职工登录后,把其工号(用户名)作为参数传递给子函数,查询其个人信息时,按此工号对文件里的内容(先将文件内容读到链表里)进行检索后输出。11 .开始没有修改登录密码的操作,不便于用户使用,增加修改密码函数后,管理员和职工可以各自修改自己的密码,保证用户安全。后来还同时添加了删除登录账户函数,便于管理员管理。12 .考虑到首次使用时,没有任何账户信息,也没有存储用户的文件,而导致运行故障。因此首次运行时,增加语句完成管理员用户的注册,注册成功后管理员再进行相关操作。五、用户手册1 .本程序的运行环境为windowsxp或windo

13、ws7(32位)的操作系统,执行文件为GONGZI-1.EXE。2 .打开运行程序后,按照提示进行登录操作身份分为管理员和职工,依据自己的身份对应用户名及密码登录,身份不符将不能登录,需重新输入。管理员首次运行应先录入信息,并添加对应的职工登录账户信息。3 .职工登录后菜单与管理员不同,职工只能查询自己信息和浏览公司及各部门最高、最低工资以及平均工资和工资方差信息,并可选择重新登录。4 .管理员进行管理时,可添加、删除登录账户,管理员和职工用户可根据喜好修改自己的登录密码。5 .完成所需操作后可选择重新登录或退出程序。六、测试数据1.文件中包含的所有数据互c“d改itieFrpiit*小臬而t

14、zmHQUl”,ESS?J,M:1301工号:1392工号:1押3工号:1那4工号:13打4:1306工号:1307工g:13M工百;138T工号:131:1311_-5:1312二号:向a工号:13i4I§=1315T4:13U工事UT4iiaie工号:1319T-:132fi姓名;U£hifj名:renting件名Trnnglvta姓名:*«njning姓名JzMnwei洋名:lianqqi姓名:vonlians程官:llinachengf冲3"niectian*含:jhnutan姓名:sunlu(i姓名改口国h娘dng姓名:Mt¥nng姓

15、名:fAnsftong姓>gisonsfyu姓苫:rudong旌名工川J0姓名:i娃名皿u姓名:chunir>4虹基本丁资信息吗?>T李择细交直一1部门,ruftJlanxue押an部n:ruanjjanxueyuan:FiiAvtjTAnivirpyvjiin=ruanj:ruanjianxueyvanzxuegiengchu:Ku.egi«ncliiU;xuegiengchu:xuegongchu廿xu史Vnf/aliii工不2b,工gmi*£pw«h«icbuiew3b-«ich4i:£ieb«lch

16、<i:renshichci-ipflriEhichtiJ:re«ii>hlcmf-renshichAi一:手和力殳hichu53外埼咨贺费有资工工工工工工工工工工工工工工工工工工工工甘管tt1片g.廿环磐杳.-4C发发一女¥安雪安安X宾室安天天军X实实实实安昊:3399;3iei:3836:4523川4213336:3117r5#22;4?78:35«2ilSflfl6399:4S12页2 .注册账户亘C:EWCiriE'HZPIUserS®iiODeEi'l.I* a十册册ivin动空nlHn4s成a a 3 眇 IJfrH

17、 U : 2fitt 件面而名-1注 夕下霓耨已 些隹工工工含谓情3 .管理员和职工菜单亘C:DOCUMEl桌面,匕口工噂工1.exh*二二二二一*M*二二二二二一一录录统制统一一一系一)录01一一系一一理XS土二二X二二二二二二二一一家善心息户一一一一说曾信耳一一户筑一-一一工,L工账系一律一一人国加除一一选灵育线添删二二二M二二二二二一入一“输MC:POCTTMElUPBUrer;&IUIBOUL,4.录入职工信息工一个公簧职一一询善氢工三生司录出Tf息息统 统“值%.?¥* 资#H工工工-二 二 二 二 二 C< CrDCCTTIE*J IPirisprimuon

18、* 1. 杵可刈“录入职工工演信息产4名门马贪本金,金宝位工今生部职篡基重岗工工工工工工工工IJF工入入入入入入入入入入入;1321诬号;5729»6«9218338?7ijuuajk:4«3工愦:SS"5 .查询信息RM向二 1 a & 2102 4 B i n n 1 0 2 5 查 zhil=7nj回ji:3:6:4!3 ileiz触号Unwei资831Xi 11 正rqkr 5yLn DDL af名小痂m缶即心知sJ灯灯籍基基意H南应实 想工工工工工工工工工二二二工 。口"X口Tlnz 口八口八口八口人 口队 口h口;口4 ET

19、NEK 士 * *艮1耳耳&HR耳耳耳耳耳B,CiDDUlEblIPnJsfliUDIHDUL.exe6 .修改信息,:C;DOCU1E为XZPIUjerI窠面ZU1HQ1.eie7.删除信息8.统计单位及项目选择oCiVDOCITIE"lXIPIlJscrXjRBjVZniHOn'Rcit9.输出统计信息仆j二-I由一工工工方M 1”低高均费 六一 I您想.统计哪一项上联 c;tDoanE"ispiUH”余,,-eH,*«!*请淘入您的选择;4全主工公司的公立的Epq统计部门:xuugurigcihu舞神差工工工万很商筠愦最帛工1234部部部个个

20、个这这这计哪一项4口的职工数为E1的惠工之和是2岫孤1的隼均工费是41*.10.查询个人信息第12页11.信息合法性校验口;C:MXKUIElIPlUjorS.MZUII10iri.czc一号 资 资 !«-H H 门拉贯本金金鱼做 修冲斗部即帮其复税上同 想 8 1 您*l$*3H*bK*7*fi"9*l川 4C:kDOCUKE'lEFKirser:lftjlUIBOU''l.exe应飞电M-54RT*9肛*1修完12.提示信息第1413.修改密码第15页七、附录1 .源程序文件清单:数据:C:KESHE(员工工资信息文件)C:XITONGJIAM

21、I(账户登录名及密码文件)2 .源程序#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<conio.h>#include<bios.h>structemployee_gz*createlianbiao();/*声明创建链表函数*/structemployee_gz*input();/*声明录入函数*/structemployee_gz*count_gz(structemployee_gz*head,charbumen)

22、;/*声明统计函数*/structemployee_gz*search(structemployee_gz*head,charxinxi);/*声明查询函数*/structemployee_gz*modify(structemployee_gz*head);/*声明修改文件函数*/structemployee_gz*xiugai(structemployee_gz*head,cha门nfor);/*声明修改链表函数*/*声明删除函数*/structemployee_gz*Delete(structemployee_gz*head);structemployee_gz*shanchujd(str

23、uctemployee_gz*head,charinfo);/*声明删除节点函数*/void zhuceyh();/*声明注册账号函数*/void menu1();/*声明管理员菜单函数*/void menu2();/*声明职工菜单函数*/void tianjiayh(); /*声明添加账户信息函数*/void deleteyh(); /*声明删除用户函数*/*声明修改账户密码函数*/voidxiugaimm(charyhm,charshenfen);voidchoose(structemployee_gz*head,charbumen);/*声明统计中白选择函数*/structemploye

24、e_gz*readwenjian(structemployee_gz*head);/*声明读取文件函数*/structemployee_gz*shuchuxinxi(structemployee_gz*head,charxinxi);/*声明输出彳t息函数*/void count_zdgz(struct employee_gz *head,char bumen);/*声明计算最低工资函数*/void count_zggz(struct employee_gz *head,char bumen);/*声明计算最高工资函数*/void count_pjgz(struct employee_gz *

25、head,char bumen);/*声明计算平均工资函数*/void count_gzfc(struct employee_gz *head,char bumen);/*声明计算工资方差函数*/structemployee_gzchar gonghao20;/*职工工号*/char sfzh20;/*身份证号*/char name20;/*姓名*/char bumen20;/*部门*/char zhiwu20;/*职位*/char jiguan20;/*籍贯*/long int jbgz;/*基本工资*/long int jijin;/*基金*/long int yfgz;/*应发工资*/l

26、ong int shuijin;/*税金*/long int jiangjin;/*奖金*/long int sfgz;/*实发工资*/long int gwgz;/*岗位工资*/structemployee_gz*next;/*指向下节点的指针*/;structpasschar shenfen20;/*用户身份*/char yhm20;/*用户名*/charmima20;/*密码*/structpass*next;/*指向下一节点的指针*/;intmain()FILE*pfp;structemployee_gz*head;structpass*ptr,*dl,*mhead,*tail;cha

27、rbumen20;charxinxi20;charyhm20;charshenfen20;charmima20;intchoice,a,b=0;system("graftabl936");textmode(C80);textcolor(25);textbackground;clrscr();head=NULL;mhead=NULL;tail=NULL;if(pfp=fopen("C:xitongjiami.txt","rb")=NULL)gotoxy(20,6);cprintf("账户信息文件打开失败!");get

28、ch();clrscr();gotoxy(20,2);cprintf("请建立文件并注册用户!");gotoxy(20,3);cprintf("请完成下面的注册!");zhuceyh();clrscr();pfp=fopen("C:xitongjiami.txt","rb");while(!feof(pfp)/*将文件中的数据导入链表中*/ptr=(structpass*)malloc(sizeof(structpass);fread(ptr,sizeof(structpass),1,pfp);if(mhead=N

29、ULL)mhead=ptr;elsetail->next=ptr;tail=ptr;ptr->next=NULL;fclose(pfp);dl=mhead;gotoxy(22,5);cprintf("您的身份是:1(管理员)2(职工)");/*登录选择*/scanf("%d",&a);gotoxy(22,5);delline();/*删除光标所在行*/if(a=1)/*管理员登录*/strcpy(shenfen,"guanliyuan");gotoxy(24,5);cprintf("用户名:")

30、;gotoxy(24,6);cprintf("密码:");gotoxy(32,5);scanf("%s",&yhm);gotoxy(32,6);scanf("%s",&mima);while(dl!=NULL)if(strcmp(dl->shenfen,shenfen)=0&&strcmp(dl->yhm,yhm)=0&&strcmp(dl->mima,mima尸=0)b=1;do/*菜单循环控制*/clrscr();menu1();gotoxy(16,11);cpri

31、ntf("输入您的选择:");scanf("%d",&choice);clrscr();/*清屏*/switch(choice)/*函数调用*/case1:input();break;case2:Delete(head);break;case3:search(head,xinxi);break;case4:modify(head);break;case5:count_gz(head,bumen);break;case6:main();case7:tianjiayh();break;case8:xiugaimm(yhm,shenfen);main(

32、);break;case9:deleteyh();break;case0:exit(0);default:gotoxy(32,3);cprintf("输入有误!");getch();break;while(choice!=0);dl=dl->next;if(b=0)clrscr();gotoxy(20,6);cprintf("用户名或密码错误!请重新登录!");getch();main();elseif(a=2)/*职工登录*/strcpy(shenfen,"zhigong");gotoxy(22,5);cprintf(&quo

33、t;工号:");gotoxy(22,6);cprintf("密码:");gotoxy(30,5);scanf("%s",&yhm);gotoxy(30,6);scanf("%s",&mima);while(dl!=NULL)if(strcmp(dl->shenfen,shenfen)=0&&strcmp(dl->yhm,yhm)=0&&strcmp(dl->mima,mima尸=0)b=1;do/*菜单循环控制*/clrscr();menu2();gotoxy

34、(24,11);cprintf("输入您的选择:");scanf("%d",&choice);clrscr();switch(choice)/*函数调用*/case1:strcpy(xinxi,yhm);/*以工号查询*/head=readwenjian(head);shuchuxinxi(head,xinxi);getch();break;case2:count_gz(head,bumen);break;case3:main();case4:xiugaimm(yhm,shenfen);break;case0:exit(0);default:go

35、toxy(32,3);cprintf("输入有误!");getch();break;while(choice!=0);dl=dl->next;if(b=0)clrscr();gotoxy(20,6);cprintf("用户名或密码错误!请重新登录!");getch();main();elsegotoxy(20,6);cprintf("输入有误!请重新输入!");getch();main();voidmenu1()/*管理员菜单*/gotoxy(12,3);cprintf("职工工资管理系统");gotoxy(

36、12,4);gotoxy(12,5);cprintf("*1录入工资记录2删除工资记录*gotoxy(12,6);cprintf("*3查询工资记录4修改工资记录*gotoxy(12,7);cprintf("*5统计工资信息6重物登录系统*gotoxy(12,8);cprintf("*7添加账户信息8修改登录密码*gotoxy(12,9);cprintf("*9删除系统用户0安全退出系统*gotoxy(12,10);cprintf("*");cprintf(”*菜单*");*");*");*&q

37、uot;);*");*");voidmenu2()/*职工菜单*/gotoxy(22,3);cprintf("职工工资系统");cprintf("*菜单*",gotoxy(22,5);cprintf("*1查询个人工资信息*"gotoxy(22,6);cprintf("*2浏览公司工资信息*"gotoxy(22,7);cprintf("*3重新登录工资系统*"gotoxy(22,8);cprintf("*4修改账户登录密码*"gotoxy(22,9);cp

38、rintf("*gotoxy(22,10);*0安全退出工资系统*"cprintf("*");gotoxy(22,4);structemployee_gz*readwenjian(structemployee_gz*head)/*读取文件函数*/FILE*fp;structemployee_gz*ptr,*tail;intsize=sizeof(structemployee_gz);head=NULL;tail=NULL;*/ptr=NULL;if(fp=fopen("C:keshe.txt","rb")=NULL

39、)/*以只读方式打开文件clrscr();gotoxy(20,6);cprintf("文件打开失败!请重新登录!");getch();main();while(!feof(fp)/*将文件中的数据导入链表中*/if(ptr=(structemployee_gz*)malloc(size)尸NULL)clrscr();gotoxy(20,6);cprintf("内存分配失败!请重新登录!");getch();main();fread(ptr,size,1,fp);if(head=NULL)head=ptr;elsetail->next=ptr;tai

40、l=ptr;fclose(fp);returnhead;structemployee_gz*input()/*录入职工工资信息函数*/FILE*fp;structemployee_gz*head,*p,*q;chargonghao20;charsfzh20;charname20;charbumen20;charzhiwu20;charjiguan20;longintjbgz;longintjijin;longintyfgz;longintshuijin;longintjiangjin;longintsfgz;longintgwgz;inti;intsize=sizeof(structemplo

41、yee_gz);clrscr();gotoxy(20,1);cprintf("1:新建职工工资信息");gotoxy(20,2);cprintf("2:添加职工工资信息”);gotoxy(20,3);cprintf("您的选择:");scanf("%d",&i);if(i=1)*/head=createlianbiao();/*调用函数将文件内容读到链表中*/fp=fopen("C:keshe.txt","wb+");/*新建文件*/for(q=head;q!=NULL;q=q

42、->next)/*将链表中节点的信息写入文件fwrite(q,size,1,fp);fclose(fp);clrscr();gotoxy(20,7);cprintf("新建职工账户信息成功!");if(i=2)/*如果添加则进行追加写入*/head=createlianbiao();/*调用函数将文件内容读到链表中*/fp=fopen("C:keshe.txt","ab+");/*以追加方式打开文件*/for(p=head;p!=NULL;p=p->next)/*添加的信息写入文件*/fwrite(p,size,1,fp)

43、;fclose(fp);clrscr();gotoxy(20,7);cprintf("添加职工账户信息成功!");getch();structemployee_gz*createlianbiao()/*创建链表函数*/charsfzh20;charname20;chargonghao20;charbumen20;charzhiwu20;charjiguan20;longintjbgz;longintjijin;longintyfgz;longintshuijin;longintjiangjin;longintsfgz;longintgwgz;charc='y'

44、;intsize=sizeof(structemployee_gz);structemployee_gz*p,*pn,*p1=NULL,*head=NULL;while(c='y'|c='Y')/*循环条件*/clrscr();gotoxy(20,2);cprintf("*录入职工工资信息*");gotoxy(20,4);cprintf("输入职工工号:");scanf("%s",gonghao);if(fopen("C:keshe.txt","rb")!=NUL

45、L)/*以只读方式打开文件*/for(pn=readwenjian(head);pn!=NULL;pn=pn->next)if(strcmp(pn->gonghao,gonghao)=0)/*判断是否已有原职工信息*/gotoxy(20,5);cprintf("已存在此职工信息!请重新车QJ");getch();clrscr();createlianbiao();/*采用递归法*/for(pn=head;pn!=NULL;pn=pn->next)if(strcmp(pn->gonghao,gonghao)=0)/*判断是否已有原职工信息*/gotox

46、y(20,5);cprintf("已存在此职工信息!请重新输入!");getch();clrscr();createlianbiao();/*采用递归法*/gotoxy(20,5);cprintf("输入职工身份证号:");scanf("%s",sfzh);gotoxy(20,6);cprintf("输入职工姓名:");scanf("%s",name);gotoxy(20,7);cprintf("输入职工部门:");scanf("%s",bumen);wh

47、ile(strcmp(bumen,"shebeichu")!=0&&strcmp(bumen,"renshichu")!=0&&strcmp(bumen,"xuegongchu")!=0&&strcmp(bumen,"ruanjianxueyuan")!=0)/*部门合法性校验*/gotoxy(20,8);cprintf("无此部门!请重新输入!");getch();gotoxy(20,8);dellineO;gotoxy(20,7);dellin

48、e();gotoxy(20,7);cprintf("输入职工部门:");scanf("%s",bumen);gotoxy(20,8);cprintf("输入职工职务:");scanf("%s",zhiwu);while(strcmp(zhiwu,"guyuan")!=0&&strcmp(zhiwu,"jingli")!=0&&strcmp(zhiwu,"jinglizhuli")!=0)/*职务合法性校验*/gotoxy(2

49、0,9);cprintf("无此职务!请重新输入!");getch();gotoxy(20,9);dellineO;gotoxy(20,8);delline();gotoxy(20,8);cprintf("输入职工职务:”);scanf("%s",zhiwu);gotoxy(20,9);cprintf("输入职工籍贯:");scanf("%s",jiguan);gotoxy(20,10);cprintf("输入职工基本工资:”);scanf("%ld",&jbgz);

50、gotoxy(20,11);cprintf("输入职工基金:");scanf("%ld",&jijin);gotoxy(20,12);cprintf("输入职工税金:");scanf("%ld",&shuijin);if(shuijin>=jbgz*0.05)gotoxy(20,13);cprintf("输入有误!请重新输入!");getch();gotoxy(20,13);dellineO;gotoxy(20,12);delline();gotoxy(20,12);cpr

51、intf("输入职工税金:");scanf("%s",shuijin);gotoxy(20,13);cprintf("输入职工奖金:”);scanf("%ld",&jiangjin);gotoxy(20,14);cprintf("输入职工岗位工资:");scanf("%ld",&gwgz);yfgz=jbgz+gwgz+jiangjin;sfgz=yfgz-jijin-shuijin;p=(structemployee_gz*)malloc(size);p->jb

52、gz=jbgz;p->jijin=jijin;p->shuijin=shuijin;p->jiangjin=jiangjin;p->gwgz=gwgz;p->yfgz=yfgz;p->sfgz=sfgz;strcpy(p->gonghao,gonghao);strcpy(p->sfzh,sfzh);strcpy(p->jiguan,jiguan);strcpy(p->name,name);strcpy(p->zhiwu,zhiwu);strcpy(p->bumen,bumen);p->next=NULL;if(hea

53、d=NULL)head=p;elsep1->next=p;p1=p;clrscr();gotoxy(20,7);cprintf("Y:继续N:返回)gotoxy(20,8);printf("您的选择:");getchar();c=getchar();returnhead;structemployee_gz*search(structemployee_gz*head,charxinxi)/*查询函数*/FILE*fp;inti,j,k=3;structemployee_gz*ptr1;textcolor(25);textbackground;clrscr();

54、head=readwenjian(head);/*调用函数读取文件内容到链表中*/clrscr();gotoxy(20,1);cprintf("您是想输出全部职工基本工资信息吗?");gotoxy(20,2);cprintf("*1是(输出所有)*2否(详细查询):");scanf("%d",&j);if(j=1)/*输出全部基本信息*/if(head=NULL)gotoxy(2,3);cprintf("无职工工资记录!");getch();elsegotoxy(2,k);cprintf("工号:

55、%s",head->gonghao);gotoxy(18,k);cprintf("姓名:s",head->name);gotoxy(40,k);cprintf("部门:s",head->bumen);gotoxy(62,k);cprintf("实发工资:%ld",head->sfgz);k+;ptr1=head->next;while(ptr1!=NULL)/*遍历链表*/if(ptr1->sfgz!=0&&ptr1->gonghao!=NULL)gotoxy(2,k

56、);cprintf("工号:s",ptr1->gonghao);gotoxy(18,k);cprintf("姓名:%s",ptr1->name);gotoxy(40,k);cprintf("部门:s",ptn>bumen);gotoxy(62,k);cprintf("实发工资:%ld",ptr1->sfgz);k+;ptr1=ptr1->next;getch();elseif(j=2)/*详细查询*/clrscr();gotoxy(20,1);cprintf("您想通过什么查询信息");gotoxy(20,2);cprintf("*1姓名*2工号:");scanf("%d",&i);switch(i)case1:gotoxy(20,3);cprintf("职工女生名:");scanf("%s",xinxi);shuchuxinxi(head,xinxi);break;case2:gotoxy(20,3);cprintf("职工工号:");scanf("%s&

温馨提示

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

评论

0/150

提交评论