Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_1 / Зад_ лаб_ ООП_11.doc
Скачиваний:
50
Добавлен:
10.02.2016
Размер:
164.35 Кб
Скачать

Задания к лабораторным работам по ооп

Лабораторная работа №1 ”Класы. Язык С++” (2ч.)

Исходные данные для лабораторной работы

Заводом выпускаются различные измерительные приборы. Каждый прибор может характеризоваться приведенными ниже данными.

1.Наименование прибора.

  1. Габариты: длина, высота, ширина.

  2. Вес.

  3. Стоимость.

  4. Гарантийный срок.

  5. Диапазон температур: tmin, tmax.

  6. Источник питания: напряжение, ток, частота.

  7. Измерения. Имеется несколько измеряемых величин. Каждая характеризуется:

названием измеряемой величины;

нижним пределом;

верхним пределом;

погрешностью.

  1. Покупные изделия. Имеется несколько покупных изделий. Каждое характеризуется:

названием;

количеством;

названием поставщика

  1. Заказчик. Имеется несколько заказчиков. Каждый характеризуется:

Наименованием;

адресом;

количеством заказанных приборов.

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

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

Выполнение лабораторной работы

Создать класс в соответствии с заданием. Предусмотреть 2 - 3 конструктора, методы изменения и извлечения данных, представляющих свойства прибора. Создать несколько объектов класса. Продемонстрировать работу с объектами.

Таблица 1. Характеристики приборов, реализуемые в вариантах заданий

№ варианта

Характеристики прибора

№ варианта

Характеристики прибора

1

1,9

15

1,10

2

1,4,8

16

1,2,10

3

1,4,9

17

1,2,9

4

1,3,4

18

1,2,6

5

1,2,3

19

1,2,4

6

1,3,4

20

1,9

7

1,2,9

21

1,2,5

8

1,10

22

1,5,6

9

1,2,8

23

1,2,3

10

1,3,8

24

1,3,4,7

11

1,4,7

25

1,10

12

1,2,3,7

26

1,3,9

13

1,9

27

1,4

14

1,8

28

1,3,6

Лабораторная работа №2 „Наследование. Язык С++”(4ч)

Исходные данные для лабораторной работы

Используютя исходные данные для лабораторной работы №1. Кроме этого, используются дополнительные характеристики прибора, приведенные в таблице 2.

Таблица 2. Дополнительные характеристики приборов

№ варианта

Дополнительные характеристики прибора

№ варианта

Дополнительные характеристики прибора

1

5

15

3

2

9

16

7

3

6

17

5

4

7

18

3

5

8

19

8

6

2,5

20

4

7

7

21

7

8

7

22

10

9

6

23

9

10

4

24

5,6

11

2

25

4

12

8

26

5

13

3

27

10

14

2

28

8

Выполнение лабораторной работы

  • Создать иерархию из трёх классов (Абстрактный ←Класс1←Класс2). Характеристики прибора из таблицы 1 реализуются в первых двух классах. Характеристики прибора из таблицы 2 реализуются в классах Абстрактный и Класс1.

  • Определить виртуальную функцию в Абстрактном классе.

  • Реализовать абстрактные функции для объектов Класса1 и Класса2.

  • Продемонстрировать работу с объектами разных классов и использование виртуальных функций.

Лабораторная работа №3 „Динамические экземпляры объектов. Язык С++” (2ч.)

Исходные данные для лабораторной работы

Класс1 содержит данные из следующего набора:

1.int

2.int *

3.double

4.double *

5.char

6.char *

7.float

8.float *

Объекты Класса1 являются элементами списка, который также является классом.

Над списком могут быть выполнены следующие операции:

1.Добавление элемента в начало списка.

2.Добавление элемента в конец списка.

3.Добавление элемента после заданного.

4.Удаление элемента в начале списка.

5.Удаление элемента в конце списка.

6.Удаление элемента с определенными данными.

7.Поиск элемента по полю данных.

8.Контроль размера выделенной памяти.

9.Изменение данных в указанном элементе.

10.Удаление элемента после заданного.

11.Выборочная распечатка списка (к элементов с начала).

12.Выборочная распечатка списка (к элементов с конца).

13.Выборочная распечатка списка (все элементы с заданным значением поля).

14.Удаление списка.

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

Вариант Данные Класса1 Операции со списком

1 1,4,6 1,4,8

2 2,3,6 2,5,9

3 1,3,6 1,6,12

4 3,4,5 2,14,13

5 2,3,4 1,5,6

6 1,5,6 2,4,9

7 4,5,6 1,14,3

8 3,5,6 2,6,10

9 1,2,3 1,4,7

10 1,3,4,6 2,5,11

11 3.6.8 1.6.13

12 2,3,8 2,14,3

13 4,7,8 1,5,7

14 6,7,8 2,4,10

15 7,8,4 1,14,6

16 3,8,2 2,6,11

17 2,7,1 1,4,9

18 4,5,8 2,5,8

19 1,2,7 1,6,13

20 3,4,5 2,14,7

21 5,6,8 1,5,14

22 4,6,1 2,4,11

23 3,6,8 1,14,7

24 1,2,6 2,6,12

25 7,8,2 1,4,11

26 2,4,5 2,5,14

27 3,5,7 1,6,14

28 1,2,8 2,5,11

29 5,6,7 1,4,7

30 4,6,8 2,3,8

Выполнение лабораторной работы

Создать Класс1, который должен содержать конструктор, деструктор, а также методы извлечения и установки данных.

Создать класс Список, где каждый элемент представляет собой объект Класса1

Elem 1 Elem 2 Elem n

Реализовать в классе Список конструктор, деструктор, распечатку всего списка, а также методы, реализующие операции со списком

Лабораторная работа №4 Переопределение операций. Язык С++ (2ч.)

Исходные данные для лабораторной работы

Класс Строка должен включать данное типа строка символов - S и уметь обрабатывать параметр методов типа строка символов - S1. Для этого в нём должны быть реализованы следующие операции над строками.

1.Присоединение S1 к S справа.

2.Удаление из S1первых n символов.

3.Замена первых n символов на некоторый символ.

4.Удаление из S1последних n символов.

5.Вставка S1 в после n-го символа.

6.Замена последних n символов на некоторый символ.

7.Замена всех символов с четными номерами на некоторый символ.

8.Замена всех символов с нечетными номерами на некоторый символ.

9.Запись строки в обратном порядке.

10.Замена в строке всех строчных букв латинского алфавита на прописные.

11.Замена в строке всех прописных букв латинского алфавита на строчные.

12.Определение длины S.

13.Присваивания S значения S1.

14.Удаление из строки всех десятичных цифр.

15.Удаление из строки всех шестнадцатеричных цифр.

16.Удаление из строки всех букв латинского алфавита.

17.Удаление из строки всех букв русского алфавита.

18.Удаление из строки всех знаков арифметических операций.

19.Удаление из строки всех знаков операций отношения.

20.Выполнение операции “равно” для двух строк.

21.Выполнение операции “больше” для двух строк.

22.Выполнение операции “меньше” для двух строк.

23.Перестановка символов в строке в соответствии с возрастанием их кодов.

24.Перестановка символов в строке в соответствии с убыванием их кодов.

25.Сокращение строки S на длину строки S1 слева.

26.Сокращение строки S на длину строки S1 справа.

27.Удаление из строки всех символов псевдографики.

28.Замена в строке всех строчных букв русского алфавита на прописные.

29.Замена в строке всех прописных букв русского алфавита на строчные.

30.Присоединение S1 к S слева.

31.Проверка вхождения S1 в S.

32.Подсчет вхождений S1 в S.

33.Подсчет символов в S1, которые содержатся в S.

34.Подсчет одинаковых символов в S и S1, занимающих одинаковые позиции.

35.Удаление из строки первых n символов.

36.Удаление из строки символов, расположенных симметрично относительно середины строки.

37.Удаление из строки n символов слева и n символов справа.

38.Перестановка в строке n последних символов в начало.

39.Перестановка в строке n первых символов в конец.

40.Обмен в строке первых n символов на n последних и наоборот.

41.Замена в строке первых n символов символом с наибольшим кодом из составляющих строку.

42.Замена в строке последних n символов на символ с наибольшим кодом из составляющих строку.

43.Замена в строке первых n символов на символ с наименьшим кодом из входящих в строку.

44.Замена в строке последних n символов на символ с наименьшим кодом из входящих в строку.

Студент выбирает набор операций над строками, которые ему нужно реализовать из следующей таблицы.

Вариант Набор операций Вариант Набор операций

1 15,3,20,36 15 18,4,1,39

2 16,4,21,37 16 23,30,32,38

3 17,7,22,38 17 27,7,33,37

4 18,8,30,39 18 9,8,34,36

5 23,25,31,40 19 10,25,20,40

6 27,26,1,41 20 11,26,21,41

7 9,3,32,42 21 28,30,22,39

8 10,4,33,43 22 29,331,42

9 11,7,34,44 23 15,4,32,38

10 28,8,20,44 24 16,7,33,43

11 29,25,21,43 25 17,8,34,37

12 15,26,22,42 26 18,1,20,44

13 16,1,30,41 27 29,25,21,30

14 17,3,31,40

Выполнение лабораторной работы

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

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

Создать объекты класса и продемонстрировать использование всех переопределенных операций.

Лабораторная работа №5 Статические данные и методы. Visual C++” (2ч.)

Используя задание к лабораторной работе №1 создать класс Прибор, описав некоторые данные как статические.

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

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

Лабораторная работа №6 „Конструирование меню в среде Visual C++” (2ч.)

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

По приведенным ниже формулам в зависимости от чиса N, представляющего собой порядковый номер студента в группе, определяется конфигурация меню:

-предметная область для которой создается меню

N mod 10 + 1

1.Просмотр файлов.

2.Редактирование файлов.

3.Построение графиков.

4.Архивация файлов.

5.Операции с матрицам.

6.Телефонный справочник.

7.Библиотека.

8.Справочная служба аэропорта.

9.Программа-переводчик.

10.Справочная служба ж.д. вокзала.

-Число пунктов в главном меню: N mod 3+3

-Число пунктов во вложенных меню:

максимальное - 6-N mod 3

минимальное 6-N mod 3 -2

-Создавать клавиши ускоренного (мнемонического доступа):

N mod 2 =0 - нет; N mod 2 =1 - да.

-Вводить акселераторы (клавишные эквиваленты пунктов меню):

N mod 2 =1 - нет; N mod 2 =0 - да.

-Использовать блокировку команд меню:

N mod 2 =0 - нет; N mod 2 =1 - да.

-Добавить справку в строку состояния:

N mod 2 =1 - нет; N mod 2 =0 - да.

Лабораторная робота №7 „Создание класса пользователя в среде Visual C++” (2ч.)

В соответствии с заданием для лабораторной работы №1 необходимо создать класс в среде Visual C++ . Продемонстрировать использование класса:

- создание объекта класса;

- изменение данных;

- просмотр данных.

Соседние файлы в папке OOP_1