--- In [email protected], "vahobdip" <[EMAIL PROTECTED]> wrote:
>
> A wholesale book dealer needs a program to write invoices
> for book orders that he takes over the phone. Each order
> usually consists of multiple copies of several book titles.
> The program should ask the user if there is an order to
> process.
> If the user responds yes, the program should then ask for
> the price of the first book in the order and the number of
> such books. The program should then display the cost of
> these books, including a 7.5% sales tax. Then it should ask
> for the price of the second book in the order and the number
> of such books, and display the cost of these books. The
> program should continue in this way, processing the books
> in the first order. When there are no more books in the order,
> the program should display the total cost of the order.
> Then the program should ask if there is another order.
> If there is one, the program should process it as just
> described. If there are no more orders, the program
> should display the total number of orders processed, the
> total number of books sold, and the total receipts.
> Use nested while loops
>
> my solution is following which doesn't work properly!
It would be better if you would tell us exactly what the program does
here, instead of letting us guess what went wrong.
> #include <iostream>
>
> using namespace std;
>
> int main()
> {
> double price, cost, total_cost=0, total_receipt=0;
> const double SALES_TAX = 0.075;
> int number, total_number=0, total_order=0;
> double response;
>
> cout << "~~~~~BOOKSTORE~~~~~~" << endl;
> cout << "DO YOU WISH TO PROCEED (0 OR 1): ";
>
> while ((response=(cin.get())) == '1')
> {
> cout << endl;
> cout << "ENTER PRICE OF THE BOOK: ";
> cin >> price;
> cout << "ENTER COPIES OF THE BOOK: ";
> cin >> number;
> cost = number * price * (1+SALES_TAX);
> total_cost += cost;
> total_number += number;
> cout << "NUMBER OF BOOKS: " << number <<
> " PRICE: " << price << COST: " << cost;
> cout << endl;
> cout << "IS THERE ANOTHER BOOK TO PROCEED? ";
>
> while ((cin.get()) == '0')
The "while" statement will ask again and again and again. What you
want to do here (at least I suppose you want to do so) is to ask once
whether the user wants to continue or not; if so, continue the loop
(which the "while" above will automatically do); if not, leave the
loop (using "break").
> {
>
> cout << "TOTAL COST: " << total_cost << endl;;
> ++total_order;
> total_receipt += total_cost;
> break;
> }
> cout << endl << "DO YOU WISH TO PROCEED (0 OR 1)" << endl;
> }
>
> cout << endl;
> cout << "TOTAL ORDERS: " << total_order <<
> " TOTAL NUMBER " << total_number <<
> " TOTAL RECEIPT " << total_receipt;
> cout << endl;
>
> }
Regards,
Nico