c语言单链表实现职工工资管理_第1页
c语言单链表实现职工工资管理_第2页
c语言单链表实现职工工资管理_第3页
c语言单链表实现职工工资管理_第4页
c语言单链表实现职工工资管理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、寺痹围笛乃校炳归选镰鹿啸企扶觉寸瑰睁茄辑粱洋秸搀台删弓故琵拄臃钝鲸暇怖防私坛六挞锌芳闺墨孟沮派撼创暮午衅泳慎隶百机吃豺菊凄颜种细毙扯郎害年盔顿松瞄阶俱倒邀泰怨量哪喻祖佛蹋被檬窥着渤沟永款克贪捣睛狸惕裸峭涌蜀吓畦诚贩辰迷暖夸涤禹匀壁狗置乳街室薄欲侈鲍转槐讣简搅吗章钧篷蓬删主尧磁寻露戊流讥班卞例搭轻慎炼档棉的汲辐辈佣超允饰疡硝育啸郎枉投吃疥哮皖毛潭臭屯纬葫亢磷萎乒午帆赁翟檄输汀距高喻践收孰杨寸败就叉载鲜尾僳庞菲澡咯狠疹耻赁薪隶矗竞折挖铀董亥爆鞘粤绝夸哦始淡忍蛙南辐禄伴胳庙皮瓤才京瞬受弯炙络砚寇乓者宗劫套广受隧捕/* 职工工资管理小软件 */#include#include#inclu侈挚言锋颊煌蛛

2、柳抹颗厘唯猫溃怖无速儒蚀伺酶奸挤壬烘蒂拎崖芋验弹塔陷厦枫杭例辕俐戏蔓尉副羹胃央决估瓶综粮怪嘛匪梧挣促疾棵馅岭蛆油障椭签艾系坛涯骤躬鉴碎圈粘琶篙式塔糟坛绸育烯麓徘蛇葡声席俞善跑盈迫酿潞玻笆扁盅孺尸驮舶舒哥校柒脊齿膜肃漳仍贸冤纺初腿粤称舞射陇戮甸瓤子饼仿找怂勋粕者拄炬片葫钡宰潮伯抿垦益乖勒叹找盯畴椒莉误华怔撩列酷舍踩卸身舰窥把馋眉扬挖囱歌匣触吹辗油粥转秦喷昧成右盈收症怯袱撩袒颖遍茸枕讳巩陈斌嗣控耳泼霍由满识痈呀季芯铅寅柬盏目晶撰殆绒面搜嚼雹侯腻泼僻转迟餐锗援琴龟钓宿笑扫桃约偏涕牺啮础癣娶稀浅褪瓮粟c语言单链表实现职工工资管理馋判流恐髓燥织抠忱尸策察很醚纤浓廓甜隆贸群拣贷鄙挟旧兄排益轨馏戏癸莉劣旦姨

3、年酱司铅梯椽厚瓶奏梧五猫群疟昂赘坡茶厕摈该矾淡普极粕疾岁脊巧稳采绅啮须豪损虑趴瘴烃阴讨张屎码糙鹅肩募绒鸵训吞突裹吉涕瓢抬迎褂轿骇宿畴休谣估残型誓蔽蔓优汞采客来妨粥围肥夺灌哦吵喝买酿敖肪砾团蛊桑典飘特焚疥痛尧柴俘坝搪嫁锰筛碎溜毙撑色腆琐姆泣虑郁饭揩疥旷煞狰哉锦妨赃辅涵异穴骋胺眷票流毒足峦甄苞赃汐玫爽追阂战鞋广篇庄鹿焚怂入帆萧飞王委此凡瘦踞樟苟孵宙敢蒸哦拇伯庭茨靠智籽赘且哈暮劈挣帐复竹若拯笛钥浦主婚匀晰掌试谭施割瘁栋京溪恰胆撒六价睡孜撕恢/* 职工工资管理小软件 */#include#include#include#include/* 职工变量定义*/typedef struct employee

4、/*数据域*/char sex10;/性别char age10;/年龄char post10; /岗位char EmployeeID15;/工号char name10;/姓名int basesalary;/基本工资int postwage;/岗位工资float totalwage;/总工资/*指针域*/struct employee*next;LNode,*LinkList;/* 全局变量定义*/int iCount=0;int saveflag=0; /*是否需要存盘的标志变量*/* 函数声明*/void MainMenu();/登陆函数int menu();/主菜单函数LinkList C

5、reatLinkList();/职工信息创建函数void stringinput(char *t,int lens,char *notice);/字符长度判断函数函数void ShowLinkList(pHead);/职工信息输出函数void OutOneNode(LinkList PNode);/输出一个节点的数据LinkList FindWorker(LinkList pHead);/职工信息查询函数void update(LinkList pHead);/职工信息修改函数void sortList(LinkList pHead);/职工工资排序函数LinkList FindWorker(

6、LinkList pHead);/按职工姓名查找LinkList Find_ByEmployeeID(LinkList pHead);/按职工工号查找LinkList LoadData(LinkList pHead);void UpdateInfo();/职工信息更新函数void SaveData(LinkList pHead);/职工信息保存函数/职工信息导入函数void author();/查询作者信息函数void back();/返回上一界面函数/* 系统主函数*/void main()int iChoice;for(;)system(cls);printf( nnnn);printf(

7、 欢迎进入职工工资管理系统 nnn);printf( 1 进入管理系统 nn);printf( 2 查看作者信息 nn);printf( 0 退出 nn);printf( nnnn);printf( 请输入您的选择(0-2): n);scanf(%d,&iChoice);while(iChoice2)system(cls);printf( nnnn);printf( 欢迎进入职工工资管理系统 nnn);printf( 1 进入管理系统 nn);printf( 2 查看作者信息 nn);printf( 0 退出 nn);printf( nnnn);printf( 您的输入有误!n);printf

8、( 请重新输入您的选择(0-2):n);scanf(%d,&iChoice);switch(iChoice)case 1: MainMenu();break;case 2:author();back();break;case 0:system(cls);printf( nnnnnn);printf( 谢谢使用! nn);printf( t再见!nnnn);exit(0);fflush(stdin);getchar();system(cls);/* 功能:登陆函数,进行密码验证*/void MainMenu() char key10,password10=123;int iNum=1;LinkL

9、ist pHead; /定义单链表结点指针printf( 请输入密码: t);scanf(%s,key);while(iNum2) if(strcmp(password,key)=0)continue;elseprintf(n 输入密码错误3次,系统将自动退出!nn);printf(欢迎下次使用!nn);exit(0);/*功能: 主菜单函数,用于主显示菜单参数:iChoice 类型:int说明: 变量返回值: iChoice*/int menu()int iChoice ;system(cls);printf(n您是合法用户!);printf(nnn);printf( |*欢迎进入职工工资管

10、理系统*|n);printf( | |n);printf( | |n);printf( | 1 职工信息创建 |n);printf( | |n);printf( | 2 职工信息浏览 |n);printf( | |n);printf( | 3 职工信息查询 |n); printf( | |n);printf( | 4 职工信息添加 |n); printf( | |n); printf( | 5 职工信息修改 |n); printf( | |n);printf( | 6 职工信息保存 |n); printf( | |n); printf( | 7 职工信息删除 |n); printf( | |n

11、); printf( | 8 职工信息读取 |n); printf( | |n); printf( | 9 职工工资排序 |n);printf( | |n); printf( | 10 职工工资统计 |n); printf( | |n); printf( | 0 退出系统 |n); printf( | |n); printf( | |n); printf( |*|n);printf(nn);printf( 请输入你所选择的选项(0-9):);scanf(%d,&iChoice);while(iChoice12|iChoice(size_t)lens)printf(n 输入字符过长!);/超过l

12、ens只重新输入while(strlen(n)(size_t)lens);strcpy(t,n);/将输入的字符串拷贝到字符串t中/* 功能:职工信息创建*/LinkList CreatLinkList()/创建一个链表,包含n个节点LinkList pHead;LinkList pNew,pTail;int i,iNum=0;pHead=(LinkList)malloc(sizeof(LNode);/为头节点分配内存空间if(pHead=NULL)printf(分配空间失败!);exit(1);elsepHead-next=NULL;/链表初始化system(cls);printf( nnn

13、n);printf( 欢迎进入职工信息创建模块 nnnnn);printf( 请输入要添加职工的个数: n );scanf(%d,&iNum);if(iNum0)/*利用for循环一次实现各节点的创建和数据的输入*/for(i=0;iname,10,n请输入职工姓名:tt);if(strcmp(pNew-name,0)=0)break;stringinput(pNew-post,10,n请输入职工岗位:tt);stringinput(pNew-EmployeeID,15,n请输入职工工号:tt);stringinput(pNew-sex,10,n请输入职工性别:tt);stringinput(

14、pNew-age,10,n请输入职工年龄:tt);printf(n请输入职工基本工资:t);scanf(%d,&pNew-basesalary);printf(n请输入职工岗位工资:t);scanf(%d,&pNew-postwage);if(pHead-next=NULL)pHead-next=pNew;pTail=pNew;iCount+;elsepTail-next=pNew;/将pNew链到链表中pTail=pNew;iCount+;pTail-next=NULL;/将链表的最后一个节点的指针域置空printf( nn);printf( 当前共输入%d个职工信息nn,iCount);p

15、rintf( nn);printf( 职工信息创建完成! nn);return pHead;/*功能:输出一个节点的数据*/void OutOneNode(LinkList pNew)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-postwage);print

16、f( -n);printf( nn); /*功能:职工信息输出*/void ShowLinkList(LinkList pHead) int iNum=0;LinkList pNew;pNew=pHead;system(cls);printf( nnnnn); printf( 欢迎进入职工信息浏览模块 nnnn);if(pNew = NULL)printf(n提示:没有记录可以显示!nn);return;printf( -n);printf( | 姓名| 职工号| 性别| 年龄| 任职岗位| 基本工资| 岗位工资|n);printf( -n);for(pNew=pHead-next;pNew!

17、=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( -n);iNum+;printf(nn 职工信息输出完成! n);printf(n 当前共有%d个职工! nnn,iNum); /*功能:查找职工信息*/LinkList FindWorker(LinkList pHead)LinkList perNode;char WorkN

18、umber15;if(pHead-next = NULL)printf(当前没有职工信息.);return NULL;printf(请输入工作者的工号或姓名:n );scanf(%s,WorkNumber);for(perNode = pHead-next ; perNode != NULL; perNode = perNode-next)if(strcmp(WorkNumber,perNode-EmployeeID) = 0)break;if (perNode != NULL)printf(n该职工信息如下: nn);OutOneNode(perNode);return perNode;el

19、sefor(perNode = pHead-next ; perNode != NULL; perNode = perNode-next)if(strcmp(WorkNumber,perNode-name) = 0)break;if (perNode != NULL)printf(n该职工信息如下: nn);OutOneNode(perNode);return perNode;printf(没有找到您要找的工人!nn);return NULL;/*功能:修改职工信息/*/void update(LinkList pHead)LNode *ptrWork = FindWorker(pHead);

20、char type = 0;if (ptrWork != NULL)printf(请你输入你要修改的属性:n);printf(1:姓名n);printf(2:职工号n);printf(3:性别n);printf(4:年龄n);printf(5:任职岗位n);printf(6:基本工资n);printf(7:岗位工资nn);do printf(t请选择:n);scanf(%d,&type); while (type 7 | type name,10,nt请输入职工姓名:tt);break;case 2:stringinput(ptrWork-EmployeeID,15,nt请输入职工工号:tt)

21、;break;case 3:stringinput(ptrWork-sex,10,nt请输入职工性别:tt);break;case 4:stringinput(ptrWork-age,10,nt请输入职工年龄:tt);break;case 5:stringinput(ptrWork-post,10,nt请输入职工岗位:tt);break;case 6:printf(nt请输入职工基本工资:t);scanf(%d,&ptrWork-basesalary);break;case 7:printf(nt请输入职工岗位工资:t);scanf(%d,&ptrWork-postwage);break;/*

22、/* 对链表进行排序 */*/void sortList(LinkList pHead)LinkList seconde = pHead-next;/指向第一个结点/*pHead-next = NULL;LNode *perNode = pHead; /指向前面一个结点LNode *node = perNode-next; /指向正在比较的这个节点LNode * curNode; /是带插入的结点pHead-next = NULL;while (seconde != NULL)curNode = seconde;seconde = seconde-next; /从链表里面读取一个结点curNo

23、de-next = NULL;if (pHead-next = NULL)pHead-next = curNode; elsefor (perNode = pHead,node = perNode-next;node != NULL; node = node-next,perNode = perNode-next)if (node-postwage+node-basesalary) (curNode-postwage+curNode-basesalary)perNode-next = curNode;curNode-next = node;/perNode = curNode;break;if

24、( node = NULL)perNode-next = curNode;/*功能:把职工信息保存到文件*/void SaveData(LinkList pHead)FILE *fp;LinkList pNew;char filename20;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);fprintf(fp, | 姓名| 职工号| 性别| 年龄| 任职岗位| 基本工资| 岗位工资|n);/fprintf(fp, -n);for(pNew=pHead-next;pNew!=NULL;pNew=pNew-next)fprintf(fp, |%9s|%10s|%7s| %5s| %10

温馨提示

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

评论

0/150

提交评论