类的继承

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科学生实验报告

C++课程设计

姓名杨先刚学号*******

专业软件工程班级105

实验项目类和类的继承

实验类别基础实验

指导教师严军勇

开课学期2011 至2012 学年第一学期

一、实验设计方案

1、实验内容与目的(简单介绍实验内容,说明实验目的)

实验目的:1)掌握类的继承和虚拟继承;2)掌握函数重载和常用运算符的重载实验内容:1)你的题目

2)你的题目

1. 定义Staff(员工)类,定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类

和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleManager(销售经理)类。

要求:

(6)①在Staff类中包含的数据成员有编号(num)、姓名(name)、出勤率(rateOfAttend)、基本工资(basicSal)和奖金(prize)。在Saleman类中还包含数据成员销售员提成比例(deductRate)和个人销售额(personAmount),在Manager类中还包含数据成员经理提成比例(totalDeductRate)和总销售额(totalAmount)。在SaleManager类中不包含其他数据成员。

②各类人员的实发工资公式如下:

员工实发工资=基本工资+奖金*出勤率

销售员实发工资=基本工资+奖金*出勤率+个人销售额*销售员提成比例

经理实发工资=基本工资+奖金*出勤率+总销售额*经理提成比例

销售经理实发工资=基本工资+奖金*出勤率+总销售额*经理提成比例+个人销售额*销售员提成比例

③每个类都有构造函数、输出基本信息函数(Output)和输出实发工资函数(OutputWage)。

你的题目

2. (5)设计一个时间类Time,要求如下。

1.包含时(hour)、分(minute)、秒(second)私有数据成员。

2.包含构造函数,重载关于一时间加上另一时间的加法运算符(+)、重载关于一时

间减去另一时间的减加运算符(-)、重载输出运算符(<<)与输入运算符(>>)等。

——————————————————————————————————————2、实验准备工作(阐述解决问题所涉及的知识内容或算法思想等,若是算法思想,则至少要画一个算法流程图来说明)

1.对于实验1是先从课本上的实验题依次先看过来的,有利于回忆以前学过的关于继承的知识, virtual的应用作用。

2.实验2也基本上是先借助课本实验题慢慢做过来,对了重载函数的定义与其使用,还有运算符的重载的知识

——————————————————————————————————————

二、实验步骤、测试与结果分析

1、源程序的设计(在此附上源程序清单)

#include

#include

using namespace std;

class Staff//定义员工类

{

protected:

string num;

string name;

float rateofattend;

float basicsal;

float prize;

public:

Staff(string nu,string na,float rate,float basic,float pri) { num=nu;

name=na;

rateofattend=rate;

basicsal=basic;

prize=pri;

}//构造函数

void output() //员工基本信息输出函数

{

cout<<"编号:"<

cout<<"姓名:"<

cout<<"出勤率:"<

cout<<"基本工资:"<

cout<<"奖金:"<

}

void outputwage()

{

cout<<"员工实发工资:"<

cout<

};//员工实发工资输出函数

class saleman:virtual public Staff//销售人员公有继承

{

protected:

float deductrate ;

float personamount;

public:

saleman(string nu,string na,float rate,float basic,float pri,float de,float pe)

:Staff(nu,na,rate,basic,pri)

{ deductrate=de;

personamount=pe;

}

void output()

{

Staff::output();

cout<<"销售员提成比例:"<

cout<<"个人销售额:"<

};

void outputwage()

{

Cout<<”销售员实发工资:"<

cout<

}

};

class manager:virtual public Staff

{

protected:

float totaldeductrate;

float totalpersonamount;

public:

manager(string nu,string na,float rate,float basic,float pri,float totalde,float totalpe)

:Staff(nu,na,rate,basic,pri)

{ totaldeductrate=totalde;

totalpersonamount=totalpe;

}

void output()

{

Staff::output();

cout<<"经理提成比例:"<

cout<<"经理总销售额:"<

};

void outputwage()

{

cout<<"经理实发工资:"<

相关文档
最新文档