华软C++第三次书面作业

发布时间:2024-10-15

第三次书面作业

1、父亲有正式工作,做司机。私下里,会修电视机。父亲对外说自己贪玩,其实什么都不会玩(虚函数)。

儿子继承了父亲做司机的能力,并且发展了父亲贪玩的特性:打乒乓球。同时,儿子有自己的私有数据成员身高height和体重Weight。

要求:

请给出儿子类的定义,完成构造函数的定义;

重载DoWork()函数,实现输出“ boy Drive a car.”;

实现虚函数play( ),输出“boy Play pingpong.”;

定义自己的函数RepairTV(),其中调用父类RepairTV()实现输出“boy Repair a TV set.”。

#include <iostream>

using namespace std;

class Father{

public:

void doWork(){ cout<<"father drive a car."<<endl; }

virtual void play(){ cout<<"什么都不会玩"<<endl; }

void depairTV(){ cout<<"Repair a TV set."<<endl; } };

class Son:public Father{

public:

Son(float x,float y){

height=x; weight=y;

cout<<"the son height:"<<height<<"weight:"<<weight<<endl; }

void play(){ cout<<"boy Play pingpong."<<endl; }

void doWork(){ cout<<"boy drive a car."<<endl; }

void depairTV(){ Father::depairTV(); }

private:

float height;

float weight;

};

void display(Father &object)

{

object.play();

object.doWork();

}

int main() {

Father f1;

Son s1(175.3,60.5);

} f1.doWork(); f1.play(); s1.doWork(); s1.play(); display(s1); return 0;

2、在程序中定义4个类,UML类图如下图。其中:

People类的所有成员变量的访问权限为protected。所有成员函数的访问权限都为public。CSalery()为虚函数(virtual),函数功能是计算工资额并赋给salery成员变量,构造函数初始化该类的成员变量,setXXX()函数设置该类的成员变量,getXXX()函数返回类的成员变量的值。

Teacher类继承People类,Teacher类的构造函数显式调用其基类的构造函数;CSalery()函数覆盖基类函数,计算工资额公式为2000*workHour。

Worker类继承People类,Teacher类的构造函数显式示调用其基类的构造函数;CSalery()函数覆盖基类函数,计算工资额公式为800*workHour。

Student类继承People类,Student类的构造函数显式调用其基类的构造函数;CSalery()函数覆盖基类函数,计算工资额公式为200*workHour。

在main()函数中定义一个People类的指针数组p[3],使用new运算符分别实例Teacher类、Worker类和Studengt类的实例各一个,指针赋给p[0]、p[1]、p[2];调用各实例的CSalery()函数,输出每个实例name、age和salery。最后delete 3个对象,释放内存。

#include <iostream>

using namespace std;

class People{

public:

People(string n,int a,int c)

{ name=n; age=a; workHour=c; }

void setName(){ cin>>name; }

void getName(){ cout<<"name:"<<name<<endl; }

void setAge(){ cin>>age; }

void getAge(){ cout<<"age:"<<age<<endl; }

void setHour(){ cin>>workHour; }

void getHour(){ cout<<"workHour:"<<workHour<<endl; } virtual void Csalary(){};

void getsalary(){ cout<<"salary:"<<salary<<endl; }

protected:

string name;

int age;

double salary;

int workHour;

};

class Teacher:public People{

public:

Teacher(string n1,int a1,int c1):People(n1,a1,c1)

{

cout<<"the Teacher:"<<endl;

}

void Csalary(){ salary=2000*workHour; }

};

class Worker:public People{

public:

Worker(string n2,int a2,int c2):People(n2,a2,c2){cout<<"the Worker:"<<endl;}

void Csalary(){ salary=800*workHour; }

};

class Student:public People{

public:

Student(string n3,int a3,int c3):People(n3,a3,c3){cout<<"the Student:"<<endl;}

void Csalary(){ salary=200*workHour; }

};

int main() {

People *p[3];

Teacher t("zhangsan",30,10);

p[0]=&t;

p[0]->Csalary();

p[0]->getName();

p[0]->getAge();

p[0]->getHour();

p[0]->getsalary();

Worker w("lisi",31,11);

p[1]=&w;

p[1]->Csalary();

p[1]->getName();

p[1]->getAge();

p[1]->getHour();

p[1]->getsalary();

Student s("wangwu",20,2);

p[2]=&s;

p[2]->Csalary();

p[2]->getName();

p[2]->getAge();

p[2]->getHour();

p[2]->getsalary();

return 0;

}

华软C++第三次书面作业.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219