如何通过添加所有小计来获得总计?

时间:2016-07-10 08:44:30

标签: c++

我让我的程序执行我想要的90%所有剩下要做的就是通过添加所有小计并输出到文件来获得总计。它我很简单,但我似乎无法找到一种方法来将所有小计的总和加在一起。说实话,即使我需要将其输出到文本文件中,我还没有尝试任何东西,因为我试图找到一种方法来获得我的总数。有人会介意找到解决方案并解释它,以便我更好地理解。

//Libraries
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>

using namespace std;

int main() {

    ifstream theFile("input.txt");

    string name;
    int units;
    double price, subtotal;

    cout << "\n" <<string(80, '*') << endl;
    cout.width(66); cout << "Inventory Report For Jane Doe International Hardware" << endl;
    cout << string(80, '*') << "\n" << endl;

    cout << left << setw(20) << "ITEM";
    cout << right << setw(20) << "NUMBER OF UNITS";
    cout << right << setw(20) << "UNIT COST ($)";
    cout << right << setw(20) << "TOTAL VALUE ($)" << endl;
    cout << string(80, '-') << "\n" <<endl;

    cout << fixed;
    cout << setprecision(2);

    while (theFile >> name >> units >> price) {
        subtotal = units*price;
        cout << left << setw(20) << name << right << setw(15) << units << right << setw(20) << price << right << setw(20) << subtotal <<endl;
    }

    cout << "\n" <<string(80, '-') << endl;
    cout <<left << setw(20) << "Inventory Total ($)" << right << setw(55) << "total" <<endl;

    return 0;
}

我的输入文字文件

Chisel 50 9.99  Hammer 30 15.99 Nails 2000 0.99
Bolts 200 2.99  Nuts 300 1.99   Soap 55 1.89

1 个答案:

答案 0 :(得分:3)

您需要总结所有小计。但是,每个小计只能在其迭代中访问,之后,它会在您重新分配小计后丢失。

因此,在while循环之外声明变量total,然后在每次迭代中将小计添加到总计中。因此,添加以下行

subtotal = units*price;
total += subtotal;

现在您可以稍后打印total