c++课题设计报告.docx

上传人:doc321 文档编号:12826843 上传时间:2021-12-06 格式:DOCX 页数:65 大小:490.68KB
返回 下载 相关 举报
c++课题设计报告.docx_第1页
第1页 / 共65页
c++课题设计报告.docx_第2页
第2页 / 共65页
c++课题设计报告.docx_第3页
第3页 / 共65页
c++课题设计报告.docx_第4页
第4页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c++课题设计报告.docx》由会员分享,可在线阅读,更多相关《c++课题设计报告.docx(65页珍藏版)》请在三一文库上搜索。

1、下载可编辑课程设计报告课程名称面向对象程序设计课题名称公司人员管理系统专业班级学号姓名.专业 .整理 .下载可编辑指导教师2011年12月28日.专业 .整理 .下载可编辑湖南工程学院课程设计任务书课程名称课题面向对象程序设计公司人员管理系统专业班级学生姓名学号指导老师审批.专业 .整理 .下载可编辑任务书下达日期2011年11月15日任务完成日期2011年12月28日.专业 .整理 .下载可编辑一、设计内容与设计要求1.课程设计目的 :面向对象程序设计课程设计是集中实践性环节之一,是学习完 面向对象程序设计课程后进行的一次全面的综合练习。要求学生达到熟练掌握C+ 语言的基本知识和技能;基本掌

2、握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。2.课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统7) 图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3设计要求 : 设计课题题目 :每位同学根据自己学号除以 10 所得的余数加 1 选择相应题号的课题 。 随意换题者不记成绩 。 根据自己对应的课题完成以下主要工作 : 完成系统需求分析 :包括系统设计目的与意义 ;系统功能需求 (系统流程图 );输入输

3、出的要求 。完成系统总体设计 :包括系统功能分析 ;系统功能模块划分与设计 (系统功能模块图 )。 完成系统详细设计 :包括数据库需求分析 ;数据库概念结构设计(E R 图);数据库逻辑结构设计 ;类层次图 ;界面设计与各功能模块实现。 系统调试 :调试出现的主要问题 ,编译语法错误及修改 ,重点是运.专业 .整理 .下载可编辑行逻辑问题修改和调整 。 使用说明书及编程体会 :说明如何使用你编写的程序,详细列出每一步的操作步骤 。 关键源程序 (带注释) 按规定格式完成课程设计报告,将其打印稿 (A4 纸)上交给老师存档 。 不得抄袭他人程序 、课程设计报告 ,每个人应体现自己的个性设计。.专

4、业 .整理 .下载可编辑二、进度安排第 17 周 星期一 8:00 12:00星期二8:00 12: 00星期四8:00 12: 00第 18 周星期一8:00 12:00星期二14: 30 18:30星期三8:00 12: 00三、参考书籍1.C程序设计课程设计 刘振安编著TP312C5632.C+Builder和 Delphi课程设计与系统开发案例伍俊良清华大学出版社7-302-06072-X3.Visual C+ 课程设计案例精编严华峰中国水利水电出版社7-5084-2007-120044.Visual C+ 课程设计与系统开发案例伍俊良清华大学出版社7-302-05968-320025

5、.Visual C+ 语言课程设计: 案例精选与编程指导陈清华朱红东南大学出版社7-81089-275-420036.VisualC+ 课程设计案例精编中国水利水电出版社7-5084-1004-120027.数据结构课程设计案例精编: 用 C/C+ 描述 李建学李光元吴春芳清华大学出版社7-302-14536-92007(编程平台不限 , vc+, c+ Builder等等。).专业 .整理 .下载可编辑课题 5:公司人员管理系统(一)、课程设计题目 :公司人员管理系统(二)、目的与要求 :1、目的:(1)要求学生达到熟练掌握C+ 语言的基本知识和技能 ;(2)基本掌握面向对象程序设计的基本思

6、路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求 :(1)要求利用面向对象的方法以及C+ 的编程思想来完成系统的设计;(2)要求在设计的过程中 ,建立清晰的类层次 ;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中 ,至少要用到面向对象的一种机制。3、创新要求 :在基本要求达到后 ,可进行创新设计 ,如根据查找结果进行修改的功能。4、写出设计说明书(三)、设计方法和基本原理 :1、问题描述 (功能要求 ):公司人员管理系统实现对公司人员按姓名或者编号显示 、查找、增加、删除和保存各类人员信息的操作 。某小型公司 ,主要

7、有四类人员 :经理、兼职技术人员 、销售经理和兼职推销员。现在,需要存储这些人员的姓名 、编号、级别、当月薪水 ,计算月薪总额并显示全部信息 。人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。程序对所有人员有提升级别的功能。薪金的计算方法是:经理拿固定月薪 ,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。能按姓名或者编号显示 、查找、增加、删除和保存各类人员的信息 。在基本要求达到后 ,可设计出比较友好的界面 (如下拉菜单 ),也可用 VC+ ClassWizard 设计(选作)。.专业 .整理 .下载可编辑

8、2、问题的解决方案 :根据系统功能要求 ,可以将问题解决分为以下步骤:(1)应用系统分析 ,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述 ,设计系统的类层次 ;(4)完成类层次中各个类的描述(包括属性和方法 );(5)完成类中各个成员函数的定义;(6)完成系统的应用模块 ;(7)功能调试 ;(8)完成系统总结报告以及系统使用说明书。.专业 .整理 .下载可编辑 1.12.33.4.115.186.27.专业 .整理 .下载可编辑.专业 .整理 .下载可编辑1.系统需求分析1.1 问题描述公司人员管理系统实现对公司人员

9、按姓名或者编号显示 、查找、增加、删除和保存各类人员信息的操作 。某小型公司 ,主要有四类人员 :经理、兼职技术人员 、销售经理和兼职推销员。现在,需要存储这些人员的姓名 、编号、级别、当月薪水 ,计算月薪总额并显示全部信息 。人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。程序对所有人员有提升级别的功能。薪金的计算方法是 :经理拿固定月薪 ,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。能按姓名或者编号显示 、查找、增加、删除和保存各类人员的信息 。 在基本要求达到后,可设计出比较友好的界面(如下拉菜单),

10、也可用 VC+ ClassWizard 设计(选作)1.2 功能分析查询功能 :void Query()删除功能 :void Delete()添加功能 :void Add()修改功能 :void Modify()保存功能 :void Save()数据装入 :void Load()查询功能函数原型 : void Query()说明:查询一个职员的基本信息 ,包括职工号 ,姓名 ,性别 ,所在部门 ,职务 ,薪水。删除功能函数原型 : void Delete()说明:能够对一个职员的信息进行删除,按职工号 + 姓名进行删除 。添加功能函数原型 : void Add()说明:添加一个职员的基本信息,

11、包括职工号 ,姓名,性别,.专业 .整理 .下载可编辑所在部门,职务,薪水。12.4 修改功能函数原型 : void Modify()说明:对满足条件的职员的信息进行修改,可以修改职工所在部门 、 职务、工资。保存功能函数原型 : void Save()说明:保存想要保存的人员信息。数据装入函数原型 : void Load()说明:将保存在磁盘的数据装入到内存中,以便对数据的再次管理和操作。.专业 .整理 .下载可编辑2.总体设计2.1 系统总体框架系统总体框架使用面向对象的程设计思想进行分析,整个系统涉及两大类信息和操作 ,公司 ,人员 。所以系统主要涉及两个大类:公司类Company 、人

12、员类Person 。系统的总体框架就是公司类,人员类的定义 ;主函数中定义一个公司对象,循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数 )。(1)公司类 Company :考虑系统操作的人员信息的数量具有不确定性 ,所以考虑使用链表保存 、处理人员信息 。公司类包含 :所有人员信息的一个不带头结点的链表(作为数据成员 )及可以对人员信息进行增 ,删,改,查询, 数据存盘等操作的相关模块 (Add,Delete,Modify,Query,Set) 作为成员函数 。(2)人员类Person :所有人员都具有的公共信息及操作可以使用人员类进行描述。由于系统具有 4 类人员且 4 类人员数

13、据 ,操作有所不同 ,如销售员包含销售额,.专业 .整理 .下载可编辑而技术人员包含工作小时数且计算工资的方法不同,所以应当为4 类人员创建相应的Person 类的派生类 。(3)为了使公司类可以方便处理人员信息,可以考虑将公司类确定为人员类的友元类或者人员类提供公共的方法以便公司类进行操作。为了公司类可以用共同方法操作人员类 ,可以将人员类的方法确定为虚函数。2.2 结构框图公司员工管理系统查删添修保询除加改存人人人人人员员员员员2.3 类的层次图People 类.专业 .整理 .下载可编辑Manager 类Sales类SalesManager类Technician 类其中:(1)Perso

14、n 类有 No- 人员编号 , Name- 人员姓名 ,Duty- 人员类别 ,Earning-工资,next- 指向下一个人员的指针;Person 类的 CalcSalary(), Output() 定义为纯虚函数分别表示要计算人员工资和输出人员信息,由于定义纯虚函数,所以 Person 是抽象类 ,具体计算工资 ,输出人员信息由派生类完成。(2)各个派生的类 ,包含本类对象特有的数据,Sales:Amount- 销售员销售额,SalesManager:Amount-销售经理的总销售额 (系统统计各个销售员销售额得到销售经理的总销售额) , Technician:t- 技术人员工作小时数 。

15、CompanyPersor *Worker,Company(),Company(),Add(),Delete(),Modify(),Query(),Set(),Save(), Load()其中:1Worker就是人员链表 。2 Add(),Delete(),Modify(),Query(),Set(),Save(),Load()分别表示系统各个功能模块 :增加人员 ,删除人员 ,修改人员 ,查找人员 ,基本数据的设置,数据存盘 ,数据装入 。.专业 .整理 .下载可编辑3.详细设计3.1.程序的运行步骤及函数的实现(1)主函数流程开始创建公司对象显示菜单接受输入根据输入执行公司 操作N退出 ?

16、Y结束.专业 .整理 .下载可编辑(2) Company:Add()开始ID号增1输入岗位输入数据,创建员工对象结点员工对象加入结点结束(3) Company:Delete().专业 .整理 .下载可编辑开始输入员工 ID查找要删除的结点结点存在是否链表删除员工结点提示未找到并返回结束(4) Company:Modify.专业 .整理 .下载可编辑开始输入员工 ID查找结点结点存在是否修改结点提示未找到并返回结束(5) Company:Query().专业 .整理 .下载可编辑开始输入员工编号查找节点节点存在是否输出节点人员提示不存在并的相关信息返回主函数结束.专业 .整理 .下载可编辑(6)

17、Company:Save()开 始打开员工数据文件遍历链表保存人员数据关闭文件打开基础数据文件保存基础数据关闭文件结 束.专业 .整理 .下载可编辑(7) Company:Load().专业 .整理 .下载可编辑开 始打开员工数据文件读取基础数据关闭文件打开人员数据文件读取一条记录Y文件未结束N根据人员类型创建结点链表加入结点读下面一行记录关闭文件结 束.专业 .整理 .下载可编辑4.系统调试4.1 界面的显示 ,选择功能项图 4.14.2 最开始先增加人员1)增加经理.专业 .整理 .下载可编辑图2)增加销售经理.专业 .整理 .下载可编辑图3)增加技术人员.专业 .整理 .下载可编辑图4.

18、3 增加后对增加的人员进行查找图 4.3.专业 .整理 .下载可编辑4.4 如果能查找到就说明增加成功,然后在进行修改操作图 4.44.5 修改之后再查找这个人员,看是否修改成功 。.专业 .整理 .下载可编辑图 4.54.6 确定修改成功后再进行删除人员图 4.64.7 确定是否删除成功图 4.7.专业 .整理 .下载可编辑4.8 确定删除之后再进行保存图 4.84.9 对数据进行修改.专业 .整理 .下载可编辑图 4.94.10 看一下修改后的效果图 4.104.11 修改正确 ,整个系统无误 ,退出系统.专业 .整理 .下载可编辑图 4.115.结果分析一.本系统独特的设计1.两个类的设

19、计1.1 Company 类有数据成员员工 ,这个类的主要功能是对功能模块的实现 ,可以设计 Add(),Delete(),Modify(),Query(),Set(),Save(),Load() 函数对系统功能需求的实现 。查询功能 void Query()查询一个职员的基本信息,包括职工号 ,姓名,性别,所在部门 ,职务,薪水。删除功能 void Delete()能够对一个职员的信息进行删除,按职工号 + 姓名进行删除 。添加功能 void Add()添加一个职员的基本信息,包括职工号 ,姓名,性别,所在部门 ,职务,薪水。修改功能 void Modify()对满足条件的职员的信息进行修改

20、,可以修改职工所在部门 、 职务、工资。.专业 .整理 .下载可编辑保存功能 void Save()保存想要保存的人员信息。数据装入 void Load()将保存在磁盘的数据装入到内存中,以便对数据的再次管理和操作。1.2 People 类有数据成员姓名 ,编号,职务,月总工资 ,还有两个纯虚函数 ,纯虚数不给出实现 ,在 People 类的派生类中再给出两个纯虚函数的相应的实现 ,一个纯虚函数是 virtual void CalcSalary()=0; 实现对每个人员工资的计算 ,另一个就是 virtual void Output()=0; 实现对每个人员的具体信息的输出 。这个设计是一个亮

21、点 。2.链表的设计 ,使用链表可以动态的增加人员 ,而不受内存的限制 ,先定义一个 People 类的链表头指针 ,再在以后每增加的人员设置为一个节点然后再把节电连接到头指针就实现了人员的增加 。3.界面的设计 ,每对一个具体的操作进行完之后 ,利用一个 return ;就可以返回主函数,在进行下一步操作 ,这是个很好的操作 。二.本系统不足之处1. 我设计的思路是由People 类派生出四个类 ,Manager 类, Sales 类,SalesManager类, 和 Technician 类 。但也可以用 Manager 类和 Sales 类共同派生出 SalesManager类,这样就更

22、接近我们学习的面向对象的设计的思路,这是一个不足之处 。2. 本系统的删除功能不是很完善 ,问题就是每当删除一个人员的时候 ,这个人员的所有信息都被删除了 ,包括人员的编号 ,编号一旦删除了就找不回了 ,也就是说删除了一号,这个系统就没有了一号 ,这是一个不足之处 。 其他的还算比较好 。.专业 .整理 .下载可编辑.专业 .整理 .下载可编辑6.总结这次课程设计所设计的公司员工管理系统 (CEMS)是一个小型的人事信息管理系统,该系统实现了职工信息的添加 、删除、修改、显示、查询等功能 ,并且运用了文件操作技术 ,可以实现数据的永久性保存 。 通过这次课程设计 ,我拓宽了知识面 ,锻炼了能力

23、 ,综合素质得到较大 提高。运用学习成果 ,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作 ,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想 。 检验学习成果 ,看一看课堂学习与实际工作到底有多大距离 ,并通过综合分析 ,找出学习中存在的不足 ,以便为完善学习计划 ,改变学习内容与方法提供实践依据 。 对我们计算机专业的本科生来说 ,实际能力的培养至关重要 ,而这种实际能力的培养单靠课堂教学是远远不够的 ,必须从课堂走向实践 。 这也是一次预演和准备毕业设计工作 。通过课程设计 ,让我们找出自身状况与实际需要的差距 ,并在以后的学习期间及时补充相关知识 ,为求职与正式

24、工作做好充分的知识 、能力准备,从而缩短从校园走向社会的心理转型期 。经过两周的 C+ 课程实践 , 我对 C+ 语言设计有了一个更深 , 更全面的了解 , 尤其体会到 C+ 面向对象操作对简化程序的重要作用 .下面是我的几点体会 : 刚拿到课题时,我一脸的茫然 ,看到如此庞大的工程 ,不知如何下手 .这个工资管理系统中职工子信息竟然包 15 条,以前从来没有遇到过如此多的变量 .和同学讨论很久好 ,我发现其实可以化繁为简的 ,信息 15 条不一定全都要 ,因为其中本身就有重复的 .所以做任何事情都必须要开动脑筋 ,积极思考 ,有时还要学会化繁为简 . 在编程时条理清晰是至关重要的 .主函数 ,函数 ,成员函数之间的层次关系,调用关系一定要有一个全面的把握,尤其要体会类的封装性.另外很重要的一点就是一定要对链表的五种操作熟练的掌握. 在编译 ,链接 ,调试的.专业 .整理 .下载可编辑过程中一定要有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1