Code:
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <iomanip>
#include <fstream>
#include <vector>
#include <windows.h>
using namespace std;
const long MAX_SIZE = 682;
struct Stock //Makes a new datatype
{
string name; //Name..
string snum; //Serial number
string qty; // Quantity
};
char userDecision();
void addStock(vector<Stock>& Warehouse);
void addStocks(vector<Stock>& Warehouse);
void displayWarehouse(vector<Stock>& Warehouse);
void saveRecord(vector<Stock>& Warehouse);
void overwriteRecord(vector<Stock>& Warehouse);
int main (char& decision)
{
Stock stock;
vector<Stock> Warehouse;
int stockCount = 0;
bool run = true;
do
{
char welcome[64] = {'W','e','l','c','o','m','e',' ','t','o',' ','V','i','r','t','u','a','W','a','r','e','h','o','u','s','e',' ','v','9','0','0','0','.','0','6','8',' ','-',' ','P','l','e','a','s','e',' ','r','e','p','o','r','t',' ','a','n','y',' ','e','r','r','o','r','s','.'};
for (int i=0;i<64;i++)
{
cout << welcome[i];
Sleep(48);
}
cout << endl << endl;
switch ( userDecision() )
{
case 'A': addStock(Warehouse); break;
case 'M': addStocks(Warehouse); break;
case 'D': displayWarehouse(Warehouse); break;
case 'S': saveRecord(Warehouse); break;
case 'O': overwriteRecord(Warehouse); break;
case 'Q': run = false; break;
default : cout << "ERROR: Invalid VirtuaWarehouse v9000.068 decision making format - - - - - - - -" << endl;
}
system("cls");
}while(run);
system("cls");
char termination[78] = {'V','i','r','t','u','a','W','a','r','e','h','o','u','s','e',' ','v','9','0','0','0','0','.','0','6','8',' ','p','r','o','g','r','a','m',' ','t','e','r','m','i','n','a','t','e','d',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.'};
for (int i=0;i<78;i++)
{
cout << termination[i];
Sleep(84);
}
}
char userDecision()
{
char decision;
Sleep(400);
cout << "'A' : Add Stock" << endl << endl;
Sleep(400);
cout << "'M' : Add Multiple Stocks" << endl << endl;
Sleep(400);
cout << "'D' : Display VirtuaWarehouse Stocks" << endl << endl;
Sleep(400);
cout << "'S' : Add current list to Warehouse Records" << endl << endl;
Sleep(400);
cout << "" << endl << endl;
Sleep(400);
cout << "'Q' : Quit" << endl << endl;
cin >> decision;
cin.ignore(1);
return toupper(decision);
}
void addStock(vector<Stock>& Warehouse)
{
system("cls");
Stock stock;
int i;
cout << "Enter stock name: ";
getline(cin, stock.name);
cout << "Enter Serial Number: ";
getline(cin, stock.snum);
cout << "Enter Quantity: ";
getline(cin, stock.qty);
Warehouse.push_back(stock);
cout << endl;
}
void addStocks(vector<Stock>& Warehouse)
{
system("cls");
Stock stock;
int i;
while(true)
{
cout << "Enter stock name, or 'quit' to quit: ";
getline(cin, stock.name);
if(stock.name == "quit")
{
break;
}
cout << "Enter Serial Number: ";
getline(cin, stock.snum);
cout << "Enter Quantity: ";
getline(cin, stock.qty);
Warehouse.push_back(stock);
cout << endl;
}
}
void displayWarehouse(vector<Stock>& Warehouse)
{
system("cls");
Stock stock;
int i;
cout << "--------------------------------" << endl;
for(int q = 0; q<Warehouse.size(); q++)
{
cout << "Name: " << setw(18) << Warehouse[q].name << endl;
cout << "Serial Number: " << setw(9) << Warehouse[q].snum << endl;
cout << "Quantity: " << setw(14) << Warehouse[q].qty << endl;
cout << "--------------------------------" << endl;
}
cout << endl;
system("pause");
}
void saveRecord(vector<Stock>& Warehouse)
{
int s = Warehouse.size();
ofstream outFile;
outFile.open("warehouse.txt", ios::app);
for(int i=0; i<s; i++)
{
outFile << Warehouse[i]; // <----THIS guy and his trouble-making friend below.
}
outFile.close();
}
void overwriteRecord(vector<Stock>& Warehouse)
{
int s = Warehouse.size();
ofstream fout("warehouse.txt");
for(int i=0; i<s; i++)
{
fout << Warehouse[i] << endl; // <----Same problem.
}
fout.close();
}