职工信息管理系统源代码.docx
- 文档编号:8731995
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:58.73KB
职工信息管理系统源代码.docx
《职工信息管理系统源代码.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统源代码.docx(15页珍藏版)》请在冰豆网上搜索。
职工信息管理系统源代码
#include
#include
#include
intN=2;
structworker/*定义一个职工信息的结构体*/
{
intnum;/*定义一个职工信息的结构体*/
charname[20];/*定义一个职工信息的结构体*/
charsex[10];//用字符串存放职工的性别数据
charbirth[20];//用字符串存放职工的出生年月数据
chardeta[20];//用字符串存放职工的工作年月数据
chareducation[20];//用字符串存放职工的学历数据
doublesalary;//用字符串存放职工的性别数据
charwork[30];//用字符串存放职工的职务数据
charaddr[20];//用字符串存放职工的地址数据
chartel[20];//用字符串存放职工的数据
}worker[100];//用结构体数组存放职工的所有信息
voidmenu();
voidinput();
voidsave();
voidread();
voiddisplay();
voidadd();
voidsearch();
voidsearch_education();
voidsearch_num();
voiddel();
voidmodify();
voidmain()
{
chars;
system("color3f");
printf("\n\n");
printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("\t┃**********************************************************┃\n");
printf("\t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n");
printf("\t┃***┃************************************************┃***┃\n");
printf("\t┃***┃*******┃***┃\n");
printf("\t┃***┃***欢迎使用职工信息管理系统****┃***┃\n");
printf("\t┃***┃*******┃***┃\n");
printf("\t┃***┃*******┃***┃\n");
printf("\t┃***┃***制作人吴青伶****┃***┃\n");
printf("\t┃***┃*******┃***┃\n");
printf("\t┃***┃***2013.12.28****┃***┃\n");
printf("\t┃***┃*******┃***┃\n");
printf("\t┃***┃************************************************┃***┃\n");
printf("\t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n");
printf("\t┃**********************************************************┃\n");
printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
do
{
menu();
printf("Doyouwanttocontinue?
(y/n)");
s=getchar();
}while(s=='Y'||s=='y');
}
voidmenu()/*菜单函数*/
{
intb;
printf("\t\n");
printf("\t\n");
printf("\t\n");
printf("\t\n");
printf("\t\n");
printf("\t请选择\n");
printf("\t------------------------------\n");
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||6.职工信息修改||\n");
printf("\t||0.退出||\n");
printf("\t-------------------------------\n");
printf("\n输入你的选择项(0~6):
\n");
scanf("%d",&b);
switch(b)
{
case1:
//职工信息录入、保存
input();
save();
getchar();
break;
case2:
//读入职工信息并显示
read();
display();
getchar();
break;
case3:
//添加职工信息
add();getchar();
break;
case4:
//查询职工信息
search();getchar();
break;
case5:
//读入职工信息并实现职工信息删除功能
read();
del();
getchar();
break;
case6:
//读入职工信息并修改职工信息
read();modify();getchar();
break;
case0:
exit(0);//退出
default:
break;
}
}
voidinput()//录入职工信息
{
inti,flag,j;
printf("输入职工个数(默认个数为2):
");
scanf("%d",&N);
fflush(stdin);//清除缓存
for(i=0;i { loop: printf("职工号: "); scanf("%d",&worker[i].num);fflush(stdin); flag=1; if(worker[N].num<0) printf("请输入正整数: \n"); else for(j=0;j { if(worker[i].num==worker[j].num) { flag=0; printf("工号重复,请重新输入! \n"); gotoloop; } } printf("姓名: ");scanf("%s",worker[i].name);fflush(stdin); printf("性别: ");scanf("%s",worker[i].sex);fflush(stdin); printf("出生年月: ");scanf("%d",&worker[i].birth);fflush(stdin); printf("工作年月: ");scanf("%lf",&worker[i].deta);fflush(stdin); printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs): \n"); scanf("%s",worker[i].education);fflush(stdin); printf("工资: ");scanf("%lf",worker[i].salary);fflush(stdin); printf("职务: ");scanf("%s",worker[i].work);fflush(stdin); printf("住址: ");scanf("%s",worker[i].addr);fflush(stdin); printf(": ");scanf("%s",worker[i].tel);fflush(stdin); } printf("\n创建完毕! \n"); } voidsave()//保存函数 { FILE*fp; inti; if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式打开一个二进制文件 { printf("\ncannotopenfile\n"); exit(0); } for(i=0;i fwrite(&worker[i],sizeof(structworker),1,fp);//将存中的职工信息数据输出到磁盘文件中去(二进制) fclose(fp); } voidread()//读入函数 { FILE*fp; inti=0; if((fp=fopen("worker.txt","rb"))==NULL)//以只读方式为输出打开磁盘文件中的一个二进制文件 { printf("\ncannotopenfile\n"); exit(0); } do{ fread(&worker[i],sizeof(structworker),1,fp);//从worker.txt文件向存读入数据(二进制) i++; }while(! feof(fp)); fclose(fp); N=i-1; } voiddisplay()//信息浏览函数 { inti; for(i=0;i { printf("职工号: %d\n",worker[i].num); printf("姓名: %s\n",worker[i].name); printf("性别: %s\n",worker[i].sex); printf("出生年月: %d\n",worker[i].birth); printf("工作年月: %d\n",worker[i].deta); printf("学历: %s\n",worker[i].education); printf("工资: %lf\n",worker[i].salary); printf("职务: %d\n",worker[i].work); printf("住址: %s\n",worker[i].addr); printf(": %s\n",worker[i].tel); } } voidadd()//添加函数 { FILE*fp; inti; structworkerp; doublet; printf("\n请输入新增加职工的信息: \n"); printf("请输入职工号: \n"); scanf("%d",&p.num); for(i=0;i { while(worker[i].num==p.num) { printf("工号重复,请重新输入! \n"); scanf("%d",&p.num); } } printf("请输入姓名: \n");scanf("%s",p.name); printf("请输入性别: \n");scanf("%s",p.sex); printf("请输入出生年月: \n");scanf("%d",&p.birth); printf("请输入工作年月: \n");scanf("%d",&p.deta); printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs: ): \n");scanf("%s",p.education); printf("请输入工资: \n");scanf("%lf",&t); p.salary=t; printf("请输入职务: \n");scanf("%s",p.work); printf("请输入住址: \n");scanf("%s",p.addr); printf("请输入: \n");scanf("%s",p.tel); printf("\n添加完毕! \n"); if((fp=fopen("worker.txt","ab"))==NULL)//以追加方式打开一个二进制文件尾部 { printf("\ncannotopenfile\n"); exit(0); } fwrite(&p,sizeof(structworker),1,fp); fclose(fp); } voidsearch()//查询函数 { intc; do { puts("\nsearchby=>\n1.学历2.职工号3.取消并返回"); printf("Whichyouneeded? : \n"); scanf("%d",&c); if(c>3||c<1) { puts("\nchoiceerror! pleaseagain! "); getchar();//此语句用于接受在执行上一句时最后输出的回车符 } } while(c>3||c<1); { switch(c) { case1: search_education();break; case2: search_num();break; case3: menu();break; } } } voidsearch_education()//按学历查询函数 { inti,flag=0; chars[10]; printf("\n请输入你要查询的学历: \n"); scanf("%s",s); for(i=0;i { if(strcmp(s,worker[i].education)==0) { printf("职工号: %d\n",worker[i].num); printf("姓名: %s\n",worker[i].name); printf("性别: %s\n",worker[i].sex); printf("出生年月: %d\n",worker[i].birth); printf("工作年月: %d\n",worker[i].deta); printf("学历(中专=zz,大专=dz,本科=bk,研究生=yjs): %s\n",worker[i].education); printf("工资: %lf\n",worker[i].salary); printf("职务: %lf\n",worker[i].work); printf("住址: %s\n",worker[i].addr); printf(": %s\n",worker[i].tel); flag++; } } if(flag==0) printf("\n对不起没有找到! \n"); getchar(); } voidsearch_num()//按工号查询函数 { inti,s,flag=0; printf("\n输入要查询的职工号! : \n"); scanf("%d",&s); for(i=0;i { if(s==worker[i].num) { printf("职工号: %d\n",worker[i].num); printf("姓名: %s\n",worker[i].name); printf("性别: %s\n",worker[i].sex); printf("出生年月: %d\n",worker[i].birth); printf("工作年月: %d\n",worker[i].deta); printf("学历(中专=zz,大专=dz,本科=bk,研究生=yjs): %s\n",worker[i].education); printf("工资: %lf\n",worker[i].salary); printf("职务: %lf\n",worker[i].work); printf("住址: %s\n",worker[i].addr); printf(": %s\n",worker[i].tel); flag++; } } if(flag==0) printf("\n对不起没有找到! please"); getchar(); } voiddel()//删除函数 { inti,j; FILE*fp; charname[20]; charc; if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式打开一个二进制文件 { printf("\ncannotopenfile\n"); exit(0); } printf("请输入要删除的职工的姓名: "); scanf("%s",name); for(i=0;i { if(strcmp(name,worker[i].name)==0)//判断输入的姓名和原来的姓名是否相同 { printf("找到该职工,是否删除? (y/n)"); fflush(stdin); scanf("%c",&c); if(c=='Y'||c=='y') { for(j=i;j worker[j]=worker[j+1]; printf("删除成功! \n"); //break; } } } if(i>=N) { printf("没有找到该职工! \n"); return; } else { N=N-1; for(i=0;i if(fwrite(&worker[i],sizeof(structworker),1,fp)! =1) { printf("\ncannotsavefile\n"); getchar(); } fclose(fp); } } voidmodify()//修改函数 { structworkerp; FILE*fp; inti,n; doublet; printf("\n输入要修改的职工号: \n"); scanf("%d",&n); for(i=0;i { if(n==worker[i].num) { printf("找到该职工的信息(任意键继续)! "); printf("\n请输入职工的信息! \n"); printf("请输入姓名: \n");scanf("%s",p.name); printf("请输入性别: \n");scanf("%s",p.sex); printf("请输入出身年月: \n");scanf("%d",&p.birth); printf("请输入工作年月: \n");scanf("%lf",&p.deta); printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs): \n");scanf("%s",p.education); printf("请输入工资: \n");scanf("%lf",&t); p.salary=t; printf("请输入职务: \n");scanf("%s",p.work); printf("请输入住址: \n");scanf("%s",p.addr); printf("请输入: \n");scanf("%s",p.tel); p.num=n; if((fp=fopen("worker.txt","r+"))==NULL)//以读写的方式将修改的信息写入磁盘文件 { printf("\ncannotopenfile\n"); exit(0); } fseek(fp,i*sizeof(structworker),0);//将位置指针移到i*sizeof(structworker)个字节处 fwrite(&p,sizeof(structworker),1,fp); fclose(fp); printf("修改成功! \n"); break; } } if(i>=N) printf("\n未找到该职工! \n"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 源代码