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