Пример использования класса List
using System;
using System.Collections.Generic;
class Program {
static void Main() {
List<int> lint = new List<int>();
lint.Add(5);
lint.Add(1);
lint.Add(3);
lint.Sort();
int a = lint[2];
Console.WriteLine(a);
foreach (int x in lint)
Console.Write( x + " ");
}
}
Вывод:
1 3 5
Задание
1. Составить программу на языке C# для обработки структурированных данных с помощью классов-коллекций. В программе согласно индивидуальному заданию (табл. 15):
определить базовый класс как абстрактный;
ввести в абстрактный класс дополнительный абстрактные методы для изменения значений полей класса.
в производных классах переопределить наследуемый метод для специализированной операции изменения полей класса (операции выбрать самостоятельно).
2. Создать класс по принципу «включение-делегирование», содержащий коллекцию производных от базового абстрактного класса объектов. Для реализации выбрать один из предложенных в табл. 15 производных классов. Описать следующие методы:
добавления в коллекцию новых объектов;
изменения свойств и полей имеющихся объектов по номеру объекта в коллекции;
удаление из коллекции объекта по его номеру;
вывода информации об имеющихся в коллекции объектах.
3. Продемонстрировать работу класса, построенного по принципу «включение-делегирование». Для этого в методе Main реализовать текстовое меню для выбора одного из возможных действий:
добавить в коллекцию объект (производного класса).
внести изменения в характеристики объекта коллекции.
удалить объект из коллекции.
вывести сведения по имеющимся в коллекции объектам.
выход из программы.
Реализация текстового меню рассмотрена в разделе в разделе Организация пользовательского интерфейса.
4. Разработать модульный тест для проверки работоспособности заданного метода обработки данных, в том числе для контроля исключений. Результаты тестирования сохранить в файле test.log.
5. В отчете представить:
листинг программы;
описание различий в работе конструкторов базового и производного классов;
распечатку результатов работы метода Main по каждому пункту меню;
описание тестирования и распечатки файла test.log;
выводы по работе.
Таблица 15. Варианты индивидуальных заданий к лабораторной работе №12
№ вар. | Класс-коллекция | Базовый абстрактный класс | Производные классы (дополнительные атрибуты) | Метод для тестирования |
Книжный магазин | печатное издание (издательство, число страниц) | книга (авторы, ISBN), журнал (периодичность издания, ISSN) | Добавление | |
Магазин | товар (количество, стоимость) | продуктовые товары (калорийность), бытовая химия (срок годности), одежда (размер, фасон) | Изменение | |
Парк ЭВМ | компьютер (тактовая частота, объем оперативной памяти) | десктоп (тип корпуса) ноутбук (время работы батареи) планшет (операционная система) | Удаление | |
Транспортная компания | транспортное средство (год выпуска, дата последнего ремонта) | автомобиль (число осей), поезд (число вагонов), судно (водоизмещение) | Добавление | |
Зоопарк | животное (номер, возраст, кличка) | млекопитающие (наличие когтей, наличие рогов), птицы (размах крыльев, осёдлость), насекомые (наличие крыльев) | Изменение | |
Порт | судно (имя, водоизмещение) | военный корабль (число орудий), танкер (вместимость), катер (число пассажирских мест) | Удаление | |
Автопарк | автомобиль (модель, год выпуска, число мест, госномер) | грузовой автомобиль (грузоподъемность) рейсовый автобус (номер рейса), заказной автобус (номер заказа) | Добавление | |
Студенческая группа | студент (фамилия, имя, курс и ид. номер) | студент-практикант (вид практики, наименование предприятия) студент-дипломник (тема ВКР, ФИО руководителя) | Изменение | |
Магазин «Соки-Воды» | напиток (производитель, цена) | сок (ингредиенты), минеральная вода (показатель pH), газированный напиток (степень газированности) | Удаление | |
Парк самолетов | самолет (модель, максимальная дальность полета) | военный самолет, пассажирский самолёт, спортивный самолет | Добавление | |
Библиотека программ для ЭВМ | компьютерная программа (название, объем кода, язык программирования) | служебная программа (версия программы, дата обновления) прикладная программа (назначение, категория пользователей) | Изменение | |
Кафедра в вузе | преподаватель вуза (ФИО, должность, ученая степень, дата прохождения медосмотра) | свободный преподаватель (объем почасовой работы); преподаватель, работающий в администрации вуза (административная должность) | Удаление | |
Жилой массив | здание (число этажей, материал стен, адрес) | жилое здание (число подъездов, число квартир на этаже) промышленное здание (число и дата заправки огнетушителей), | Добавление | |
Салон мобильной связи | мобильный телефон (производитель, время работы батареи) | кнопочный телефон (число кнопок, наличие/отсутствие камеры) смартфон (версия ОС, дата обновления ПО) | Изменение | |
Университет | учащийся (ФИО, дата рождения) | бакалавр (ФИО тьютора), магистрант (ФИО научного руководителя), аспирант (научная специальность) | Удаление | |
Больница | медицинский работник (ФИО, пол, возраст, стаж) | медсестра (медицинская специализация) врач (медицинская специальность, категория, дата повышения квалификации) зав. отделением (число подчиненных) | Добавление | |
Департамент | работник (ФИО, общий стаж) | штатный работник (дополнительные обязанности), внутр. совместитель (департамент штатной работы), внеш. совместитель (осн. место работы), руководитель (дата повышения квалификации по менеджменту) | Изменение | |
Фотомагазин | фотоаппарат (модель, стоимость, вес) | пленочный (наличие вспышки, тип пленки) зеркальный фотоаппарат (тип резьбы объектива) | Удаление | |
Энергосистема страны | электростанция (дата ввода в эксплуатацию, проектная мощность) | АЭС (число и тип реакторов) ГЭС (число и мощность турбин) ТЭЦ (вид топлива, КПД) | Добавление | |
Химический кабинет | жидкие реактивы (название, плотность, цвет, запах) | кислотные (концентрация), летучие (скорость испарения) | Изменение |
Контрольные вопросы
1. Что такое включение, какого вида бывают включения?
2. Что такое делегирование?
3. Что такое класс-коллекция?
4. Раскрыть механизм включения-делегирования на конкретном примере.
5. Перечислите и прокомментируйте основные методы класса List.
Дата добавления: 2021-12-14; просмотров: 534;