C++ 我将如何在我的程序中创建计算?

C++ 我将如何在我的程序中创建计算?,c++,C++,我正在尝试为学校创建一个“简单的收银机”程序。程序应要求用户提供5个购买金额,对购买金额应用固定税率,然后显示小计。这是我的密码: #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; /* * */ int main(int argc, char** argv) { // Declare and initialize necessary var

我正在尝试为学校创建一个“简单的收银机”程序。程序应要求用户提供5个购买金额,对购买金额应用固定税率,然后显示小计。这是我的密码:

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) 
{
// Declare and initialize necessary variables
// You need to use floats for these 

const float TAXRATE = 0.07; // 7% tax rate

float item1 = 0.0, item2 = 0.0, item3 = 0.0, item4 = 0.0, item5 = 0.0;

float subTotal = 0.0, taxTotal = 0.0, totalDue = 0.0; 

float itemPurchases[5];

// Take 5 items as input

// Get item amounts from user

for (int i =0; i < 5; i++)
{
    cout << "Please enter a purchased item" <<endl;
    cin >> itemPurchases[i];
}

// Calculate subTotal, taxTotal, and totalDue

subTotal = itemPurchases[5];

taxTotal = subTotal * TAXRATE;

totalDue = subTotal + taxTotal;

// Drop down two lines on the output and print receipt header

cout << "\n" << endl;
cout << "Here is your receipt\n" << endl;

// Output the items

cout << fixed << setprecision(2); // Make sure all numbers have 2 decimals 
cout << setw(15) << "Item 1 costs: $" << setw(10) << right << item1 << endl;
cout << setw(15) << "Item 2 costs: $" << setw(10) << right << item2 << endl;
cout << setw(15) << "Item 3 costs: $" << setw(10) << right << item3 << endl;
cout << setw(15) << "Item 4 costs: $" << setw(10) << right << item4 << endl;
cout << setw(15) << "Item 5 costs: $" << setw(10) << right << item5 << endl;

// Output single separation line 

cout << "----------------------------" << endl;

// Output subTotals

cout << setw(15) << right << "Subtotal: $" << setw(10) << right << subTotal << endl;
cout << setw(15) << right << "Tax Total: $" << setw(10) << right << taxTotal << endl;

// Output double separation line 

cout << "==========================" << endl;

cout << setw(15) << right << "Total Due: $" << setw(10) << right << totalDue << endl;

// End of program

return 0;
}

我的问题是,对于要显示的实际数字量,而不是0.00,我应该向程序中添加什么

您似乎正在将项目的成本存储在一个名为itemPurchases的数组中,但是,当您显示每个项目的成本时,您显示的是从程序开始时初始化为0.0且从未更改的变量。此外,在计算小计时,只需为其指定一个值(由于数组的下标从0开始,因此超出了范围)。您可能希望通过添加数组的所有元素来获得小计。我希望这对您有所帮助。

尝试编写准确的代码

将ITEMAMOUNT添加为常量值:

constexpr float ITEMAMOUNT = 5; // Item Amount (5)
删除以下变量:

float item1 = 0.0, item2 = 0.0, item3 = 0.0, item4 = 0.0, item5 = 0.0;
使用浮点向量

vector<float> itemPurchases(ITEMAMOUNT);
vector itemPurchases(ITEMAMOUNT);
使用新样式

for (auto& item : itemPurchases)
{
    cout << "Please enter a purchased item" << endl;
    cin >> item;
    subTotal += item;
}
用于(自动&项目:项目采购)
{
cout项;
小计+=项目;
}
使用用于打印项目的

for (int i = 0; i < itemPurchases.size(); i++)
{
    cout << setw(15) << "Item "<<i<<" costs: $" << setw(10) << right << itemPurchases[i] << endl;
}
for(int i=0;icout小计=项目采购[5]

这里您正在尝试访问5索引数组中的第6个索引

此外,您正在使小计仅等于数组中的一项(而不是所有项的总和)


为什么不在输入每次购买时在for循环中增加小计呢?

您应该添加代码来计算特定itemPurchases的小计金额,如注释所示。小计=itemPurchases[5]是错误的,因为您的索引超出了范围(索引从0开始)。你应该做的是关注你的课堂,做你的家庭作业。如果你的代码不起作用,你不知道为什么,试试更简单的方法。试着编写接受一个值并显示它的代码;然后你可能会在上面的代码中看到,你正在将值读入一组变量,并打印另一组变量的内容。
for (int i = 0; i < itemPurchases.size(); i++)
{
    cout << setw(15) << "Item "<<i<<" costs: $" << setw(10) << right << itemPurchases[i] << endl;
}