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

下载本文档

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

文档简介

武汉长江工商学院计算机科学与技术系项目名称: 职工信息管理系统 学生姓名: 魏 蓓 学 号: 1203100228 班 级: 12802 指导教师: 刘 莹 2013 年 5 月 30 日目 录1 引言11.1 选题意义11.2 国内外现状综述12 系统需求分析12.1 系统功能概述12.2 系统模块13 系统存储结构说明33.1 系统存储信息说明33.2 系统存储结构设计33.3 系统文件使用说明34 系统功能实现及代码描述44.1 输入职工信息44.2 浏览职工信息44.3 查询职工信息54.3.1 按职工号查询64.4 删除职工信息64.5 添加职工信息84.6 修改职工信息85 系统测试105.1 菜单函数105.2 职工信息的录入105.3 职工信息的浏览115.4 职工信息的查询(按职工号,学历,姓名查询)115.5 职工信息的删除 115.6 职工信息的添加125.7 职工信息的修改135.8 退出系统。146 设计心得与总结147.参考文献.148.附录,源程序. 151 引言1.1 选题意义员工信息管理系统是事业单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学员工信息管理系统是事业单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学。职工信息管理系统内容包括机构的建立和维护,人员信息的录入和输出,工资的调整和发放以及各类报表的绘制和输出等功能。在操作上实现简便灵活,自动化的功能。1.2 国内外现状综述互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。当前大量企业的员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此部分企业需求,设计企业员工信息管理系统,以帮助企业达到员工管理办公自动化、节约管理成本、提高企业工作效率的目的。 管理系统信息化系统化是必然需求,也是当今社会的主流。 2 系统需求分析2.1 系统功能概述该系统可以实现对员工信息的录入,浏览,查找,添加,删除,修改。输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。浏览功能:完成对全部职工信息的显示。查找功能: (1)完成按职工的职工号查询职工的相关信息,并显示。 (2)完成按职工的学历查询职工的相关信息,并显示。 (3)完成按职工的电话号码查询职工的相关信息,并显示。删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。添加功能:完成添加新职工的信息的任务。修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。退出职工信息管理系统。2.2 系统模块进入系统后,首先进入菜单选项,选择自己所要进行的操作。(1)录入职工信息,并保存。(2)浏览职工信息,先读出录入后的职工信息,然后进行浏览。(3)查询职工信息,先选择用什么进行查询(按学历,职工号,电话号),若选择为按学历查找,就输入要查找的学历信息,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。(4)删除职工信息,先输入要删除职工的姓名,进行查找,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。然后系统就会提示是否删除给职工的信息。删除后就会显示新的职工信息。(5)添加职工信息,先输入要添加的职工人数,之后依次输入要添加的信息,最后确认是否添加。(6)修改职工信息,先输入要修改职工的姓名,进行查找,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。接着系统就会提示是否要对该职工进行修改,修改时,系统就会提示:将会对哪个地方进行修改,最后确定自己的修改,系统就会显示修改后的职工信息。 图2-2 系统模块 3 系统存储结构说明3.1 系统存储信息说明系统储存的信息有职工号,姓名,性别,年龄,学历,工资数,地址,电话职工号:定义为长整型,由一串数字表示。姓名:定义为字符数组型,由一串字母表示。性别:定义为字符型,由一个字母表示。(m表示男,f表示女)年龄:定义为整型,由一串数字表示。学历:定义为字符数组型,由一串字母表示。工资:定义为整型,由一串数字表示。地址:定义为字符数组型,由一串字母表示。电话:定义为字符数组型,由一串数字表示。3.2 系统存储结构设计系统中定义一个结构体来存储以上信息,使用结构体可以使问题变得简单,因为结构体允许用户自定义数据类型,而且允许一个结构体里面有多个数据项,这些数据项不需要是同一类型的数据项。因此,结构提供了吧类型可能不同的数据项聚合成一个集合手段。3.3 系统文件使用说明指针文件,先定义一个保存文件函数,然后定义一个文件指针,再打开那个指针文件,将内存中职工的信息输出到磁盘文件中去,最后关闭文件即可。void save(int m) /*保存文件函数*/int i; FILE*fp;if (fp=fopen(D:liushichang ,wb)=NULL)printf (cannot open filen);exit(0);for (i=0;im;i+) /*将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf(file write errorn);fclose(fp);4 系统功能实现及代码描述4.1 输入职工信息定义一个结构struct employee和数组emN用来存储N个职工的所有的信息(职工号emi.number、姓名、性别emi.sex、年龄emi.age、学历emi.xueli、工资emi.wage、住址emi.addr、电话emi.tel)。通过for循环输入所有职工信息。用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。输入完毕后套用保存函数save(n)将所输入的信息写入指定文件。 图4-1 输入流程图4.2 浏览职工信息声明整形变量i和m,其中i记录输出的职工序数,m用来接收传递过来的实参,用for循环输出每个职工的各种信息。正确输入指令后输出所输入的所有职工信息。 图4-2 浏览流程图4.3 查询职工信息声明整形变量t,先用printf语句显示查询菜单,用scanf输入选择的查询方式代号,用switch(t)进入所选择的具体查询函数,包括按职工号查询、按姓名查询、按学历查询三种方式。当t=1则表示按职工号查询,t=2表示按姓名查询,t=3表示按学历查询,t=4时返回主菜单。 图4-3 查询流程4.3.1 按职工号查询声明2个整形变量:i记录职工的序数,number存放键盘输入的职工号。调用导出函数load(m)(m表示当前的职工人数)。通过scanf语句从键盘输入需要查询的职工号,并赋值给number。用for循环,循环主体是先判断em.number中是否有输入的职工号,如果有,用printf语句输出与职工号相对应的该职工所有信息,再跳出循环;如果没有,输出“对不起,查无此人”,并调用search()返回查询菜单。 图4-3-1 按姓名查询流程图4.4 删除职工信息先读出文件中所有职工的信息,并显示。然后输入要删除职工的姓名,首先定义个局部变量name(字符数组),用保存用户输入姓名。用户输入name的值。从职工数组下标为0的元素(即第一个元素)开始,逐个比较name 和的值,如果相等,就输出该职工的信息,同时将标志flag置为1,表示查找成功。当查找最后一个职工,若flag=0,则表示查找失败,输出该职工不存在。找到之后,将位于这个职工下一个的职工信息依次转移的该信息上来进行覆盖,然后再将接下来一个员工的信息转移到已被转移员工的位置上来.就这样循环下来直到将被删除职工之后所有的职工信息都转移完后,将总人数减1,再显示删除后所有职工的信息。最后结束程序。 图4-4 删除流程图4.5 添加职工信息先输入要添加的人数n,m为已经有的人数,令i=m,判断i是否小于(m+n),当小于成立的时候,就依次输入一个职工的信息,并保存该职工的信息,再进行判断,直到把所有的信息都输入完的时候,就显示新的职工信息,最后结束。 图4-5 添加流程图4.6 修改职工信息先读出文件中所有职工的信息,并显示。然后输入要修改职工的姓名,首先定义个局部变量name(字符数组),用保存用户输入姓名。用户输入name的值。从职工数组下标为0的元素(即第一个元素)开始,逐个比较name 和的值,如果相等,就输出该职工的信息,同时将标志flag置为1,表示查找成功。当查找最后一个职工,若flag=0,则表示查找失败,输出该职工不存在。若找到该职工后,输入数字(1-8)分别表示为1.职工号 2.姓名 3.性别 4.年龄 5.学历 6.工资 7.住址 8.电话,选择要对那个地方进行修改若选择错误系统就会提示选择错误,进入修改后,输入自己修改后信息并确认即可。最后显示修改后所有的职工信息,系统再提示是否进行修改。直到修改完毕后,结束程序。 图4-6 修改流程图5 系统测试5.1 菜单函数如果输入1-7以外的数字,就会显示输入错误。输入正确的指令系统才开始工作。 5-1 菜单函数5.2 职工信息的录入。输入指令后,按系统提示依次输入相应的信息。 图5-2 职工信息的录入5.3 职工信息的浏览。输入相应指令浏览职工信息。 图5-3-1 浏览职工信息5.4 职工信息的查询(按职工号,学历,姓名查询)以学历查询为例如果未查到,系统就会显示查无此人。 图5-4-1 职工号输入不正确,查无此人输入正确指令,将会显示查询到的职工信息。 图5-4-2 查询到的职工信息5.5 职工信息的删除。先查找,输入职工的姓名即可;若输入错误,系统提示查无此人。 图5-5-1 职工姓名输入错误,查无此人输入正确后才能删除职工信息。 图5-5-2 删除职工信息 5.6 职工信息的添加。先输入自己要添加的人数,从而依次输入要添加的信息。 图5-6-1 添加职工信息添加完毕后,系统会显示新的职工信息。 图5-6-2 新的职工信息5.7 职工信息的修改。先查找职工,再选择修改的类型,修改完后保存。 图5-7 修改职工信息5.8 退出系统。 图5-8 退出系统6 设计心得与总结经过对职工信息管理系统的分析与编写,我得到了很大的收获。自主学习的是解决问题的基础。这次设计使我重温了以前学过的各科知识,让我对C编程有了更深刻的认识。在设计过程中难免遇到困难,这时候要细心仔细寻找自己所出现差错的地方,碰到不懂的地方要及时向老师或者同学们请教,记住自己犯下的错误保证以后不再犯类似错误。 通过这次课程设计,也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。在具体操作中对这学期所学的C语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的c语言学习奠定了基础。C语言具有的语句简洁,使用灵活,执行效率高等特点使解决问题变得更简单。这次课程设计让我发现上机操作的重要作用,通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。总结出了一点点的经验如下:(1)有明确目标,根据目标制定计划。(2)要对系统的功能和要求做出详细的分析,并合理分解任务。 (3)把分解出来的子任务,做给一个相对独立的模块。(4)在设计一个模块之前,要简单构想一下总界面的显视情况。(5)针对构想出来的界面进行程序的编写。7 参考文献1Brian w.Kernighan,Dennis M.Ritchie.THE C PROGRAMMING LANGUAGE.北京:清华大学出版社.2002./PRENTICE HALL ,20012秦友淑.曹化工.C语言程序设计教程(第二版).武汉:华中科技大学出版社,20023Alkelley,Ira Pohl.C语言教程(英文版.第4版).北京:机械工业出版社,20044EricS.Roberts.C语言的科学和艺术(英文版). 北京:机械工业出版社,20045严蔚敏,吴伟民.数据结构.北京:清华大学出版社,19976王晓东.算法设计与分析.北京:清华大学出版社,20037ISO的C语言标准:ISO/IEC 9899:1999(E)8S.P.Harbison,G.L.Steele.C语言参考手册.北京:机械工业出版社,20039叶欣.徐金梧.Turbo C使用大全.北京:北京科海培训中心.1990附录:源程序清单#include #include #include #define N 100struct employeelong num; char name20; char sex; int age; char xueli30; int wage; char addr30; char tel20;emN; /*定义一个结构体*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数*/void main()menu(); int n,flag;char a;doprintf(请输入您的选择(17):);scanf(%d,&n);if(n=1&n=7)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(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);del();break; case 5:printf( -插入职工信息-n);printf(n);add();break; case 6:printf( -修改职工信息-n);printf(n);modify();break; case 7:exit(0);break;default :break;getchar();printf(n);printf(是否继续进行(y or n):n);scanf(%c,&a);if(a=y)flag=1;system(cls); /*清屏*/menu(); /*调用菜单函数*/printf(请再次输入您的选择(17):n);scanf(%d,&n);printf(n);else exit(0);void menu() /*菜单函数*/printf( -欢迎进入职工信息管理系统-n); printf( 1.录入职工信息); printf( 2.浏览职工信息n); printf( 3.查询职工信息); printf( 4.删除职工信息n); printf( 5.插入职工信息);printf( 6.修改职工信息n); printf( 7.退出n); printf( -谢谢使用-n);printf(n); printf(n);void input() /*录入函数*/int i,n,flag;printf(请输入需要创建信息的职工人数:);scanf(%d,&n);for (i=0;i=2011000&emi.num=2011999)flag=1;break;elseflag=0;printf(输入错误,请重新输入!);while(flag=0); printf(请输入姓名: ); scanf(%s,); getchar();do printf(请输入性别(f-女 m-男): ); scanf(%c,&emi.sex); if(emi.sex=f|emi.sex=m) flag=1;break; elseflag=0;printf(输入错误,请重新输入:); getchar();while(flag=0);do printf(请输入年龄: ); scanf(%d,&emi.age);if(emi.age=18)flag=1;break;elseflag=0;printf(不科学,请重新输入!);while(flag=0); printf(请输入学历: );scanf(%s,emi.xueli); printf(请输入工资: ); scanf(%d,&emi.wage); printf(请输入住址: ); scanf(%s,emi.addr);printf(请输入电话: ); scanf(%s,emi.tel); printf(n);printf(n创建完毕!n);save(n);void save(int m) /*保存文件函数*/int i;FILE*fp;if (fp=fopen(employee_list,wb)=NULL)printf (cannot open filen);exit(0);for (i=0;im;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);elsedo fread(&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姓名t性别t年龄t学历t工资t住址t电话n);for(i=0;im;i+) /*m为输入部分的职工人数*/printf(%dt%st%ct%dt%st%dt%st%sn,emi.num,,emi.sex,emi.age,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(%s,name);for(flag=1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(已找到此人,原始记录为:n);printf(职工号t姓名t性别t年龄t学历t工资t住址t电话n); printf(%dt%st%ct%dt%st%dt%st%sn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); printf(n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&n);if(n=1)for(j=i;jm-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.addr); 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 add()/*添加函数*/FILE*fp;int n,i,count=0;int m=load();printf(n 原来的职工信息:n); display(); printf(n);fp=fopen(emploee_list,a); printf(请输入想增加的职工数:n);scanf(%d,&n);for (i=m;i=1&t=4)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(t)case 1:printf(按职工号查询n);search_num();break; case 2:printf(按学历查询n);search_xueli();break; case 3:printf(按电话号码查询n);search_tel();break; case 4:main();break;default:break;void search_num()int num,i,t;int m=load();printf(请输入要查找的职工号:);scanf(%d,&num);for(i=0;i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询职工号请按2:);scanf(%d,&t);switch(t) case 1:search();break;case 2: break;default:break;void search_xueli()char xueli30;int i,t;int m=load();printf(请输入要查找的学历:);scanf(%s,xueli);for(i=0;im;i+)if(strcmp(emi.xueli,xueli)=0)printf(n已找到,其记录为n);printf(职工号t姓名t性别t年龄t学历t工资t住址t电话n);printf(%dt%st%ct%dt%st%dt%st%sn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);elseprintf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询学历请按2:);scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void search_tel()char tel20; int i, t; int m=load(); printf(请输入要查找的电话号码:); scanf(%s,tel);for(i=0;i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询电话号码请按2:);scanf(%d,&t);switch(t)case 1:search();break;case 2:break; default :brea

温馨提示

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

评论

0/150

提交评论