【发布时间】:2016-07-11 00:29:22
【问题描述】:
(是的,这是作业,但已经完成,我现在只是在尝试改进它以进行练习)
这基本上是一个销售计算器,允许您输入多个销售项目,然后显示总计、销售税和总计。
我正在尝试进行的修改是,我希望能够保存变量中每个项目的成本,而不会使它们重叠内存,然后能够在总计之上调用它们,所以你可以看到每件物品的价值。
================================================ ==============================
//importing libraries for cin and cout, as well as setw() and setprecision()
#include <iostream>
#include <iomanip>
using namespace std; //sets all code to standard syntax
int main(){ //initializes the main function
//initializing variables
char answer = ' ';
int saleItems = 0;
double saleTax = 0.0;
double grandTotal = 0.0;
double itemValue = 0.0;
double titemValue = 0.0;
double taxPerc = 0.0;
//begins a post-test loop
do {
titemValue = 0.0; //makes sure the accumulator resets WITHIN the loop
//prompts for sale items amount
cout << "How many sales items do you have? : ";
cin >> saleItems;
//creates a loop that displays the prompt for each iteration of saleItems
for (int x = 1; x <= saleItems; x += 1){
cout << "Enter in the value of sales item " << x << " : $";
cin >> itemValue;
titemValue += itemValue; //accumulator for adding up the iterated values
}
//prompts the user to enter a sales percentage
cout << endl << endl;
cout << "Enter in the sales tax percentage(Enter 10 for 10%): ";
cin >> taxPerc;
cout << endl << endl;
//processes the variables after taxPerc has been given
saleTax = titemValue * (taxPerc / 100);
grandTotal = titemValue + saleTax;
//sets decimal precision to 2 places
cout << fixed << setprecision(2);
//displays receipt with the calculated and input values
cout << "********************************************" << endl;
cout << "******** S A L E S R E C E I P T ********" << endl;
cout << "********************************************" << endl;
cout << "** **" << endl;
cout << "** **" << endl;
cout << "** **" << endl;
cout << "** **" << endl;
cout << "** Total Sales $" << setw(9) << titemValue << " **" << endl;
cout << "** Sales Tax $" << setw(9) << saleTax << " **" << endl;
cout << "** ---------- **" << endl;
cout << "** Grand Total $" << setw(9) << grandTotal << " **" << endl;
cout << "** **" << endl;
cout << "** **" << endl;
cout << "********************************************" << endl << endl << endl;
//prompts user to begin loop again
cout << "Do you want to run this program again? (Y/N):";
cin >> answer;
answer = toupper(answer);
cout << endl << endl;
} while (answer == 'Y');
================================================ ==============================
所以,本质上,我需要能够将每个 itemValue 保存到多个不同的值,而不会重复循环,只是替换它们,考虑到累加器只会继续循环,我真的不知道该怎么做,并将 itemValue 值相加。
【问题讨论】:
-
您想保存输入的每个值以便再次打印出来吗?使用
std::vector或std::list将项目存储在for循环中。 -
如何使用数组来做到这一点?我想使用更基本的方法,因为我是初学者,看起来数组对我来说是下一步。
标签: c++ loops c++11 counter accumulator