cs-210/Project3/Items.h
2023-04-19 22:29:24 -07:00

53 lines
2.1 KiB
C++

/* Cody Cook
2023/04/13
CS-210 Project 3
*/
#include <iostream> // use cout and cin
#include <string> // use strings
#include <map> // use maps
#include <fstream> // use files
#include <iomanip> // use setw
using namespace std; // use the standard namespace
#pragma once // only include this file onces
// set some constants
constexpr auto defaultItemFileName = "inputfile.txt"; // the default filename to import
constexpr auto defaultDatabaseFilename = "frequency.dat"; // the default filename to export
constexpr auto c_red = "\033[31m"; // set the terminal red color
constexpr auto c_normal = "\033[0m"; // set the terminal normal color
class Items
{
public:
// constructors
Items(); // default constructor
Items(string p_inputFile); // constructor with a custom import file
//destructor
~Items(); // destructor
// getters
string GetInputFile(); // return the string for the inputFile
int GetInventory(string p_item); // return the quantity of a specific item
char GetStar(); // get the configured star
//setters
void SetInputFile(string p_inputFile); // update the filename of the input file
void SetStar(char p_star); // set the star char
//methods
void RequestNewFile(); // ask user to set new filename
bool ParseInputFile(); // parse the configured input file
void PrintInventory(int p_type); // output the inventory in the map
bool SaveInventory(); // save the inventory to a file
private:
string r_inputFile = defaultItemFileName; // the default file to import
ifstream r_input; // the input file
map<string, int> r_mapping; // the map of items and their quantities
string r_database = defaultDatabaseFilename; // the default filename to export
char r_star = '*'; // default star for the histogram
};