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;

}