c程序设计报告职工信息管理系统.docx
- 文档编号:24249084
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:26
- 大小:140.71KB
c程序设计报告职工信息管理系统.docx
《c程序设计报告职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《c程序设计报告职工信息管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
c程序设计报告职工信息管理系统
职工信息管理系统
题目要求···················2
设计目的···················2
总体设计···················2
详细设计···················2
调试与测试·················12
源程序···················14
总结···················27
职工信息管理程序
一.题目要求
1.问题描述:
设计一个系统来管理职工的信息。
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)
2.要求:
•系统需要提供一下功能:
–1、以菜单方式工作
–2、职工信息浏览功能
–3、职工信息查询功能
•查询方式:
按学历查询和按职工号查询
–4、职工信息删除
–5、职工信息修改
–6、职工信息的输入
–职工信息存储在文本中。
。
二.设计目的
根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览职工的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.
三.总体设计
根据上面的需求分析,可以将这个系统分为以下模块:
输入模块,修改模块,删除模块,查找模块,显示模块。
1、职工信息管理系统
1、1输入信息
1、2查询信息
1、3删除信息
1、4修改信息
四.详细设计
1.主函数:
主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.
menu();
inta;
charb;
printf("选择要进行的项目\n");
scanf(”%d",&a);
exa:
switch(a){
case1:
printf(”输入职工信息\n”);printf(”\n");
input();
break;
case2:
printf("浏览职工信息\n");printf("\n”);
display();
break;
case3:
printf(”查询职工信息\n");printf(”\n”);
search();
break;
case4:
printf(”修改职工信息\n”);
printf(”\n”);
xiugai();
break;
case5:
printf(”删除职工信息\n”);printf(”\n”);
del();
break;
/*case6:
printf("添加职工信息\n");
printf("\n”);
add();
break;*/
case6:
exit(0);break;
default:
break;
}
getchar();
printf(”是否继续进行(yorn):
\n");
scanf("%c",&b);
if(b==’y’){
menu();
printf("再次选择操作:
\n”);
scanf(”%d”,&a);gotoexa;
}
elseexit(0);
}
voidinput(){
intn;
printf("输入职工个数:
\n");
scanf(”%d”,&m);
for(n=0;n printf(”输入职工号”); scanf("%d”,&peo[n]。 num); printf("输入姓名: ”); scanf("%s”,peo[n].name); getchar(); printf(”输入性别: ”); scanf("%c”,&peo[n]。 sex); printf("输入工资: ”); scanf(”%d”,&peo[n]。 money); printf(”输入地址: ”); scanf(”%s”,peo[n].addr); printf(”输入号码: "); scanf("%d”,&peo[n]。 phone); printf(”输入年龄: "); scanf("%d",&peo[n]。 age); printf("输入学历: ”); scanf("%s”,peo[n]。 xueli);} save(m); } 2.}修改模块: [分析]: 用户输入要修改职工的职工号,根据职工号等信息查找学生记录,并提示用户修改该记录的哪部分信息.根据用户选择修改相应的信息。 [流程图]: 1、输入要修改的职工的职工号 2、查询其信息 3、使用函数删除其信息 4、 对其进行信息的重新输入 [程序]: voidxiugai(){ intt,i,j; printf("输入要修改职工的职工号: \n”); scanf(”%d”,&t); // printf("oo"); for(i=0;i<100;i++){ if(peo[i]。 num==t) j=i; break; } // printf("ww"); //clear(peo,j); // printf(”qq"); printf(”输入职工号: ”); scanf("%d”,&peo[j]。 num); printf(”输入姓名: "); scanf(”%s",peo[j]。 name); getchar(); printf(”输入性别: ”); scanf(”%c”,&peo[j]。 sex); printf("输入工资: ”); scanf("%d”,&peo[j]。 money); printf("输入地址: ”); scanf(”%s",peo[j].addr); printf(”输入号码: ”); scanf(”%d",&peo[j]。 phone); printf(”输入年龄: ”); scanf(”%d”,&peo[j].age); printf(”输入学历: "); scanf(”%s”,peo[j].xueli); save(: : m); }} 3.删除模块: [分析]: 该模块的功能是,用户输入要删除的学生的学号,根据学生学号查找记录并删除. [流程图]: 1、找到要删除的职工的信息 2、对其使用写的功能,删除其中的值 3、完成删除后浏览剩余信息 [程序]: voiddel(){ FILE*fp; intm=load(); ints,n,j,i,l=0; printf(”\n原来的职工信息: \n”); display(); printf("\n”); printf(”请输入要删除的职工的职工号: \n"); scanf(”%d",&s); for(n=0;n<100;n++) { if(peo[n].num==s) { j=n; l=1; } } if(l==1) { fp=fopen("D: \\data.txt",”w”); clear(peo,j); for(i=0;i<: : m;i++) { if(i==j) continue; fprintf(fp,”%d%s%d%c%d%d%s%s\n”,peo[i]。 num,peo[i]。 name,peo[i]。 age,peo[i]。 sex,peo[i].phone,peo[i]。 money,peo[i].addr,peo[i].xueli); } printf(”删除成功! ”); fclose(fp); return; } else { printf(”没有找到! \n”); } display(); } 4。 查询模块 [需求分析]: 该模块的功能是根据输入的职工号查找对应的记录,找到以后,显示相应的职工信息. [流程图]: 1、根据对应的提示查找信息 2、运用循环比较的方法进行查找 3、分别是按照职工号和学历 程序: voidsearch(){ intd; printf(”你选择的查询方法: 1.按职工号2。 按学历"); scanf("%d”,&d); switch(d){ case1: search_num();break; case2: search_xueli();break; default: break; } } voidsearch_num() {intnum; inti,h=1; intm=load(); printf(”请输入要查找的职工号: \n”); scanf("%d",&num); for(i=0;i〈m;i++) if(num==peo[i]。 num) { printf(”职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf(”\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[i]。 num,peo[i]。 name,peo[i]。 sex,peo[i]。 age,peo[i]。 xueli,peo[i]。 money,peo[i].addr,peo[i].phone); } else;} voidsearch_xueli(){ charxueli[30]; inti,h=1; intm=load(); printf(”请输入要查找的学历: \n”); scanf("%s",xueli); for(i=0;i〈m;i++) if(strcmp(peo[i].xueli,xueli)==0){ printf(”职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"); printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n”,peo[i].num,peo[i]。 name,peo[i].sex,peo[i]。 age,peo[i]。 xueli,peo[i]。 money,peo[i].addr,peo[i]。 phone); } else; } voidxiugai(){ intt,i,j; printf(”输入要修改职工的职工号: \n”); scanf("%d",&t); // printf(”oo"); for(i=0;i〈100;i++){ if(peo[i]。 num==t) j=i; break; } // printf(”ww”); //clear(peo,j); // printf(”qq"); printf(”输入职工号: "); scanf("%d”,&peo[j]。 num); printf("输入姓名: ”); scanf(”%s”,peo[j]。 name); getchar(); printf("输入性别: ”); scanf("%c”,&peo[j]。 sex); printf("输入工资: ”); scanf("%d",&peo[j]。 money); printf("输入地址: ”); scanf(”%s”,peo[j]。 addr); printf("输入号码: ”); scanf("%d”,&peo[j].phone); printf(”输入年龄: "); scanf("%d”,&peo[j].age); printf("输入学历: ”); scanf("%s”,peo[j].xueli); save(: : m); } 5。 输出模块: [需求分析]: 该模块的功能是显示所有职工记录信息。 [程序]: 我voiddisplay(){ intt; //intm=load(); printf(”职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n”); for(t=0;t<: : m;t++) printf(”\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[t]。 num,peo[t]。 name,peo[t]。 sex,peo[t].age,peo[t]。 xueli,peo[t]。 money,peo[t].addr,peo[t]。 phone); } 四调试与测试 在这次课程设计中,程序编写过程中遇到了很多的问题,各种函数的运用也让人头疼,在上机编译运行过程中出现了很多的错误,例如: 各种数据类型的定义,函数的调用等等.但最终还是在老师同学的帮助下进行了各种代码的编写与修改,最终程序成功的运行. 下面是各个模块的界面图 (1)主菜单函数: (2): 输入模块: (3): 显示模块: (4): 删除模块: (5): 查找模块: (6): 修改模块: 六.程序源 #include〈stdio.h〉 #include〈stdlib。 h〉 #include〈string。 h〉 voidinput(); voidclear(structpeople*peo,int); voidsave(int); voiddisplay(); voiddel(); voidmenu(); voidsearch_num(); voidsearch(); voidsearch_xueli(); voidxiugai(); intm; structpeople{ intnum; charname[10]; charsex; intage; intmoney; intphone; charaddr[30]; charxueli[10]; }peo[100]; voidmenu() { printf(”职工信息管理系统\n"); printf("1。 输入职工信息\n”); printf(”2。 浏览职工信息\n”); printf("3。 查询职工信息\n"); printf(”4.修改职工信息\n”); printf(”5。 删除职工信息\n”); printf(”6.退出\n”); } voidmain(){ menu(); inta; charb; printf(”选择要进行的项目\n”); scanf(”%d",&a); exa: switch(a){ case1: printf("输入职工信息\n”);printf("\n"); input(); break; case2: printf("浏览职工信息\n”);printf(”\n”); display(); break; case3: printf("查询职工信息\n”);printf(”\n”); search(); break; case4: printf(”修改职工信息\n"); printf("\n”); xiugai(); break; case5: printf(”删除职工信息\n”);printf(”\n"); del(); break; /*case6: printf(”添加职工信息\n”); printf(”\n"); add(); break;*/ case6: exit(0);break; default: break; } getchar(); printf(”是否继续进行(yorn): \n”); scanf(”%c”,&b); if(b==’y'){ menu(); printf(”再次选择操作: \n"); scanf(”%d”,&a);gotoexa; } elseexit(0); } voidinput(){ intn; printf(”输入职工个数: \n”); scanf(”%d”,&m); for(n=0;n printf(”输入职工号”); scanf(”%d”,&peo[n]。 num); printf(”输入姓名: "); scanf(”%s",peo[n].name); getchar(); printf("输入性别: ”); scanf(”%c”,&peo[n].sex); printf(”输入工资: "); scanf("%d",&peo[n]。 money); printf(”输入地址: "); scanf(”%s”,peo[n].addr); printf(”输入号码: ”); scanf("%d”,&peo[n]。 phone); printf(”输入年龄: ”); scanf(”%d”,&peo[n]。 age); printf(”输入学历: ”); scanf("%s”,peo[n]。 xueli);} save(m); } voidsave(intm)//保存文件函数 {inti; FILE*fp; if((fp=fopen(”D: \\data。 txt",”w”))==NULL){ printf(”cannotopenfile\n”); exit(0);} for(i=0;i {fprintf(fp,”%d%s%d%c%d%d%s%s\n”,peo[i].num,peo[i]。 name,peo[i]。 age,peo[i]。 sex,peo[i]。 phone,peo[i]。 money,peo[i]。 addr,peo[i].xueli);} fclose(fp);//将内存中职工的信息输出到磁盘文件中去 } intload()//导入函数 { FILE*fp; inti=0; fp=fopen("D: \\data.txt”,”r”); while(fscanf(fp,"%d%s%d%c%d%d%s%s\n”,&peo[i]。 num,peo[i]。 name,&peo[i].age,&peo[i]。 sex,&peo[i]。 phone,&peo[i]。 money,peo[i].addr,peo[i].xueli)! =EOF) {i++;} fclose(fp); return(i—1); } voiddisplay(){ intt; //intm=load(); printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n”); for(t=0;t〈: : m;t++) printf(”\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n”,peo[t]。 num,peo[t].name,peo[t].sex,peo[t]。 age,peo[t]。 xueli,peo[t]。 money,peo[t].addr,peo[t]。 phone); } voiddel(){ FILE*fp; intm=load(); ints,n,j,i,l=0; printf(”\n原来的职工信息: \n”); display(); printf("\n”); printf(”请输入要删除的职工的职工号: \n"); scanf(”%d”,&s); for(n=0;n<100;n++) { if(peo[n]。 num==s) { j=n; l=1; } } if(l==1) { fp=fopen("D: \\data。 txt”,”w”); clear(peo,j); for(i=0;i<: : m;i++) { if(i==j) continue; fprintf(fp,”%d%s%d%c%d%d%s%s\n”,peo[i]。 num,peo[i].name,peo[i].age,peo[i]。 sex,peo[i]。 phone,peo[i].money,peo[i]。 addr,peo[i]。 xueli); } printf("删除成功! ”); fclose(fp); return; } else { printf(”没有找到! \n”); } display(); } voidsearch(){ intd; printf(”你选择的查询方法: 1.按职工号2.按学历”); scanf("%d”,&d); switch(d){ case1: search_num();break; case2: search_xueli();break; default: break; } } voidsearch_num() {intnum; inti,h=1; intm=load(); printf(”请输入要查找的职工号: \n"); scanf(”%d”,&num); for(i=0;i if(num==peo[i]。 num) { printf("职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n”); printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n”,peo[i]。 num,peo[i]。 name,peo[i]。 sex,peo[i]。 age,peo[i]。 xueli,peo[i]。 money,peo[i]。 addr,peo[i]。 phone); } else;} voidsearch_xueli(){ charxueli[30]; inti,h=1; intm=load(); printf(”请输入要查找的学历: \n"); scanf("%s”,xueli); for(i=0;i〈m;i++) if(strcmp(peo[i].xueli,xueli)==0){ printf("职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n”); printf(”\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[i]。 num,peo[i]。 name,peo[i]。 sex,peo[i]。 age,peo[i]。 xueli,peo[i]。 money,peo[i]。 addr,peo[i]。 phone); } else; } voidxiugai(){ intt,i,j; printf("输入要修改职工的职工号: \n”); scanf(”%d”,&t); // printf(”oo”); for(i=0;i<100;i++){ if(peo[i].num==t) j=i; break; } // printf(”ww”);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 报告 职工 信息管理 系统