Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Пример выполнения лабораторной работы. Организация программ с использованием классов

Задание 1

Организация программ с использованием классов

Цель задания

1. Изучение средств языка С++ для определения новых типов данных через механизм классов.

2. Получение навыков в написании программ с использованием классов.

Методические указания

Разработать программу, реализующую абстрактный тип данных, через механизм классов (для демонстрации использовать библиотеки graphics.h и conio.h).

А. Минимальное задание

1. Составить программу с использованием классов для реализации "бегущей" точки из левого верхнего угла экрана в нижний правый угол экрана по строкам. Цвет точки выбирается произвольно. Продемонстрировать работу двух конструкторов: обычного конструктора и конструктора по умолчанию. Сделать выводы.

2. Для классов: class Point {int x,y;

public:

Point (int a, int b) {x=a; y=b; };

…..

};

class Rect {Point lt, rb;

public:

Rect (Point a, Point b):lt(a), rb(b){ };

void draw(void);

};

доопределить соответствующие член-функции таким образом, чтобы, объявив в main-программе объект класса Rect, вызовом функции draw() можно было бы вычертить на экране прямоугольник с указанием заданных размеров с помощью псевдографических символов. Сделать выводы.

 
Символы псевдографики, требуемые для выполнения задания:

               
 
   
 
   
   
 
   
 
 
 

 


Требуемые библиотечные функции из conio.h: gotoxy(x,y) и putch(ch).

Б.Основное задание

– Выбрать объект. Объект выбирается согласно варианта.

– Спроектировать класс для программного представления таких объектов.

– Нарисовать его схему в нотации UML.

Варианты основного задания

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

2. Создайте класс, который поддерживает каталог библиотечных карточек. Этот класс должен хранить заглавие книги имя автора и выданное на руки число экземпляров книги. Заглавие и имя автора храните в виде строки символов, а количество экземпляров в виде целого числа. Включите в класс открытую функцию для запоминания информации о книгах, а такжеоткрытую функцию, которая выводит информацию на экран.

3. Создайте класс, реализующий стек символов. Сделайте стек длиной 10 символов. Члены класса: стек (массив символов), индекс вершины стека. Обязательны функции-члены класса дляинициализации стека (присваиваетиндексу нулевое значение), помещения значения в стек, выталкивания значения изстека. Продемонстрировать использование класса.

4. Создайте класс, с циклической очередью целых. Сделайте очередь длиной 100 целых. Члены класса: очередь (массив целых чисел), индекс вершины и индекс хвоста. Обязательны функции-члены классадля инициализации очереди (присваивает индексам нулевые значения), помещения значения в очередь, удаления значения из очереди. Продемонстрировать использование класса.

5. Создайте класс для имитации секундомера. Члены класса: переменные типа double для хранения начального и конечного значения времени. Обязательны функции- члены класса для инициализации секундомера (присваивает переменным нулевые значения), для запуска и остановки секундомера, для вывода на экран величины истекшего времени.

6. Определить класс эллипс, а также продемонстрировать использование класса. Члены класса: переменные, необходимые для того, чтобы иметь возможность пользоваться стандартными функциями рисования. Обязательны функции-члены класса: нарисовать, стереть, передвинуть эллипс, изменить радиусы эллипса.

7. Определить класс отрезок, а также продемонстрировать использование класса. Члены класса: переменные, необходимые для того, чтобы иметь возможность пользоваться стандартными функциями рисования. Обязательны функции-члены класса: нарисовать, стереть, передвинуть отрезок, вращать отрезок относительно его середины или описывать окружность одним его концом.

8. Определить класс треугольник, а также продемонстрировать использование класса. Члены класса: переменные, необходимые для того, чтобы иметь возможность пользоваться стандартными функциями рисования. Обязательны функции-члены класса: нарисовать, стереть, передвинуть треугольник, вращать треугольник относительно его вершины, изменить размеры треугольника.

9. Определить класс трапеция, а также продемонстрировать использование класса. Члены класса: переменные, необходимые для того, чтобы иметь возможность пользоваться стандартными функциями рисования. Обязательны функции-члены класса: нарисовать, стереть, закрасить, передвинуть, повернуть трапеции, изменить размеры трапеции.

10. Определить класс ромб, а также продемонстрировать использование класса. Члены класса: переменные, необходимые для того, чтобы иметь возможность пользоваться стандартными функциями рисования. Обязательны функции-члены класса: нарисовать, стереть, закрасить, передвинуть, повернуть ромб, изменить размеры ромба.

В. Дополнительное задание

Варианты ДОПОЛНИТЕЛЬНОГО задания

1. Вектор в трехмерном евклидовом пространстве задан своими полярными координатами. Обязательны функции - члены класса:

· ввод вектора;

· вывод вектора;

· функция, которая возвращает рабочий вектор в декартовых координатах.

Другие функции можно ввести по желанию. Описать класс и продемонстрировать его использование.

2. Угол на плоскости. Обязательные члены класса: величина угла в градусах; функции-члены для ввода и вывода величины угла, перевода величины угла в радианы, нахождения синуса угла. Описать класс и продемонстрировать его использование.

3. Комплексное число, задаваемое своей вещественной и мнимой частями (например, 5 + 3i задается парой (5, 3)). Обязательны функции-члены класса для ввода и вывода числа, сложения, произведения двух чисел, а также возведения числа в целую степень. Описать класс и продемонстрировать его использование.

4. Комплексное число, задаваемое своим модулем и углом (например, число 10 * (cos(p/6) + i * sin(p/6)) задается парой (10, p/6)). Обязательны функции-члены класса для ввода и вывода числа, сложения, произведения двух чисел, а также возведения числа в целую степень. Описать класс и продемонстрировать его использование.

5. Кольцевой буфер емкостью 1024 вещественных чисел. Доступ к элементам буфера – как к элементам очереди. Обязательны функции-члены класса для инициализации буфера, добавления и удаления элемента, определения количества свободного и занятого пространства в буфере. Описать класс и продемонстрировать его использование.

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

7. Двунаправленный список. Обязательны функции-члены класса для добавления и удаления элемента, проверке присутствия указанного элемента, вывода текущих элементов списка. Описать класс и продемонстрировать его использование.

8. Кольцевой список. Обязательны функции-члены класса для добавления и удаления элемента, проверке присутствия указанного элемента, вывода текущих элементов списка. Описать класс и продемонстрировать его использование.

9. Бинарное дерево. Обязательны функции-члены класса для добавления и удаления элемента, проверке присутствия указанного элемента, вывода текущих элементов дерева. Описать класс и продемонстрировать его использование.

10. Точка на экране в текстовом (или графическом режиме). Должны быть предоставлены возможности:

· высветить точку в определенном месте экрана определенным цветом;

· определить, видима ли точка в данный момент;

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

Описать класс и продемонстрировать его использование.

Содержание отчета

  1. Титульный лист (один на все работы)
  2. Цель работы
  3. Постановка задачи (только та часть, которую Вы выполняли)
  4. UML-диаграмма классов
  5. Результаты выполнения программы
  6. Выводы (6 - 10 пунктов) (по каждой работе)
  7. Листинги программных модулей

Выводы НЕ ДОЛЖНЫ иметь вид:

"В ходе лабораторной работы усвоили цель лабораторной работы"

Также не следует переписывать в выводы теорию из книжек. Выводы – это краткое изложение того, что вы усвоили в ходе выполнения лабораторной работы. ВЫВОДЫ СОСТАВЛЯЮТСЯ К КАЖДОЙ ЛАБОРАТОРНОЙ РАБОТЕ!

Пример выполнения лабораторной работы

Постановка задачи

Создать класс, позволяющий работать со строкой символов. Набор данных, описывающий такой объект как символьная строка должен состоять:

Ø собственно строка;

Ø позиция на экране, начиная с которой будет выводиться строка;

Ø видео атрибуты символов (цвета текста и фона).

Функции необходимые для работы со строкой:

Ø ввод строки;

Ø установка координат для дальнейшего вывода строки;

Ø установка видео атрибутов символов;

Ø вывод строки в указанное место.

 

Структурная схема класса(представить в виде UML)

Член-данные   Класс String Член-функции
Собственно строка: str Позиция выдачи строки на экран: x, y Цвет текста и фона: attr Ввод строки: SetStr() Установка координат выдачи строки на экран: SetCoord() Установка цветов текста и фона: SetAttr() Вывод строки на экран: PrintStr()

 

Исходный текст программы

#include <conio.h>

#include <string.h>

class String {



<== предыдущая лекция | следующая лекция ==>
Тема 1.6. Стоимостное измерение и калькулирование себестоимости продукции | Городского округа город Воронеж
Поделиться с друзьями:


Дата добавления: 2016-12-31; Мы поможем в написании ваших работ!; просмотров: 1245 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2188 - | 2073 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.