business.cpp
#include "business.h"
#include <fstream>
#include <cstdlib>
#include <iostream>
using namespace std;
Business::Business(const string name, const float money, const string fname):
m_name(name), m_register(money), m_num_clients(0), m_num_inv(0)
{
ifstream items(fname.c_str());
if (!items)
{
cout << "File " << fname << " not found. Bailing.\n";
exit(1);
}
while (m_num_inv < INV_SIZE && items >> m_inventory[m_num_inv])
m_num_inv++;
items.close();
}
void Business::print() const
{
cout << "Business name: " << m_name << " has on it's shelves:\n\t";
if (m_num_inv == 0)
cout << "none";
for (int i=0; i<m_num_inv; i++)
cout << m_inventory[i] << ((i < m_num_inv - 1)?", ":"");
cout << "\n customers:" << (m_num_clients == 0 ? "none\n":"\n");
for (int i=0; i<m_num_clients ; i++)
{
cout << "\t";
m_clientelle[i].print();
}
return;
}
bool Business::acceptCustomer(const Customer& cust)
{
bool success = m_num_clients < MAX_OCCUPANCY;
if (success)
m_clientelle[m_num_clients++] = cust;
return success;
}
void Business::make_a_sale()
{
if (m_num_inv > 0)
{
for (int i=0; i<m_num_clients; i++)
{
if (m_clientelle[i].getMoney() >= THING_PRICE &&
m_clientelle[i].purchase(m_inventory[rand() % m_num_inv]))
{
m_clientelle[i].modMoney(-THING_PRICE);
m_register += THING_PRICE;
}
}
}
cout << "After purchases:\n";
for (int i=0; i<m_num_clients; i++)
{
cout << "\t";
m_clientelle[i].print();
}
return;
}