




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内蒙古科技大学面向对象程序设计课程设计报告设计题目:公司人员管理系统学 院:信息学院专 业:电子信息工程班 级:xxxxx 班学 号:xxxxxxxxxx学 生姓名:xxxxxxxxx指导教师:余金林2011. 6内蒙古科技大学课程设计任务书课程名称C+铺言课程设计设计题目公司人员管理系统指导教师时余金林一间一、教学要求1 .巩固和加深学生对C+铺言课程的基本知识的理解和掌握2 .掌握C+吾言编程和程序调试的基本技能3 .利用C+铺言进行基本的软件设计4 .掌握书写程序设计说明文档的能力5 .提高运用C+吾言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独
2、立完成,可根据设计内容适当修改题目名称。公司人员管理系统定义人员基类,并派生出兼职技术人员类、经理类、部门管理人员类并在类中声明各自的成员函数;要求至少设计以下各功能模块:?输入记录?查询功能?计算工资?显示信息三、设计要求及成果1 .分析课程设计题目的要求2 .写出详细设计说明3 .编写程序代码,调试程序使其能正确运行4 .设计完成的软件要便于操作和使用5 .设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1 .根据平时上机考勤、表现和进度,教师将每天点名和检查2 .根据课程设计完成情况,必须有可
3、运行的软件。3 .根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格 六、建议参考资料1 .C+痈向对象程序设计,吴敏、杨国林 主编,内蒙古大学出版社2 .C+吾言程序设计(第三版),郑莉,清华大学出版社摘要2 需求分析3 概要设计4 详细设计5 总结 6 参考文献一 摘要C+ 简介 :Stroustrup 工作起于1979 年的 C with Classes 。这个构思起源于Stroustrup 做博士论文时的一些程序撰写经验。他发现 Simula 具备很利于大型软件开发的特点,但Simula 的运行速度太慢,无法对现实需求发挥功效; BCPL 虽快得多,但它过于低级的特性,使
4、其不适于大型软件的开发。当Stroustrup 开始在贝尔实验室工作时,他有分析UNIX 核心关于分布式计算的问题。回想起他的博士论文经验,Stroustrup开始为C语言增强一些类似Simula的特点。之所以选择C,是因为它适于各种用途、快速和可移植性。除了 C 和 Simula 之外, 同时也从其它语言中取得灵感,如ALGOL 68、Ada、CLU以及ML。刚开始时,类、派生类、存储类型检查、内联和默认参数特性,都是通过CfrONt 引入 C 语言之中。1985年 10 月出现了第一个商业化发布。1983 年, C with Classes 改命名为C+ 。加入了新的特性,其中包括虚函数、
5、函数名和运算符重载、参考、常数、用户可控制的自由空间存储区控制、改良的类型检查,以及新的双斜线( / ) 单行注解风格。1985年,发布第一版C+ 程序设计语言,提供一个重点的语言参考,至此还不是官方标准。1989 年,发布了Release 2.0 。引入了多重继承、抽象类、静态成员函数、常数成员函数,以及成员保护。1990 年,出版了TheAnnotated C+ Reference Manual 。 这本书后来成为标准化的基础。稍后还引入了模板、异常处理、命名空间、新的强制类型转换,以及布尔类型。随着 C+ 语言的演变,也逐渐演化出相应的标准程序库。最先加进C+ 标准库的是流I/O 程序库
6、,其用以取代传统的C 函数,如printf 和scanf。随后所引入的程序库中最重要的便是标准模板库,简称 STL。多年后,一个联合的ANSI-ISO 委员会于1998 年对 C+ 标准化( ISO/IEC 14882 : 1998 ) 。在官方释出1998 标准的若干年后,委员会处理缺陷报告,并于2003 年发布一个C+ 标准的修正版本。2005 年,一份名为Library Technical Report 1 (简称TR1)的技术报告释出。虽然还不是官方标准的一部分,不过它所提供的几个扩展可望成为下一版C+ 标准的一部分。几乎所有目前仍在维护的C+ 编译器皆已支持TR1 。虽然 C+ 免专
7、利, 但标准文件本身并不是免费的,尽管标准文档不是免费的, 但是很容易从网络中取得,最简单的就是C+ 标准文档之前的最后一次草稿版本,它与标准的差别几乎只在于排版上。C+ 语言既保留了C 语言的有效性、灵活性、 便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。用 C+ 编写的程序可读性好,生成的代码质量高,运行效率仅比汇编语言慢10%20%。C+ 语言具有以下特点:(1) C+ 是 C 语言的超集。它既保持了C 语言的简洁、高效和接近汇编语言等
8、特点,又克服了C 语言的缺点,其编译系统能检查更多的语法错误,因此,C+ 比 C 语言更安全。(2) C+ 保持了与C 语言的兼容。绝大多数C 语言程序可以不经修改直接在 C+ 环境中运行,用 C 语言编写的众多库函数可以用于C+ 程序中。(3) 支持面向对象程序设计的特征。C+ 既支持面向过程的程序设计,又支持面向对象的程序设计。(4) C+ 程序在可重用性、可扩充性、可维护性和可靠性等方面都较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根据设计内容适当修改题目名称。二需求分析某小型公司,主要有四类人员:经理、技术工
9、人、销售人员以及部门管理人员。现在、需要建立一个小型的公司人员管理系统,能够以文件方式存储这些人员的各类信息并能按照其编号查询输出所输入的所有信息,还要按照公司的要求计算出每名员工一个月的工资。要求:1) ) 可以录入并保存四类人员的信息;2) 可以按照职工的类别以及姓名查询并显示四类人员的信息3) 可以按照规定的方法计算每名员工每月所得的工资;方法:A 经理:固定工资(5000 可更改) + 工龄工资(工龄*100 ) + 领导能力评价 ;B 技术工人:固定工资(2500 可更改) + 工龄工资(工龄*50 ) + 工时工资(工时 *10 ) + 工作表现评价;C 销售员:工龄工资(工龄*5
10、0 ) + 销售额 *0.05+ 销售效率评价;D 部门管理人员:固定工资(3500 可更改) + 工龄工资(工龄*50 ) + 销售额 *0.005+ 统率力评价;其中,每一类员工的前一部分的计算方法是固定了的,而后面的评价部分分为了优、良、中、差四个等级,在最终评定某一位员工该月应得的工资时可以按评定等级酌情考虑,这样能更加体现人性化并且更能够提高员工积极性。4) 可以在各个界面中实现退出以及进入的循环。5) 可以退出本系统。三 概要设计3.1 系统功能分析和设计思路、系统功能模块我们使用面向对象程序设计方法的思路进行分析,得出了整个系统应该涉及两个基类的信息和操作,首先是公司雇员这一个大
11、基类,其它诸如经理等的类应该由此类派生;再有、为了方便实现各类信息以文件方式的储存以及实现各种功能和界面,我们决定再创建一个系统类。所以我们接下来所要做的一切工作都要围绕这两个类(公司雇员类employee 以及系统类system )来展开。( 1 )公司雇员类employee :可以说这是本系统的一个“总基类”,我们按照预期的设计及要求由它(公司雇员类employee )派生出了经理类manager、一般工人类 worker、销售员类sale以及部门管理人员类Branch_manage 。由于考虑到各个小的分类之间在形式下差不多,为了不出现“二义性”的问题,我们主要在各个类之间采取定义虚基类
12、以及纯虚函数的思路进行调用。另外、由于我们对链表的运用以及链表的掌握还不是很熟练,再加上为了使各个类方便与系统类system 进行直接连接,我们遂决定采用对象数组存放文件中读入或读出的各类公司人员信息。但是我们发现这样做有一个缺陷:因为无法事先确定各类人员及各类人员的各种信息,所以无法确定对象数组的大小。这里我们讨论后决定事先确定一个较大的数组空间来决定这个问题,当然,解决这个问题的最好方法还是采用异质链表来存放从文件中读取的信息。( 2) 系统类 system : 由于这个系统涉及到了文件的应用,所以系统类 system 是必不可少的。我们对问题分析、讨论以后决定,系统类system 的主要
13、成员函数要包括:提供输入各类数据的inform 、确认各类输入成功的success 、添加各类信息的in_information 、用于各类查询的 search 、计算并显示总工资的out_total_salary 以及用于各个选项之间输出界面的interface 。( 3 )由于考虑到这应该是一个完整的管理系统,加上我们希望这个系统的界面能够做到清晰、明了, 我们经讨论后决定采用一个总操作界面,三个分操作界面。总操作界面应该包括(分别对应1.输入信息2.查询信息并显示3.计算总工资并显示4.退出)输入信息界面中又因该包括1.经理类2.工人类3.销售员类4.部门管理人员类5.退出。查询信息并显
14、示界面中又应该包括1.经理类2.工人类3.销售员类4.部门管理人员类5.退出。计算总工资并显示界面中又应该包括1.经理类 2.工人类3.销售员类4.部门管理人员类5.退出。3.2 系统使用说明文字说明:进入主菜单后:选 1-1 为输入经理类的记录;1-2 为输入工人类的记录; 1-3 为输入销售员类的记录;1-4 为输入部门管理人员类的记录;1-5 为退出此界面并返回到主界面。选 2-1 为查找经理类的记录;2-2 为查找工人类的记录;2-3 为查找销售员类的记录;2-4 为查找部门管理人员类的记录;2-5 为退出此界面并返回到主界面。以上操作的详细流程请参照流程图3。选 3-1 为计算经理类
15、的总工资;3-2 为计算工人类的总工资;3-3 为计算销售员类的总工资;3-4 为计算部门管理人员类的总工资;3-5 为退出此界面并返回到主界面。以上操作的详细流程请参照流程图4。选 4 会输出“谢谢您使用本系统,次再见! ”并退出程序。软件界面说明例子:四详细设计4.1 系统流程图说明:以下是对应上面系统功能模块实图的系统流程图。4.2 程序代码/Employee.h#include#include#include#includeclass Employee /* 基类(雇员类)*/ protected:int lb;int num;char name20;int work_age;doub
16、le total_salary; public:int Get_lb()return lb;int Get_num();int Get_work_age();char *Getname();double Get_total_salary();virtual void Compute_total_salary()=0;virtual void Input();virtual void Output();class Manager:virtual public Employee /*派生类(经理类)*/ protected:float salary;char leadership10;public
17、:Manager()lb=1;Manager();void Input();void Output();void Compute_total_salary();class Worker:public Employee /* 派生类(技术工人类)*/float salary;int work_hour;char performance10;public:Worker()lb=2;Worker();void Input();void Output();void Compute_total_salary();class Sale:virtual public Employee /*派生类(销售人员类
18、)*/protected:float sale;char efficiency10;public:Sale()lb=3;Sale();void Input();void Output();void Compute_total_salary();class Branch_Manage:public Manager, public Sale /*派生类(部门管理人员类) */char command10;public:Branch_Manage()lb=4;Branch_Manage();void Input();void Output();void Compute_total_salary();
19、class System /* 系统类 */Manager B10;Worker C10;Sale D10;Branch_Manage E10;static int j1,j2,j3,j4;void infor1();void infor2();void infor3();void infor4();void Search1(int h,char ch20);void Out_total_salary1(int h,char *name);void Interface1();public:System();void In_information();void Search();void Out
20、_total_salary();void Interface();/carry out.cpp#include#include#include#includechar fileName=company.dat;int Employee:Get_num()return num;int Employee:Get_work_age()return work_age;double Employee:Get_total_salary()return total_salary;char *Employee:Getname()return name;void Employee:Input()coutnum;
21、coutname;coutwork_age;void Employee:Output()coutttt员工编号:numendl;coutttt员工姓名:nameendl;coutttt员工工龄:work_ageendl;coutttt 总工资 :total_salaryendl;void Manager:Input()Employee:Input();coutsalary;coutleadership;void Manager:Output()Employee:Output();coutttt 领导能力(优、良、中、差): leadershipendl;void Manager:Compute
22、_total_salary()total_salary=salary+100*work_age;void Worker:Input()Employee:Input();coutsalary;coutwork_hour;coutperformance;void Worker:Output()Employee:Output();coutttt 工时: work_hourendl;coutttt 工作表现(优、良、中、差): performanceendl;void Worker:Compute_total_salary()total_salary=salary+10*work_hour+50*wo
23、rk_age;void Sale:Input()Employee:Input();coutsale;coutefficiency;void Sale:Output()Employee:Output();coutttt 当月销售额:saleendl;coutttt 销售效率(优、良、中、差): efficiencyendl;void Sale:Compute_total_salary()total_salary=50*work_age+sale*0.05;void Branch_Manage:Input()Employee:Input();coutsalary;coutsale;coutcomm
24、and;void Branch_Manage:Output()Employee:Output();coutttt 当月销售总额:saleendl;coutttt 统率力(优、良、中、差): commandendl;void Branch_Manage:Compute_total_salary()total_salary=salary+50*work_age+sale*0.005;int System:j1=0;int System:j2=0;int System:j3=0;int System:j4=0;void System:Interface1()coutnnn;couttt *按雇员类别
25、进行管理*endl;couttt *公司人员类别*endl;couttt1.经理类endl;couttt2.兼职技术工人类endl;couttt3.销售类endl;couttt4.部门管理人员类endl;couttt5.退出endl;coutrev1;switch(rev1)case 1:infor1();break;case 2:infor2();break;case 3:infor3();break;case 4:infor4();break;case 5:Interface();break;default:coutttt对不起、没有此类人员!endl;continue;coutttt信息
26、储存成功!endl;coutt;coutendl;if(!(t=Y|t=y)again=0;Interface();void System:infor1()fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);Bj1.Input();datafile.write(char *)&Bj1,sizeof(class Manager);datafile.close();j1+;void System:infor2()fstream datafile(fileName,ios:in|ios:out|
27、ios:binary);datafile.seekp(0,ios:end);Cj2.Input();datafile.write(char *)&Cj2,sizeof(class Worker);datafile.close();j2+;void System:infor3()fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);Dj3.Input();datafile.write(char *)&Dj3,sizeof(class Sale);datafile.close();j3+;voi
28、d System:infor4()fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);Ej4.Input();datafile.write(char *)&Ej4,sizeof(class Branch_Manage);datafile.close();j4+;void System:Search1(int h,char ch20)int s=0,found=0;switch(h)case 1:while(sj1)if(strcmp(ch,Bs.Getname()=0)Bs.Compute
29、_total_salary();Bs.Output();coutttt*endl; found=1;break;s+;break;case 2:while(sj2)if(strcmp(ch,Cs.Getname()=0)Cs.Compute_total_salary();Cs.Output();coutttt*endl; found=1;break;s+;break;case 3:while(sj3)if(strcmp(ch,Ds.Getname()=0)Ds.Compute_total_salary();Ds.Output();coutttt*endl; found=1;break;s+;b
30、reak;case 4:while(sj4)if(strcmp(ch,Es.Getname()=0) Es.Compute_total_salary();Es.Output();coutttt*”endl;found=1;break;s+;break;if(found=0)coutrev;if(rev=5) break;coutttt 请输入您要查询的人员姓名:;name;Search1(rev,name);coutt;coutendl;if(!(t=Y|t=y)again=0;Interface();void System:Out_total_salary1(int h,char *name
31、)int s=0,found=0;switch(h)case 1:while(sj1) if(strcmp(name,Bs.Getname()=0) Bs.Compute_total_salary();Bs.Output();found=1;break;s+;break;case 2:while(sj2)if(strcmp(name,Cs.Getname()=0) Cs.Compute_total_salary();Cs.Output();found=1;break;s+;break;case 3:while(sj3)if(strcmp(name,Ds.Getname()=0) Ds.Compute_total_salary();Ds.Output();found=1;break;s+;break;case 4:while(sj4)if(strcmp(name,Es.Getname()=0) Es.Compute_total_salary();Es.Output();found=1;break;s+;break;if(found=0)coutnntt 对不起,该类别中并没有这种类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蔬菜代配送合同协议
- 艺人广告拍摄合同协议
- 茶房入股合同协议书范本
- 花园砂石出售合同协议
- 蛋糕店蛋糕师傅合同协议
- 苗圃清理场地协议书范本
- 纺织品的市场法规与标准试题及答案
- 菜鸟驿站加盟协议书模板
- 英文国内旅游合同协议
- 航空器租赁合同协议
- 医疗机构安全检查表
- 信息技术说课市公开课金奖市赛课一等奖课件
- 消费者心理与行为分析PPT(第四版)完整全套教学课件
- 肺癌SBRT的进展课件
- 普通物理热学-李椿-电子教案
- 方案设计初步设计施工图设计要求模板
- 概率论与数理统计(天津大学)知到章节答案智慧树2023年
- 城乡规划管理与法规智慧树知到答案章节测试2023年同济大学
- 园来如此-园林规划设计智慧树知到答案章节测试2023年云南林业职业技术学院
- 人教版高二《醛》学案
- (4.3.1)-培养德智体美劳全面发展的社会主义建设者和接班人
评论
0/150
提交评论