c程序设计报告职工信息管理系统.doc_第1页
c程序设计报告职工信息管理系统.doc_第2页
c程序设计报告职工信息管理系统.doc_第3页
c程序设计报告职工信息管理系统.doc_第4页
c程序设计报告职工信息管理系统.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

职工信息管理系统题目要求 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;nm;n+) printf(输入职工号); scanf(%d,&peon.num); printf(输入姓名: ); scanf(%s,); getchar(); printf(输入性别:); scanf(%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、 输入要修改的职工的职工号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,); getchar(); printf(输入性别:); 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、对其使用写的功能,删除其中的值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 %d %d %s %sn,peoi.num,,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.按职工号 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,peoi.num,,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.sex,peoi.age,peoi.xueli,peoi.money,peoi.addr,peoi.phone); else ; 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,); getchar(); printf(输入性别:); 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); 5.输出模块:需求分析:该模块的功能是显示所有职工记录信息.程序:我void display()int t;/int m=load();printf(职工号t姓名t性别t年龄t学历t工资t住址t电话n);for(t=0;t:m;t+)printf(n %dt%st%ct%dt%st%dt%st%dn,peot.num,,peot.sex,peot.age,peot.xueli,peot.money,peot.addr,peot.phone);四 调试与测试在这次课程设计中,程序编写过程中遇到了很多的问题,各种函数的运用也让人头疼,在上机编译运行过程中出现了很多的错误,例如:各种数据类型的定义,函数的调用等等。但最终还是在老师同学的帮助下进行了各种代码的编写与修改,最终程序成功的运行。下面是各个模块的界面图(1) 主菜单函数:(2) : 输入模块:(3) : 显示模块:(4) : 删除模块:(5) : 查找模块:(6) : 修改模块:6 程序源#include#include#include void input(); void clear(struct people *peo,int);void save(int);void display(); void del(); void menu();void search_num();void search(); void search_xueli();void xiugai();int m;struct people int num; char name10; char sex; int age; int money; int phone; char addr30; char xueli10;peo100;void menu() printf(职工信息管理系统n); printf(1.输入职工信息n); printf(2. 浏览职工信息n); printf(3.查询职工信息n); printf(4. 修改职工信息n); printf(5.删除职工信息n); printf(6.退出n);void main() 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;nm;n+) printf(输入职工号); scanf(%d,&peon.num); printf(输入姓名: ); scanf(%s,); getchar(); printf(输入性别:); scanf(%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); void save(int m) /保存文件函数int i; FILE*fp; if (fp=fopen(D:data.txt,w)=NULL) printf (cannot open filen); exit(0); for(i=0;im;i+) fprintf(fp,%d %s %d %c %d %d %s %sn,peoi.num,,peoi.age,peoi.sex,peoi.phone,peoi.money,peoi.addr,peoi.xueli); fclose(fp);/将内存中职工的信息输出到磁盘文件中去 int load() /导入函数FILE *fp; int i=0; fp=fopen(D:data.txt,r); while(fscanf(fp,%d %s %d %c %d %d %s %sn,&peoi.num,,&peoi.age,&peoi.sex,&peoi.phone,&peoi.money,peoi.addr,peoi.xueli)!=EOF) i+; fclose(fp); return(i-1); void display()int t;/int m=load();printf(职工号t姓名t性别t年龄t学历t工资t住址t电话n);for(t=0;t:m;t+)printf(n %dt%st%ct%dt%st%dt%st%dn,peot.num,,peot.sex,peot.age,peot.xueli,peot.money,peot.addr,peot.phone);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 %d %d %s %sn,peoi.num,,peoi.age,peoi.sex,peoi.phone,peoi.money,peoi.addr,peoi.xueli); printf(删除成功!); fclose(fp); return; else printf(没有找到!n); display();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;im;i+) if(num=peoi.num) printf( 职工号 姓名t性别t年龄t学历t工资t住址t电话n); printf(n %dt%st%ct%dt%st%dt%st%dn,peoi.num,,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.sex,peoi.age,peoi.xueli,peoi.money,peoi.addr,peoi.phone); else ; 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); /cle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论