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

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

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

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

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

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

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

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

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

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

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

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

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

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

Объект, поля

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

Обработка

1

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

SortedList

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

2

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

SortedList

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

3

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

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

Queue

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

4

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

Stack

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

5

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

ArrayList

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

6

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

SortedList

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

7

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

ArrayList

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

8

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

SortedList

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

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

9

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

Queue

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

10

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

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

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

11

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

ArrayList

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

12

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

ArrayList.

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

13

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

SortedList

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

14

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

SortedList

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

15

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

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

Queue

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

16

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

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

SortedList

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

17

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

Queue

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

18

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

SortedList

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

19

Фрукты.

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

ArrayList

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

20

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

SortedList

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

21

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

SortedList

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

22

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

ArrayList.

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

23

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

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

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

24

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

Queue

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

25

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

Stack

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

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