C ++ Makeshift Uber应用程序[关闭]

问题描述 投票:-2回答:1

正如标题所说,这应该是一个临时的Uber-esque应用程序,询问用户他们的名字,他们去哪里,离他们有多远,并计算旅行的费用。我在最后一小时一直坚持最后两个功能,我不太确定我的教授要求我做什么。那,我也不确定我是否在正确的轨道上。对于最后两个函数,“double calc_fare”和“void share_fare_info”,这些是我的指示:

在main()中,要求用户输入其全名。使用如下所示的代码接受带空格的字符串。 getline()是iostream可以使用的函数。你不需要 - 不应该尝试创建它。在main()中,要求用户输入目的地。目的地将作为完整的街道名称输入。由于街道地址将包含空格,因此请使用与步骤1中给出的代码类似的代码

在main()中,询问用户他们的目的地是否在城市范围内。 (在实际情况中,GPS地图软件将能够根据目的地地址确定这一点。由于我们没有这种能力,我们将简单地询问用户)。

在main()中,要求用户输入票价的距离。 (在实际情况中,GPS地图软件将能够根据目的地地址确定这一点。由于我们没有这种能力,我们将简单地询问用户)。

创建一个函数calc_fare(双倍距离)。此功能将按如下方式计算票价:距离最远2英里的固定金额为10美元。超过2英里的距离每英里2.50美元,最多5英里加固定金额5.00美元。超过5英里的任何地方将收取每英里3.50美元的费用。根据上述费率表返回票价金额。

创建一个函数calc_fare(双倍距离,双倍附加费)。此函数在步骤5中调用calc_fare()函数,并返回一个值,将附加费添加到结果票价中。

创建一个函数calc_fare(双倍距离,bool本地)。当地是真的,这意味着票价在城市范围内。当地是虚假的,这意味着票价超出了城市范围,在这种情况下,票价将额外收取50美元的附加费。根据local的值,调用第5步中的calc_fare()和第6步中的calc_fare()。请注意,步骤5-7中给出的函数是calc_fare()函数的重载版本。

本质上,我们在本练习中所做的是创建calc_fare()函数并使用驱动程序调用来调用它们。驱动程序 - 因为这是一个驱动模拟而没有双关语 - 基本上是手动执行函数来测试它们正在工作或正确计算。 calc_fare()函数的输入值由用户手动输入以测试它们。在函数的实际用例中,将通过GPS映射库调用确定距离来调用它们。

创建一个名为show_fare_info的函数(字符串名称,字符串目标,双重票价,bool local = 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)
  {


  }

任何帮助/建议表示赞赏。你可能会说,我对此很新。

c++
1个回答
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()应该只打印参数,而不是计算任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.