こんにちは、GroceryItemクラスを作成し、関数を使用してユーザーからの入力を受け入れ、設定するのに問題が発生しました。GroceryItemクラスで関数を実装するのに手助けが必要です
現在、dataEntry関数を実行すると、コンパイラは最初の関数からの入力を受け入れる前に次の関数に移動します。
コードをテストするためにテストミルクオブジェクトを作成しましたが、次の入力プロンプトに移動する前にデータを入力することはできません。
クラスの機能を理解できたら、オブジェクトの配列とその値を入力します。
このクラスと機能を修正する方法についてのアドバイスをいただければ幸いです。
#include <iostream>
using namespace std;
class GroceryItem{
private: int stockNumber;
double price = 0.0;
int quantity;
double totalValue;
double setPrice();
int setStockNum();
int setQuantity();
void setTotalValue();
public:
void dataEntry();
void displayValues();
};
int GroceryItem::setStockNum(){
int stock = 0;
cout << "Enter the stock number for the grocery item: ";
do {
cout << "Stock Number(1000-9999): ";
cin >> stock;
} while (!(stock >= 1000 && stock <= 9999));
stockNumber = stock;
return stockNumber;
}
double GroceryItem::setPrice(){
double x = 0.0;
cout << "Enter the price of the item: ";
while (!(x > 0)) {
cout << "Please enter a positive number for price!";
cin >> x;
}
price = x;
return price;
}
int GroceryItem::setQuantity(){
int x = 0;
cout << "Enter the quantity in stock: ";
while (!(x > 0)){
cout << "Please enter a positive number for quantity!";
cin >> x;
}
quantity = x;
return quantity;
}
void GroceryItem::setTotalValue(){
totalValue = (quantity * price);
}
void GroceryItem::dataEntry(){
setStockNum();
system("pause");
setPrice();
system("pause");
setQuantity();
system("pause");
setTotalValue();
}
void GroceryItem::displayValues(){
cout << "Stock number: " << stockNumber;
cout << "\nItem price: " << price;
cout << "\nQuantity on hand: " << quantity;
cout << "\nTotal value of item: " << totalValue;
}
int main(){
GroceryItem Milk;
Milk.dataEntry();
Milk.displayValues();
system("pause");
return 0;
}
あなたはそれによって何を意味するのですか?これは有効なコード行ではありません。どういう意味ですか? – AddieCaddy
コンストラクタを使用して 'price'メンバーを初期化する必要があります。 –
*デバッガ*の使用に適しています。 –