谭浩强C++第四版压轴题全新写法

第五章第九题:

#include <iostream>
using namespace std;
class People{
    public:
        People(string name,string old,string sex,string adde,string phone):name(name),old(old),sex(sex),adde(adde),phone(phone){}
    protected:
        string name;
        string old;
        string sex;
        string adde;
        string phone;
};
class Teacher:public People{
    public:
        Teacher(string name,string old,string sex,string adde,string phone,string title):People(name,old,sex,adde,phone),title(title){}
        void display();
    protected:
        string title;
};
class Cadre:public People{
    public:
        Cadre(string name,string old,string sex,string adde,string phone,string post):People(name,old,sex,adde,phone),post(post){}
    protected:
        string post;
};
class Teacher_Cadre:public Teacher,public Cadre{
    public:
        Teacher_Cadre(string name,string old,string sex,string adde,string phone,string title,string post,string wages):Teacher(name,old,sex,adde,phone,title),Cadre(name,old,sex,adde,phone,post),wages(wages){}
        void display();
    private:
        string wages;
};
void Teacher::display(){
    cout<<name<<endl<<old<<endl<<sex<<endl<<adde<<endl<<phone<<endl<<title<<endl;
}
void Teacher_Cadre::display(){
    Teacher::display();cout<<post<<endl<<wages<<endl;
}
int main()
{
    Teacher_Cadre t("smk","24","man","tjnu","312432423","高级讲师","教务处","6800");
    t.display();
   return 0;
}输出:
 

smk
24
man
tjnu
312432423
高级讲师
教务处
6800

第六章第五题:
#include <iostream>
using namespace std;
class Shape{
    protected:
        int radius;
    public:
        Shape(int radius):radius(radius){}
        virtual int printarea() const =0;
};
class Circle:public Shape{
    public:
        Circle(int radius):Shape(radius){}
        int printarea() const;
};
class Square:public Shape{
    public:
        Square(int radius):Shape(radius){}
        int printarea() const;
};
class Rectangle:public Shape{
    public:
        int printarea() const;
        Rectangle(int radius,int h):Shape(radius),h(h){}
    private:
        int h;
};
class Trapezoid:public Shape{
    public:
        int printarea() const;
        Trapezoid(int radius,int h,int r):Shape(radius),h(h),r(r){}
    private:
        int r,h;
};
class Triangle:public Shape{
    public:
        int printarea() const;
        Triangle(int radius,int h):Shape(radius),h(h){}
    private:
        int h;
};
int Circle::printarea() const{
    return 3.1415926*radius*radius;
}
int Square::printarea() const{
    return radius*radius;
}
int Rectangle::printarea() const{
    return radius*h;
}
int Trapezoid::printarea() const{
    return (radius+r)*h/2;
}
int Triangle::printarea() const{
    return radius*h/2;
}
int main()
{
    Circle c(3);
    Square s(3);
    Rectangle rect(3,5);
    Trapezoid t(4,10,3);
    Triangle tri(4,3);
    Shape* k[5]={&c,&s,&rect,&t,&tri};
    for(int i=0;i<5;++i)
           cout << k[i]->printarea()<<endl;
   return 0;
}
输出:

28
9
15
35
6
创新思维全新写法,交流通过QQ:1790070573
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值