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

下载本文档

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

文档简介

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

温馨提示

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

最新文档

评论

0/150

提交评论