C语言程序设计-职工信息管理系统_第1页
C语言程序设计-职工信息管理系统_第2页
C语言程序设计-职工信息管理系统_第3页
C语言程序设计-职工信息管理系统_第4页
C语言程序设计-职工信息管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、0022222222C语言课程设计报告职工信息管理系统设计班级:0346502 姓名:杨鸣 学号: 20081003456指导老师:谷老师职工信息管理系统一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工 号不重复)。试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。(2)职工信息录入功能 (职工信息用文件保存)。(3)职工浏览功能。(4)职工信息查询功能,查询方式可按学历查询或者工号查询。(5)职工信息的删除、修改功能(可选项)。二、具体要求1、输入功能:职工信息录入(职工信息用文件保存),可以一次完成 若干条记录的输入。2、浏览功能:完

2、成对全部职工信息的显示。3、查找功能:完成按职工的职工号查询职工的相关信息,并显示。完成按职工的学历查询职工的相关信息,并显示。4、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。5、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。6、退出职工信息管理系统。三、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配 给所划分的最单元模块。确定模块间的联系,确定数据结构、文件结构、数据库 模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的流程图来描述 模块的详细过程。确定每一模块采用

3、的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。四、写课程设计总结课程设计报告要求总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤) 测试的步骤和内容等。总设计方案.系统的总体流程图21图1.系统的总体流程图二.为了方便使用结构此系统结构均为全局类型定义struct employee /定义一个职工信息的结构体/int num;char name10;char sex;int age;char xueli30;int wage;char addr30;char tel20;em100;三.各模块的功能及实现步骤1

4、 .菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定 义的void menu()函数来实现。2 .输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void input() 函数来实现。3 .保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的voidsave(int)函数来实现。4 .浏览模块:浏览所有职工的相关信息,通过自己定义的void display ()函数来实现。5 .删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。6 .按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的

5、void search_num()函数来实现。7 .按职工的而学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil 函数来实现。8 .修改模块:可以修改需要修改的职工的相关信息,通过自己定义的voidmodify ()函数来实现。9 .退出系统模块:退出职工信息管理系统,通过头文件windows.h中的exit (0) 函数来实现。步骤分析及上机运行1.运行程序,进入职工信息管理系统的主菜单:图1:进入主菜单界面2.输入数字“1”录入职工信息:图2:录入职工信息3.输入“y”返回主菜单:4.输入“2”浏览职工信息:图3:浏览职工信息5.输入“

6、y ”后继续,输入“ 3 ”进行查询职工信息:引 "C;U s trsVltnovoXDes ktopD tbugCpp l.txe"5 ,修改职工信息6 ,退出谢谢使用*请再次选用尔需要操作的步骤。一6 > : .进入主函数请按3按职工号查询职工信息按职工号查询请按1;按学历查询请按家如工号查询请输入要查战的职工号二已找到此人, 职工号其记录为: 姓名性别年鼠201010S杨东坡m20学历工贲住址电话1本科20000中国地质大宇四区12m456返回查询函数请按i .继续查询职工号请按2进入主函数请按3:二职工号查询请按门按学历查询请按2;,欠鬻找的学历:已找到,其记

7、录为.职工号姓名性别年龄201010Q杨东坡n20学历工资住址电话本部 20000中国地质人洋四区123456图4:按职工号及学历查询职工信息6.进入主菜单,输入“4”进行删除职工信息:杨东坡201 团 00学历住址中国地质大学西区请输入要删除的职工的姓名杨东坡2010100中国地质大学西区2000(3123456学历住址浏览删除后的所 职工号原来的职工侣息 职工号催续删除请按1,不再删除请按0本科 20000请选择你需要操作的步噱1一6:4删除职工信息已找到此人,原始,强 期工号 姓?slenovoDes ktopD«bugCpp l,t;7.进入主菜单输入“ 5”进行修改职工信息

8、:图7:修改职工信息8.进入8菜单输入“6”退出职工信息管理系统职工信息管理系统源程序代码#include <stdio.h>#include <windows.h>#include <string.h>#define N 100struct employeeint num;char name20;char sex;int age;char xueli30;int wage;char addr30;char tel20;em100;/*定义一个结构体*/void menu();void input();void save(int);void display。

9、;void del();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数 */void main()menu();int n,flag;char a;doprintf("请选择你需要操作的步骤(1-6):n");scanf("%d",&n);if(n>=1&&n<=6)flag=1;break;elseflag=0;printf(" 您输入有误,请重新选择!”);while(

10、flag=0);while(flag=1)switch(n)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&

11、quot;);del();break;case 5:printf("修改职工信息n");printf("n");modify();break;case 6:exit(0);break;default :break;getchar();printf("n");printf("是否继续进行(y or n):n");scanf("%c",&a);if(a='y')flag=1;system("cls"); /* 清屏*/menu(); /*调用菜单函数*/p

12、rintf("请再次选择你需要操作的步骤(1-6):n");scanf("%d",&n);printf("n"); elseexit(0);void menu() /*菜单函数 */printf(" *欢迎进入职工信息管理系统*n");printf("1.录入职工信息)printf("2.浏览职工信息n");printf("3.查询职工信息)printf("4.删除职工信息n");printf("5.修改职工信息)printf("

13、;6.退出n");printf("*谢谢使用 *、printf("n");printf("n");void input() /*录入函数 */int i,m;printf("请输入需要创建信息的职工人数(1-100):n");scanf("%d",&m);for (i=0;i<m;i+)printf("请输入职工号:");scanf("%d",&emi.num);printf("请输入姓名:");scanf(&qu

14、ot;%s",);getchar();printf("请输入性别(f-女m-男):");scanf("%c",&emi.sex);printf("请输入年龄:");scanf("%d",&emi.age);printf("请输入学历:");scanf("%s",emi.xueli);printf("请输入工资:");scanf("%d",&emi.wage);printf("请

15、输入住址:");scanf("%s",emi.addr);printf("请输入电话:");scanf("%s",emi.tel);printf("n");printf("n 创建完毕!n");save(m); void save(int m) /* 保存文件函数*/int i;FILE*fp;if (fp=fopen("employee_list","wb")=NULL).printf ("cannot open filen"

16、;);exit(0);*/for (i=0;i<m;i+) /*将内存中职工的信息输出到磁盘文件中去if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf("file write errorn");fclose(fp);int load() /*导入函数 */FILE*fp;int i=0;if(fp=fopen("employee_list","rb")=NULL).printf ("cannot open filen");exit(0);el

17、sedofread(&emi,sizeof(struct employee),1,fp); i+;while(feof(fp)=0);fclose(fp);return(i-1);void display。/*浏览函数 */int i;int m=load();printf(" 职工号t姓名tt 性别tt 年龄n");for(i=0;i<m;i+) /*m为输入部分的职工人数*/printf("n %dtt%st%ctt%dtn",emi.num,,emi.sex,emi.age);printf("n 学历 tt

18、工资 tt 住址 tt 电话 n");for(i=0;i<m;i+) /*m为输入部分的职工人数*/printf("n %st%dtt%st%sn",emi.xueli,emi.wage,emi.addr,emi.tel); void del() /* 删除函数 */int m=load();int i,j,n,t,flag;char name20;printf("n原来的职工信息:n");display。;printf("n");printf("请输入要删除的职工的姓名:n");scanf(&qu

19、ot;%s",name);for(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n已找到此人,原始记录为:n");printf(" 职工号t姓名tt 性别tt 年龄n");printf("n %dtt%st%ctt%dtn",emi.num,,emi.sex,em i.age);printf("n 学历 tt 工资 tt住址 tt 电话 n");printf("n %st%dtt%st%

20、sn",emi.xueli,emi.wage,emi.addr,em i.tel);printf("n确实要删除此人信息请按1,不删除请按0n");scanf("%d",&n);if(n=1)for(j=i;j<m-1;j+)strcpy(,emj+1.name);emj.num=emj+1.num;emj.sex=emj+1.sex;emj.age=emj+1.age;strcpy(emj.xueli,emj+1.xueli);emj.wage=emj+1.wage;strcpy(emj.addr,emj+1.a

21、ddr);strcpy(emj.tel,emj+1.tel);flag=0;if(!flag)m=m-1;elseprintf("n对不起,查无此人!n");printf("n浏览删除后的所有职工信息:n");save(m); /*调用保存函数*/display。; /* 调用浏览函数*/printf("n 继续删除请按1,不再删除请按0n");scanf("%d",&t);switch(t)case 1:del();break;case 0:break;default :break;void search

22、。/*查询函数 */int t,flag;do进入主函数请按printf("n 按职工号查询请按1;按学历查询请按2;3'n");scanf("%d",&t);if(t>=1&&t<=3)flag=1;break; elseflag=0;printf(" 您输入有误,请重新选择!”);while(flag=0);while(flag=1)switch(t)case 1:printf("按职工号查询 n");search_num();break;case 2:printf("

23、;按学历查询 n");search_xueli();break;case 3:main();break;default:break; void search_num().int num;int i,t;int m=load();printf("请输入要查找的职工号:n");scanf("%d”,&num);for(i=0;i<m;i+)if(num=emi.num)printf("n 已找到此人,其记录为:n");printf("职工号t姓名tt 性别tt 年龄 n");printf("n

24、%dtt%st%ctt%dtn",emi.num,,emi.sex,em i.age);printf("n学历 tt工资 tt 住址 tt电话 n");printf("n %st%dtt%st%sn",emi.xueli,emi.wage,emi.addr,em i.tel);break;if(i=m)printf("n对不起,查无此人n");printf("n");printf(" 返回查询函数请按1,继续查询职工号请按2n");scanf("%d"

25、;,&t);switch(t)case 1:search();break;case 2: break;default:break; void search_xueli().char xueli30;int i,t;int m=load();printf("请输入要查找的学历:n");scanf("%s",xueli);for(i=0;i<m;i+)if(strcmp(emi.xueli,xueli)=0)printf("n 已找到,具记录为:n");printf(" 职工号t姓名tt性别tt年龄 n"

26、);printf("n %dtt%st%ctt%dtn",emi.num,,emi.sex,em i.age);printf("n 学历 tt 工资 tt 住址 tt 电话 n");printf("n %st%dtt%st%sn",emi.xueli,emi.wage,emi.addr,em i.tel);if(i=m)printf("n对不起,查无此人n");printf("n");printf("返回查询函数请按1,继续查询学历请按2n");scanf(&

27、quot;%d",&t);switch(t)case 1:search();break;case 2:break;default :break;void modify() /*修改函数 */int num;char name20;char sex;int age;char xueli30;int wage;char addr30;char tel20;int b,c,i,n,t,flag;int m=load();printf("n原来的职工信息:n");display。;printf("n");printf("请输入要修改的

28、职工的姓名:n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n 已找到此人,原始记录为:n");printf(" 职工号t姓名tt 性别tt 年龄 n");printf("n %dtt%st%ctt%dtn",emi.num,,emi.sex,emi.age);printf("n 学历 tt工资 tt住址 tt 电话 n");pr

29、intf("n %st%dtt%st%sn",emi.xueli,emi.wage,emi.addr,emi.tel);printf("n 确实要修改此人信息请按1 ;不修改请按0n");scanf("%d",&n);if(n=1)printf("n需要进行修改的选项n 1.职工号2.姓名3.性别4.年龄5.学历6.工资7.住址8.电话n");printf("请输入你想修改的那一项序号:n");scanf("%d",&c);if(c>8|c<1)printf("n选择错误,t#重新选择!n"); flag=0;if(flag=1)printf("n对不起,查无此人!n");doswitch(c) /* 因为当找到第i个职工时,for语句后i自加了 1,所以下面的应该把改后的信息赋值给第i-1个人*/case 1

温馨提示

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

评论

0/150

提交评论