2022年C++课程设计 .pdf
《2022年C++课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年C++课程设计 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学生成绩核算系统院系:国际学院班级:09 计算机网络技术姓名:马亚飞学号:092601111 日期:2011年 12 月 15日成绩:签名:2011-2012学年第 1 学期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 2 1. 系统概述通过设计一个较为简单的高校工资管理系统,进一步熟悉 C+ 中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对 C
2、+ 的理解与 Visual C+ 环境的使用; 逐步熟悉程序设计的方法,并养成良好的编程习惯。2. 总体设计2.1 职工类的设计基于 C+ 中类的概念,类的封装,继承和抽象。编写一个Person 的基类包含共有的相关信息和操作,然后使职工类都继承于此基类从而实现多态。2.2 应用类的设计编写一个 Person 类的友元类 College 类来实现添加,删除,查找等功能。2.3 文件的读写设计通过 College 类中的 Save ()函数来实现数据的存储, 保存在 Person.dat 中,而通过 Load()函数来实现 Person.dat数据的读入。3. 详细设计及系统实现3.1 Pers
3、on类class Person / 人员类 (抽象类 ) protected : int No; / 编号char Name20; / 姓名char Duty; / 人员类别标志 (0- 教师,1- 实验员 ,2- 行政人员 ,3-教师兼实验员 ,4- 行政兼教师 ) double Salary; / 基本工资 Person *next; / 指针域public : Person() / 基类构造 next=0; / 指针域设置为空 virtual Person() / 基类虚析构 virtualvoid Input()=0; / 从键盘输入数据virtualvoid Input(ifstre
4、am& ifs)=0; / 从文件输入数据virtualvoid Output()=0; / 向屏幕输出数据virtualvoid Output(ofstream& ofs)=0; / 向文件输出数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 3 virtualdouble Incoming()=0; / 计算收入friendclass College; ; 3.2 Teacher类class Teacher: virtu
5、alpublic Person / 教师类 protected : int Hours; / 教师课时public : / 为对象设置数据分为两种途径,通过) 构造函数, ) 一般成员函数/ 分开可以使得程序中应用更加灵活/ 本程序采用 : 缺省构造 +Input() Teacher() / 构造函数,初始化部分数据 Duty=0 ; Salary=800; void Input() / 键盘补充输入其它数据 coutNo; coutName; coutHours; void Input(ifstream& ifs) ifsNoNameDutyHours; void Output() cout
6、NotName t教师 ttHourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name Duty Hoursendl; double Incoming() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 4 return Salary+(Hours-120)*20; ; 3.3 Assistant类class Assistant:virtualpublic Perso
7、n / 实验员 protected : int Allowance; int Hours; public : Assistant() Duty=1 ; Salary=650; Allowance=150; void Input() coutNo; coutName; coutHours; void Input(ifstream& ifs) ifsNoNameDutyHours; void Output() coutNotName t实验员 ttHourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name Duty Hoursendl;
8、double Incoming() return Salary+Allowance+(Hours-70)*20; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 5 ; 3.4 Manager 类class Manager: virtualpublic Person / 行政人员 protected : int Allowance; public : Manager() Duty=2 ; Salary=750; Allowan
9、ce=250; void Input() coutNo; coutName; void Input(ifstream& ifs) ifsNoNameDuty; void Output() coutNotName t行政人员 t Incoming()endl; void Output(ofstream& ofs) ofsNo Name Dutyendl; double Incoming() return Salary+Allowance; ; 3.5 Teacher_Assistant类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
10、- 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 6 class Teacher_Assistant:public Teacher, public Assistant / 教师兼实验员 public : Teacher_Assistant() Duty=3 ; Teacher:Salary=800; void Input() coutNo; coutName; coutTeacher:Hours; coutAssistant:Hours; void Input(ifstream& ifs) ifsNoNameDutyTeacher:Ho
11、ursAssistant:Hours; void Output() coutNotName t教师兼实验员 Teacher:Hours Assistant:HourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name DutyTeacher:Hours Assistant:Hoursendl; double Incoming() return Salary+(Teacher:Hours-120)*20 +Allowance+(Assistant:Hours-70)*20; ; 3.6 Manager_Teacher类class Mana
12、ger_Teacher: public Manager, public Teacher / 行政人员兼教师 public : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 7 Manager_Teacher() Duty=4 ; Manager:Salary=750; void Input() coutNo; coutName; coutHours; void Input(ifstream& ifs) ifsNoNameDu
13、tyHours; void Output() coutNotName t行政人员兼教师 HourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name Duty Hoursendl; double Incoming() return Salary+Allowance+Hours*20; ; 3.7 College类3.7.1 头文件class College private : Person *PL; void Clear(); int College:Find(int ID,Person *p1,Person *p2); public
14、: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 8 College(); / 构造 College(); / 析构void Add(); / 增加职工void Delete(); / 删除职工void Modify(); / 修改职工void Print(); / 输出职工信息void Save(); / 职工信息存盘void Load(); / 职工信息装入void Finding(); / 查找职工; 3.7.2 构造
15、函数College:College() / 构造函数 ( 创建个头结点的链表 ) Person *p=new Teacher; PL=p; coutnext; delete p; p=PL; PL=0; 3.7.4 Add函数void College:Add() / 增加职工 cout tt*高校工资管理系统 *nnn; coutnext)p=p-next; char ch= m ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C+课程设计 2022 C+ 课程设计
限制150内