我不知道为什么这个程序不会运行。getStockInfo 中的值应该存储在参考参数中。然后 displayStatus 接受它们作为参数。我知道它与 main 中的 getStockInfo 和 displayStatus 有关,当它们被定义时,我就是想不通
#include <iostream>
#include <iomanip>
using namespace std;
void getStockInfo(int &, int&, double&);
void displayStatus(int, int, double, double);
int main()
{
//Declare Variables
int orderedSpools;
int spoolsStock;
double specialCharges;
int spoolsOrdered;
int backOrder;
double subtotal,
shipping,
total;
cout << "Middletown Wholesale Copper Wire Company" << endl;
getStockInfo(spoolsOrdered, spoolsStock, specialCharges);
displayStatus(spoolsOrdered, spoolsStock, specialCharges);
system("pause");
return 0;
}
void getStockInfo(int &spoolsOrdered, int &spoolsStock, double &specialCharges)
{
char ship;
cout << "How many spools would you like to order: ";
cin >> spoolsOrdered;
//Validate the spools ordered
while(spoolsOrdered < 1)
{
cout << "Spools ordered must be at least one" << endl;
cin >> spoolsOrdered;
}
cout << "How many spools are in stock: ";
cin >> spoolsStock;
//Validate spools in stock
while(spoolsStock < 0)
{
cout << "Spools in stock must be at least 0" << endl;
cin >> spoolsStock;
}
cout << "Are there any special shipping charges? ";
cout << "Enter Y for yes or another letter for no: ";
cin >> ship;
//Validate special charges
if(ship == 'Y' || ship == 'y')
{
cout << "Enter the special shipping charge: $";
cin >> specialCharges;
}
else
{
specialCharges = 10.00;
}
}
void displayStatus(int spoolsOrdered, int spoolsStock, double specialCharges,
double total)
{
double backOrder,
subtotal,
shipping,
total;
int itemsReady;
cout << "Items ordered: " << spoolsOrdered << endl;
cout << "Items ready to ship: " << spoolsStock << endl;
if(spoolsOrdered > spoolsStock)
{
backOrder = spoolsOrdered - spoolsStock;
cout << "Items on backorder: " << backOrder << endl;
}
subtotal = itemsReady * 100;
cout << "Subtotal: " << subtotal << endl;
shipping = specialCharges;
cout << "Shipping: " << shipping << endl;
total = subtotal + shipping;
cout << "Total Due: " << total << endl;
}