职工信息管理系统题目要求 (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();int a;char b;printf("选择要进行的项目\n");scanf("%d",&a);exa: switch(a){case 1:printf("输入职工信息\n");printf("\n");input();break;case 2:printf("浏览职工信息\n");printf("\n");display();break;case 3:printf("查询职工信息\n");printf("\n");search();break;case 4:printf("修改职工信息\n");printf("\n");xiugai();break;case 5:printf("删除职工信息\n");printf("\n");del();break;/* case 6:printf("添加职工信息\n");printf("\n");add();break; */case 6:exit(0);break;default :break;}getchar();printf("是否继续进行(y or n):\n"); scanf("%c",&b);if(b=='y'){menu();printf("再次选择操作:\n"); scanf("%d",&a);goto exa;}else exit(0);}void input(){int n;printf("输入职工个数:\n"); scanf("%d",&m);for(n=0;n<m;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、对其进行信息的重新输入[程序]:void xiugai(){int t,i,j;printf("输入要修改职工的职工号:\n");scanf("%d",&t);um==t)j=i;break;}um);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、完成删除后浏览剩余信息[程序]:void del(){FILE *fp;int m=load();int s,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:\\","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、分别是按照职工号和学历程序:void search(){int d;printf("你选择的查询方法:1.按职工号2.按学历");scanf("%d",&d);switch(d){case 1:search_num();break;case 2:search_xueli();break;default :break;}}void search_num(){ int num;int i,h=1;int m=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 ;}void search_xueli(){char xueli[30];int i,h=1;int m=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 ;}void xiugai(){int t,i,j;printf("输入要修改职工的职工号:\n");scanf("%d",&t);um==t)j=i;break;}um);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.输出模块:[需求分析]:该模块的功能是显示所有职工记录信息.[程序]:我void display(){int t;um,peo[t].name,peo[t].sex,peo[t].age,peo[t].xueli,peo[t].money,peo[t].addr,peo[t].p hone);}四调试与测试在这次课程设计中,程序编写过程中遇到了很多的问题,各种函数的运用也让人头疼,在上机编译运行过程中出现了很多的错误,例如:各种数据类型的定义,函数的调用等等。