Практическая работа №33, 34, 35
Название практической работы:создание классов, иерарархически связанных между собой
Цель работы: 1) освоить создание классов, связанных отношением наследования;
2) освоить написание конструкторов;
3) освоить переопределение методов
знания (актуализация)
· понятие класса;
· понятие наследования, понятия предка и потомка;
· правила работы с конструкторами иерархически связанных между собой классов;
· правила работы с методами;
умения:
· создавать и использовать иерархически связанные между собой классы в своих проектах.
Теоретический материал
Наследование – одна из основных характеристик объектно-ориентированного программирования. Когда новый класса становится потомком существующего, он наследует все незакрытые методы, свойства и поля своего предка. Новый класса затем можно расширять, добавляя или заменяя эти методы, поля и свойства. Все это, в конечном счете, позволяет значительно упростить программирование путем многократного использования кода.
Пример. Создать классы «фигура» и «треугольник» так, чтобы «фигура» был «предком», а «треугольник» - потомком.
Ход работы
1. Создайте проект для решения одной из приведенных ниже задач.
1.1. Проект, позволяющий работать с информацией по насекомым.
Для этого:
· создайте классы: «Насекомые», «Бабочки», «Пчелы»;
· создайте форму, которая позволяла бы вводить новые данные в библиотеку (в файлы «бабочки.txt» и «пчелы.txt»):
1) для «Бабочек»: вид («Апполон», «Мнемозины», «Тизания агриппина» и т.д.), размах крыльев, скорость передвижения, окраска, используемая пища, вид жилища, среда обитания;
2) для «Пчел»: порода или вид (среднерусская, дальневосточная, карпатская, итальянская и т.д.), длина хоботка, скорость передвижения, окраска, используемая пища, среда обитания, вид жилища, количество меда, собираемого с одного улья за сезон
· обеспечьте вывод данных по имеющейся в библиотеке литературе (из файлов «бабочки.txt» и «пчелы.txt»);
· определите:
1) породу самых быстрых пчел;
2) список и количество бабочек по выбранному виду жилища;
3) список и количество насекомых, обитающих в определенной местности;
4) бабочек с самым большим размахом крыльев;
5) одну (две) самых медоносных породы пчел (считая, что у всех пород пчел разная медоносность);
6) список пчел в порядке возрастания скорости передвижения (с указанием породы пчелы и ее скорости)
1.2. Проект, позволяющий работать с информацией по автомобилям.
Для этого:
· создайте классы: «Автомобили», «Легковые автомобили», «Грузовые автомобили»
· создайте форму, которая позволяла бы вводить новые данные в библиотеку (в файлы «легковые.txt» и «грузовые.txt»):
1) для «Легковых автомобилей»: марка, тип кузова (седан, универсал и т.д.), мощность двигателя, вид привода (передний, задний, полный), максимальная скорость, расход топлива;
2) для «Грузовых автомобилей»: марка, длина, ширина, высота и объем грузового отсека, мощность двигателя, грузоподъемность, вид привода (задний, полный);
· обеспечьте вывод данных по имеющейся в библиотеке литературе (из файлов «легковые.txt» и «грузовые.txt»);
· определите:
1) список и количество грузовых автомобилей с объемом кузова, большим введенного значения;
2) список и количество автомобилей по выбранному виду привода;
3) список и количество легковых автомобилей по выбранной марке;
4) самый быстрый легковой (грузовой) автомобиль;
5) список автомобилей с мощностью двигателя в определенных пределах;
6) список грузовых автомобилей в порядке убывания грузоподъемности (с указанием марки и грузоподъемности)
1.3. Проект, позволяющий работать с информацией по библиотечным изданиям.
Для этого:
· создайте классы: «Литература», «Книги» и «Газеты»;
· создайте форму, которая позволяла бы вводить новые данные в библиотеку (в файлы «книги.txt» и «газеты.txt»):
3) для книг: название, автора, год выпуска, объем в листах, количество штук в хранилище, количество выданных на руки экземпляров;
4) для газет: название, номер, дату выпуска и объем в листах;
· обеспечьте вывод данных по имеющейся в библиотеке литературе (из файлов «книги.txt» и «газеты.txt»);
· определите:
1) общее количество библиотечных изданий, хранящихся в библиотеке;
2) количество изданий по категориям (книги, газеты);
3) самое объемное издание в каждой категории;
4) список книжных изданий (с указанием их количества), полностью выданных на руки;
5) список книжных изданий самого раннего года выпуска;
6) информацию по изданиям, вышедшим в определенном году (по категориям);
7) все книги определенного автора;
8) список номеров определенной газеты за некоторый период времени;
9) список газет, хранящихся в библиотечном фонде и выпущенных до определенного года (после него).
1.4. Проект, позволяющий работать с информацией по студентам колледжа.
Для этого:
· создайте классы: «Человек», «Юноша» и «Девушка»;
· создайте форму, которая позволяла бы вводить новые данные по студентам колледжа (в файлы «юноши.txt» и «девушки.txt»):
1) для юношей: имя, фамилию, специальность, группу, вид спорта, оценки по двум предметам («ОАП» и «БД»);
2) для девушек: имя, фамилию, специальность, группу, рост, оценки по двум предметам (аналогично);
· обеспечьте вывод данных по студентам (из файлов «юноши.txt» и «девушки.txt»);
· определите:
1) список студентов (с указанием их количества) определенной группы;
2) количество студентов определенной специальности;
3) количество юношей и девушек в выбранной группе;
4) количество и процент студентов, сдавших все экзамены на «4» и «5» вообще (и по выбранной группе);
5) количество студентов, сдавших выбранный предмет в определенной группе на «3»;
6) название специальности, студенты которой лучше всего сдали «ОАП» (наибольшее количество отличников);
7) список девушек, которые могли бы заниматься в баскетбольной секции (рост должен быть не ниже 170 см);
8) название предмета, который был сдан лучше всего (по среднему баллу);
9) номера групп в порядке убывания средней успеваемости их студентов.
· добавьте возможность внесения новых данных по вновь зачисленным студентам.
2. Ответьте на контрольные вопросы:
- Что такое класс?
- Какие принципы объектно-ориентированного программирования вы знаете?
- Как вы понимаете суть наследования?
- Какие методы есть у любого класса?
- Каким ключевым словом необходимо снабдить метод предка, чтобы его потомки могли этот метод изменять?
- Назовите модификаторы видимости класса.
3. Оформите и сдайте отчет преподавателю.