Лабораторная работа №4 «Наследование»

Задание 6.

· И базовый, и производный классы должны иметь как минимум конструктор по умолчанию, конструктор копирования, деструктор (если необходимо), перегруженную операцию присваивания.

· Где это возможно, необходим вызов функций (методов, конструкторов) базового класса, а не копирование фрагментов кода.

6.1.Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка ежедневник на текущий год с полями «Число», «Месяц», «День недели», «Дела на день». Интерфейс должен позволять читать и редактировать запись «Дела на день» по дате.

6.2. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка расписание занятий 1 курса факультета компьютерных наук с полями «День недели», «Номер пары», «Название курса». Интерфейс должен позволять просматривать все расписание на неделю, на отдельный день и редактировать поле «название курса».

6.3. Реализуйте абстрактную структуру данных «множество» как класс. Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя множество английских слов с их переводом на русский язык, хранящихся в файле-словаре и механизм наследования, реализуйте на базе множества подстрочный переводчик с английского языка. Словарь английских слов (не меньше 20) сделайте самостоятельно в отдельном файле. Переводчик должен сопоставлять строке английских слов строку русских слов, если в файле-словаре нет соответствующего английского слова, необходимо выводить русское слово без изменений. Переводчик, как минимум, должен справляться с фразой «Мама мыла раму».

6.4. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка программу контроля автобусного парка. Программа должна содержать две базы данных с полями «Номер автобуса», «Водитель», «Номер маршрута». Первая база данных контролирует автобусы, находящиеся в данный момент в гараже, вторая – на маршруте. При выезде из гаража вводится номер автобуса, и соответствующая запись переносится в другую базу данных, аналогичная операция производится при возвращении автобуса с маршрута. Список всех имеющихся автобусов хранится в файле, в начале рабочего дня все автобусы находятся в гараже.

6.5. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка систему бронирования авиабилетов с полями «Номер рейса», «Дата вылета», «Номер места», «Пассажир». У непроданных билетов поле пассажир пустое. Если билет продан, то в поле «Пассажир» вносится фамилия пассажира, купившего билет. Интерфейс должен позволять бронировать билеты на ближайшие 3 дня, а также отказываться от ранее забронированных билетов. Для впервые запрашиваемого рейса заводится отдельный файл. Для уже запрашивавшихся рейсов загружаются файлы. Файлы уже отправленных рейсов уничтожаются.

6.6.Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат фамилию и инициалы автора, название, год издания, количество экземпляров в библиотеке. Программа должна обеспечивать:

1) начальное формирование данных обо всех книгах в виде списка;

2) уменьшать количество экземпляров книги при выдаче одного экземпляра на руки читателю, и увеличивать при возврате.

3) осуществлять поиск по маске «фамилия автора».

6.7.Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка каталог файлов с полями:

1) имя файла;

2) дата создания.

Программа должна обеспечивать:

1) начальное формирование каталога файлов:

2) вывод каталога файлов:

3) удаление файлов, «время жизни» которых больше определенного срока.

6.8.Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка бюро обмена квартир. Сведения о каждой квартире содержат:

1) количество комнат;

2) этаж;

3) площадь;

4) адрес.

Программа должна обеспечивать:

1) начальное формирование картотеки и её пополнение;

2) поиск в картотеке подходящего варианта по количеству комнат.

3) вывод всего списка.

6.9. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка картотеку абонентов междугородней телефонной станции, содержащей сведения о телефонах и их владельцах. Программа должна обеспечивать:

1) начальное формирование картотеки;

2) вывод всей картотеки;

3) ввод номера телефона и времени разговора;

4) вывод извещения об оплате, содержащего фамилию и сумму.

6.10.Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка автоматизированную информационную систему железнодорожного вокзала, содержащую сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:

1) номер поезда;

2) станция назначения;

3) время отправления.

Программа должна обеспечивать:

1) первоначальный ввод данных и формирование списка по времени отправления;

2) вывод всего списка;

3) вывод по номеру поезда всех данных о нем;

4) вывод информации обо всех поездах до данной станции назначения.

6.11. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества ежедневник на текущий год с полями «Число», «Месяц», «День недели», «Дела на день». Интерфейс должен позволять читать и редактировать запись «Дела на день» по дате.

6.12. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества расписание занятий 1 курса факультета компьютерных наук с полями «День недели», «Номер пары», «Название курса». Интерфейс должен позволять просматривать все расписание на неделю, на отдельный день и редактировать поле «название курса».

6.13. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества программу контроля автобусного парка. Программа должна содержать две базы данных с полями «Номер автобуса», «Водитель», «Номер маршрута». Первая база данных контролирует автобусы, находящиеся в данный момент в гараже, вторая – на маршруте. При выезде из гаража вводится номер автобуса, и соответствующая запись переносится в другую базу данных, аналогичная операция производится при возвращении автобуса с маршрута. Список всех имеющихся автобусов хранится в файле, в начале рабочего дня все автобусы находятся в гараже.

6.14. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества систему бронирования авиабилетов с полями «Номер рейса», «Дата вылета», «Номер места», «Пассажир». У не проданных билетов поле пассажир пустое. Если билет продан, то в поле «Пассажир» вносится фамилия пассажира, купившего билет. Интерфейс должен позволять бронировать билеты на ближайшие 3 дня, а также отказываться от ранее забронированных билетов. Для впервые запрашиваемого рейса заводится отдельный файл. Для уже запрашивавшихся рейсов загружаются файлы. Файлы уже отправленных рейсов уничтожаются.

6.15.Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат фамилию и инициалы автора, название, год издания, количество экземпляров в библиотеке. Программа должна обеспечивать:

1) начальное формирование данных обо всех книгах в виде списка;

2) уменьшать количество экземпляров книги при выдаче одного экземпляра на руки читателю, и увеличивать при возврате;

3) осуществлять поиск по маске фамилии автора.

6.16.Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества каталог файлов с полями:

1) имя файла;

2) дата создания;

Программа должна обеспечивать:

1) начальное формирование каталога файлов;

2) вывод каталога файлов;

3) удаление фалов, «время жизни» которых больше определенного срока.

6.17.Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества бюро обмена квартир. Сведения о каждой квартире содержат:

1) количество комнат:

2) этаж;

3)площадь;

4) адрес.

Программа должна обеспечивать:

1) начальное формирование картотеки и её пополнение;

2) поиск в картотеке подходящего варианта по количеству комнат.

3) вывод всего списка.

6.18. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества картотеку абонентов междугородней телефонной станции, содержащей сведения о телефонах и их владельцах.

Программа должна обеспечивать:

1) начальное формирование картотеки;

2) вывод всей картотеки;

3) ввод номера телефона и времени разговора;

4) вывод извещения об оплате, содержащего фамилию и сумму.

6.19.Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества автоматизированную информационную систему железнодорожного вокзала, содержащую сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:

1) номер поезда;

2) станция назначения;

3) время отправления.

Программа должна обеспечивать:

1) первоначальный ввод данных и формирование списка по времени отправления;

2) вывод всего списка;

3) вывод по номеру поезда всех данных о нем;

4) вывод информации обо всех поездах до данной станции назначения.

6.20.Реализуйте двунаправленную очередь как класс. Используя механизм наследования, реализуйте на базе очереди ежедневник на текущий год с полями «Число», «Месяц», «День недели», «Дела на день». Интерфейс должен позволять читать и редактировать запись «Дела на день» по дате.

6.21. Реализуйте двунаправленную очередь как класс. Используя механизм наследования, реализуйте на базе очереди расписание занятий 1 курса факультета компьютерных наук с полями «День недели», «Номер пары», «Название курса». Интерфейс должен позволять просматривать все расписание на неделю, на отдельный день и редактировать поле «название курса».

6.22. Реализуйте двунаправленную очередь как класс. Используя механизм наследования, реализуйте на базе очереди программу контроля автобусного парка. Программа должна содержать две базы данных с полями «Номер автобуса», «Водитель», «Номер маршрута». Первая база данных контролирует автобусы, находящиеся в данный момент в гараже, вторая – на маршруте. При выезде из гаража вводится номер автобуса, и соответствующая запись переносится в другую базу данных, аналогичная операция производится при возвращении автобуса с маршрута. Список всех имеющихся автобусов хранится в файле, в начале рабочего дня все автобусы находятся в гараже.

6.23. Реализуйте двунаправленную очередь как класс. Используя механизм наследования, реализуйте на базе очереди картотеку абонентов междугородней телефонной станции, содержащей сведения о телефонах и их владельцах.

Программа должна обеспечивать:

1) начальное формирование картотеки;

2) вывод всей картотеки;

3) ввод номера телефона и времени разговора;

4) вывод извещения об оплате, содержащего фамилию и сумму.

6.24. Реализуйте двунаправленную очередь как класс. Используя механизм наследования, реализуйте на базе очереди каталог файлов с полями:

1) имя файла; 2) дата создания;

Программа должна обеспечивать:

1) начальное формирование каталога файлов;

2) вывод каталога файлов;

3) удаление фалов, «время жизни» которых больше определенного срока.

6.25.Реализуйте двунаправленную очередь как класс. Используя механизм наследования, реализуйте на базе очереди автоматизированную информационную систему железнодорожного вокзала, содержащую сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:

1) номер поезда;

2) станция назначения;

3) время отправления.

Программа должна обеспечивать:

1) первоначальный ввод данных и формирование списка по времени отправления;

2) вывод всего списка;

3) вывод по номеру поезда всех данных о нем;

4) вывод информации обо всех поездах до данной станции назначения.

Задание 7.

· Необходимо построить иерархию классов согласно схеме наследования, приведенной в варианте задания.

· Каждый класс должен содержать инициализирующий конструктор и функцию show для вывода значений.

· Функция main должна иллюстрировать иерархию наследования.

7.1. Лабораторная работа №4 «Наследование» - student2.ru 7.2. Лабораторная работа №4 «Наследование» - student2.ru
7.3. Лабораторная работа №4 «Наследование» - student2.ru 7.4. Лабораторная работа №4 «Наследование» - student2.ru
7.5. Лабораторная работа №4 «Наследование» - student2.ru 7.6. Лабораторная работа №4 «Наследование» - student2.ru
7.7. Лабораторная работа №4 «Наследование» - student2.ru 7.8. Лабораторная работа №4 «Наследование» - student2.ru
7.9. Лабораторная работа №4 «Наследование» - student2.ru 7.10. Лабораторная работа №4 «Наследование» - student2.ru
7.11. Лабораторная работа №4 «Наследование» - student2.ru 7.12. Лабораторная работа №4 «Наследование» - student2.ru
7.13. Лабораторная работа №4 «Наследование» - student2.ru 7.14. Лабораторная работа №4 «Наследование» - student2.ru
7.15. Лабораторная работа №4 «Наследование» - student2.ru 7.16. Лабораторная работа №4 «Наследование» - student2.ru
7.17. Лабораторная работа №4 «Наследование» - student2.ru 7.18. Лабораторная работа №4 «Наследование» - student2.ru
7.19. Лабораторная работа №4 «Наследование» - student2.ru 7.20. Лабораторная работа №4 «Наследование» - student2.ru
7.21. Лабораторная работа №4 «Наследование» - student2.ru 7.22. Лабораторная работа №4 «Наследование» - student2.ru
7.23. Лабораторная работа №4 «Наследование» - student2.ru 7.24. Лабораторная работа №4 «Наследование» - student2.ru
7.25. Лабораторная работа №4 «Наследование» - student2.ru  

Указания к решению (вариант 25)

class B{

int a;

public:

B() { };

B(int x) { a=x; }

void show_B() { cout <<"B= "<< a << "\n"; }

};

class D1: public B {

int b;

public:

D1(int x, int y) : B(y) { b=x; };

void show_D1() { cout <<"D1= "<< b << "\n"; show_B();}

};

class D2: private B{

int c;

public:

D2(int x, int y) : B(y) { c=x; };

void show_D2() { cout <<"D2= "<< c << "\n"; show_B();}

};

class D3: private D1, public D2 {

int d;

public:

D3(int x, int y, int z, int i, int j) : D1(y,z), D2(i,j) { d=x; }

void show_D3() { cout << "D3= "<<d << "\n"; show_D1(); show_D2();}

};

class D4: public D2, private D1 {

int e;

public:

D4(int x, int y, int z, int i, int j) : D1(y,z), D2(i,j) { e=x; }

void show_D4() { cout <<"D4= "<< e << "\n"; show_D1(); show_D2();}

};

void main() {

setlocale(LC_ALL,"Russian");

D3 temp(100,200,300,400,500);

D4 temp1(1,2,3,4,5);

cout << "D3 temp(100,200,300,400,500);\n";

cout << "D4 temp1(1,2,3,4,5);\n";

cout<< "\nСледуя иерархии класса D3: \n";

temp.show_D3();

cout<< "\nСледуя иерархии класса D4\n";

temp1.show_D4();

system("Pause");

}

Наши рекомендации