.编写一个求出租车收费的程序,输入起始站、终止站和路程。计费标准为:3 公里以内10元,3 公里以后每1公里加 2 元,超过 15 公里,每公里加 3元。

要求:设计一个站类Station(用于设置起始站、终止站)和路程类Mile(用于设置路程),由这两个类派生出收费类Price(用于计费)。

已知Station类和Mile类以及测试main函数如下,请编写Price类。

(可以使用string类型代替给出代码中的字符数组。)

给出如下代码

#define Max 20
class Station
{public:
    Station()
    {      strcpy(from," "); strcpy(to," ");    }
    Station(char f[],char t[])
    {      strcpy(from,f);      strcpy(to,t);    }
    void getdata()
    {
      cout<<"输入起始站终止站:";
      cin>>from>>to;
    }
    void disp()
    {
    cout<<"从"<>mile;
    }
    void disp()
    {
    cout<<"是"<

设计出如下代码

#include
#include
#define _CRT_SECURE_NO_WARNINGS     //这个宏定义最好要放到.c文件的第一行
#pragma warning(disable:4996)
using namespace std;
#define Max 20
class Station
{
public:
    Station()
    {
        strcpy(from, " "); strcpy(to, " ");
    }
    Station(const char f[], const char t[])
    {
        strcpy(from, f);      strcpy(to, t);
    }
    void getdata()
    {
        cout << "输入起始站终止站:";
        cin >> from >> to;
    }
    void disp()
    {
        cout << "从" << from << "站到" << to << "站";
    }
protected:
    char from[Max];
    char to[Max];
};
class Mile
{
public:
    Mile() { mile = 0; }
    Mile(double m) { mile = m; }
    void getdata()
    {
        cout << "输入里程:";
        cin >> mile;
    }
    void disp()
    {
        cout << "是" << mile << "公里";
    }
protected:
    double mile;
};

class Price :public Mile, public Station
{
public:
    Price() :Station(), Mile()
    {
        price = 0;
    }

    Price(const char* f, const char* t, int m) :Station(f, t), Mile(m)
    {

    }
    void getdata()
    {
        Station::getdata();
        Mile::getdata();
    }

    void disp()
    {
        int m = mile;
        if (m < 3) price = 10;
        else if (m >= 3 && m <= 15)
        {
            price = 10 + 2 * (m - 3);
        }
        else
        {
            price = 34 + 3 * (m - 15);
        }
        Station::disp();
        cout << "是" << price << "元";
    }
private:
    double price;
};
int main()
{
    Price A;   //乘车,
    A.getdata();  //输入起始站和终点站
    Price B("理工大学", "中山公园", 20); //乘车,有起始站和终点站
    //A和B是Price的两种初始化方式。20是路程数。
    cout << "输出结果:" << endl;
    A.disp();   //输出此次乘车价格
    B.disp();   //输出此次乘车价格
    return 0;
}

你可能感兴趣的:(c++,开发语言,c语言)