2012-11-08 46 views
1

我遇到此程式的問題。我需要它來請求一個用戶ID然後要求書的代碼,然後是一本書的成本。個人可以輸入未知數量的書籍。該計劃需要然後計算個別學生的書本總數,然後詢問另一個學生是否也這樣做。該程序必須顯示總數和書籍總數。我似乎無法弄清楚如何才能跟蹤個別學生的參賽作品。我可以從我讀到的關於數組的內容中做到這一點。但我們還沒有到那一點。教授希望我們能夠循環做到這一點。我很失落,任何幫助都會很棒。不能計算出如何計算循環中的個別學生總數

#include <iostream> 
#include <iomanip> 

using namespace std; 
int main() 
{ 
    //Declare Variables. 
    int student_id; 
    char book_code; 
    float book_cost; 
    float tax_amount; 
    float book_subtotal; 
    const int SENTINEL = -9999; 
    const double TAX = .07; 
    float total_book_cost; 
    int number_books; 
    int total_books_sold; 
    double grand_total; 

    //Set Variables to Zero. 
    number_books = 0; 
    total_book_cost = 0.00; 
    grand_total = 0.00; 

    //Set Decimal to two places. 
    cout << fixed << showpoint; 
    cout << setprecision(2); 

    //Input Data 
    cout<<"Please enter your Student ID, then press enter."<<endl; 
    cin>>student_id; 
    while (student_id != SENTINEL){ 
     cout<<"Please enter your Book Code, then press enter."<<endl; 
     cin>>book_code; 
     cout<<"Please enter the cost of the book, then press enter."<<endl; 
     cout<<"$"; cin>>book_cost; 
     tax_amount = book_cost * TAX; 
     book_subtotal = book_cost + tax_amount; 
     total_book_cost += book_subtotal; 
     number_books++; 
     cout<<"\tStudent Textbook Purchases Report"<<endl; 
     cout<<"********************************************"<<endl; 
     cout<<"Student"<<"\tBook"<<"\tBook"<<"\tTax"<<"\tBook"<<endl; 
     cout<<"Id"<<"\tCode"<<"\tCost"<<"\tAmount"<<"\tSubtotal"<<endl; 
     cout<<"--------------------------------------------"<<endl; 
     cout<<student_id<<setw(5)<<book_code<<setw(8)<<"$"<<book_cost<< 
     setw(3)<<"$"<<tax_amount<<setw(4)<<"$"<<book_subtotal<<endl; 
     cout<<endl; 
     cout<<"Total number of books purchased:"<<setw(8)<<number_books<<endl; 
     cout<<"Total books cost including tax:"<<setw(9)<<"$"<<total_book_cost<<endl; 
     cout<<"Please enter your Student ID, then press enter."<<endl; 
     cin>>student_id; 
    } 
    grand_total += total_book_cost; 
    total_books_sold += number_books; 
    cout<<"**************************************************"<<endl; 
    cout<<"Grand Totals:"<<endl; 
    cout<<"Total number of students who purchased books:"<<endl; 
    cout<<"Total number of books sold:"<<endl; 
    cout<<"Total cost of all books and taxes:"<<setw(9)<<"$"<<grand_total<<endl; 

    //Can put grand totals here 

    system("Pause"); 
    return 0; 
} 

回答

0

你可以使用循環,因爲這:

#include <iostream> 
#include <iomanip> 

using namespace std; 
int main() 
{ 

    //Set Decimal to two places. 
    cout << fixed << showpoint; 
    cout << setprecision(2); 


    int total_books_sold = 0; 
    double grand_total = 0.0; 

    const int SENTINEL = -9999; 
    int  student_id = SENTINEL; 
    //Input Data 
    cout<<"Please enter your Student ID, then press enter."<<endl; 
    cin>>student_id; 

    while (student_id != SENTINEL){ 

     double total_book_cost = 0.0; 
     int  number_books = 0; 
     char book_code = '\0'; 
     while (true) 
     { 
      cout<<"Please enter your Book Code, then press enter."<<endl; 
      cin>>book_code; 

      if (book_code == 'x') 
       break; 

      float book_cost; 
      cout<<"Please enter the cost of the book, then press enter."<<endl; 
      cout<<"$"; cin>>book_cost; 

      const double TAX = .07; 
      double tax_amount = book_cost * TAX; 
      double book_subtotal = book_cost + tax_amount; 

      total_book_cost += book_subtotal; 
      number_books++; 

      cout<<"\tStudent Textbook Purchases Report"<<endl; 
      cout<<"********************************************"<<endl; 
      cout<<"Student"<<"\tBook"<<"\tBook"<<"\tTax"<<"\tBook"<<endl; 
      cout<<"Id"<<"\tCode"<<"\tCost"<<"\tAmount"<<"\tSubtotal"<<endl; 
      cout<<"--------------------------------------------"<<endl; 
      cout<<student_id<<setw(5)<<book_code<<setw(8)<<"$"<<book_cost<< 
       setw(3)<<"$"<<tax_amount<<setw(4)<<"$"<<book_subtotal<<endl; 
      cout<<endl; 

     }; 


     grand_total += total_book_cost; 
     total_books_sold += number_books; 

     cout<<"Total number of books purchased:"<<setw(8)<<number_books<<endl; 
     cout<<"Total books cost including tax:"<<setw(9)<<"$"<<total_book_cost<<endl; 
     cout<<"Please enter your Student ID, then press enter."<<endl; 
     cin>>student_id; 
    } 


    cout<<"**************************************************"<<endl; 
    cout<<"Grand Totals:"<<endl; 
    cout<<"Total number of students who purchased books:"<<endl; 
    cout<<"Total number of books sold:"<<endl; 
    cout<<"Total cost of all books and taxes:"<<setw(9)<<"$"<<grand_total<<endl; 

    //Can put grand totals here 

    system("Pause"); 
    return 0; 
}