您好,欢迎访问三七文档
简单的员工管理系统1、问题描述:对单位的职工进行管理,包括插入、删除、查找、排序等功能。2、要求:职工对象包括姓名(字符串)、性别(字符)、出生年月(数字)、工作年月(数字)、学历(字符串)、职务(字符串)、住址(字符串)、电话(字符串)等信息。(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2)删除一名职工:从职工管理文件中删除一名职工对象。(3)查询:从职工管理文件中查询符合某些条件的职工。(4)修改:检索某个职工对象,对其某些属性进行修改。(5)排序:按某种需要对职工对象文件进行排序。3、实现功能(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。(2)对职工对象中的“姓名”按字典顺序进行排序。(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。4、代码:#includestdlib.h#includestdio.h#includemalloc.h#includestring.htypedefstructworker{intid;charname[20];charsex[3];intage;charedu[50];intwages;charadr[255];charphone[13];}WORKER,*PWORKER;//typedefstructWORKER*PWORKER;typedefstructlink{WORKERw;structlink*next;}LINK,*PLINK;//typedefstructLINK*PLINK;/*创建职工信息链表*/PLINKcreate(){PLINKp=(PLINK)malloc(sizeof(LINK));if(NULL!=p){p-next=NULL;returnp;}printf(内存不足!\n);returnNULL;}/*显示程序界面文字*/voidmessage(){printf(\t\t************************************************\n\n);printf(\t\t欢迎进入职工管理系统\n\n);printf(\t\t************************************************\n\n);printf(\t\t**************ChooseFunction*************\n\n);printf(\t\t************帮助请输入:0************\n\n);printf(\t\t************录入职工信息请输入:1************\n\n);printf(\t\t************浏览职工信息请输入:2************\n\n);printf(\t\t************查询职工信息请输入:3************\n\n);printf(\t\t************删除职工信息请输入:4************\n\n);printf(\t\t************修改职工信息请输入:5************\n\n);printf(\t\t************清屏请输入:6************\n\n);printf(\t\t************退出请输入:-1***********\n\n);printf(\t\t************************************************\n\n);printf(\t\t************************************************\n\n);}voidfind_sr(PLINKplink,char*str){for(PLINKcurr=plink-next;curr!=NULL;curr=curr-next){if(strcmp(curr-w.edu,str)==0){printf(职工工号:%d\n,curr-w.id);printf(职工姓名:%s\n,curr-w.name);printf(职工性别:%s\n,curr-w.sex);printf(职工年龄:%d\n,curr-w.age);printf(职工学历:%s\n,curr-w.edu);printf(职工工资:%d\n,curr-w.wages);printf(职工住址:%s\n,curr-w.adr);printf(职工电话:%s\n,curr-w.phone);}}}voidfindid(PLINKplink,intid){for(PLINKcurr=plink-next;curr!=NULL;curr=curr-next){if(curr-w.id==id){printf(职工工号:%d\n,curr-w.id);printf(职工姓名:%s\n,curr-w.name);printf(职工性别:%s\n,curr-w.sex);printf(职工年龄:%d\n,curr-w.age);printf(职工学历:%s\n,curr-w.edu);printf(职工工资:%d\n,curr-w.wages);printf(职工住址:%s\n,curr-w.adr);printf(职工电话:%s\n,curr-w.phone);}}}voidshow(PLINKplink){for(PLINKcurr=plink-next;curr!=NULL;curr=curr-next){printf(职工工号:%d\n,curr-w.id);printf(职工姓名:%s\n,curr-w.name);printf(职工性别:%s\n,curr-w.sex);printf(职工年龄:%d\n,curr-w.age);printf(职工学历:%s\n,curr-w.edu);printf(职工工资:%d\n,curr-w.wages);printf(职工住址:%s\n,curr-w.adr);printf(职工电话:%s\n,curr-w.phone);}}/*录入职工信息*/intadd(PLINKp){PLINKh=NULL;PLINKq=(PLINK)malloc(sizeof(LINK));if(NULL==q){printf(录入失败提示:内存不足!\n);return-1;}printf(请输入职工号(数字):);scanf(%d,&q-w.id);h=p-next;while(h){if(h-w.id==q-w.id){free(q);printf(录入失败提示:此职工号已经存在!\n);return-1;}h=h-next;}printf(请输入职工姓名(文字):);scanf(%s,&q-w.name);printf(请输入职工性别(文字):);scanf(%s,&q-w.sex);printf(请输入职工年龄(数字):);scanf(%d,&q-w.age);printf(请输入职工学历(文字):);scanf(%s,&q-w.edu);printf(请输入职工工资(数字):);scanf(%d,&q-w.wages);printf(请输入职工住址(文字):);scanf(%s,&q-w.adr);printf(请输入职工电话(数字):);scanf(%s,&q-w.phone);q-next=p-next;p-next=q;printf(.^_^.录入成功!.^_^.\n);return-1;}/*按姓名查询*/PLINKfindname(PLINKp,char*name){message();printf(按姓名查询\n);printf(职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n);while(NULL!=p-next){if(0==strcmp(p-next-w.name,name)){printf(%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n,p-next-w.id,p-next-w.name,p-next-w.sex,p-next-w.adr,p-next-w.edu,p-next-w.wages,p-next-w.adr,p-next-w.phone);returnp;}p=p-next;}printf(.^_^.查询结束!.^_^.\n);returnNULL;}/*按职工号删除职工信息*/intdel(PLINKp,intid){message();printf(按职工号删除职工信息\n);while(NULL!=p-next){if(p-next-w.id==id){PLINKq=p-next;p-next=p-next-next;free(q);printf(.^_^.删除成功!.^_^.\n);return1;}p=p-next;}printf(没有你输入的职工号!\n);return-1;}/*程序结束释放内存*/voidrelease(PLINKp){PLINKq;while(NULL!=p-next){q=p;p=p-next;free(q);}free(p);}/*查询调用*/voidsearch(){intid;charname[20];charstr[20];PLINKpworker;intl;printf(\t\t\t\t*姓名查找按:1*\n);printf(\t\t\t\t*学历查找按:2*\n);printf(\t\t\t\t*职工号查按:3*\n);scanf(%d,&l);if(l0&&l4){switch(l){case1:printf(请输入要查询的职工姓名:);scanf(%s,name);findname(pworker,name);break;case2:printf(请输入要查询的职工学历:);scanf(%s,str);find_sr(pworker,str);break;case3:printf(请输入要查询的职工号:);scanf(%d,&id);findid(pworker,id);break;}printf(\n\n选择完毕!!!);}elseprintf(\t\t\t\t输入有误!!!);}/*修改职工信息*/intmodify(PLINKp){intid;PLINKq;PLINKh=NULL;printf(请输入职工号(数字):);scanf(%d,&id);h=p-next;while(h){if(h-w.id==id){break;}h=h-next;}if(h==NULL){printf(找不到此职工,请重试\n);return-1;}printf(请输入职工姓名(文字):);scanf(%s,&h-w.name);printf(请输入职工性别(文字):);scanf(%s,&h-w.sex);printf(请输入职工年龄(数字):);scanf(%d,&h-w.age);printf(请输入职工学历(文字):);scanf(%s,&h-w.edu);printf(请输入职工工资(数字):);scanf(%d,&h-w.wages);printf(请输入职工住址(文字):);scanf(%s,&h-w.adr);printf(请输入职工电话(数字):);scanf(%s,&h-w.phone);q-next=p-next;p-next=q;printf(.^_^.修改成功!.^_^.\n);return-1;}intmain(){intcmd=0;intid;charname[20];charstr[20];PLINKpworker;if(!(pworker=
本文标题:简单的员工管理系统
链接地址:https://www.777doc.com/doc-7023326 .html