Nie byłem pewien, jak zatytułować temat, więc pomysły mile widziane (w razie potrzeby zmienię).
Mam za zadanie napisać program, który obliczy sumę zakupów dokonanych przez klienta z uwzględnieniem upustów i podatku.
Założenia:
a) Klient może kupić dowolną ilość produktów
b) Dla każdego produktu, klient musi mieć możliwość podania ilości i ceny jednostkowej, po czym powinno nastąpić przeliczenie kosztu tego produktu wg wzoru: ilość * cena jednostkowa
c) Jeżeli koszt któregokolwiek z produktów przekracza $100, dla tego produktu należy odliczyć upust stanowiący 2.5% kosztu
d) Następnie klient jest pytany, czy chce kupić jeszcze jakiś produkt
e) Po przeliczeniu kosztu ostatniego produktu, program musi wyświetlić informację z podanym sumarycznym kosztem zakupów bez i z uwzględnieniem podatku, który stanowi 5% sumy wszystkich zakupów.
Oto mój program:
#include
using namespace std;
int main()
{
int QuantityPurchased;
float AmountDue;
float UnitPrice;
int ItemCount;
float ItemCost;
float TotalAmountOfSales;
float Tax;
char UserResponse;
do
{
cout << "Enter the quantity purchased: ";
cin >> QuantityPurchased;
cout << "Enter the unit price: ";
cin >> UnitPrice;
ItemCount++;
cout << "Item number: " << ItemCount << ":";
ItemCost = QuantityPurchased * UnitPrice;
if (ItemCost > 100.0f)
ItemCost = ItemCost - (ItemCost * 0.025f);
cout << "\n\tItem cost: " << ItemCost;
TotalAmountOfSales += ItemCost;
cout << "\n\nIs there another item in the customer's cart?";
cout << "\nEnter Y or N ----> ";
cin >> UserResponse;
UserResponse = toupper(UserResponse);
} while ((UserResponse == 'Y')? true : false);
cout << "\nTotal amount of sales: " << TotalAmountOfSales;
Tax = TotalAmountOfSales * 0.05f;
cout << "\nTax: " << Tax;
AmountDue = TotalAmountOfSales + Tax;
cout << "\nAmount due: " << AmountDue;
cout << endl;
return 0;
}
Podczas kompilacji i linkowania nie było żadnych problemów, ale pojawiły się po uruchomieniu programu: Błąd #1:
Microsoft Visual C++ Debug Library
Program: c:\assignment007\Debug\assignment007.exe
Module: c:\assignment007\Debug\assignment007.exe
File: c:\assignment007\assignment007.cpp
Line 22
Run-Time Check Failure #3 - The variable 'ItemCount' is being used without being defined.
Błąd #2
...
Line 28
Run-Time Check Failure #3 - The variable 'TotalAmountOfSales' is being used without being defined.
Poprawiłem je ustalając wartości początkowe dla tych zmiennych, odpowiednio na 0 (dla int) i na 0.0f (dla float).
Kolejna rzecz, jaką odkryłem przez przypadek: jeśli odpowiadając na komunikat “Is there another item in the customer’s cart?”, wpiszemy przez przypadek: yy zamiast y lub Y , to program wpada w nieskończoną pętlę. Moje pytania są takie:
-
czy należy ustalać wartość początkową dla każdej zmiennej liczbowej?
-
jak ustrzec się przed pętlą?
-
jakie macie inne sugestie?
Z góry wielkie dzięki!