正如标题所述,这应该是一个临时的Uber风格的应用程序,它向用户询问他们的姓名,去向,距离多远并计算行程费用。在过去的一个小时里,我被最后两个功能所困扰,我不确定我的教授要我做什么。那,我也不确定我是否走在正确的轨道上。对于最后两个函数“ double calc_fare”和“ void share_fare_info”,这些是我的说明:
在main()中,要求用户输入其全名。使用如下所示的代码来接受带空格的字符串。 getline()是iostream可用的函数。您不需要-不应尝试-创建它。 在main()中,要求用户输入目的地。将输入目的地作为完整的街道名称。由于街道地址将包含空格,因此请使用与步骤1中相同的代码
在main()中,询问用户目的地是否在城市范围内。 (在实际情况下,GPS测绘软件将能够根据目的地址来确定这一点。由于我们不具备此功能,因此我们只会询问用户)。
在main()中,要求用户输入票价的距离。 (在实际情况下,GPS测绘软件将能够根据目的地址来确定这一点。由于我们不具备此功能,因此我们只会询问用户)。
创建一个函数calc_fare(两倍距离)。此功能将计算票价,如下所示:距离2英里以内的固定金额为10美元。超过2英里(含5英里)以内的,每英里收费$ 2.50,另加固定费用$ 5.00。超过5英里的任何里程将按每英里$ 3.50收费。根据以上价格表返回票价金额。
创建一个函数calc_fare(双倍距离,双倍附加费)。该函数在第5步中调用calc_fare()函数,并返回一个将附加费添加到最终票价中的值。
创建一个函数calc_fare(双倍距离,局部布尔值)。如果local为true,则表示票价在城市范围内。如果local为false,则表示票价超出了城市范围,在这种情况下,将向票价额外收取$ 50的附加费。在此函数中,取决于local的值,请从步骤5中调用calc_fare()并从步骤6中调用calc_fare()。请注意,步骤5-7中给出的函数是calc_fare()函数的重载版本。
本质上,我们在本练习中要做的是创建calc_fare()函数并通过驱动程序调用进行调用。驾驶员无双关语,因为这是驾驶模拟,因此基本上是手动执行功能以测试其是否正常工作或计算正确。用户手动输入calc_fare()函数的输入值以对其进行测试。在实际使用这些功能的情况下,将使用由GPS映射库调用确定的距离来调用它们。
创建一个名为show_fare_info的函数(字符串名称,字符串目标,双重票价,布尔本地= true)。此功能将根据先前的用户输入向用户显示信息。此功能显示信息;哪种返回类型最好用于此功能?从main()调用此函数以显示最终输出。此函数根据局部变量给出不同的消息。
很抱歉,我的文字说明太清晰了。
到目前为止,我的代码:
double calc_fare(double distance);
double calc_fare(double distance, double surcharge);
double calc_fare(double distance, bool local);
void show_fare_info(string fullname, string destination, double fare, bool local = true);
int main()
{
string fullname, destination;
double distance;
char local;
cout << "Please enter your full name: ";
getline(cin, fullname);
cout << "Please enter your desired destination: ";
getline(cin, destination);
cout << "How far away is this destination from you? ";
getline(cin, distance);
cout << "Is your location within city limits (y/n)? :";
cin >> local;
if(local == 'y' || local == 'Y')
{
fare = calc_fare(distance, true);
show_fare_info(fullname, destination, fare);
}
else if(local == 'n' || local == 'N')
{
fare = calc_fare(distance, false);
show_fare_info(fullname, destination, fare, false);
}
return 0;
}
double calc_fare(double distance)
{
int fare;
if (distance <= 2)
{
fare = 10;
}
else if (distance <= 5 && distance >= 2)
{
fare = (distance * 2.50) + 10;
}
else if (distance > 5)
{
fare = (distance * 3.50) + 10;
}
return fare;
}
double calc_fare(double distance, double surcharge)
{
surcharge = 50;
if (distance == false)
{
fare = fare + surcharge;
}
return fare;
}
double calc_fare(double distance, bool local)
{
}
void show_fare_info(string fullname, string destination, double fare, bool local = true)
{
}
任何帮助/建议都值得赞赏。如您所知,我对此很陌生。
答案 0 :(得分:1)
这是实现calc_fare()
的方式:
double calc_fare(double distance, double surcharge)
{
return calc_fare(distance) + surcharge;
}
double calc_fare(double distance, bool local)
{
if (local) {
return calc_fare(distance);
}
else {
// Add $50 surcharge when outside city limits
return calc_fare(distance, 50);
}
}
对于最后一个函数,您应该首先调用calc_fare()
来计算票价,然后将该值传递给函数。 show_fare_info()
应该只打印参数,而不计算任何内容。