信息科学与技术学院程序设计基础课程设计报告题目名称:职工信息管理系统学生姓名:董吉华学号: 20171008189专业班级:电子信息工程1班指导教师:郭理2017年 12月 30日目录一.课程设计题目与要求 (3)1.1 设计题目 (3)1.2 设计要求 (4)二.总体设计 (4)2.1 总体功能框架 (4)2.2 数据结构概要设计 (5)三.详细设计 (6)3.1 数据结构详细设计 (6)3.2 系统功能详细设计 (8)3.2.1 主函数 (8)3.2.2 主界面函数 (10)3.2.2 输入函数 (12)3.2.3 输出函数 (13)3.2.4 查找函数 (15)3.2.5 排序函数 (17)3.2.6 删除或修改函数 (19)3.2.7 结束函数 (21)四.运行结果 (22)4.1 主界面 (22)4.2 主菜单界面 (24)4.3 录入职工信息界面 (25)五.课程设计总结 (35)5.1 编程中的问题及解决方法 (35)5.2 小结 (35)5.3 心得体会 (35)5.4 程序设计方法 (36)参考文献 (36)《职工信息管理系统》一.课程设计题目与要求1.1 设计题目职工信息管理系统1.2 设计要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)(3)职工信息浏览功能(4)查询和排序功能:(至少一种查询方式)按工资查询按学历查询等(5)职工信息删除、修改功能二.总体设计2.1 总体功能框架实现航班信息的输入,航班信息的输出,航班信息的查找,订票系统,退票系统功能职工信息管理系统Main()图2-1 职工信息管理系统2.2 数据结构概要设计2.2.1 航班信息输入输入职工职工号、姓名、性别、年龄、学历、工资、住址、电话,同时职工的职工号不得重复。
三.详细设计3.1 数据结构详细设计结构体struct worker work[100]用于储存航班信息,作为文件数据域 struct worker{double number; //工号char name[20]; //名字char xingbie[15]; //性别int age; //年龄char xueli[10]; //学历int wage; //工资char address[80]; //住址char telephone[20]; //电话号码;} work[100];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 work[100]);(2)函数功能职工信息查找模块,主要实现职工信息的查找功能(3)函数形参说明struct worker work[100];(4)函数流程图yesnoyes nono yesno yes noyes no yesnoyes如图3-4 查找函数i=i+1开始n>2||n<0n==1输入职工号i=0i<N信息相等输出职工信息n==2输入终点站i<N 信息相等输出职工信息调用main() 结束输入nn==0i=0i =i+13.2.5 排序函数(1)函数原型void paixu(struct worker work[100]);(2)函数功能职工信息排序模块,主要实现职工信息的排序功能(3)函数形参说明struct worker work[100];(5)函数流程图如图3-5(否) (是)(是) (否)如图3-5 排序函数结束 输入n ,i=0n==1i=0&&i<文本数i++按职工号排序 输出顺序并保存开始输出顺序并保存结束n==2i=0&&i<文本数按学历排序i++3.2.6 删除或修改函数(1)函数原型void shanchu(struct worker work[100]);(2)函数功能职工信息删除或修改模块,主要实现职工信息的删除或修改功能(3)函数形参说明struct worker work[100](5)函数流程图如图3-6 删除修改函数3.2.7 结束函数(1)函数原型v oid 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主界面通过输入1—6之间的数字,通过主界面函数,进入不同子函数,来实现相应功能。
输入完毕后航班信息已保存到文件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 程序设计方法①认真读题,审题。
②将一个大程序分成若干个小程序,逐步攻破。