


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*职工工资管理小软件*/#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>/*职工变量定义*/typedefstructemployee/*数据域*/charsex10;/性别charage10;/年龄charpost10;/岗位charEmployeeID15;/工号charname10;intbasesalary;intpostwage;floattotalwage;/*指针域*/structemployee*next;LNode,*LinkList;
2、/姓名/基本工资/岗位工资/总工资/*全局变量定义*/intiCount=0;intsaveflag=0;/*是否需要存盘的标志变量*/*函数声明*/voidMainMenu();intmenu();/登陆函数/主菜单函数LinkListCreatLinkList();voidstringinput(char*t,intlens,char*notice);voidShowLinkList(pHead);voidOutOneNode(LinkListPNode);/职工信息创建函数/字符长度判断函数函数/职工信息输出函数/输出一个节点的数据LinkListFindWorker(LinkListp
3、Head);voidupdate(LinkListpHead);voidsortList(LinkListpHead);/职工信息查询函数/职工信息修改函数/职工工资排序函数LinkListFindWorker(LinkListpHead);/按职工姓名查找LinkListFind_ByEmployeeID(LinkListpHead);/按职工工号查找LinkListLoadData(LinkListpHead);voidUpdateInfo();/职工信息更新函数/职工信息保存函数voidSaveData(LinkListpHead);/职工信息导入函数voidauthor();voidb
4、ack();/查询作者信息函数/返回上一界面函数/*系统主函数*voidmain()intiChoice;for(;)system("cls");nnnn");欢迎进入职工工资管理系统nnn");进入管理系统nn");查看作者信息nn");退出nn");输入您的选择(0-2)printf("printf("printf("1printf("2printf("0printf("nnnn");printf("请n");scanf("
5、;%d”,&iChoice);while(iChoice<0|iChoice>2)system("cls");printf("nnnn");printf("欢迎进入职工工资管理系统nnn");printf("1进入管理系统nn");printf(-2查看作者信息nn");printf("0退出nn");printf("nnnn");printf("您的输入有误!n");printf("请重新输入您的选择(0-2):n
6、");scanf("%d”,&iChoice);switch(iChoice)case1:MainMenu();break;case2:author();back();break;case0:system("cls");printf("printf("printf("exit(0);tnnnnnn");谢谢使用!nn");再见!nnnn");fflush(stdin);getchar();system("cls");/*功能:登陆函数,进行密码验证*/voidMain
7、Menu()charkey10,password10="123”;intiNum=1;LinkListpHead;/定义单链表结点指针/创建职工/显示职工欢迎进入职工信息查询模块/查询职工/职工信息欢迎进入职工信息修改模块/职工信息/职工信息/职工信息/职工信息请输入密码:t");printf("scanf("%s",key);while(iNum<=3)if(strcmp(password,key)=0)while(1)intiChoice;iChoice=menu();system("cls");switch(iC
8、hoice)case1:pHead=CreatLinkList();back();break;信息case2:ShowLinkList(pHead);back();break;信息case3:printf("nnnn");printf("nnnnn");FindWorker(pHead);back();break;信息case4:update(pHead);back();break;添加case5:printf("nnnn");printf("nnnnn");update(pHead);back();break;修
9、改case6:SaveData(pHead);back();break;保存case7:sortList(pHead);back();break;case8:/save(pHead);break;case9:author();back();break;case10:/copy();break;case11:/pHead=load(pHead);break;case0:system("cls");printf("nnnn");printf("nn");printf("nnnn");/save();exit(0);ff
10、lush(stdin);getchar();system("cls");elseiNum+;printf("n您是非法用户!请输入密码scanf("%s”,key);if(iNum>2)if(strcmp(password,key)=0)continue;elseprintf("n输入密码错误3次,nn");printf("欢迎下次使用!nn");exit(0);:t");/职工信息/职工信息谢谢使用!t再见!系统将自动退出!/*功能:主菜单函数,用于主显示菜单参数:iChoice类型:int说明:
11、变量返回值:iChoice*/intmenu()intiChoice;system("cls");printf("n您是合法用户!");printf("nnn");printf("*|虹,);|*欢迎进入职工printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");
12、printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");工资管理系统|职工信息创建|职工信息浏览|职工信息查询|职工信息添加|职工信息修改|职工信息保存|职工信息删除|8 职工信息读取|9 职工工资排序|10职工工资统计|0退出系统|");您的输入有误!n");请重新
13、输入你所选择的选项(0-9):");/显示提示信息/输出字符串printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|n");printf("|*|虹,);printf("n
14、n");printf(-请输入你所选择的选项(0-9)scanf("%d”,&iChoice);while(iChoice>12|iChoice<0)printf("printf("scanf("%d”,&iChoice);returniChoice;/*功能:输入字符长度判断函数,判断输入字符长度是否超过原定长度*/voidstringinput(char*t,intlens,char*notice)charn50;doprintf(notice);scanf("%s”,n);输入字符过长!")
15、;/超过lens只重新输if(strlen(n)>(size_t)lens)printf("n入while(strlen(n)>(size_t)lens);strcpy(t,n);/*功能:职工信息创建*/创建一个链表,包含LinkListCreatLinkList()/将输入的字符串拷贝到字符串t中n个节点LinkListpHead;LinkListpNew,pTail;inti,iNum=0;pHead=(LinkList)malloc(sizeof(LNode);/为头节点分配内存空间if(pHead=NULL)printf("分配空间失败!")
16、;exit(1);elsepHead->next=NULL;/链表初始化system("cls");printf("nnnn");printf("欢迎进入职工信息创建模块nnnnn");printf("请输入要添加职工的个数:n");scanf("%d”,&iNum);if(iNum>0)/*利用for循环一次实现各节点的创建和数据的输入*/for(i=0;i<iNum;i+)pNew=(LinkList)malloc(sizeof(LNode);/为后继节点分配内存空间if(p
17、New=NULL)printf("分配空间失败!");exit(1);elseprintf("printf("printf("stringinput(pNew->name,10,"nif(strcmp(pNew->name,"0")=0)break;stringinput(pNew->post,10,"nnn");请输入第d个职工信息:nn",i+1);提示:输入职工姓名为0则终止创建!nn");请输入职工姓名:tt");stringinput(p
18、New->EmployeeID,15,"nstringinput(pNew->sex,10,"nstringinput(pNew->age,10,"nprintf("n请输入职工基本工资scanf("%d”,&pNew->basesalary);printf("n请输入职工岗位工资scanf("%d",&pNew->postwage);if(pHead->next=NULL)请输入职工岗位:tt");请输入职工工号:tt");请输入职工性别:t
19、t");请输入职工年龄:tt");:t");:t");pHead->next=pNew;pTail=pNew;iCount+;elsepTail->next=pNew;pTail=pNew;iCount+;/将pNew链到链表中pTail->next=NULL;printf("printf("printf("printf("returnpHead;/将链表的最后一个节点的指针域置空nn");当前共输入d个职工信息nn",iCount);nn");职工信息创建完成!nn
20、");/*功能:输出一个节点的数据*/voidOutOneNode(LinkListpNew)printf("n");printf("|岗位工资|n");printf("姓名|职工号|性别|年龄|任职岗位|基本工资|n");printf("|%9s|%10s|%7s|%5s|%10s|%10d|%10d|n”,pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->p
21、ostwage);printf("n");printf("nn");/*功能:职工信息输出*/voidShowLinkList(LinkListpHead)intiNum=0;LinkListpNew;pNew=pHead;system("cls");printf("printf("if(pNew=NULL)printf("nreturn;printf("nnnnn");欢迎进入职工信息浏览模块提示:没有记录可以显示!nn");nnnn");n");pri
22、ntf("|岗位工资|n");printf("姓名|职工号|性别|年龄|任职岗位|基本工资|n");for(pNew=pHead->next;pNew!=NULL;pNew=pNew->next)(printf("|%9s|%10s|%7s|%5s|%10s|%10d|%10d|n”,pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage);printf("
23、n");iNum+;printf("nn职工信息输出完成!n");printf("n当前共有昕职工!nnn”,iNum);/*功能:查找职工信息*/LinkListFindWorker(LinkListpHead)(LinkListperNode;charWorkNumber15;if(pHead->next=NULL)(printf("当前没有职工信息.”);returnNULL;printf("请输入工作者的工号或姓名:n");scanf("%s”,WorkNumber);for(perNode=pHea
24、d->next;perNode!=NULL;perNode=perNode->next)if(strcmp(WorkNumber,perNode->EmployeeID)=0)break;if(perNode!=NULL)(printf("n该职工信息如下:nn");OutOneNode(perNode);returnperNode;else(for(perNode=pHead->next;perNode!=NULL;perNode=perNode->next)if(strcmp(WorkNumber,perNode->name)=0)b
25、reak;if(perNode!=NULL)(printf("n该职工信息如下:nn");OutOneNode(perNode);returnperNode;printf("没有找到您要找的工人!nn");returnNULL;/*功能:修改职工信息/*/voidupdate(LinkListpHead)(LNode*ptrWork=FindWorker(pHead);chartype=0;(printf("printf("printf("printf("printf("printf("prin
26、tf("printf("do(printf("tif(ptrWork!=NULL)请你输入你要修改的属性:n");1:姓名n");2:职工号n");3:性别n");4:年龄n");5:任职岗位n");6:基本工资n");请选择:n");7:岗位工资nn");scanf("%d”,&type);while(type>7|type<0);switch(type)(case1:stringinput(ptrWork->name,10,"
27、nt请输入职工姓名:tt");break;case2:stringinput(ptrWork->EmployeeID,15,"nt请输入职工工号:tt");break;case3:stringinput(ptrWork->sex,10,"nt请输入职工性别:tt");break;case4:stringinput(ptrWork->age,10,"ntbreak;case5:stringinput(ptrWork->post,10,"ntbreak;case6:printf("nt请输入职工
28、基本工资scanf("%d”,&ptrWork->basesalary);break;case7:printf("nt请输入职工岗位工资scanf("%d”,&ptrWork->postwage);break;:t");:t");请输入职工岗位:tt");/*/*对链表进行排序*/*/voidsortList(LinkListpHead)指向第一个结点LinkListseconde=pHead->next;/*pHead->next=NULL;LNode*perNode=pHead;/指向前面一
29、个结点LNode*node=perNode->next;/指向正在比较的这个节点LNode*curNode;/是带插入的结点pHead->next=NULL;while(seconde!=NULL)curNode=seconde;seconde=seconde->next;/从链表里面读取一个结点curNode->next=NULL;if(pHead->next=NULL)pHead->next=curNode;elsefor(perNode=pHead,node=perNode->next;node!=NULL;node=node->next,
30、perNode=perNode->next)(if(node->postwage+node->basesalary)(curNode->postwage+curNode->basesalary)(perNode->next=curNode;curNode->next=node;/perNode=curNode;break;if(node=NULL)(perNode->next=curNode;/*功能:把职工信息保存到文件*/voidSaveData(LinkListpHead)(FILE*fp;LinkListpNew;charfilename
31、20;system("cls");printf("nnnnn");printf("欢迎进入职工信息保存模块nnnn");printf("请输入文件的地址及文件名:n");scanf("%s”,filename);if(fp=fopen(filename,"w")=NULL)(printf("无法打开该文件!n");return;fprintf(fp,"目前共有d名学生信息:nn”,iCount);/fprintf(fp,"n");fpr
32、intf(fp,"|姓名|职工号|性别|年龄|任职岗位|基本工资|岗位工资|n");/fprintf(fp,”n");for(pNew=pHead->next;pNew!=NULL;pNew=pNew->next)(fprintf(fp,"|%9s|%10s|%7s|%5s|%10s|%10d|%10d|n”,pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage);/fpri
33、ntf(fp,"n");职工信息保存成功!nn");printf("nnfclose(fp);/*功能:从文件读取职工信息*LinkListLoadData(LinkListpHead)(FILE*fp;LinkListpNew,pTail;charfilename20;system("cls");printf("nnnnn");printf("欢迎进入职工信息导入模块nnnn");printf("请输入需加载的文件地址及文件名:n");scanf("%s",filename);if(fp=fopen(filename,"r")=NULL)(printf("无法打开该文件n");exit(0);fscanf(fp,"目前共有d名学生信息:”,&iCount);*/for(i=0;i<7;i+)/fscanf(fp,”%s”,&secondlinei);/*pHead=NULL;for(i=0;i<iCount;i+)(pNew=(LinkList)malloc(sizeof(LNode);fscan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考前冲刺2024年初级审计师考试试题及答案
- 行业财务标准比较试题及答案
- 一级建造师考试集训班效果评估试题及答案
- 有效沟通中级审计师试题及答案的重要性
- 2025年护师营养学知识试题及答案
- 答题技巧与方法试题及答案
- 高级审计师复习经验分享试题及答案
- 护理安全与患者幸福感的关系试题及答案
- 2025年建造师考试科目详解与试题及答案
- 独特见解 2024年高级审计师考试试题及答案
- 中药炮制工中级测试题+答案
- 房地产开发履约保证措施
- 2025年度合伙人利益共享及风险分担协议范本
- 中华人民共和国工会法课件
- 山东铁投集团招聘笔试冲刺题2025
- 真需求-打开商业世界的万能钥匙
- 仓库礼仪培训
- 2025年高考化学复习热搜题速递之反应热与焓变(2024年7月)
- 2024年北京东城中小学教师招聘真题
- 大学计算机基础知到智慧树章节测试课后答案2024年秋海南师范大学
- 2024年度新能源汽车产业联盟合作协议3篇
评论
0/150
提交评论