C语言课程设计职工信息管理系统结构体数组实现程序源代码_第1页
C语言课程设计职工信息管理系统结构体数组实现程序源代码_第2页
C语言课程设计职工信息管理系统结构体数组实现程序源代码_第3页
C语言课程设计职工信息管理系统结构体数组实现程序源代码_第4页
C语言课程设计职工信息管理系统结构体数组实现程序源代码_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

〃。语言课程设计职工信息管理系统一结构体数组实现#inelude#inelude#ineludestructempioyeecharnum[10];charname[15];charsex[5];charbm[20];charzc[20];intgz;};intread_file(structempioyeeem[];voidmenu(;voidwrite_file(structempioyeeem[];voidadd(;voidselects〃查看职工所有信息voidzc_query(;11按职称查询voidnum_del(;n按工号删除voidtongji(;//统计voidsort(;//排序voidnum_modify(;〃按工号修改职工信息voidsave(;〃保存信息voiddisp(;〃显示职工信息voidfh(://返回主菜单structemployeeem[300];/这个数组用来保存所有的职工信息和文件里面的一致intNumber二0;〃记录总的职工人数也就是数组/文件里面的职工人数voidmenuvoidmenuprint"**职工信息管理系统一结构体数组实现水\广printf(*\t**\n〃;printf(,z\t*[1]增加职工信息⑵查看职工信息*\n";Prin⑶查找职工信息[4]删除职工信息*\八printf(,z\t*[5]统计[6]职工工资排列*\n";printf(,z\t*[7]修改职工信息⑻保存职工信息*\n";prin[9]显示职工信息[0]退出系统*\n〃;printf(*\t**\n";voidmain(intchoose=0;FILE*fp=NULL;charyesorno;if((fp=fopen("employeel.txt〃,“rb+〃二二NULLprintff\n》提示:文件不存在,是否要创建一个?(y/n\n-printff\nseanf(〃%c〃,&yesomo;if(yesorno二二'y'I;yesorno二二'Y'〃这里仅为了建上文件fp二fopen('employeel.txt〃,〃wb+";fclose(fp;〃关闭fp所指的文件,释放文件缓冲区elseexit(0;elseNumber二read_file(em;〃要是文件已经有数据将数据初始化到数组中system(〃cls〃;while(1menu(;printf("\t\t==〉请选择:seanf(〃%d〃,&choose;system(,zcls,z;switch(choosecase0:exit(0;//退•出break;case1:add(;break;case2:select(;fh(;〃查看职工信息break;case3:zc_query(;fh(;〃查找break;num_del(;fh(;〃删除break;tongji(;fh(;〃统计break;}}sort(;break;case7:num-modify(;fh(;〃修改后返回break;save(;fh(;〃保存break;disp(;fh(;break;〃显示default:break;fflush(stdin;getchar(;systemCcls,z;voidsave(printf(printf(〃\t程序在运行时已自动保存.•…\n〃;voidfh(printf(,,\t=>按Enter键返回主菜单\n";voidnum_modify(//修改职工信息FILE*fp=NULL;chargh[60];inti=0;intchangelndex=0;//changelndex改变加J#己intindex=0;printf(〃请输入要修改的职工工号:〃;seagh;for(i=0;iif(stremp(gh,em[i].num-0匕较输入工号和数组中已有工号changelndex二i;〃保存要修改的人的下标break;printfC\t工号\t姓名\t性别\t部门\t职称\t工资\n";printf(z/\t%s\t%s\t%s\t%s\t%s\t%d\n\nz/,emLchangelndex].num,emLchangelndex].name,emLchangelndex].sex,em[changelndex].bm,emLchangelndexLzc,emLchangelndex].gz;printf(〃请重新输入该职工信息〃;printf(〃工号:seanf(〃%seanf(〃%s〃,em[changelndex].num;printfprintf(〃姓名:〃;seanfem[changelndex]seanfem[changelndex]・name;printfprintf(〃性另I」:〃;seanf(〃%seanf(〃%s〃,em[changelndex].sex;printfC-nPlprintfC-nPl】:seanf(〃%seanf(〃%d〃,em[changelndex].bm;printfprintf(〃职称:〃;seanf(〃%seanf(〃%s〃,em[changelndex].zcprintf(〃工资:〃;seanf(〃%d〃,&em[changelndex].gz;fp=fopen(〃employeel.txt〃,〃wb+fp=fopen(〃employeel.txt〃,〃wb+〃;n*size个字节输入至Ufp所指for(i=0;ifwrite(&em[i],sizeof(structemployee,1,fp;//JEptrJ听才旨向向的文件中fclose(fp;printf(,z\t》修改成功\n〃;}

voiddisp(〃输出所有职工信息inti=0;for(i=0;iprintf(,z\t%s\t%s\t%s\t%s\t%s\t%d\n\n,z,em[i].num,em[i].name,em[i].sex,em[i].bm,em[i].zc,em[i].gz;voidsort(〃排序structempioyeet;intwantNUmber=0;inti=0intj=0;intintwantNUmber=0;inti=0intj=0;intk=0;for(i=0;i{k=i;for(j=i+l;jif(em[j].gz>em[k].gzk=j;emLil=emEk];em[k]=t;printf(〃你想输出前几名职工的信息:seanf(〃%d〃,&wantNUmber;if(wantNUmber>NumberwantNUmber=Number;printfC\t工号\t姓名\t性别\t部I】\t职称\t工资\n";for(i=0;iprintf(,z\t%s\t%s\t%s\t%s\t%s\t%d\n\n,z,emEiLnum,emL,emEiLsex,emLiJ.bm,emiiLvoidtongji(//统t十doublesum=0.0;for(i=0;isum=sum+em[iLgz;printf(〃全体职工的总工资为:%f\n〃,s皿printf(〃平均工费为:%f\n〃,sum/Number;i=Oim=Oimax=O;max=em.gz;for(i=l;iif(emiij.gz>maxm=i;max=gz;printf(〃最同工费为:%d\n〃,max;printf(z/\t%s\t%s\t%s\t%s\t%s\t%d\n\nz/,emLm].num,emL,emLm].sex,bm,e・zc,em[m_・gz;i=O;k=O;min=0;min=emLO..gz;for(i=l;iif(emLi].gzk=i;min=em[k].gz;printf(〃最彳氐工负:%d\n〃,min;printf(z/\t%s\t%s\t%s\t%s\t%s\t%d\n\n,z,em[k].num,em[,em[k].sex,em[k].bm,emLkJ.zc,emik].gz;voidnum_de1(//按工号删除FILE*fp=NULL;chargh[60];inti=0;intj=0;printf(〃请输入要删除的职工工号:〃;seanf(〃%d〃,gh;for(i=0;iif(stremp(gh,em[i].num=0//如果查找到就删除for(j=i;jem[j]=em[j+l];Number―;〃将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了fp=fopen(〃employeel.dat,,〃wb〃;}

for(i=0;ifwrite(ftemiil,sizeof(structempioyee,1,fp;fclose(fp;printf(〃删除成功;\n〃;voidzc_query(〃按职称查找charzc[20];inti=0;printf(〃请输入要查找职工职称:〃;seanf(〃%s〃,zc;system(〃cls〃;printfC\t工号\t姓名\t性别\t部门\t职称\t工资\n";for(i=0;iif(stremp(zc,em[ij.zc==0printf(,z\t%s\t%s\t%s\t%s\t%s\t%d\n\n,z,em[i].num,em[i].name,em[i..sex,em[i].bm,em[i].zc,em[ij.gz;voidselect(〃查看*MR工inti=0;printf(〃以下是全部职工信息\n〃;printfC\t工号\t姓名\t性别\t部I】\t职称\t工资\n";for(i=0;iprintf(,z\t%s\t%s\t%s\t%s\t%s\t%d\n\n,z,em[i].num,em[iZ.name,em[i].sex,emFiJ.bm,emLi].zc,emLi].gz;voidadd(〃增加职工voidadd(〃增加职工intnumberTemp=0;inti=0;structempioyeetemp;/临时保存信息printf(〃请输入要增加职工信息的个数:〃;seanf(〃%d〃,&numberTemp;for(i=0;iprintf(〃输入第%d个职工信息\n〃,i+1;printf(〃工号:〃;seanf(〃%s〃,temp.num;printf("姓名:":seanf(〃%s〃,;printf(〃性别:";seanf(〃%s〃,temp.sex;printf("部I]:seanf(〃%s〃,temp.bm;printf(〃职称:";seanf(〃%s〃,temp.zc;printf(“工费:〃;seanf(〃%d〃,&temp.gz;em[Numbe叶+]=temp;f,将刚添加的与入到数组write_file(&temp;〃将刚添加的与入到文件printf("添加成功\n〃;voidwrite_file(structempioyee*emFILE*fp=NULL;fp=fopen(〃employeel.txt〃,〃rb+〃;fwrite(em,sizeof(structempioyee,1,fp;fclose(fp;intread_file(structempioyeeem匚FILE*fp=NULL;inti=0;fp=fopen(〃empioyeel.txt〃,;while(fread(&emli],sizeof(structempioyee,1,fpf

温馨提示

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

评论

0/150

提交评论