Демонстрирация реализации наследования на при построении архитектуры приложения на заданную тему, страница 3

///class CZakazList 

/////////////////////////////

//конструктор

CZakazList::CZakazList()

{

this->current = 0;

this->list = new CZakaz[20];

}

//конструктор с параметрами

CZakazList::CZakazList(int count)

{

this->current = 0;

this->list = new CZakaz[count];

}

CZakazList::~CZakazList()

{

}

//добавить заказ в список

void CZakazList::AddZakaz(CTovar tov)

{

CZakaz zak;

//инициализация свойств объекта CTovar вводом с клавиатуры

zak.InitZakazData(tov);

//добавление товара в список

this->list[current] = zak;

this->current++;

}

//вывод списка заказов на экран монитора

void CZakazList::OutZakazList()

{

if ( current > 0 )

for(int i = 0; i < this->current; i++)

{

printf("\n%3i %20s , %6.3f, %20s ", list[i].getNumber(), list[i].getTovarName(),  list[i].getCost(),

list[i].getClientName() );

//если клиент в чёрном списке

if ( list[i].getStatus() )

printf(" in black list");

}

else

printf("List is empty!");

}

Файл «Client.h»

class CClient 

{

protected:

char client_name[20];//имя клиента

bool is_in_black_list;//true - в чёрном списке, false - нет

public:

CClient();

virtual ~CClient();

//инициализация свойств объекта вводом с клавиатуры

void InitClientData();

//вырнуть имя клиента

char* getClientName();

//вернуть статус

bool getStatus();

};

Файл «Client.cpp»

#include "Client.h"

CClient::CClient()

{

is_in_black_list = false;

}

CClient::~CClient()

{

}

//инициализация свойств объекта вводом с клавиатуры

void CClient::InitClientData()

{

printf("\nInput Client name:");

scanf("%s", client_name);//ввести наименование клиента

is_in_black_list = false;

}

//вырнуть имя клиента

char* CClient::getClientName()

{

return client_name;

}

//вырнуть статус

bool CClient::getStatus()

{

return is_in_black_list;

}

Файл «other_function.cpp»

#include "other_function.h"

//вывод главного меню

void MainMenuOut()

{

printf("\n1. Administrator");

printf("\n2. Client");

printf("\n3. Exit");

printf("\n\nInput punkt menu number:");

}

//вывод меню администратора

void AdminMenuOut()

{

printf("\n\n1.Add tovar");

printf("\n2.Save to file tovar list");

printf("\n3.Load from file tovar list");

printf("\n4.See tovar list");

printf("\n5.See zakaz list");

printf("\n6.To main menu");

printf("\n\nInput punkt menu number:");

}

//вывод меню клиента

void ClientMenuOut()

{

printf("\n1.See tovar list");

printf("\n2.Zakaz");

printf("\n3.To main menu");

printf("\n\nInput punkt menu number:");

}

Файл «main_program.cpp»

#include "Zakaz.h"

#include "other_function.h"

void main()

{

//задаём количество пунктов меню

const MAIN_MENU_PUNCTS_COUNT   = 3;

const ADMIN_MENU_PUNCTS_COUNT  = 6;

const CLIENT_MENU_PUNCTS_COUNT = 3;

//для хранения номеров пунктов меню

int main_menu_punct_number = 0;

int sum_menu_punct_number = 0;

CTovarList tovar_List;//вызывается конструктор по умолчанию

CZakazList zakaz_List(20);//вызывается конструктор с параметрами

while(main_menu_punct_number != MAIN_MENU_PUNCTS_COUNT)