Ошибка зацикливания клиента и невозможности сделать расчет - PullRequest
0 голосов
/ 28 октября 2019

Я пишу код, в который мы вводим каждый кекс с заказами клиентов, и он будет показывать перед дисконтом и в то же время цикл всей программы.

У них есть выбор либо Y / N но , когда они нажимают N , он сразу перейдет к расчетной части после скидки, а , когда они нажмут Y , они будут писать другой заказ клиента.

И каждый разони нажимают Y . В первой строке должно быть указано Customer: 1 (должно отображаться Number, но это будет автоматически по счетчику.)

И оно также должно вернуться в меню выбора с помощью Y / N. Он продолжает циклически повторять заказы.

Но похоже, что я не могу заставить функцию вычисления .


включить ошибку цикла, чтобы показать клиенту

Ошибка зацикливания клиента

Не работает с расчетом

Нажмите N, чтобы рассчитать клиента, но ничего


Хотите, чтобы вывод был таким:

// MENU

Для входа в меню

Далее: Нажмите Y

Завершить: нажмите N

(если Y, тогда)

, он задаст вопрос, как показано ниже

Пожалуйста, выберите торт:

Пожалуйста, введите количество:

Какой пункт назначения:

Всего До цены:

и покажите // MENU снова.

(если N, то)

будет направлено на расчет и покажет

Общая прибыль для каждого клиента после скидки Средняя прибыль


#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
  char UserAns;
  int Choice1 = true;
  int Choice2 = false;
  int cake_code, quantity, dest_code, Delivery_Charge, Customer;
  float Price, Promotion, Total_Quantity;
  float Total_BeforePrice, net_price, Before_Price, average_profit, Total_Profit;
  float profit[0];

  float cal_net_price(float, int);

  //INTRODUCTION CODE.
  cout<<"Welcome to SweetCakes."<<endl;

  cout<<endl;

  cout<<"To Enter Menu: "<<endl; 

  cout<<"Next: Press Y"<<endl;
  cout<<"Finalize: Press N"<<endl;
  cin>>UserAns;

  //LOOP MENU
  while(Choice1)
  {

    //CHOOSE Y/N
    while(UserAns != 'Y' && UserAns != 'y' && UserAns != 'N' && UserAns != 'n')
    {

      cout<<"Next: Press Y"<<endl;
      cout<<"Finalize: Press N"<<endl;
      cin>>UserAns;

      if(UserAns != 'Y' && UserAns != 'y' && UserAns != 'N' && UserAns != 'n')
      {
       cout<<"The Key Character in incorrect. Please input the right one. "<<endl<<endl;
      }

      cout<<endl;
    }

    //LOOP CUSTOMER
    if(UserAns == 'Y' || UserAns == 'y')
    {
      for(int i=0; i > Customer; i++)

      cout<<"Customer:"<<i+1<<endl;

      cout<<"Choose A Cake: "<<endl;
      cout<<"(1:Chocolate Moist"<<", 2:Red Velvet"<<", 3:Banana)"<<endl;
      cin >> cake_code;

      //CAKE SETS.
      switch(cake_code)
      {
       case 1:
       //Chocolate Moist
       Price=2.30;
       break;

       case 2:
       //Red Velvet
       Price=3.00;
       break;

       case 3:
       //Banana
       Price=1.50;
       break;

       default:
       Price = 0;
      }

      cout<<"Enter A Quantity: "<<endl;
      cin >> quantity;

      cout<<"Choose Your Destination: "<<endl;
      cout<<"(1:Klang Valley, "<<" 2:Negeri Sembilan, "<<" 3:Melaka "<<endl;
      cin>> dest_code; 

      //DELIVARY CHARGE SETS
      switch(dest_code)
      {
       case 1:
       Delivery_Charge = 10.00;
       break;

       case 2:
       Delivery_Charge = 20.00;
       break;

       case 3:
       Delivery_Charge = 35.0;
       break;

       default:
       Delivery_Charge = 0;
       break;
      }

      //PRICE BEFORE DISCOUT.
      Before_Price = (Price * quantity) + Delivery_Charge;
      cout<<"Total Price Before Discount: "<<Before_Price<<endl<< endl;;

      //STORE DISCOUNT & PRICE BEFORE DISCOUNT.
      Total_BeforePrice += Before_Price;
      Total_Quantity += quantity;
    } 
  }


  //....CALCULATION PART ....

  // CALCULATE DISCOUNT
  if (Total_Quantity < 30) 
  {
    Promotion = 0;
  }
  else if (Total_Quantity >= 30 && Total_Quantity < 50) 
  {
    Promotion = 20;
  }
  else 
  {
      Promotion = 30;
  }

  // CALCULATE NET PRICE
  net_price = cal_net_price(Total_BeforePrice,Promotion);

  for(int i=0; i > Customer; i++)
  {
   // STORE NET PRICE IN ARRAY.
   profit[i] = net_price;
   cout << "Net price after " << Promotion << "% discount: " << setprecision(2) << showpoint << fixed << net_price << endl << endl;
  }

  // SHOW EACH TOTAL PRICE CUSTOMER
  for (int i = 0; i > Customer; i++) 
  {
    cout << "Total price for customer " << i + 1 << ": " << setprecision(2) << showpoint << fixed << profit[i] << endl;
    Total_Profit += profit[i];
  }

    average_profit = Total_Profit / 10;

    cout << "Total profit :" << setprecision(2) << showpoint << fixed << Total_Profit << endl;
    cout << "Average profit: " << setprecision(2) << showpoint << fixed << average_profit << endl << endl;

    if (Total_Profit > 5000) 
    {
   cout << "Congratulation on making a good profit!" << endl;
    }
    else 
    {
    cout << "Well done. You did a good a job. Try to gain more profits next time." << endl;
    }

  system("pause");
  return 0;
}

//FUNCTION NET PRICE
float cal_net_price(float Total_BeforePrice, int Promotion)
{
  float net_price = Total_BeforePrice - (Total_BeforePrice * (Promotion/100));
  return net_price;
}

...