Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Не підтверджено.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.08 Mб
Скачать

Int mainO

{

userlnterface theU ser I n terface; theUserlnterface.interactO; getchO; return 0;

}

// <—> Кінець файлу lordApp.cpp

На завершення розглянемо файл landlord.срр, у якому містяться всі визначення методів.

Код програми 14.3. Демонстрація програми landlord.срр void getaLine(string& inStr) // Отримання рядка тексту {

char temp[21]; cin.get(temp, 20, '\n'); cin.ignore(20, '\n'); inStr = temp;

}//<—> Кінець getaLineO

char getaChar() // Отримання символу {

char ch = cin.get(); cin.ignore(80, '\n'); return ch;

} // <—> Кінець getaCharO

// >—> Методи класу tenant

tenant::tenant(string n, int aNo): name(n), aptNumber(aNo)

{І* тут порожньо */}

//.

tenant::~tenant()

{І* тут також порожньо */}

//.

int tenant::getAptl\lumberO {return aptNumber;}

//.

bool operator < (const tenant& t1, const tenant& t2) {return t1 name < t2.name;}

bool operator == (const tenant& t1, const tenant& t2) {return t1 name == t2.name;}

ostream& operator«(ostream& s, const tenant& t)

{s «t.aptNumber« '\t' «t.name « endl; return s;}

// >—> Методи класу tenantlnputScreen

void tenantlnputScreen::getTenantO // Отримання даних про мешканцях {

cout«"Введіть ім'я мешканця (Тарас Редько): getaLine(tName);

cout«"Введіть номер кімнати (101): сіп » aptNo;

cin.ignore(80, '\п'); // Створити мешканця

tenant* ptrTenant = new tenant(tName, aptNo); ptrTenantList->insertTenant(ptrTenant); // Занести перелік мешканців

}

bool compareTenants::operator 0 (tenant* ptrT 1, tenant* ptrT2) const {return *ptrT 1 < *ptrT2;}

// >—> Методи класу tenantList tenantList::~tenantListO // Оголошення деструктора {

while( IsetPtrsTens.emptyO) {// Видалення усіх мешканців

// Видалення покажчиків з множини

iter = setPtrsTens.beginO; delete *iter;

setPtrsTens.erase(iter);

}

} // <—> Кінець -tenantListO

void tenantList::insertTenant(tenant* ptrT)

{

setPtrsTens.insert(ptrT); // Вставка

}

//

int tenantList::getAptNo(string tName) // Ім'я присутнє у переліку?

{

int aptNo;

tenant dummy(tName, 0);

iter = setPtrsTens.begin(); while( iter != setPtrsTens.endO) {

aptNo = (*iter)->getAptNumber(); // Пошук мешканця if(dummy == **iter++) // В переліку?

return aptNo; //Так

}

return-1; //Немає

} // <—> Кінець getAptNoO

void tenantList::DispiayO // Виведення переліку мешканців {

cout« endl «"АрШм'я мешканця\п " « endl;

if( setPtrsTens.emptyO)

cout«"***Нема мешканців***" « endl;

else{

iter = setPtrsTens.beginO;

while( iter != setPtrsTens.end())cou*<< **iter++;

}

} // <—> Кінець DisplayO // >—> Методи класу rentRow

rentRow::rentRow(int an): aptNo(an) // Однопараметризований конструктор {fill( &rent[0] &rent[12], 0);}

//.

void rentRow::setRent(int m, float am)

{rent[m]= am;}

//.

float rentRow::getSumOfRow() // Сума орендних платежів у рядку {return accumulate( &rent[0] &rent[12], 0);}

//.

bool operator < (const rentRow& t1, const rentRow& t2)

{return t1 .aptNo < t2.aptNo;}

//.

bool operator == (const rentRow& t1, const rentRow& t2)

{return t1 .aptNo == t2.aptNo;}

//.

ostream& operator«(ostream& s, const rentRow& an)

{

s « an.aptNo «'\f; // Вивести номер кімнати for(intj=0;j<12;j++){ //Вивести 12 орендних платежів if(an.rent[j] == 0) s «" 0"; else s « an.rent[j]«"";

}

s « endl; return s;

} // <—> Кінець operator«

bool compareRows::operator 0 (rentRow* ptrR1, rentRow* ptrR2) const {return *ptrR1 < *ptrR2;}

// >—> Методи класу rentRecord rentRecord::~rentRecordO // Оголошення деструктора {

while( !setPtrsRR.empty()) { // Видалити рядки з платежами

// Видалити покажчики з множини

iter = setPtrsRR.begin(); delete *iter; setPtrsRR.erase(iter);

}

} // <—> Кінець -rentRecordO