Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВП2_ИУС13 / ВП2_лр2_ИУС13а

.doc
Скачиваний:
5
Добавлен:
03.03.2016
Размер:
71.68 Кб
Скачать

ВП2_ЛР№2 ИУС13а

Лабораторная работа №2

Интерфейсы. Применение коллекций в С#. ”

Цель: закрепить теоретические знания и приобрести практические навыки использования коллекций в С#. Создание собственных делегатов и событий.

Задание к лабораторной работе:

1. Построить класс (при необходимости - иерархию классов) для описания объекта, указанного в варианте. Среди методов обязательно наличие конструктора с параметрами, свойства – получение всех полей объекта.

2. Реализовать механизм интерфейсов, как минимум 2 интерфейса (например, ввода-вывода и сортировки по указанному признаку).

3. Разработать набор классов, позволяющих сравнивать объекты класса по разным критериям. Класс, описывающий объект по варианту, должен содержать процедуру-свойство, которая создает экземпляр соответствующего класса.

4. Контейнерный управляющий класс для работы с объектами должен быть реализован на базе заданной структуры данных и должен содержать методы, обеспечивающие сохранение информации в файле и считывание из файла, отображение на экране, а также методы, обеспечивающие выполнение со структурой действий, указанных в задании. Сортировка объектов в контейнерном классе по разным критериям должна быть реализована в виде функции высших порядков, функциональный аргумент задать делегатом, определяющим класс функций сравнения.

5. Для демонстрации работы с методами контейнерного класса предусмотреть соответствующие пункты меню.

Варианты заданий:

Объект, поля

Структура данных

Обработка

1

Такси в таксопарке.

Поля – Марка машины, номер, ФИО водителя, пробег.

SortedList

Обеспечить создание списка, используя номер машины как ключ. Сформировать список машин одной марки. Определить машину с максимальным и минимальным пробегом и удалить их из списка.

2

Телепередачи. Поля – время эфира, категория, название, ведущий

Queue

Извлекать программы из очереди. Если время эфира оказывается меньше только что извлеченной программы, то удалить из очереди. Сформировать список названий программ.

3

Пользователи компьютерной сети. Поля – ФИО, адрес, IP, сумма на счету.

SortedList

Выдать IP пользователя с указанным логином. Выдать список всех, у кого на счету сумма выше заданной. Всех, у кого сумма ниже заданной, удалить из списка

4

Фрукты.

Поля – вид, сорт, зрелость, цена за кг.

ArrayList

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

5

Статьи толкового словаря. Поля - термин (ключ), пояснение (значение)

SortedList

Обеспечить выдачу пояснения по указанному термину. Удалить все термины, описание которых менее указанного числа символов и более указанного числа символов

6

записи о возрасте людей (имя – ключ, возраст – значение)

SortedList

Вывести список имен людей, у которых возраст старше заданного. Удалить из списка всех людей с нечетным возрастом и посчитать, сколько раз встречаются лица с одинаковым возрастом

7

авиабилеты. Поля – ФИО, номер рейса, пункт назначения, цена билета

ArrayList.

Для всех билетов, имеющих указанный пункт назначения вывести цены. Удалить из списка все билеты на указанный номер рейса. Вставить в указанную позицию в список нов. билет

8

книги. Поля – автор, год издания, кол-во страниц

SortedList (ключ - название книги)

Вывести все книги одного указанного автора, сформировать список уникальных авторов. Определить среднее количество страниц и удалить все книги, у которых страниц меньше

9

Покупатели. Поля – ФИО, сумма денег, кол-во артикулов, которые желает приобрести

Queue

Обеспечить обслуживание всех покупателей в очереди. Если у покупателя денег меньше, чем некоторая стоимость товара, то покупатель ставится в новую очередь, иначе считается обслуженным – его сумма уменьшается и покупатель ставится в другую очередь. В очереди необслуженных определить покупателя с минимальным количеством артикулов и переставить его в конец очереди. Обе очереди вывести на экран.

10

Грузы. Поля – масса, тип, хрупкий/не хрупкий

Stack

Считая стек вагоном заданной грузоподъемности, загрузить в вагон грузы, не выше норматива. Обеспечить перегрузку в три новых вагона, рассортировав грузы по весу (малый, средний, большой). При перегрузке удалить все хрупкие товары. Содержимое трех вагонов вывести на экран

11

Исходные данные - текст, вводимый пользователем (без знаков препинания). Разбить на слова и составить словарь частоты появления слов в тексте

SortedList

Обеспечить подсчет средней и максимальной длины слова. Затем удалить все слова, короче 4 букв. Посчитать по частоте появления данные для построения гистограммы на 10 интервалах

12

Рабочие. Поля – ФИО, возраст, зарплата, стаж работы, должность ,инвентарный номер (ключ)

SortedList

Реализовать подсчет среднего стажа, средней зарплаты. Удаление из списка рабочего с указанным инвентарным номером или всех рабочих, возраст которых выше заданного

13

Электронные письма.

Поля – адрес получателя, адрес отправителя, размер, содержимое

Queue

Обеспечить наполнение очереди сообщениями. Осуществить отправку сообщений из очереди, если размер письма превышает заданный, то поместить его в новую очередь, которую затем вывести на экран. Составить список уникальных адресов и вывести его на экран

14

Документы .Поля - название, дата рассмотрения, ФИО подписывающего

Stack

Обеспечить подписание документов с датой рассмотрения не позже указанной. Составить список уникальных названий документов и ФИО, вывести их на экран.

15

Счета в банке. Поля – ФИО, идентификационный номер, сумма

ArrayList

Каждому второму владельцу счета увеличить сумму на счету на 20%, а каждому третьему - уменьшить на 30%. Все счета, сумма на которых меньше заданной, удалить. Добавить в список новые счета, если в списке уже есть счет на такие же ФИО, то вставить в список сразу же за уже существующим счетом.

16

База телефонных номеров (7 –значных) в структуре SortedList, используя номер как ключ, а ФИО – как значение

SortedList

Вывести всех абонентов имеющих одинаковые 2, 3, 4, последние цифры номера. Удалить абонентов с указанными ФИО. Вывести номера в списке для абонентов, у которых все цифры номера одинаковые.

17

Студенты. Поля – ФИО, группа, курс, средний бал, специальность, сумма стипендии

ArrayList

Сформировать список студентов на отчисление, имеющих средний бал меньше заданного. Для студентов имеющих бал 5.0 увеличить стипендию на 25%, а имеющих бал 3.0. и ниже уменьшить на 100%. Вывести список студентов указанной группы или указанного курса

18

Лекарства. Поля – срок годности, стоимость, вид применения, форма выпуска

SortedList

(ключ - название)

Сформировать список всех лекарств с указанной формой выпуска. Удалить из списка все лекарства, у которых истек срок годности. Сформировать еще один список с клавиатуры и вставить его в существующий в указанное место

19

Изделия на конвейере. Поля – наименование, масса, учетный номер, стадия обработки

Queue

Обеспечить обработку изделий, имеющих стадию обработки, равную заданной. Изделия, имеющие меньший номер – поместить в конец очереди, увеличив стадию на 1. Изделия, имеющие больший номер – удалить из очереди. Определить среднюю массу изделия в очереди. Определить, имеется ли в оочереди изделие с указанным номером

20

Заявки на техническое обслуживание. Поля – дата, тип проблемы, адрес заявителя, номер оператора, принявшего заявку

SortedList (ключ - уникальный номер заявки)

Вывести перечень заявок для каждого оператора. Удалить заявки, которые поступили до некоторой даты. Сформировать уникальный список типов проблем.

21

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

ArrayList

Сформировать список программ, частота использования которых, выше заданной. Осуществить запуск программы с указанным именем (увеличить ч-ту использования. три программы с самой давней датой удалить из списка

22

ж/д билеты. Поля - номер поезда, пункт назначения, вагон, место, цена билета

ArrayList.

Для всех билетов, имеющих указанный пункт назначения вывести цены. Удалить из списка все билеты на указанный номер поезда. Вставить в указанную позицию в список нов. билет

23

Исходные данные - текст, вводимый пользователем (без знаков препинания). Разбить на слова и составить словарь частоты появления слов в тексте

SortedList

Обеспечить подсчет средней и максимальной длины слова. Затем удалить все слова, короче 4 букв. Посчитать по частоте появления данные для построения гистограммы на 10 интервалах

24

Проекты. Поля – название, дата начала разработки, ФИО разработчиков, дата завершения, ФИО руководителя, стоимость

SortedList

Реализовать подсчет средней стоимости проетов, количества разработчиков. Удаление из списка проекта с указанным номером или всех проектов, дата завершения которых меньше текущей

25

Электронные письма.

Поля – адрес получателя, адрес отправителя, размер, содержимое

Queue

Обеспечить наполнение очереди сообщениями. Осуществить отправку сообщений из очереди, если размер письма превышает заданный, то поместить его в новую очередь, которую затем вывести на экран. Составить список уникальных адресов и вывести его на экран

Соседние файлы в папке ВП2_ИУС13