广东海洋大学《C++面向对象程序设计》课程设计——职工信息管理系统.doc_第1页
广东海洋大学《C++面向对象程序设计》课程设计——职工信息管理系统.doc_第2页
广东海洋大学《C++面向对象程序设计》课程设计——职工信息管理系统.doc_第3页
广东海洋大学《C++面向对象程序设计》课程设计——职工信息管理系统.doc_第4页
广东海洋大学《C++面向对象程序设计》课程设计——职工信息管理系统.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计课程设计报告设计题目职工信息管理系统学生姓名学生班级学生学号指导教师完成时间: 年 月 日1目 录1 前言3 1.1项目背景3 1.2问题描述42 需求分析42.1要求42.2任务42.3运行环境42.4开发工具43 概要设计与详细设计43.1系统流程图53.2运行结果举例54 编码与实现64.1分析74.2具体代码实现75 课程设计总结20 5.1该课程设计的特点和不足20 5. 2心得体会.20参考文献211 前言1.1项目背景 职工信息管理系统是一个企业单位不可绝少的部分,它的内容对于企业的决策者和管理者来说都是至关重要的,所以职工信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来各个公司基本上都是靠传统的人工方式来管理职工信息,这种管理方式存在着许多缺点,如效率低,保密性差,另外时间一长将产生大量的文件和数据,这对于信息的查找,更新和维护都带来不少困难。 当今社会,信息迅速膨胀,随着各个公司的规模扩大,有关信息管理工作所涉及的数据量越来越大,职工信息量也大大增加,利用传统的手工查询,等登记和修改等方法的处理速度远远跟不上公司的需求,有的公司不得不靠增加人力,物力来进行信息管理。 随着计算机级数的不断提高,计算机作为知识经济时代的产物,其强大的功能已为人们深刻认识,它已进入人类社会的各个行业和领域并发挥着越来越重要的作用,成为人们工作和生活中不可缺少的一部分。 而作为计算机应用的一部分,使用计算机对职工进行信息管理,具有手工管理所无法比拟的优点。例如检查迅速,查询方便,可靠性高,存储量大,保密性好,寿命长,成本低等。这些优点能够极大地提高职工信息管理的效率,也是公司的科学化,正规化管理与世界接轨的重要条件,职工信息管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且以达到良好的效果。1.2问题描述编写一个程序来管理职工信息。通过一个类来存放输入的每一位职工的记录(包括职工号、姓名、性别、年龄、学历、工资、住址、电话等),然后将其信息保存到文件中。通过几个函数来创建新职工号,并对职工信息进行删除及修改,输入一个职工号查询该职工的信息,并显示在屏幕上。2 需求分析2.1要求(1)只能使用C+语言实现程序设计;(2)源程序要有适当的注释,使程序容易阅读;(3)画出查询模块的流程图;利用类进行相关信息处理;(4)系统的各个功能模块要求用函数的形式实现;(5)运行界面清晰,功能明确。2.2任务(1)定义一个类,输入每一位职工的信息(包括职工号、姓名、性别、年龄、学历、工资、住址、电话等),将其信息存入文件中;(2)输入职工号查询该职工的信息,并显示在屏幕上;(3)画出所有模块的流程图;(4)编写代码;(5)程序分析与调试。2.3运行环境(1)VC6.02.4开发工具C+语言3 概要设计与详细设计3.1系统流程图如图3.1所示。职工信息管理系统菜单 3职工信息修改3职工信息删除2职工信息查询1职工信息录入 输入职工号 输入职工号 输入职工号 输入职工号 职工号存在?职工号存在?职工号存在?职工号存在?是,选择修改信息项,输入新的职工信息, 修改成功 否,该职工不存在否,输入职工信息是,添加成功 否,该职工不存在 是,删除成功 否,该职工不存在 是,输出职工信息添加成功 返回职工信息管理系统菜单,继续选择 图3.1 系统流程图3.2运行结果举例(1)职工信息录入界面(2)职工信息修改界面4 编码与实现4.1分析 本系统主要分为WorkerList类、database类、函数menu、函数menu2以及main函数,WorkerList类中包括的数据成员有id、name10、sex10、age、edu20、salary、address25、tel11,包括的函数成员有setid()、setname()、setsex()、setage()、setedu()、setsalary()、setaddress()、settel()、getid()、add()、display()。而database类中包括的数据成员有top、 WorkList workerN,包括的函数成员有rdatabase()、add()、search()、delet()、modify()。 用函数add()实现职工信息的录入,用函数search()实现对职工信息的查询,用函数delet()实现对职工信息的删除,用函数modify()实现对职工信息的修改。4.2具体代码实现#include#include#include#define N 100 / N作为最大职工数using namespace std;void menu();/显示菜单class WorkerListprivate: int id; char name10; char sex10; int age; char edu20; int salary; char address25; char tel11;public:void setid()/以下函数用于职工属性的输入cout请输入职工号:id;void setname()cout请输入职工姓名:name;void setsex()cout请输入职工性别:sex;void setage()cout请输入职工年龄:age;void setedu()cout请输入职工学历:edu;void setsalary()cout请输入职工工资:salary;void setaddress()cout请输入职工住址:address;void settel()cout请输入职工电话:tel; int getid()/取职工号函数,主要用于判断输入的职工号是否已存在return id;void add()/职工信息录入setid();setname();setsex();setage();setedu();setsalary();setaddress();settel();void display()/显示函数,用于将已有职工的信息输出cout职工工号为:idendl;cout职工姓名为:nameendl;cout职工性别为:sexendl;cout职工年龄为:ageendl;cout职工学历为:eduendl;cout职工工资为:salaryendl;cout职工住址为:addressendl;cout职工电话为:telendl;void menu()/菜单函数 coutendl;cout endl;coutendl;cout endl;coutendl;cout 欢迎进入职工信息管理系统endl;coutendl;cout 1.职工信息录入;cout 2.职工信息查询endl;coutendl;cout 3.职工信息删除; cout 4.职工信息修改endl; coutendl;cout 谢谢您的使用endl;coutendl; void menu2()/修改职工信息显示的选择界面cout *endl;coutendl;cout * 1.修改工号 2.修改姓名 *endl;coutendl;cout * 3.修改性别 4.修改年龄 *endl;coutendl;cout * 5.修改学历 6.修改工资 *endl;coutendl;cout * 7.修改地址 8.修改电话 *endl;coutendl;cout *endl;coutendl;class database/database类,用于将输入的职工信息保存在一个txt文档中及读取private:int top;WorkerList workerN;public:void rdatabase()/打开磁盘中相应的文件top=-1;fstream file;/定义fstream类对象filefile.open(c:worker.txt ,ios:in|ios:binary);/使文件流与磁盘的worker.txt文件建立关联,并从中读取职工信息while(!file.eof()top+;file.read(char *)&workertop,sizeof(workertop);file.close();/将关联的磁盘文件关闭top+; void add()/新添加职工函数int id;cout请输入职工号以便鉴定id;for(int i=0;itop;i+)if(workeri.getid()=id)cout对不起,您输入的职工号已存在endl;return;workertop.add();top+;outdatabase();cout添加成功!endl;return;void outdatabase()/将输入的职工信息写入txt文档fstream file;file.open(c:worker.txt,ios:out|ios:binary);for(int i=0;itop;i+)file.write(char *)&workeri,sizeof(workeri);/写入结构体的元素file.close();void search()/用于查询职工的信息int id2;cout请输入职工号id2;for(int i=0;itop;i+)if(workeri.getid()=id2)workeri.display();return;cout对不起,该职工不存在endl;return;void delet()/实现对职工信息的删除int id,j;cout请输入职工号id;for(int i=0;itop;i+)if(workeri.getid()=id)for(j=i;jtop;j+)workerj=workerj+1;cout该职工信息已删除endl;outdatabase();return;cout对不起,该职工不存在endl;return;void modify()/对职工信息进行修改int id;cout请输入要修改的职工号id;for(int i=0;ig;switch(g)case 1:workeri.setid();break;case 2:workeri.setname();break;case 3:workeri.setsex();break;case 4:workeri.setage();break;case 5:workeri.setedu();break;case 6:workeri.setsalary();break;case 7:workeri.setaddress();break;case 8:workeri.settel();break;outdatabase();cout修改成功endl;return;cout对不起,该职工不存在choice;while(choice)switch(choice)case 1:a.rdatabase();a.add();break;case 2:a.rdatabase();a.search();break;case 3:a.rdatabase();a.delet();break;case 4:a.rdatabase();a.modify();break;menu();cinchoice;5 课程设计总结5.1该课程设计的特点和不足这个程序设计有很多不足,并不能将所有职工的相关信息输出,这个问题暂时还未能实现,不过以后我会努力学习逐渐加以改善争取完善它的功能。该程序所存信息不足,有待改善,但该程序适合现阶段面向对象技术初学者的练习作业,能有效的反映出学生的学习情况及其动手能力,也能让学生自己检测出本学期自己所获得的知识掌握情况,是一向很好的课程设计项目。5.2心得体会通过这次对职工信息管理系统的课程设计,我获益颇多。长时间的思索这个课程设计使得我对函数和类的理解及其运用更加透彻与深刻。在设计程序的过程中,我也曾遇到令人头疼的难题,令自己百思不得其解。职工信息管理系统的设计需要对职工的信息进行存储,但是如何将信息真正的存储到文件中呢?这个难题曾一度难倒了我。庆幸的是,在老师和同学的帮助下,我寻到了解决问题的方法,将信息保存到文件中需要查阅C+面向对象程序设计教科书。在书上第9章C+的输入输出流里有对信息进行文件2进制存储的相关内容,通过问老师和自己进一步深入学习,这个大难题最终得以解决。然而当所有的程序完成的时候,并没想象中那么容易运行,总有一些零零碎碎的错误隐藏在一个个“阴暗”的角落里,研究修改了很久,仍有错误找不出来,于是就只好求助别人帮忙了。在本系统的开发设计中,由于我是初次开发软件,在知识,经验方面都存在着不足。另外这个开发的过程比较

温馨提示

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

评论

0/150

提交评论