付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内蒙古科技大学?面向对象程序设计?课程设计报告设计题目:公司人员治理系统学 院:信息学院专 业:电子信息工程班 级:xxxxx 班学 号:xxxxxxxxxx学 生姓名:xxxxxxxxx指导教师:余金林2021. 6内蒙古科技大学课程设计任务书课程名称C+铺言课程设计设计题目公司人员治理系统指导教师时余金林一间一、教学要求1,稳固和加深学生对C+铺言课程的根本知识的理解和掌握2 .掌握C+吾言编程和程序调试的根本技能3 .利用C+铺言进行根本的软件设计4 .掌握书写程序设计说明文档的水平5,提升运用C+吾言解决实际问题的水平二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独
2、立完成,可根据设计内容适当修改题目名称.公司人员治理系统定义人员基类,并派生出兼职技术人员类、经理类、部门治理人员类并在类中声明各自的成员函数;要求至少设计以下各功能模块:输入记录查询功能计算工资显示信息三、设计要求及成果1 .分析课程设计题目的要求2 .写出详细设计说明3,编写程序代码,调试程序使其能正确运行4,设计完成的软件要便于操作和使用4,设计完成后提交课程设计报告四、进度安排资料查阅与讨论1天系统分析2天系统的开发与测试5天编写课程设计说明书和验收2天五、评分标准1 .根据平时上机考勤、表现和进度,教师将每天点名和检查2 .根据课程设计完成情况,必须有可运行的软件.3 .根据课程设计
3、报告的质量,如有雷同,那么所有雷同的所有人均判为不及格 六、建议参考资料1 .?C+痈向对象程序设计?,吴敏、杨国林 主编,内蒙古大学出版社2 .?C+吾言程序设计第三版,郑莉,清华大学出版社摘要二需求分析三.概要设计4 .详细设计5 . 总名吉6 .参考文献一.摘要C+简介:Stroustrup 工作起于1979年的C with Classes.这个构思起源于 Stroustrup 做博士论文时的一些程序撰写经验.他发现Simula具备很利 于大型软件开发的特点,但 Simula的运行速度太慢,无法对现实需求发 挥成效;BCPL虽快得多,但它过于低级的特性,使其不适于大型软件的 开发.当St
4、roustrup开始在贝尔实验室工作时,他有分析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年,出版了 The Annotated C+ Reference Manual .这本书后来成为标准化的根底. 稍 后还引入了模板、异常处理、命名空间、新的强制类型转换,以及布尔类 型.随着C+语言的演变,也逐渐演化出相应的标准程序库.最先加进 C+标准库的是流I/O程序库,其用以取代传统的 C函数,如printf和 s
6、canf.随后所引入的程序库中最重要的便是标准模板库,简称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语言的简洁、高效和接 近汇编语言等特点,又克服了 C语言的缺点,其编译系统能检查更多的语 法错误,因此,C+比C语言更平安
8、.(2) C+保持了与C语言的兼容.绝大多数C语言程序可以不经修改直 接在C+环境中运行,用C语言编写的众多库函数可以用于 C+程序中.(3)支持面向对象程序设计的特征.C+既支持面向过程的程序设计, 又支持面向对象的程序设计.(4) C+程序在可重用性、可扩充性、可维护性和可靠性等方面都较C语言得到了提升,使其更适合开发大中型的系统软件和应用程序.每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根 据设计内容适当修改题目名称.二.需求分析某小型公司,主要有四类人员:经理、技术工人、销售人员以及部门 治理人员.现在、需要建立一个小型的公司人员治理系统,能够以文件方 式存储这些人员的
9、各类信息并能根据其编号查询输出所输入的所有信息, 还要根据公司的要求计算出每名员工一个月的工资.要求:1) 可以录入并保存四类人员的信息;2) 可以根据职工的类别以及姓名查询并显示四类人员的信息3) 可以根据规定的方法计算每名员工每月所得的工资 ;方法:A经理:固定工资5000可更改+工龄工资工龄*100 +领导水平 评价;B技术工人:固定工资2500可更改+工龄工资工龄*50 +工时工 资工时*10 +工作表现评价;C销售员:工龄工资工龄*50 +销售额*0.05+销售效率评价;D部门治理人员:固定工资3500可更改+工龄工资工龄*50 +销 售额*0.005+统率力评价;其中,每一类员工的
10、前一局部的计算方法是固定了的,而后面的评价局部 分为了优、良、中、差四个等级,在最终评定某一位员工该月应得的工资 时可以按评定等级酌情考虑,这样能更加表达人性化并且更能够提升员工 积极性.4) 可以在各个界面中实现退出以及进入的循环.5) 可以退出本系统.三.概要设计5.1 系统功能分析和设计思路、系统功能模块我们使用面向对象程序设计方法的思路进行分析,得出了整个系统应该涉及两个 基类的信息和操作,首先是公司雇员这一个大基类,其它诸如经理等的类应该由此类 派生;再有、为了方便实现各类信息以文件方式的储存以及实现各种功能和界面,我们决定再创立一个系统类.所以我们接下来所要做的一切工作都要围绕这两
11、个类(公司雇员类 employee 以及系统类 system )来展开.(1)公司雇员类employee :可以说这是本系统的一个“总基类, 我们根据预期的设计及要求由它(公司雇员类employee )派生出了经理类manager 一般工人类 worker 销售员类sale以及部门治理人员类 Branch_manage.由于考虑到各个小的分类之间在形式下差不多,为了 不出现“二义性的问题,我们主要在各个类之间采取定义虚基类以及纯 虚函数的思路进行调用.另外、由于我们对链表的运用以及链表的掌握还 不是很熟练,再加上为了使各个类方便与系统类system进行直接连接,我们遂决定采用对象数组存放文件中
12、读入或读出的各类公司人员信息.但 是我们发现这样做有一个缺陷:由于无法事先确定各类人员及各类人员的 各种信息,所以无法确定对象数组的大小.这里我们讨论后决定事先确定 一个较大的数组空间来决定这个问题,当然,解决这个问题的最好方法还 是采用异质链表来存放从文件中读取的信息.(2)系统类system :由于这个系统涉及到了文件的应用,所以系统类system是必不可少的.我们对问题分析、讨论以后决定,系统类 system的主要成员函数要包括:提供输入各类数据的inform、确认各类输入成功的success 添加各类信息的in_information 、用于各类查询 的search 计算并显示总工资的
13、 out_total_salary 以及用于各个选项之 间输出界面的interface.(3)由于考虑到这应该是一个完整的治理系统,加上我们希望这个 系统的界面能够做到清楚、明了,我们经讨论后决定采用一个总操作界面,三个分操作界面.总操作界面应该包括分别对应1.输入信息2.查询信息并显示3.计算总工资并显示4.退出输入信息界面中又因该包括1.经理类2.工人类3.销售员类4.部门治理人员类5.退出.查询信息并显示界面中又应该包括1.经理类2.工人类3.销售员类4.部门治理人员类5.退出.计算总工资并显示界面中又应该包括1.经理类2.工人类3.销售员类4.部门治理人员类5.退出.3.2系统使用说明
14、文字说明:进入主菜单后:选1-1为输入经理类的记录;1-2为输入工人类的记录;1-3为输入销售员类的记录;1-4为输入部门治理人员类的记录; 1-5为退出此界面并返回到主界面.选2-1为查找经理类的记录;2-2为查找工人类的记录;2-3为查找 销售员类的记录;2-4为查找部门治理人员类的记录;2-5为退出此界面 并返回到主界面.以上操作的详细流程请参照流程图 3.选3-1为计算经理类的总工资;3-2为计算工人类的总工资;3-3为 计算销售员类的总工资;3-4为计算部门治理人员类的总工资;3-5为退 出此界面并返回到主界面.以上操作的详细流程请参照流程图 4.选4会输出“谢谢您使用本系统,次再见
15、! 并退出程序.软件界面说明例子四.详细设计4.1 系统流程图说明:以下是对应上面系统功能模块实图的系统流程图.4.2 程序代码/Employee.h#include<iostream.h>#include<string.h>#include<fstream.h>#include<stdlib.h>class Employee /* 基类(雇员类)*/ protected:int lb;int num;char name20;int work_age;double total_salary;public:int Get_lb()return lb
16、;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:Manager()lb=1;Manager();void Input();void Out
17、put();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 /*派生类(销售人员类)*/ protected:float sale;char efficiency1
18、0; 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();class System /* 系统类 */ Manager B10;Worke
19、r 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_total_salary();void Interface();/carry
20、 out.cpp#include<iostream.h>#include<string.h>#include<fstream.h>#include<stdlib.h>char 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()r
21、eturn name;void Employee:Input()cout<<"ttt 员工编号:";cin>>num;cout<<"ttt员工姓名:;cin>>name;cout<<"ttt员工工龄:;cin>>work_age;void Employee:Output()(cout<<"ttt员工编号:"<<num<<endl;cout<<"ttt员工姓名:"<<name<&l
22、t;endl;cout<<"ttt员工工龄:"<<work_age<<endl;cout<<"ttt总工资:"<<total_salary<<endl;一void Manager:Input()(Employee:Input();cout<<"ttt固定工资:";cin>>salary;cout<<"ttt领导水平(优、良、中、差):"cin>>leadership;void Manager:Ou
23、tput()(Employee:Output();cout<<"ttt领导水平(优、良、中、差):"<<leadership<<endl;void Manager:Compute_total_salary()(一 一total_salary=salary+100*work_age;void Worker:Input()(Employee:Input();cout<<"ttt固定工资:"cin>>salary;cout<<"ttt工时:"cin>>wor
24、k_hour;cout<<"ttt工作表现(优、良、中、差):"cin>>performance;void Worker:Output()(Employee:Output();cout<<"ttt工时:"<<work_hour<<endl;cout<<"ttt工作表现(优、良、中、差):"<<performance<<endl;void Worker:Compute_total_salary()(total_salary=salary+10
25、*work_hour+50*work_age;void Sale:Input()(Employee:Input();cout<<"ttt当月销售额:;cin>>sale;cout<<"ttt销售效率(优、良、中、差):"cin>>efficiency;void Sale:Output()(Employee二Output();cout<<"ttt当月销售额:"<<sale<<endl;cout<<"ttt销售效率(优、良、中、差):"
26、;<<efficiency<<endl;void Sale:Compute_total_salary()(一 一total_salary=50*work_age+sale*0.05;void Branch_Manage:Input()(Employee:Input();cout<<"ttt固定工资:";cin>>salary;cout<<"ttt当月销售总额:;cin>>sale;cout<<"ttt统率力(优、良、中、差):"cin>>comman
27、d;void Branch_Manage:Output()(Employee:Output();cout<<"ttt当月销售总额:"<<sale<<endl;cout<<"ttt统率力(优、良、中、差):"<<command<<endl;void Branch_Manage:Compute_total_salary()(一一total_salary=salary+50*work_age+sale*0.005;int System:j1=0;int System:j2=0;int Sy
28、stem:j3=0;int System:j4=0;void System:Interface1()cout<<"nnn"cout<<"tt *cout<<"tt *按雇员类别进行治理*"<<endl;公司人员类别 *"<<endl;cout<<"tt1.经理类"<<endl;cout<<"tt2.兼职技木工人类"<<endl;cout<<"tt3.销售类"
29、<<endl;cout<<"tt4.部门治理人员类"<<endl;cout<<"tt5.退出"<<endl;cout<<"tt请您输入您选择的类别:")void System:In_information()(.int revl;int again=1;char t;while(again)(Interface1();cin>>rev1;switch(rev1)(case 1:infor1();break;case 2:infor2();break;c
30、ase 3:infor3();break;case 4:infor4();break;case 5:Interface();break;default:cout<<"ttt对不起、没有此类人员!"<<endl;continue;)cout<<"ttt信息储存成功! "<<endl;cout<<"ttt是否继续输入(y/n )""cin>>t;cout<<endl;if(!(t='Y'|t='y')again=0
31、;)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|ios:binary);datafile.seekp(0,ios:end
32、);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+;)void System:infor4()(fstream
33、 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(s<j1)(if(strcmp(ch,Bs.Getname()=0)(Bs.Compute_total_sala
34、ry();Bs.Output();cout<<"ttt*"<<endl; found=1;break;s+;break;case 2:while(s<j2)(if(strcmp(ch,Cs.Getname()=0)(Cs.Compute_total_salary();Cs.Output();cout<<"ttt*"<<endl; found=1;break;s+;break;case 3:while(s<j3)(if(strcmp(ch,Ds.Getname()=0)(Ds.Compute_to
35、tal_salary();Ds.Output();cout<<"ttt*"<<endl; found=1;break;s+;break;case 4:while(s<j4)if(strcmp(ch,Es.Getname()=0) (Es.Compute_total_salary();Es.Output();cout<<"ttt*<<endl;found=1;break;s+;break;if(found=0)"<<endl;cout<<"nntt对不起,该类别中并没有
36、此人!void System二Search()(int rev;char name20;int again=1;char t;while(again)(Interface1();cin>>rev;if(rev=5) break;cout<<"ttt请输入您要查询的人员姓名:"cin>>name;Search1(rev,name);cout<<"ttt 是否继续查询(y/n )""cin>>t;cout<<endl;if(!(t='Y'|t='y
37、9;) again=0;Interface();void System二Out_total_salary1(int h,char *name)(一 一int s=0,found=0;switch(h)(case 1:while(s<j1) (if(strcmp(name,Bs.Getname()=0) (Bs.Compute_total_salary();Bs.Output();found=1;break;s+;break;case 2:while(s<j2)(if(strcmp(name,Cs.Getname()=0) (Cs.Compute_total_salary();Cs.
38、Output();found=1;break;s+;break;case 3:while(s<j3)(if(strcmp(name,Ds.Getname()=0) (Ds.Compute_total_salary();Ds.Output();found=1;break;s+;break;case 4:while(s<j4)(if(strcmp(name,Es.Getname()=0) (Es.Compute_total_salary();Es.Output();found=1;break;s+;break;)对不起,该类别中并没有这种类型的总工资!<<endl;if(found=0)cout<<"nntt)void System:Out_total_salary()(一 一int rev;char name20;int again=1;char t;while(again)(Interface1();cin>>rev;if(rev=5) break;cout<<"nttt请输入您将要查看总工资的人员姓名:cin>>name;Out_total_salary1(rev,name);cout<<"tt是否继续查看总工资(y/n )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西信息职业技术学院单招职业适应性测试题库含答案详解(达标题)
- 机料员奖惩制度
- 杀猪盘公司奖惩制度
- 村委会年度奖惩制度
- 2026年春季学期教研组“同课异构”课堂教学活动实施方案与总结报告
- 2026年赣南卫生健康职业学院单招综合素质考试题库带答案详解
- 2026年齐齐哈尔高等师范专科学校单招职业适应性测试题库带答案详解
- 2026年河南医学高等专科学校单招职业技能考试题库有答案详解
- 2026年河北邯郸曲周县春季博硕人才选聘87人笔试备考试题及答案解析
- 2026广西大学海洋学院招聘科研助理岗位1人(黄雯老师课题组)笔试模拟试题及答案解析
- 旅行社运营实务电子课件 2.1 走进旅行社门市
- 《健身气功八段锦》教案
- 乳腺良性肿瘤日间手术临床路径临床路径
- CBCC中国建筑色卡色
- (完整版)简单儿童对比涂色画画-可打印(干货)
- GB/T 16924-2008钢件的淬火与回火
- 中考语文专题复习专题一汉字读写课件
- 腹腔镜辅助下阴式子宫切除的课件
- 交管12123驾照学法减分题库200题(含答案完整版)
- 医院卒中中心护理组职责
- 露天煤矿边坡雷达管理制度 (试行)
评论
0/150
提交评论