职工信息管理系统C语言源代码.docx
- 文档编号:25869398
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:20
- 大小:24.46KB
职工信息管理系统C语言源代码.docx
《职工信息管理系统C语言源代码.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统C语言源代码.docx(20页珍藏版)》请在冰豆网上搜索。
职工信息管理系统C语言源代码
#include
#include<windows、h>
#include
#defineN 100
structemployee
{
intnum;
char name[20];
charsex; ﻩ
intage;
charxueli[30];
int wage;
charaddr[30];
chartel[20];
}em[100]; /*定义一个结构体*/
voidmenu();
voidinput();
voidsave(int);
void display();
voiddel();
void add();
voidsearch();
voidsearch_num();
void search_xueli();
voidsearch_tel();
voidmodify();/*定义各函数*/
voidmain()
{menu();
intn,flag;
chara;
do
{ printf(”请选择您需要操作得步骤(1--7):
\n");
scanf(”%d”,&n);
if(n〉=1&&n<=7)
{
ﻩflag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!
");
}
}
while(flag==0);
while(flag==1)
{switch(n)
{case1:
printf(” ◆◆◆输入职工信息◆◆◆\n");printf(”\n");input();break;
case 2:
printf(” ◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;
case3:
printf(" ◆◆◆按职工号查询职工信息◆◆◆\n");printf(”\n");search();break;
case 4:
printf(" ◆◆◆删除职工信息◆◆◆\n");printf(”\n”);del();break;
case5:
printf(" ◆◆◆添加职工信息◆◆◆\n");printf("\n”);add();break;
case6:
printf(” ◆◆◆修改职工信息◆◆◆\n”);printf(”\n");modify();break;
case7:
exit(0);break;
default:
break;
}
getchar();
printf("\n");
printf("就是否继续进行(yor n):
\n");
scanf(”%c”,&a);
if(a=='y')
{flag=1;
system(”cls"); /*清屏*/
menu();/*调用菜单函数*/
printf("请再次选择您需要操作得步骤(1--7):
\n");
scanf(”%d”,&n);
printf("\n");
}
else
exit(0);
}
}
voidmenu()/*菜单函数*/
{
printf(" ************欢迎进入职工信息管理系统**********\n");
printf(" 1、录入职工信息");
printf(" 2、浏览职工信息\n");
printf(" 3、查询职工信息");
printf(” 4、删除职工信息\n");
printf(” 5、添加职工信息");
printf(" 6、修改职工信息\n”);
printf(” 7、退出\n”);
printf(" ********************谢谢使用******************\n");
printf("\n”);
printf(”\n");
}
voidinput() /*录入函数*/
{ inti,m;
printf("请输入需要创建信息得职工人数(1—-100):
\n”);
scanf(”%d",&m);
for(i=0;i<m;i++)
{printf(”请输入职工号:
");
scanf("%d",&em[i]、num);
printf(”请输入姓名:
");
scanf(”%s",em[i]、name);
getchar();
printf("请输入性别(f-—女m--男):
");
scanf(”%c",&em[i]、sex);
printf(”请输入年龄:
");
scanf("%d",&em[i]、age);
printf("请输入学历:
”);
scanf("%s”,em[i]、xueli);
printf("请输入工资:
");
scanf("%d”,&em[i]、wage);
printf("请输入住址:
");
scanf(”%s",em[i]、addr);
printf("请输入电话:
");
scanf("%s”,em[i]、tel);
printf(”\n");
}
printf("\n创建完毕!
\n”);
save(m);
}
void save(int m)/*保存文件函数*/
{int i;
;
if((fp=fopen(”employee_list","wb"))==NULL)
{printf("cannot open file\n");
exit(0);
}
for (i=0;i〈m;i++)/*将内存中职工得信息输出到磁盘文件中去*/
if(fwrite(&em[i],sizeof(struct employee),1,fp)!
=1)
printf("error\n”);
fclose(fp);
}
intload() /*导入函数*/
{;
int i=0;
if((fp=fopen(”employee_list",”rb"))==NULL)
{printf("cannot openfile\n");
exit(0);
}
else
{
do
{
fread(&em[i],sizeof(struct employee),1,fp);
i++;
}
while(feof(fp)==0);
}
fclose(fp);
return(i-1);
}
voiddisplay() /*浏览函数*/
{inti;
intm=load();
printf(" 职工号姓名性别年龄 \n");
for(i=0;i<m;i++)/*m为输入部分得职工人数*/
printf("\n%—8d%-6s%-6c%-6d\n",em[i]、num,em[i]、name,em[i]、sex,em[i]、age);
printf("\n 学历工资住址电话\n”);
for(i=0;i printf("\n%—6s%-6d%-6s%—6s\n”,em[i]、xueli,em[i]、wage,em[i]、addr,em[i]、tel); } voiddel()/*删除函数*/ {intm=load(); inti,j,n,t,flag; charname[20]; printf("\n原来得职工信息: \n"); display(); printf("\n”); printf("请输入要删除得职工得姓名: \n"); scanf("%s",name); for(flag=1,i=0;flag&&i〈m;i++) {if(strcmp(em[i]、name,name)==0) {printf("\n已找到此人,原始记录为: \n”); printf(” 职工号姓名性别 年龄 \n"); printf("\n%-8d%-6s%-6c%—6d\n",em[i]、num,em[i]、name,em[i]、sex,em[i]、age); printf("\n 学历 工资住址 电话 \n"); printf("\n %—6s%—6d%—6s%—6s\n",em[i]、xueli,em[i]、wage,em[i]、addr,em[i]、tel); printf("\n确实要删除此人信息请按1,不删除请按0\n"); scanf("%d",&n); if(n==1) { for(j=i;j<m-1;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); strcpy(em[j]、tel,em[j+1]、tel); } flag=0; } } } if(! flag) m=m-1; else printf("\n对不起,查无此人! \n"); printf("\n浏览删除后得所有职工信息: \n”); save(m); /*调用保存函数*/ display(); /*调用浏览函数*/ printf("\n继续删除请按1,不再删除请按0\n"); scanf("%d”,&t); switch(t) {case 1: del();break; case0: break; default: break; } } voidadd()/*添加函数*/ {; int n; intcount=0; inti; intm=load(); printf("\n原来得职工信息: \n"); display(); printf(”\n”); fp=fopen(”emploee_list","a”); printf(”请输入想增加得职工数: \n”); scanf("%d",&n); for(i=m;i〈(m+n);i++) {printf("\n 请输入新增加职工得信息: \n"); printf(”请输入职工号: "); scanf("%d",&em[i]、num); printf(”\n”); printf("请输入姓名: "); scanf(”%s”,em[i]、name); getchar(); printf("请输入性别(f--女m—-男): ”); scanf("%c”,&em[i]、sex); printf("请输入年龄: ”); scanf("%d”,&em[i]、age); printf("请输入学历: ”); scanf("%s",em[i]、xueli); printf(”请输入工资: ”); scanf(”%d”,&em[i]、wage); printf(”请输入住址: ”); scanf(”%s",em[i]、addr); printf("请输入电话: "); scanf("%s”,em[i]、tel); printf(”\n"); count=count+1; printf("已增加得人数: \n”); printf(”%d\n”,count); } printf(”\n添加完毕! \n"); m=m+count; printf("\n浏览增加后得所有职工信息: \n”); printf("\n”); save(m); display(); fclose(fp); } voidsearch()/*查询函数*/ { intt,flag; do { printf(”\n按职工号查询请按1; 按学历查询请按2; 按电话号码查询请按3; 进入主函数请按4\n"); scanf(”%d",&t); if(t>=1&&t<=4) {flag=1; break; } else {flag=0; printf("您输入有误,请重新选择! ”); } } while(flag==0); while(flag==1) { switch(t) {case1: printf(”按职工号查询\n”);search_num();break; case2: printf("按学历查询\n”);search_xueli();break; case3: printf(”按电话号码查询\n”);search_tel();break; case4: main();break; default: break; } } } voidsearch_num() { intnum; inti,t; int m=load(); printf(”请输入要查找得职工号: \n"); scanf(”%d”,&num); for(i=0;i if(num==em[i]、num) { printf("\n已找到此人,其记录为: \n"); printf(" 职工号姓名性别 年龄\n”); printf(”\n%-8d%-6s%—6c%-6d\n”,em[i]、num,em[i]、name,em[i]、sex,em[i]、age); printf(”\n学历工资 住址电话\n"); printf(”\n%-6s%-6d%-6s%-6s\n",em[i]、xueli,em[i]、wage,em[i]、addr,em[i]、tel); break; } if(i==m) printf("\n对不起,查无此人\n”); printf("\n”); printf("返回查询函数请按1,继续查询职工号请按2\n”); scanf(”%d",&t); switch(t) {case1: search();break; case2: break; default: break; } } voidsearch_xueli() {charxueli[30]; inti,t; intm=load(); printf(”请输入要查找得学历: \n"); scanf("%s”,xueli); for(i=0;i〈m;i++) if(strcmp(em[i]、xueli,xueli)==0) {printf("\n已找到,其记录为: \n"); printf("职工号姓名性别 年龄 \n”); printf("\n%-8d%—6s%-6c%-6d\n”,em[i]、num,em[i]、name,em[i]、sex,em[i]、age); printf(”\n学历工资 住址 电话 \n”); printf("\n%—6s%-6d%-6s%—6s\n",em[i]、xueli,em[i]、wage,em[i]、addr,em[i]、tel); } if(i==m) printf("\n对不起,查无此人\n"); printf(”\n"); printf("返回查询函数请按1,继续查询学历请按2\n”); scanf("%d”,&t); switch(t) { case1: search();break; case2: break; default : break; } } voidsearch_tel() { chartel[20]; int i,t; intm=load(); printf("请输入要查找得电话号码: \n"); scanf("%s”,tel); for(i=0;i if(strcmp(tel,em[i]、tel)==0) { printf(”\n已找到此人,其记录为: \n”); printf("职工号 姓名 性别年龄 \n"); printf("\n %-8d%-6s%-6c%—6d\n”,em[i]、num,em[i]、name,em[i]、sex,em[i]、age); printf("\n学历 工资住址电话\n”); printf("\n%-6s%—6d%—6s%-6s\n",em[i]、xueli,em[i]、wage,em[i]、addr,em[i]、tel); break; } if(i==m) printf("\n对不起,查无此人\n"); printf(”\n"); printf("返回查询函数请按1,继续查询电话号码请按2\n"); scanf("%d”,&t); switch(t) { case1: search();break; case2: break; default : break; } } voidmodify() /*修改函数*/ { intnum; charname[20]; charsex; intage; charxueli[30]; int wage; charaddr[30]; chartel[20]; intb,c,i,n,t,flag; intm=load(); printf("\n原来得职工信息: \n"); display(); printf("\n”); printf(”请输入要修改得职工得姓名: \n”); scanf(”%s”,name); for(flag=1,i=0;flag&&i<m;i++) { if(strcmp(em[i]、name,name)==0) { printf(”\n已找到此人,原始记录为: \n"); printf("职工号姓名性别年龄 \n”); printf("\n %-8d%-6s%—6c%-6d\n”,em[i]、num,em[i]、name,em[i]、sex,em[i]、age); printf(”\n 学历工资 住址 电话 \n"); printf(”\n %-6s%-6d%-6s%-6s\n",em[i]、xueli,em[i]、wage,em[i]、addr,em[i]、tel); printf("\n确实要修改此人信息请按1;不修改请按0\n"); scanf(”%d",&n); if(n==1) { printf("\n需要进行修改得选项\n1、职工号 2、姓名 3、性别4、年龄5、学历6、工资7、住址8、电话\n"); printf(”请输入您想修改得那一项序号: \n”); scanf(”%d",&c); if(c>8||c<1) printf("\n选择错误,请重新选择! \n"); } flag=0; } } if(flag==1) printf(”\n对不起,查无此人! \n"); do { switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面得应该把改后得信息赋值给第i-1个人*/ { case1: printf("职工号改为: ”); scanf(”%d",&num); em[i-1]、num=num; break; case 2: printf("姓名改为: ”); scanf("%s”,name); strcpy(em[i—1]、name,name); break; case3: printf("性别改为: "); getchar(); scanf(”%c",&sex); em[i-1]、sex=sex; break; case4: printf("年龄改为: ”); scanf("%d”,&age); em[i-1]、age=age; break; case5: printf("学历改为: "); scanf("%s",xueli); strcpy(em[i—1]、xueli,xueli); break; case 6: printf(”工资改为: "); scanf(”%d",wage); break; case7: printf("住址改为: "); scanf(”%s",addr); strcpy(em[i-1]、addr,addr); break; case8: printf("电话改为: ”); scanf(”%s”,tel); strcpy(em[i-1]、tel,tel); break; } printf("\n"); printf("\n就是否确定所修改得信息? \n就是请按1;不,重新修改 请按2: \n”); scanf("%d",&b); } while(b==2); printf("\n浏览修改后得所有职工信息: \n”); printf("\n”); save(m); display(); printf(”\n继续修改请按1,不再修改请按0\n"); scanf(”%d”,&t); sw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 语言 源代码