编写一个求出租车收费的程序,输入起始站、终止站和路程。 计费标准为: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<<"从"<<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; }; int main() { Price A; //乘车, A.getdata(); //输入起始站和终点站 Price B("理工大学","中山公园",20); //乘车,有起始站和终点站 //A和B是Price的两种初始化方式。20是路程数。 cout<<"输出结果:"<<endl; A.disp(); //输出此次乘车价格 B.disp(); //输出此次乘车价格 return 0; }
时间: 2023-06-09 15:08:28 浏览: 98
Price类的代码如下:
#include <iostream>
#include <string>
using namespace std;
class Station {
protected:
string start; // 起始站
string end; // 终止站
public:
Station(string s, string e) {
start = s;
end = e;
}
};
class Mile {
protected:
double distance; // 路程
public:
Mile(double d) {
distance = d;
}
};
class Price : public Station, public Mile {
public:
Price(string s, string e, double d) : Station(s, e), Mile(d) {}
double getCharge() {
double charge;
if (distance <= 3) {
charge = 10;
} else if (distance <= 15) {
charge = 10 + (distance - 3) * 2;
} else {
charge = 10 + 12 * 2 + (distance - 15) * 3;
}
return charge;
}
};
int main() {
string start, end;
double distance;
cout << "请输入起始站:";
cin >> start;
cout << "请输入终止站:";
cin >> end;
cout << "请输入路程:";
cin >> distance;
Price p(start, end, distance);
cout << "收费:" << p.getCharge() << "元" << endl;
return 0;
}
阅读全文