2014-02-24 29 views
-2

郵購屋銷售五種不同的產品,其零售價格爲 分別是:產品1- $ 2.98,產品2- $ 4.50,產品3- $ 9.98,產品4- $ 4.49和產品5- $ 6.87 。寫一個程序,讀取一系列數字對,如下所示: a)產品號 b)銷售數量 您的程序應使用switch語句確定每種產品的零售價格。您的 計劃應計算並顯示所有銷售產品的總零售價值。使用哨兵控制的循環來確定程序何時停止循環並顯示最終結果。哨兵控制迴路/開關的錯誤

當我嘗試編譯我的代碼時,出現了很多錯誤,我在想我做錯了什麼。

#include <iostream> 
using namespace std; 

int main() 
{ 
int numberOfProducts = 0; 
int costOfProducts = 0; 
int productTotal = 0; 
double amountP1 = 0; 
double amountP2 = 0; 
double amountP3 = 0; 
double amountP4 = 0; 
double amountP5 = 0; 
double product1 = 2.98; 
double product2 = 4.50; 
double product3 = 9.98; 
double product4 = 4.49; 
double product5 = 6.87; 
cout<<"How many products do you want to buy? -1 to finish shopping"<<endl; 
cin>>numberOfProducts; 
while(numberOfProducts != -1) 
    cout<<"Which products do you want to buy? -1 to finish shopping"<<endl; 
    cin>>costOfProducts; 
     switch(costOfProducts) 
    { 
     case product1: 
      cout<<"Product 1($2.98) has been purchased"; 
       productTotal = productTotal + 2.98; 
       amountP1 = amountP1 + 1; 
       break; 
     case product2: 
      cout<<"Product 2($4.50) has been purchased"; 
       productTotal = productTotal + 4.50; 
       amountP2 = amountP2 + 1; 
       break; 
     case product3: 
      cout<<"Product 3($9.98) has been purchased"; 
       productTotal = productTotal + 9.98; 
       amountP3 = amountP3 + 1; 
       break; 
     case product4: 
      cout<<"Product 4($4.49) has been purchased"; 
       productTotal = productTotal + 4.49; 
       amountP4 = amountP4 + 1; 
       break; 
     case product5: 
      cout<<"Product 5($6.87) has been purchased"; 
      productTotal = productTotal + 6.87; 
      amountP5 = amountP5 + 1; 
       break; 
     default: 
      cout<<"Sorry, please select a product"; << endl; 

    } 

    cout<<"The total amount of products bought are: " << numberOfProducts; 
    cout<<"The total amount of product 1's bought is: $" << amountP1 << endl; 
    cout<<"The total amount of product 2's bought is: $" << amountP2 << endl; 
    cout<<"The total amount of product 3's bought is: $" << amountP3 << endl; 
    cout<<"The total amount of product 4's bought is: $" << amountP4 << endl; 
    cout<<"The total amount of product 5's bought is: $" << amountP5 << endl; 
    cout<<"The total price of all your products are: $" << productTotal << endl; 
    return 0; 

}

+0

_'I get tons of error ...'_徹底讀懂編譯器告訴你什麼,並逐個解決它們(通過這個過程,跟蹤錯誤的數量通常會減少)。 –

+0

爲什麼你通過'product5'聲明'product1'而不使用它們?順便說一句,他們應該被聲明爲'const'並替換你的'productTotal'賦值中的幻數。 –

回答

1

在下面的行的端部卸下分號:

  • while(numberOfProducts != -1);
  • switch(costOfProducts);

此外,編譯器不理解以下符號(也不是我):

  • product1
  • product2
  • product3
  • product4
  • product5

順便說一句,我強烈建議你添加幾個cin>>那裏,如果你真的想這個工作...

+0

是的,我試過,但它仍然無法正常工作。在原來它沒有;在while和switch()中。我只是測試,看看它是否有任何區別。我做了沒有cin的第一個cout,因爲我認爲它可以在while()循環中工作,因爲它添加了1,每一件物品都是購買的,所以在技術上它應該是相同的,即使我放置cin也是如此。對於switch()我不太瞭解它是如何工作的。我假設它現在可以工作,除非我需要使用cin與第二個cout。 –

+0

@RiotPhreak按照我的意見,我給你的問題的評論!我們不是這裏的羣集智能在線編譯器/調試服務! –

+0

@ barak-manos您正在複製我在這裏描述得相當好的過程;)... –

1

您需要了解語句塊。

while(numberOfProducts != -1) 
    cout<<"Which products do you want to buy? -1 to finish shopping"<<endl; 
    cin>>costOfProducts; 

我會和你一起玩遊戲。您需要插入{開始一個語句塊並且}結束一個。
你的職責是弄清楚他們去哪裏。

提示1:while語句中的表達式適用於語句塊。

提示2:一個或多個語句可以放置在語句塊中。

如果您想作弊,您可以查找循環中多條語句的語句while的語法。

+0

嘿,男人!你會爭論什麼?這是[蘋果風格](http://www.wired.com/threatlevel/2014/02/gotofail/),對你來說不夠好? –