C 课程设计之职工信息管理系统.docx
- 文档编号:4977215
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:14
- 大小:17.45KB
C 课程设计之职工信息管理系统.docx
《C 课程设计之职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《C 课程设计之职工信息管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
C课程设计之职工信息管理系统
#include
#include
#include
#include
intmain();
voidsave(intN);
intload();
voidchange();
voidinput();//录入工人的信息
voidprint();
voidfind_edu();
voidfind_num();
voidfind();
intmenu();
voiddel();
inti,c=0;
structWorkers
{
intjob_num;
charname[10];
charsex[6];
inteages;
chareducation[20];
intsalary;
charaddress[20];
charnumber[15];
}worker[100];
voidinput()//录入工人的信息
{
intN;
printf("输入工人的个数:
");
scanf("%d",&N);
for(i=0;i { printf("输入第%d个工人的信息: \n",i+1); printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); scanf("%d%s%s%d%s%d%s%s",&worker[i].job_num,worker[i].name,worker[i].sex,&worker[i].eages,worker[i].education,&worker[i].salary,worker[i].address,worker[i].number); printf("\n"); fflush(stdin); } save(N); } voidsave(intN)//将工人的信息存入磁盘 { FILE*fp; if((fp=fopen("worker.dat","wb"))==NULL) { printf("cannotopenfile\n"); exit(0); } for(i=0;i if(fwrite(&worker[i],sizeof(structWorkers),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } intload()//读盘里的信息 { FILE*fp; i=0; if((fp=fopen("worker.dat","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } do { fread(&worker[i],sizeof(structWorkers),1,fp); i++; }while(! feof(fp)); fclose(fp); return(i-1); } voidprint()//浏览工人信息 { if(c<=0) c=load(); for(i=0;i { printf("输出第%d个工人的信息: \n",i+1); printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",worker[i].job_num,worker[i].name,worker[i].sex,worker[i].eages,worker[i].education,worker[i].salary,worker[i].address,worker[i].number); printf("\n"); } } voidfind_edu()//按工号查询工人信息 { intt,flag=0; if(c<=0) c=load(); charedu[20]; printf("请输入需要查询的学历: "); scanf("%s",edu); for(i=0;i if(strcmp(worker[i].education,edu)==0) { printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s",worker[i].job_num,worker[i].name,worker[i].sex,worker[i].eages,worker[i].education,worker[i].salary,worker[i].address,worker[i].number); printf("\n"); flag=1; } if(flag==0) printf("\n对不起,没有找到此工人! \n"); printf("\n继续查询学历请按1,返回查询函数请按2\n"); scanf("%d",&t); switch(t) { case1: find_edu();break; case2: find();break; } printf("\n"); } voidfind_num()//按学历查询工人信息 { intt,flag=0; if(c<=0) c=load(); intnum1; printf("请输入需要查询的职工号: "); scanf("%d",&num1); for(i=0;i { if(worker[i].job_num==num1) printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",worker[i].job_num,worker[i].name,worker[i].sex,worker[i].eages,worker[i].education,worker[i].salary,worker[i].address,worker[i].number); flag=1; } if(flag==0) printf("\n对不起,没有找到此工人! \n"); printf("\n继续查询学历请按1,返回查询函数请按2\n"); scanf("%d",&t); switch(t) { case1: find_num();break; case2: find();break; } } voidfind()//查询函数 { inta,flag; do { printf("\n******************************************\n"); printf("\t按职工号查询请按1\n\t按学历查询请按2\n\t进入主菜单按3\n"); printf("\n******************************************\n"); scanf("%d",&a); if(a>0&&a<4) { flag=1; break; } else { flag=0; printf("您输入有误,请重新输入! "); } } while(flag==0); while(flag==1) { switch(a) { case1: find_num();break; case2: find_edu();break; case3: main();break; } } } intmenu()//创建菜单 { intb; printf("\t****************菜单******************\n"); printf("\t**1.工人信息录入**\n"); printf("\t**2.浏览工人信息**\n"); printf("\t**3.查询工人信息**\n"); printf("\t**4.删除工人信息**\n"); printf("\t**5.修改工人信息**\n"); printf("\t**0.退出**\n"); printf("\t**************************************\n"); do{ printf("\n输入你的选择项(0~5): \n"); scanf("%d",&b); }while(b<0||b>5); returnb; } voiddel()//删除函数 { if(c<=0) c=load(); intj,flag=0,num,a; charch1,ch2; printf("\n原来的职工信息: \n"); print();//调用浏览函数 printf("\n"); printf("请输入要删除的工人的工号: \n"); fflush(stdin); scanf("%d",&num); for(i=0;i { if(worker[i].job_num==num) { printf("已找到该工人,输出工人的信息: \n"); printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",worker[i].job_num,worker[i].name,worker[i].sex,worker[i].eages,worker[i].education,worker[i].salary,worker[i].address,worker[i].number); printf("\n确实要删除此人信息请按Y/y,不删除请按N/n\n"); fflush(stdin); scanf("%c",&ch1); if(ch1=='y'||ch1=='Y') { for(j=i;j { worker[j]=worker[j+1]; } printf("你要保存你的修改吗? 保存请按1不保存请按0\n"); scanf("%d",&a); if(a==1) { c=c-1; save(c);//调用保存函数 c=load(); printf("\n浏览改变后的所有工人信息: \n"); print(); } else printf("谢谢你的使用! "); } if(ch1=='n'||ch1=='N') printf("谢谢使用! \n"); flag=1; } } if(flag==0) printf("对不起,没有找到此工人! \n"); printf("\n继续删除请按Y/y,不再删除请按N/n: \n"); fflush(stdin); scanf("%c",&ch2); switch(ch2) { case'Y': del();break; case'y': del();break; case'N': break; case'n': break; } } voidchange()//修改函数 { charsex1[10],name1[20],education1[20],address1[30],number1[15]; charch1,ch2; intjob_num1,eages1,salary1,num,a; intb,i,t,flag=0; if(c<=0) c=load();//调用load函数 printf("\n输出原来的职工信息: \n"); print();//调用浏览函数 printf("请输入要修改的工人的工号: \n"); fflush(stdin); scanf("%d",&num); for(i=0;i { if(worker[i].job_num==num) { printf("\n已找到此人,原始记录为: \n"); printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",worker[i].job_num,worker[i].name,worker[i].sex,worker[i].eages,worker[i].education,worker[i].salary,worker[i].address,worker[i].number); printf("\n确实要修改此人信息请按Y/y;不修改请按N/n\n"); fflush(stdin); scanf("%c",&ch1); if(ch1=='y'||ch1=='Y') { do { printf("\n******************************************\n"); printf("\t需要进行修改的选项\n\t1.职工号******2.姓名\n\t3.性别******4.年龄\n\t5.学历******6.工资\n\t7.住址******8.电话\n"); printf("\n******************************************\n"); do{ printf("\n输入你的选择项(1~8): \n"); scanf("%d",&b); }while(b<1||b>8); switch(b)//因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人 { case1: printf("工人的工号改为\n"); scanf("%d",&job_num1); worker[i].job_num=job_num1; break; case2: printf("工人的名字改为\n"); scanf("%s",name1); strcpy(worker[i].name,name1); break; case3: printf("工人的性别改为\n"); scanf("%s",sex1); strcpy(worker[i].sex,sex1); break; case4: printf("工人的年龄改为\n"); scanf("%d",&eages1); worker[i].eages=eages1; break; case5: printf("工人的学历改为\n"); scanf("%s",education1); strcpy(worker[i].education,education1); break; case6: printf("工人的工资改为\n"); scanf("%d",&salary1); worker[i].salary=salary1; break; case7: printf("工人的地址改为\n"); scanf("%s",address1); strcpy(worker[i].address,address1); break; case8: printf("工人的电话改为\n"); scanf("%s",number1); strcpy(worker[i].number,number1); break; } printf("\n是否还要继续修改的信息? \n继续请按Y/y;不重新修改请按N/n: \n"); fflush(stdin); scanf("%c",&ch2); }while(ch2=='y'||ch2=='Y'); printf("\n你要保存你的修改吗? 保存请按1不保存请按0\n"); scanf("%d",&a); if(a==1) { save(c);//调用保存函数 printf("\n浏览修改后的职工信息: \n"); printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",worker[i].job_num,worker[i].name,worker[i].sex,worker[i].eages,worker[i].education,worker[i].salary,worker[i].address,worker[i].number); } else printf("谢谢你的使用! "); } if(ch1=='n'||ch1=='N') printf("谢谢使用! "); flag=1; } } if(! flag) printf("\n对不起,没有找到此工人! \n"); printf("\n继续修改请按1,不再修改请按2\n"); scanf("%d",&t); switch(t) { case1: change();break; case2: break; } } intmain() { printf("\n按任意一键进入菜单........"); getch(); putchar(10); while (1) { switch(menu())//调用主菜单函数,返回值整数作开关语句的条件 { case1: input();//工人信息录入 system("PAUSE"); break; case2: print();//浏览工人信息 system("PAUSE"); break; case3: find();//查询工人信息 system("PAUSE"); break; case4: del();//删除工人信息 system("PAUSE"); break; case5: change();//修改工人信息信息 system("PAUSE"); break; case0: exit(0);//退出 } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计之职工信息管理系统 课程设计 职工 信息管理 系统