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

6020

.pdf
Скачиваний:
0
Добавлен:
21.11.2023
Размер:
698.82 Кб
Скачать

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

Цель работы: научиться работать со структурами.

Задание. Разработать консольное приложение «Записная книжка», включающее класс ContactBook и Program. В классе ContactBook должны быть следующие поля:

-имя,

-мобильный телефон,

-домашний адрес,

-рабочий адрес.

При этом поля имя и адрес должны быть реализованы с помощью структур: имя (Фамилия, Имя, Отчество); адрес (индекс, страна, город, улица, дом, квартира/офис).

Структуры должны иметь методы возвращающие поля структур: Фамилия+Имя+Отчество и индекс+страна+город+улица+ дом+квартира/офис, соответственно.

Класс Program должен позволить заполнить записную книжку данными на несколько человек и вывести все записи из неё.

Контрольные вопросы

1.Опишите назначение структур.

2.Что общего у структур и классов?

3.Чем структуры отличаются от классов?

4.Опишите порядок создания структуры.

10

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

Цель работы: научиться работать с перегруженными методами.

Задание. Разработать консольное приложение «Фигура», позволяющее по введённым из консоли длинам сторон определять вид фигуры (круг, прямоугольник, треугольник) и вычислять её периметр и площадь. Приложение должно состоять из класса Program и класса Figura.

Класс Figura должен включать публичные перегруженный конструктор, свойство Vid и два метода, вычисляющих периметр(P()) фигуры и её площадь (S()). Класс должен иметь три конструктора (для круга, прямоугольника и треугольника), которые формально различаются количеством параметров. Свойство Vid должно возвращать одно из следующих значений: круг, прямоугольник, треугольник, несуществующий треугольник.

В классе Program вводятся из консоли длины сторон (для круга радиус), создаётся экземпляр класса Figura, в конструктор которого передаются длины стороны. При вводе сторон класс Program должен проанализировать введённые стороны и вызвать соответствующий конструктор (для круга, прямоугольника и треугольника). Класс Program должен вызывать свойство Vid и методы P() и S() и выводить их значения в консоль.

Контрольные вопросы

1.Что такое перегрузка метода?

2.Сколько перегрузок может быть у одного метода?

3.Какие ограничения накладываются на параметры перегруженного метода?

11

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

Цель работы: научиться проектировать классы и работать с массивами объектов и необязательными именованными аргументами.

Задание. Разработать консольное приложение «Приказ», моделирующее прохождение военных через пункт связи.

Необходимо создать группу военных, каждый из которых имеет некоторое звание и приказ, которые задаются с помощью генератора случайных чисел при создании каждого военного. Они по очереди заходят в пункт связи, в котором может быть оставлен некоторый приказ. Если в пункте связи приказа нет, то вошедший военный оставляет свой приказ. Если приказ оставлен вышестоящим по званию, то вошедший военный забирает оставленный приказ, а имеющийся у него приказ аннулируется. В противном случае он оставляет свой приказ. Если звания военных равны, то изменений не происходит и военных уходит из пункта связи со своим же приказом. Исключение составляет наличие у военного приказа с высшим приоритетом (передаётся с необязательным именованным аргументом), который не может быть «перебит» даже вышестоящим званием и остаётся в пункте связи в любом случае.

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

Вывести список военных с приказами до посещения пункта связи и после. Пункт связи ведёт статистику: сколько военных и в каких званиях его посетили и как менялись приказы.

Контрольные вопросы

1.Какими средствами можно сгенерировать случайное число?

2.Что такое необязательный аргумент?

3.Что такое именованный аргумент?

4.Может ли именованные аргумент быть необязательным?

12

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

Цель работы: научиться проектировать классы, в том числе статические классы, и работать с массивами объектов.

Задание. Разработать консольное приложение «Карьер», моделирующее движение вагонеток с полезными ископаемыми и их учёт.

Вкарьере разрабатывается порода, которая грузится в одинаковые вагонетки некоторого объёма (одномерный массив заданной размерности), заполненный элементами разных пород (случайные целые числа от 1 до 9). В породе могут быть разные полезные ископаемые (пусть будут три вида полезных ископаемых - 3, 5 и 7). Вагонетки последовательно проходят через систему, определяющую количество каждого вида полезных ископаемых и маркирующую этими данными вагонетку. Далее вагонетки проходят через систему учёта, которая суммирует данные о каждом виде полезных ископаемых со всех проходящих вагонеток.

Вприложении должны быть реализованы следующие классы: вагонетка; система, определяющая количество каждого вида полезных ископаемых; система учёта. Системы определения и учёта должны быть реализованы как статические классы. Необходимо выводить данные о количестве полезных ископаемых.

Контрольные вопросы

1.Что такое статический класс и в чём отличие от нестатического класса?

2.Как создать статический класс?

3.Что такое статический метод и в чём отличие от нестатического метода?

4.Что такое статический конструктор?

13

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

Цель работы: научиться проектировать классы, в том числе статические классы, передавать в методы объекты, а также переопределять виртуальные методы.

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

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

-средний балл каждого студента;

-средний балл по каждому предмету по группе;

-средний балл по всей группе и всем предметам;

-перечень студентов, имеющих хотя бы один несданный (балл менее 2,5) экзамен.

Информация из зачётной книжки должна выводиться переопределённым в классе MarkBook методом ToString(). Информация из сводной ведомости выводится переопределённым в классе TotalMarkList методом ToString().

Контрольные вопросы

1.Чем отличается передача аргумента методу по ссылке от передачи по значению?

2.Что такое виртуальный метод и для чего он нужен?

3.Какие виртуальные методы Вы знаете?

4.Как можно переопределить виртуальный метод?

14

ЧАСТЬ 2. ПРИЛОЖЕНИЯ WINDOWS FORM

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

Цель работы: научиться создавать простые однооконные приложения.

Задание. Написать windows form приложение для решения квадратного уравнения вида ax2+bx+c=0.

Ориентировочный внешний вид приложения приведён на рисунке.

Коэффициенты a, b, c вводятся в соответствующие TextBox'ы. На форме также должны выводиться значения дискриминанта и корней уравнения или сообщении о том, что действительных корней не существует.

Контрольные вопросы

1.Какие элементы управления Вы знаете?

2.Какие свойства текстового поля Вы знаете?

3.Какие свойства надписи Вы знаете?

4.Какие свойства кнопки Вы знаете?

5.Что такое обработчик событий?

15

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

Цель работы: научиться создавать приложения, включающие несколько форм, и осуществлять взаимодействие между формами.

Задание. Написать приложение - мессенджер, включающее несколько форм и обеспечивающее обмен текстовыми сообщениями между ними.

Ориентировочный внешний вид приложения приведён на рисунке.

16

Сообщение вводятся в соответствующее текстовое поле на форме - отправителе и по нажатию кнопки Send текст сообщения должен отобразиться в окне формы получателя с указанием даты и времени. Предусмотреть передачу сообщения между всеми формами.

Контрольные вопросы

1.Как создать новую форму?

2.Сколько форм можно создать на базе класса Form1?

3.Как передать значение элемента управления с одной формы на другую?

17

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

Цель работы: научиться динамически (программно) создавать элементы управления на форме и их обрабатывать.

Задание. Написать иргу «Тир». В начале игры пользователь задаёт размер (ширина и высота) сетки из элементов – мишеней и скорость перемещения активной мишени (влияет на уровень сложности игры). В качестве мишеней можно использовать, например, кнопки. Скорость перемещения можно задать через выпадающий список. После нажатия кнопки «Start» на форме появляется сетка из элементов – мишеней заданного размера серого цвета, на которой с заданной скоростью в случайном порядке одна из мишеней меняет цвет на красный. Мишень красного цвета является активной.

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

18

форме не остаётся ни одной мишени. Цель игры набрать максимальное количество баллов. Набранное количество баллов должно отображаться на форме в виде числа или прогресс-бара.

Ориентировочный внешний вид приложения приведён на рисунке.

Контрольные вопросы

1.Опишите механизм программного создания элемента управления на форме.

2.Как программно создать массив элементов управления?

3.Как реализовать обработку однотипных событий массива элементов управления на форме?

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]