《职工信息管理系统》由会员分享,可在线阅读,更多相关《职工信息管理系统(23页珍藏版)》请在金锄头文库上搜索。
1、1课程设计报告题 目 职工信息管理系统 课 程 名 称 面向对象程序设计课程设计 院 部 名 称 软件工程学院 专 业 软件工程 班 级 13 软件工程 学 生 姓 名 学 号 课程设计地点 A203 课程设计学时 20 学时 指 导 教 师 李尤丰 金陵科技学院教务处制成绩2一、课程设计的目的和要求1 ,目的该课程设计的目的采用面向对象的程序设计语言,开发实现一个应用程序,主要目的是使学生更好的掌握面向对象程序设计语言及其开发工具,掌握如何使用面向对象的程序设计语言设计一个小的软件系统。通过该课程设计培养学生分析和解决实际问题的能力,培养学生综合应用基本概念,基本原理,和技术方法的能力,真正
2、做到学以致用,使课本上抽象的理论,方法与具体的实践应用相结合。通过实验实现对学生信息系统的管理操作; 进一步掌握和利用 C+进行程设计的能力; 进一步理解和运用面向对象程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法; 掌握书写程设计开发文档的能力(书写课程设计报告);2,要求为某小型公司编写一个职工信息管理软件。该管理软件处理的对象:公司、部门、职工,公司其他各类职工,部门若干。具体实现以下功能:3(1)能够输入员工的工资等信息(2)通过键盘把某位职工某项数据添加到相应表中;(3)能够按姓名查询职工的信息;(4)能够按姓名查询职工的信息;(5)可以按照要求需要删除添加职工信息进去
3、;(6)模块化程序设计;(7)必须用 c+程序编程,上机调试通过;【输入】程序正常运行后,屏幕上显示一个文字菜单(根据序号选定相应的操作项目) ,当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘上输入相应的数据。【输出】 (1)应用程序正常运行后,要在屏幕上显示一个文字菜单;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。根据合理的进度安排,踏实的开展课程设计活动 。课程设计过程中,根据选题的具体要求,在编程实现环节中撰写相关的技术文档,最后要求提交详细的课程设计报告 。3,课程设计报告格式要求 (1)题目内容的描述 (2)应用程序功
4、能的详细说明 (3)输入数据类型、格式和内容限制; (4)主要模块的算法描述(以程序流程图的方式给出、简要的4语言描述) (5)结束语 (6)程序的源代码清单2、系统需求分析该职工管理系统针对员工信息数据的处理设计了以下功能:1.输入、添加职工信息添加员工信息,提供员工信息的添加,再输入完毕之后,可以选择继续输入添加或者退出到主界面进行其他操作。2.修改职工信息修改员工信息设置比较人性化,首先通过职工工号索引,若不存在该工号或者没有员工,则会显示:查询不到该工号的职工,按 0 退出,则返回主菜单。如果员工人数不为 0,则进入删除员工信息的界面。修改员工信息板块功能强大,界面友好,用循环控制修改
5、某员工属性,这样使得操作极为方便。3.删除职工信息删除员工信息中同样的设计了对员工人数的检查,如果员工人数的值为 0 或者员工信息没有录入,则按 0 返回到主菜单。如果员工人数不为 0,则系统会直接进行删除。4.员工职工查找在这个功能当中,设置了两种索引方式,一种是按姓名查找,另一种是按工号查找,分别对饮数字 1,2.输入对应的数字就选择对应的5索引方式。通过函数进行查找。该函数比较简单,通过循环一次比较职工的信息是否与你输入的要求信息是否相等,如果相等,则输入到屏幕上,如果未找到任何匹配的员工,则显示“查询不到” 。5.职工信息的显示对职工信息进行显示,包括职工的工号,姓名,所属部门,岗位津
6、贴,水电费,医疗保险,工资等信息。方便对员工了解。 三、总体设计本程序能够:(1)能够查询公司的员工个人信息、部门信息;(2)通过键盘把某位职工添加到相应部门;(3)能够按姓名查询职工的信息;(4)能够按工号查询职工的信息menu() (菜单界面)shuru(zhigongzi z) (单链表与类创建)Xiugai()(修改职工信息)Tianjia()(添加职工信息)Shanchu()(删除职工信息)Exit()(退出系统)chaxun()(查询职工信息)输入职工信息 修改职工信息 添加职工信息删除职工信息查询职工信息64、详细设计这个系统一共有七个模块:输入,修改,添加,删除,查询,显示,退
7、出。而我负责的是输入和删除模块。程序主界面及其代码如下:在整个程序开始之前,需要先对一些类进行定义,先进行定义7了一个 zhigong(职工) 、gongzi(工资) 、zhigonfzi(职工工资)类;zhigong 类的建立确保了可以成功的从键盘输入职工所在部门、姓名、编号,代码如下:gongzi 类的建立确保了可以从键盘输入职工的岗位工资,岗位津贴,缴纳的水电费和医疗保险费用。代码如下:8我主要负责的输入和删除模块,对应主界面的编号 1 和 4 的操作。主要的代码如下:9首先输入这一块,涉及到文件的保存,在这里首先使用了这一行代码: 即打开文件,指定目录。如果文件不存在的话,就新建一个文
8、件。涉及到底下循环里面还有地方需要提一下:这里主要是写入信息,write()函数的第一个参数是 char 类型,第二个参数是指定要输入的大小,即职工工资的大小。程序的实现如下图:至于删除模块,则是相对来说比较简单的模块,主需要一个10while 循环,先输入要删除的职工的工号,在交给系统检索,如果用户输入的号码和职工的工号匹配:,就可以进入循环。然后就是字符串最后一位为空,每位向前一位就可以删除字符串了:。删除操作成功后界面:五、测试、调试过程的问题遇到的问题:数据在存入文件的时候再打开会出现乱码;程序的容错能力比较差,不按照提示输入,就可能会出现 bug;用户界面比较僵硬死板。6、结论与体会
9、本次设计我们选择的题目是职工信息管理系统。我们在完成这个设计的过程还是比较顺利的。在系统分析和设计的部分大家一起花了比较多的时间。各个模块的设计部分我们都花了很大的心思,因为需要把抽象的东西转化成我们实际变成的代码。为此我们几人查阅了相当的书籍资料,才最终实现。在此过程中,令我收获最大的反而不是在自己对于 c+只是的掌握上,而是当自己的想法与别人的发生冲突碰撞时,怎样更好地去解决问题,从而使大家能够齐心协力专心致志的完成我们的职工管理系统通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从
10、而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。在这样的前提下,最后顺利完成了这份设计。11此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。七、参考文献【1】 (美)戴特尔(Deitel,H.M.).C+大学基础教程(第五版)M.北京:电子工业出版社,2007.6【2】 谭浩强.C+程序设计M. 北京:清华大学出版社,2006【3】 邓莉. c+语言程序设计(第四版).北京:清华大学出版社.2007.6【4】 李春葆 高级实例开发指南【5
11、】 .吴迪 曲蒙 中文版函数手册清华大学出版社 1999 年 1 月 #include#include#includeusing namespace std;class zhigong public: void setnumber(int n) number=n; void setname(char *na) strcpy(name,na); void setbumen(char *bu) strcpy(bumen,bu); int getnumber() return number; char *getname() return name; char *getbumen() return b
12、umen; void setzhigong() coutbumen; coutnumber; coutname; private: int number; char name20; char bumen20; ;12class gongzi public: void setgangwei(double g) gangwei=g; void setjintie(double j) jintie=j; void setyiliao(double y) yiliao=y; void setshuidian(double s) shuidian=s; double getgangwei() retur
13、n gangwei; double getjintie() return jintie; double getyilao() return yiliao; double getshuidian() return shuidian; double getyingfa() return (gangwei+jintie); double getshifa() return (gangwei+jintie-shuidian-yiliao); void setgongzi() coutgangwei; coutjintie; coutshuidian; coutyiliao; private: doub
14、le gangwei; double jintie; double yiliao; double shuidian; class zhigongzi:public zhigong,public gongzi public: void setzhigongzi() setzhigong(); setgongzi(); 13 ; void menu() coutp; return i+1; ofile.close(); int t,number;double gangwei; double jintie; double yiliao; double shuidian; char name20; int xiugai(zhigongzi z,int m) ofstream ofile(D:zhigong.dat,ios:binary); int flag; int n=1; while(n=1)