职工信息管理系统.docx_第1页
职工信息管理系统.docx_第2页
职工信息管理系统.docx_第3页
职工信息管理系统.docx_第4页
职工信息管理系统.docx_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

精选资料信息科学与技术学院程序设计基础课程设计报告题目名称: 职工信息管理系统 学生姓名: 董吉华 学 号: 20171008189 专业班级: 电子信息工程1班 指导教师: 郭理 2017年 12月 30日目录一.课程设计题目与要求31.1 设计题目31.2 设计要求3二.总体设计42.1 总体功能框架42.2 数据结构概要设计5三.详细设计63.1 数据结构详细设计63.2 系统功能详细设计73.2.1 主函数73.2.2 主界面函数93.2.2 输入函数113.2.3 输出函数123.2.4 查找函数143.2.5 排序函数163.2.6 删除或修改函数183.2.7 结束函数20四.运行结果214.1 主界面214.2 主菜单界面234.3 录入职工信息界面24五.课程设计总结345.1 编程中的问题及解决方法345.2 小结345.3 心得体会345.4 程序设计方法35参考文献35职工信息管理系统一.课程设计题目与要求1.1 设计题目职工信息管理系统1.2 设计要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)(3)职工信息浏览功能(4)查询和排序功能:(至少一种查询方式) 按工资查询 按学历查询等(5)职工信息删除、修改功能二.总体设计2.1 总体功能框架实现航班信息的输入,航班信息的输出,航班信息的查找,订票系统,退票系统功能图2-1 职工信息管理系统2.2 数据结构概要设计2.2.1 航班信息输入输入职工职工号、姓名、性别、年龄、学历、工资、住址、电话,同时职工的职工号不得重复。三.详细设计3.1 数据结构详细设计结构体struct worker work100用于储存航班信息,作为文件数据域struct worker double number; /工号 char name20; /名字char xingbie15; /性别 int age; /年龄char xueli10; /学历int wage; /工资char address80; /住址char telephone20;/电话号码; work100; 3.2 系统功能详细设计3.2.1 主函数(1)函数原型int main()(2)函数功能通过管理人员账号密码的输入,验证,若正确,进入主界面,void mainhome(); 如不正确,重新输入,并且只有两次重新输入的机会,若两次还不对,系统自动退出程序。 (3)函数形参说明 无(4)函数流程图如图3-1 主函数图3-0 主函数3.2.2 主界面函数(1)函数原型void mainhome(); /主界面 (2) 函数功能通过管理人员向该界面输入1-6不同的数字,选择不同的功能。(3)函数形参说明 无(3) 函数流程图图3-1主界面函数3.2.2 输入函数(1)函数原型void input(struct worker *op);(2)函数功能职工信息输入模块,主要实现职工信息的输入功能(3)函数形参说明 struct worker *op;(4)函数流程图如图3-2 输入函数图3-2 职工信息录入函数3.2.3 输出函数(1)函数原型void display(struct worker *ab);(2)函数功能职工信息输出模块,主要实现职工信息的输出功能(3)函数形参说明 struct worker *ab;(4) 函数流程图如图3-3 输出函数3.2.4 查找函数(1)函数原型void chazhao(struct worker work100);(2)函数功能职工信息查找模块,主要实现职工信息的查找功能(3) 函数形参说明 struct worker work100;(4) 函数流程图yes no yes no no yes no yes no yes no yes no yes 如图3-4 查找函数3.2.5 排序函数(1)函数原型void paixu(struct worker work100);(2)函数功能职工信息排序模块,主要实现职工信息的排序功能(3)函数形参说明 struct worker work100;(5) 函数流程图如图3-5 开始 输入n,i=0n=2n=1 i=0&i文本数目i=0&i文本数目 (否) 按职工号排序(是) 按学历排序结束 (是) (否)结束i+ i+输出顺序并保存输出顺序并保存while(!feof(read) 如图3-5 排序函数 3.2.6 删除或修改函数(1)函数原型void shanchu(struct worker work100);(2)函数功能职工信息删除或修改模块,主要实现职工信息的删除或修改功能(3)函数形参说明 struct worker work100(5) 函数流程图 开始输入2代表修改输入1代表删除输入职工号输入职工号是否确定修改是否确定删除 (是)修改删除(是) (是) (是)是否继续是否继续 (否)结束结束 (否) 如图3-6 删除修改函数3.2.7 结束函数(1)函数原型void left();(2)函数功能表示此程序运行结束(3)函数形参说明 无(4)函数流程图开始输入0进入返回界面按任意键进入主界面结束图3-7 结束函数四.运行结果4.1 主界面运行 源程序.exe可进入职工信息管理系统主界面如图所示下面,我要输入用户名和密码,注意(我这里如果第一次用户名和密码输入错误,那么还有两次输入机会,若两次后还不对,自动退出系统。)下面请看演示图4-1图4-2图4-3下面是正确操作图4-4(注意,这里,我通过调用windows.h 运用Sleep函数,配合for循环,产生登录效果)4.2 主菜单界面图4-5主界面通过输入16之间的数字,通过主界面函数,进入不同子函数,来实现相应功能。输入完毕后航班信息已保存到文件4.3 录入职工信息界面图4-6图4-7该界面主要输入职工信息,并将职工信息加以保存,同时,通过两个for循环以及if条件判断,保证职工的职工号不会重复。图4-8 浏览航班信息按任意键返回主菜单4.3 显示界面该界面显示输入到文档的所有职工信息,包括之前写到文档中的职工信息。详细程序运行过程见下图:图4-9图4-104.4 查询界面该界面通过输入工资或者学历,能查询符合标准的员工。如果没有符合标准的,输出“没有该职工信息,查无此人!”字样,输入1代表按工资查询,输入2代表按学历查询。详细过程,请看程序演示。按数字1:按照工资查询,输入9000,结果如图显示图4-11按数字2:按照学历查询,输入本科,结果如图显示图4-12若查不到人显示查无此人排序界面该界面通过对指定文档读取,输入1代表按照职工号从小到大排序,输入2代表按照工资从小到大排序。并将排序结果保存到指定文档中。输入1图4-13输入2图4-14删除或修改界面该界面该界面通过对指定文档读取,1代表删除,2代表修改。删除是根据职工号进行删除,修改可以单项修改,即可以只改其中一项内容。详细程序运行见下图删除功能:图4-15可以选择是否确定删除,若不删,按2即可取消操作,若坚持删,按1。图4-16选择删除,显示剩余职工数据,并询问是否继续。若按2:则是询问是否继续,若为继续,返回上一个界面,若选择否,则返回菜单界面:图4-17该界面该界面通过对指定文档读取,1代表删除,2代表修改。删除是根据职工号进行删除,修改可以单项修改,即可以只改其中一项内容。修改功能:3) 该函数其实是删除函数的一个子函数,受删除函数调用,删除函数把值传给修改函数,修改函数可以判断职工号是否重复。并且可以只修改职员的部分信息。图4-184) 判断是否确定修改,若是,按1,若不是,按2,直接返回菜单函数中,若按1,会出现数字选择,通过选择,选择要修改的类型。图4-19注意(在1职工号中,有辨别是否有重复现象,同样输错之后,还有两次机会,若都错,就退出系统)1: 职工号图4-20下面以职工号为例,输出正确操作:图4-21若按1表示确定,则返回到删除函数中,若按2,则返回到菜单函数中。结束程序界面图4-22 表明此程序为退出程序。五.课程设计总结5.1 编程中的问题及解决方法(1)一开始查询模块第一种方法并不能运行,我不停的查阅资料,想做一种简便又可行的方法,这个模块发费了我很长时间,但做出来的那一刻内心无比的喜悦,过程再艰苦,但我收获了巨大的知识财富,同时我也更相信努力钻研必能取得成果。(2)程序编译后有时并不能读懂错误的意思或者找不到错误在哪,百度则是很好的方法了。5.2 小结此次程序设计主要用了函数的调用,if、else选择语句,switch语句,相关文件知识,结合课本知识加上自己的应用结果颇为令人满意,但是还有很多的缺陷与不足。在实践过程中,自己编程的时候常常会犯错误,并总结了一些克服缺点的方法。而且更深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题、编程和动手能力,掌握了程序设计基本技能。以下是课程设计中的错误总结和分析:5.3 心得体会通过此次学生成绩信息管理系统,让我熟悉了软件开发的流程,相信在以后的工作中我能在最短的时间内投入到大的程序开发项目中。在进行课程设计的前两天,不知道从何入手,很是不解,不知道我们究竟要做什么。后来通过上网找资料,才发现有好多做法,根本就看不完,此时才真正意识到差距所在。于是,通过借鉴网络作品,才发现作品并不是一味的照搬照抄才实用,集众家之所成,不断完善,才能造出属于自己的作品,并且实用。在整个课程设计中,我认为最重要的就是耐心和细心。细心,就是在编写过程中注意拼写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有这样,才能很好的完成程序。虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设计的经历让我学到了太多,同时也让我理解到参加的项目越大越能学到知识,因此以后我会积极主动的去参加一些项目,以此来提高自己的技能和编程经验。5.4 程序设计方法认真读题,审题。将一个大程序分成若干个小程序,逐步攻破。参考文献参考文献 C程序设计C语言从入门到精通系统源程序:#include#include#include#include/职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。void mainhome(); /主界面void input(struct worker *op); /录入 插入void display(struct worker *ab); /显示全部信息void chazhao(struct worker work100);void paixu(struct worker work100); /排序void shanchu(struct worker work100); /删除记录void left(); /退出界面void xiugai(struct worker work100,int a);struct worker double number; /*工号*/ char name20; /名字char xingbie15; /性别 int age; /年龄char xueli10; /学历int wage; /工资char address80;/住址char telephone20; /电话号码;struct worker work100;int main(void) int i,k=0; /i代表之后循环点的次数 k代表循环次数,本程序中,错误超过三次,会退出系统。 char users50,mima30; /定义用户名,密码 。 system(color 5f); /设置背景颜色。 printf(nnnn); printf(tttt* n); printf(tttt* * n); printf(tttt* * n); printf(tttt* * n); printf(tttt* * n); printf(tttt* 欢迎使用 * n); printf(tttt* 职工信息管理系统 * n); printf(tttt* * n); printf(tttt* * n); printf(tttt* * n); printf(tttt* * n); printf(tttt* * n); printf(tttt* n);for(i=0;i3;i+) printf(n请输入用户名:); gets(users); printf(n请输入密码:); gets(mima); if(strcmp(users,dong)=0)&(strcmp(mima,19981226)=0) printf(n您已经成功登录); for(i=0;i20;i+) printf(.); Sleep(100); system(cls); mainhome(); break; k+; if(k3) printf(n用户名或密码无效 请重新输入:n); if(k=3) printf(n连续输入错误3次 将退出程序n); Sleep(2000); exit(0); void mainhome() int n; printf(nnnn); printf(tttt*n); printf(tttt* * *n); printf(tttt* 1.录入员工资料 * 2.显示员工资料 *n); printf(tttt* * *n); printf(tttt*n); printf(tttt* * *n); printf(tttt* 3.员工信息查询 * 4.员工信息排序 *n); printf(tttt* * *n); printf(tttt*n); printf(tttt* * *n); printf(tttt* 5.删除/修改记录 * 0.退出信息系统 *n); printf(tttt* * *n); printf(tttt*n); printf(n请选择:); struct worker *m;m=work; scanf(%d,&n); switch(n) case 1:input(work); break; case 2: display(m); break; case 3: chazhao(work); break; case 4: paixu(work); break; case 5: shanchu(work); break; case 0: left(); break;void input(struct worker work100) int i; FILE *irry;/定义一个文件指针 if(irry=fopen(C:20171008189 董吉华fl2-1.txt,a+)=NULL)printf(sorry,Im error:n);exit(0);for(i=0;i100;i+)if(!feof(irry) )fscanf(irry,t%lft%st%st%dt%st%dt%st%sn,&worki.number,,worki.xingbie, &worki.age,worki.xueli,&worki.wage,worki.address,worki.telephone);elsebreak; int k=i; system(cls); char c;printf(员工工号:n); scanf(%lf,&workk.number); for(i=0;ik;i+) if(workk.number0) printf(请输入正整数:n);int m=0; for(m=0;m4;m+) if(worki.number=workk.number) printf(该职工号和之前%d员工相同,请重新输入:n,i+1);printf(员工工号:n); scanf(%lf,&workk.number); if(worki.number!=workk.number) break; if(worki.number=workk.number&m=4); exit(0); printf(姓名:n); scanf(%s,); printf(性别(F:M):n); scanf(%s,workk.xingbie); printf(年龄:n);scanf(%d,&workk.age);printf(学历(中专,大专,本科,硕士,博士,其它):n);scanf(%s,workk.xueli);printf(工资:n);scanf(%d,&workk.wage);printf(住址:n);scanf(%s,workk.address);printf(电话:n);scanf(%s,workk.telephone);printf(n是否继续输入(y/n):n);fprintf(irry,%.0ft%st%st%dt%st%dt%st%sn,workk.number,,workk.xingbie,workk.age, workk.xueli,workk.wage,workk.address,workk.telephone); if(fclose(irry) printf(sorry,I can not close!n); exit(0); do c=getchar(); if(c=y|c=Y) if(k100) input (work); else printf(记录数已满n); Sleep(2000); system(cls); mainhome(); else if(c=n|c=N) system(cls); mainhome(); else ; while(c!=y)&(c!=n)&(c!=Y)&(c!=N);void display(struct worker *ab)FILE *read;if(read=fopen(C:20171008189 董吉华fl2-1.txt,r+)=NULL)printf(sorry,Im error:n);exit(0); int i; char c; system(cls); printf(t工号tt姓名t性别t年龄t学历t工资t住址tt电话n); for(i=0;i100;i+)while(!feof(read)fscanf(read,t%lft%st%st%dt%st%dt%st%sn,&worki.number,,worki.xingbie,&worki.age,worki.xueli,&worki.wage,worki.address,worki.telephone); printf(t%.0ft%s%3st%2dt%4st%4dt%11st%11sn,worki.number,,worki.xingbie, worki.age,worki.xueli,worki.wage,worki.address,worki.telephone); if(fclose(read) printf(sorry,I can not close!n); exit(0); printf(nn按任意键返回n); c=getchar(); getchar(); system(cls); mainhome();void chazhao(struct worker work100)int i,j;FILE *read; int choice;int findmoney;char find20;char c;system(cls);printf(tt请选择查询功能:n); printf(t1.按工资查询n); printf(t2.按学历查询n);printf(请输入选择t1tort2n);if(read=fopen(C:20171008189 董吉华fl2-1.txt,r)=NULL)printf(sorry,Im error:n);exit(0);doscanf(%d,&choice);while (choice!=1)&(choice!=2);int fib=0;if (choice=1)printf(nt请输入要查询的工资n);scanf(%d,&findmoney);printf(n正在查询,请稍候); for(i=0;i10;i+) printf(.); Sleep(100); system(cls);for (i=0;i100;i+)fscanf(read,t%lft%st%st%dt%st%dt%st%sn,&worki.number,,worki.xingbie, &worki.age,worki.xueli,&worki.wage,worki.address,worki.telephone);if (findmoney=worki.wage)printf(nnt工号tt姓名t性别t年龄t学历t工资t住址tt电话n);printf(t%.0ft%s%3st%2dt%4st%4dt%11st%11sn,worki.number,,worki.xingbie,worki.age,worki.xueli,worki.wage,worki.address,worki.telephone);fib=1;if(fib=0)printf(nntt);printf(没有该职工信息,查无此人!n);if (choice=2)printf(nn请输入要查询的职工学历:n);scanf(%s,find);printf(n正在查询,请稍候); for(i=0;i20;i+) printf(.); Sleep(100); system(cls);printf(nnt工号tt姓名t性别t年龄t学历t工资t住址tt电话n);for (i=0;i100;i+)fscanf(read,t%lft%st%st%dt%st%dt%st%sn,&worki.number,,worki.xingbie, &worki.age,worki.xueli,&worki.wage,worki.address,worki.telephone);if(!strcmp(find,worki.xueli)printf(t%.0ft%s%3st%2dt%4st%4dt%11st%11sn,worki.number,,worki.xingbie,worki.age,worki.xueli,worki.wage,worki.address,worki.telephone);fib=1;if(fib=0)printf(nntt);printf(对不起,该职工不存在!n);if(fclose(read) printf(sorry,I can not close!n); exit(0);printf(nn按任意键返回n); c=getchar(); getchar(); system(cls); mainhome();void paixu(struct worker work100)system(cls);printf(tt请选择排序方式:n);printf(按职工号排序请按1:n);printf(按工资排序请按2:n);int n;FILE *read;FILE *op;char c;scanf(%d,&n);if(read=fopen(C:20171008189 董吉华fl2-1.txt,r)=NULL)printf(sorry,Im error:n);exit(0);int i,j;if(n=1)for(i=0;i100;i+)if(!feof(read) )fscanf(read,t%lft%st%st%dt%st%dt%st%sn,&worki.number,,worki.xingbie, &worki.age,worki.xueli

温馨提示

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

评论

0/150

提交评论