Shopping List project
Read a shoppinglist and output how many of each products are listed.
main.cpp
// Project 09-03
// Name: Shopping
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include "ItemFrequencies.h"
using namespace std;
int main() {
ifstream inputFile;
ofstream outputFile;
inputFile.open("shopping.txt");
outputFile.open( "output.txt");
if (!inputFile) {
cerr << "Error opening file, grabbing parachute and jumping out" << endl;
return 1;
}
cout << "Processing data..." << endl;
ItemFrequencies list;
list.addItem(inputFile);
list.printList(outputFile);
inputFile.close();
outputFile.close();
cout << "Done!" << endl;
return 0;
}
ItemFrequencies.h
#ifndef ITEM_FREQUENCIES_H
#define ITEM_FREQUENCIES_H
#include <string>
#include <vector>
#include <fstream>
using namespace std;
class ItemFrequencies {
public:
void addItem(ifstream& shoppingList);
void printList(ofstream& shoppingList) const;
private:
vector<string>items;
vector<int>frequency;
};
#endif
ItemFrequencies.cpp
#include <iostream>
#include <fstream>
#include <string>
#include "ItemFrequencies.h"
using namespace std;
void ItemFrequencies::addItem(ifstream& shoppingList)
{
string item;
bool included = false;
while (!shoppingList.eof()) {
shoppingList >> item;
for (size_t i = 0; i < items.size(); i++) {
if (item == items[ i ]) {
frequency[i]++;
included = true;
}
}
if (!included) {
items.push_back(item);
frequency.push_back(1);
}
included = false;
}
}
void ItemFrequencies::printList(ofstream& shoppingList) const
{
for (size_t i = 0; i < items.size(); i++) {
shoppingList << items[i]<< " " << "\t" << frequency[i] << endl;
}
}