C ++临时Uber应用程序

时间:2019-03-20 07:05:45

标签: c++

正如标题所述,这应该是一个临时的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)
  {


  }

任何帮助/建议都值得赞赏。如您所知,我对此很陌生。

1 个答案:

答案 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()应该只打印参数,而不计算任何内容。