373-湖北汽车工业学院电气与信息工程学院内容摘要:

date1) n=1。 break。 case 10: if(em[i].date31||em[i].date1) n=1。 break。 case 11: if(em[i].date30||em[i].date1) n=1。 break。 case 12: if(em[i].date31||em[i].date1) n=1。 break。 } }while(n==1)。 em[i].age=2020em[i].year。 printf(该职工年龄为 : %d\n,em[i].age)。 getchar()。 printf(请输入学历 : )。 scanf(%s,em[i].xueli)。 getchar()。 printf(请输入工资 : )。 scanf(%d,amp。 em[i].wage)。 getchar()。 printf(请输入住址 : )。 scanf(%s,em[i].addr)。 getchar()。 printf(请输入电话 : )。 scanf(%d,amp。 em[i].tel)。 printf(\n)。 } printf(\n 创建完毕 !\n)。 save(m)。 } void save(int m) /*保存文件函数 */ { int i。 FILE*fp。 if ((fp=fopen(,wb))==NULL) /*创建文件并判断是否能打开 */ { printf (cannot open file\n)。 exit(0)。 } for (i=0。 im。 i++) /*将内存中职工的信息输出到磁盘文件中去 */ if (fwrite(amp。 em[i],sizeof(struct workers),1,fp)!=1) printf(file write error\n)。 fclose(fp)。 } int load() /*导入函数 */ { FILE*fp。 int i=0。 if((fp=fopen(,rb))==NULL) { printf (cannot open file\n)。 exit(0)。 } else { do { fread(amp。 em[i],sizeof(struct workers),1,fp)。 i++。 } while(feof(fp)==0)。 } fclose(fp)。 return(i1)。 } void display() /*浏览函数 */ { int i。 int m=load()。 printf(\n 职工号 \t 姓名 \t 性别 \t 年龄 \t 生日 \t 学历 \t 工资 \t 住址 \t电话 \n)。 for(i=0。 im。 i++) printf(\n %d\t%s\t%c\t%d\t%d%d%d\t%s\t%d\t%s\t%ld\n,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].year,em[i].month,em[i].date,em[i].xueli,em[i].wage,em[i].addr,em[i].tel)。 } void del() /*删除函数 */ { int m=load()。 int i,j,n,t,flag。 char name[20]。 printf(\n 原来的职工信息 :\n)。 display()。 printf(\n)。 printf(请输入要删除的职工姓名 :\n)。 scanf(%s,name)。 for(flag=1,i=0。 flagamp。 amp。 im。 i++) { if(strcmp(em[i].name,name)==0) { printf(\n 已找到此人,原始记录为: \n)。 printf(\n 确定删除请输入 1,不删除请输入 0\n)。 scanf(%d,amp。 n)。 if(n==1) /*如果删除,则其他的信息都往上移一行 */ { for(j=i。 jm1。 j++) { strcpy(em[j].name,em[j+1].name)。 em[j].num=em[j+1].num。 em[j].sex=em[j+1].sex。 em[j].age=em[j+1].age。 strcpy(em[j].xueli,em[j+1].xueli)。 em[j].wage=em[j+1].wage。 strcpy(em[j].addr,em[j+1].addr)。 em[j].tel=em[j+1].tel。 } flag=0。 } printf(\n 浏览删除后的所有职工信息 :\n)。 save(m)。 /*调用保存函数 */ display()。 /*调用浏览函数 */ } } if(!flag) m=m1。 else printf(\n 对不起,查无此人 !\n)。 printf(\n 继续删除请按 1,不再删除请按 0\n)。 scanf(%d,amp。 t)。 switch(t) { case 1:del()。 break。 case 0:break。 default :break。 } } void add()/*添加函数 */ { FILE*fp。 int n。 int count=0。 int i。 int m=load()。 printf(\n 原来的职工信息 :\n)。 display()。 /* 调用浏览函数 */ printf(\n)。 fp=fopen(emploee_list,a)。 printf(请输入想增加的职工数 :\n)。 scanf(%d,amp。 n)。 for (i=m。 i(m+n)。 i++) { printf(\n 请输入新增加职工的信息 :\n)。 printf(请输入职工号 : )。 scanf(%d,amp。 em[i].num)。 printf(\n)。 printf(请输入姓名 : )。 scanf(%s,em[i].name)。 getchar()。 printf(请输入性别 (f女 m男 ): )。 scanf(%c,amp。 em[i].sex)。 printf(请输入出生日期 (19910101):)。 do{ n=0。 printf(请输入日期 \n)。 scanf(%d%d%d,amp。 em[i].year,amp。 em[i].month,amp。 em[i].date)。 if(em[i].year0||em[i].year3000) n=1。 if(em[i].month12||em[i].month1) n=1。 switch(em[i].month) { case 1: if(em[i].date31||em[i].date1) n=1。 break。 case 2: if((em[i].year%4==0)amp。 amp。 (em[i].year%100!=0)||(em[i].year%400==0)) { if(em[i].date29||em[i].date1) n=1。 } else if(em[i].date28||em[i].date1) n=1。 break。 case 3: if(em[i].date31||em[i].date1) n=1。 break。 case 4: if(em[i].date30||em[i].date1) n=1。 break。 case 5: if(em[i].date31||em[i].date1) n=1。 break。 case 6: if(em[i].date30||em[i].date1) n=1。 break。 case 7: if(em[i].date31||em[i].date1) n=1。 break。 case 8: if(em[i].date31||em[i].date1)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。