《c程序设计报告职工信息管理系统》由会员分享,可在线阅读,更多相关《c程序设计报告职工信息管理系统(27页珍藏版)》请在金锄头文库上搜索。
1、 职工信息管理系统题目要求 2设计目的 2总体设计 2详细设计 2调试与测试 12源程序 14总结 27 职工信息管理程序一 题目要求 1. 问题描述:设计一个系统来管理职工的信息。职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)2. 要求: 系统需要提供一下功能: 1、以菜单方式工作 2、职工信息浏览功能 3、职工信息查询功能 查询方式:按学历查询和按职工号查询 4、职工信息删除 5、职工信息修改 6、职工信息的输入 职工信息存储在文本中。.二 设计目的根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览职工的信息,应提供
2、显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.三 总体设计根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.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
3、(); 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; defa
4、ult :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;nm;n+) printf(输入职工号); scanf(%d,&peon.num); printf(输入姓名: ); scanf(%s,peon.name); getchar(); printf(输入性别:); scanf(%
5、c,&peon.sex); printf(输入工资: ); scanf(%d,&peon.money); printf(输入地址: ); scanf(%s,peon.addr); printf(输入号码: ); scanf(%d,&peon.phone); printf(输入年龄: ); scanf(%d,&peon.age); printf(输入学历: ); scanf(%s,peon.xueli); save(m); 2. 修改模块:分析:用户输入要修改职工的职工号,根据职工号等信息查找学生记录,并提示用户修改该记录的哪部分信息.根据用户选择修改相应的信息.流程图:1、 输入要修改的职工的
6、职工号2、 查询其信息3、 使用函数删除其信息4、 对其进行信息的重新输入 程序:void xiugai() int t,i,j; printf(输入要修改职工的职工号:n); scanf(%d,&t); / printf(oo); for(i=0;i100;i+) if(peoi.num=t) j=i; break; / printf(ww); /clear(peo,j); / printf(qq); printf(输入职工号:); scanf(%d,&peoj.num); printf(输入姓名: ); scanf(%s,peoj.name); getchar(); printf(输入性别
7、:); scanf(%c,&peoj.sex); printf(输入工资: ); scanf(%d,&peoj.money); printf(输入地址: ); scanf(%s,peoj.addr); printf(输入号码: ); scanf(%d,&peoj.phone); printf(输入年龄: ); scanf(%d,&peoj.age); printf(输入学历: ); scanf(%s,peoj.xueli); save(:m); 3.删除模块: 分析:该模块的功能是,用户输入要删除的学生的学号,根据学生学号查找记录并删除.流程图:1、找到要删除的职工的信息2、对其使用写的功能,
8、删除其中的值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;n100;n+) if(peon.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 %
9、d %d %s %sn,peoi.num,peoi.name,peoi.age,peoi.sex,peoi.phone,peoi.money,peoi.addr,peoi.xueli); printf(删除成功!); fclose(fp); return; else printf(没有找到!n); display(); 4.查询模块需求分析:该模块的功能是根据输入的职工号查找对应的记录,找到以后,显示相应的职工信息.流程图:1、 根据对应的提示查找信息2、 运用循环比较的方法进行查找3、 分别是按照职工号和学历程序: void search()int d; printf(你选择的查询方法:1.
10、按职工号 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;im;i+) if(num=peoi.num) printf( 职工号 姓名t性别t年龄t学历t工资t住址t电话n); printf(n %dt%st%ct%dt%st%dt%st%dn
11、,peoi.num,peoi.name,peoi.sex,peoi.age,peoi.xueli,peoi.money,peoi.addr,peoi.phone); else ; void search_xueli() char xueli30; int i,h=1; int m=load(); printf(请输入要查找的学历:n); scanf(%s,xueli); for(i=0;im;i+) if(strcmp(peoi.xueli,xueli)=0) printf( 职工号 姓名t性别t年龄t学历t工资t住址t电话n); printf(n %dt%st%ct%dt%st%dt%st%dn,peoi.num,peoi.name,peoi.sex,peoi.age,peoi.xueli,peoi