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;
}
4

1 に答える 1

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;
}
于 2012-11-08T05:21:54.600 に答える