Автор работы: Пользователь скрыл имя, 07 Декабря 2013 в 20:28, лабораторная работа
Целью работы является создание приложения на основе принципов объектно-ориентированного программирования в среде Microsoft Developer Studio (Visual C++).
Важнейшие концепции объектно-ориентированного программирования отражены в новом типе данных класс (class), разработанном в языке С++. Классы служат для того, чтобы переменные (свойства класса) и функции для обработки этих переменных (методы класса) объединить в один тип данных. Классы могут предоставить различные права доступа к своим свойствам и методам.
ИЗУЧЕНИЕ ОСНОВ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В СРЕДЕ Microsoft Developer Studio
1 Цель работы
Целью работы является создание
приложения на основе принципов объектно-
2 Краткие теоретические сведения
2.1 Определение класса как типа данных в языке C++
Важнейшие концепции объектно-
Объектно-ориентированное программирование характеризуется тремя основными свойствами:
1. Инкапсуляция – это объединение в классе свойств и методов для обработки этих свойств. С данным термином тесно связаны понятия сокрытия информации и хорошо разработанного интерфейса. Классы должны обращаться к своим свойствам преимущественно через свои методы. Эти методы образуют интерфейс между классом и программой.
2. Наследование – это определение класса и его дальнейшее использование для построения иерархии порожденных классов с возможностью доступа каждого порожденного класса к коду и данным всех порождающих классов.
3. Полиморфизм – это присваивание методу одного имени, которое используется по иерархии классов, причем объект каждого класса в иерархии выполняет этот метод тем способом, который описан именно в его классе.
Объявление класса:
class имя_класса [: базовые классы]
{ список_членов_класса} ;
Базовые классы — это список классов, разделяемых запятыми, элементы которых наследуются объявляемым производным классом.
2.2 Свойства класса
Классы содержат собственные переменные (свойства класса). Если образуется объект класса, то в его распоряжение предоставляется область оперативной памяти для хранения его свойств. Следовательно, каждый объект класса имеет собственную копию свойств. При создании объекта класса его свойства инициализируют с помощью конструктора класса. Свойства уничтожаются вместе с объектом класса, эти действия выполняет деструктор класса. Свойства класса могут быть описаны с атрибутами доступа public, protected или private (см. таблицу 2.1).
2.3 Методы класса
Методы класса имеют доступ ко всем свойствам своего класса, могут быть определены как внутри класса, так и за его рамками. Они представляют единственную возможность доступа к private-свойствам своего класса. Методы класса могут быть определены с атрибутами доступа public, protected или private.
2.4 Атрибуты доступа
Атрибуты доступа public, private и protected регулируют возможность доступа к членам класса внутри или извне класса. Следовательно, они являются важным инструментом инкапсуляции. Прежде всего, с помощью этих атрибутов может быть ограничен доступ к отдельным членам класса.
2.5 Специальные методы класса
Конструктор выделяет оперативную память для объекта класса и инициализирует его свойства. Он вызывается автоматически для каждого объекта класса. Для того, чтобы каждый класс имел в своем распоряжении конструктор, компилятор классов предоставляет конструктор по умолчанию. При создании класса возможно разработать специальный явно объявленный конструктор.
Таблица 2.1 – Атрибуты доступа к членам класса
Атрибут доступа |
Значение |
Public |
Член класса может быть доступен из любой точки программы для любого метода, который является членом данного или производного класса или абсолютно не связан с данным классом. |
Private |
Член класса может использоваться только методами того класса, в котором он описан |
protected |
To же, что и private. Но дополнительно такой член класса может быть использован методами классов, производных от описанного класса. Если нет производных классов, то private и protected идентичны. |
Для конструкторов существует несколько важных правил:
Деструктор вызывается автоматически, если объекты классов становятся недействительными (например, при выходе за область определения или при вызове оператора delete для указателя на объект класса). Деструктор уничтожает объект и освобождает зарезервированную оперативную память.
Правила для деструктора аналогичны правилам для конструктора:
~имя_класса()
3 Порядок выполнения работы
3.1 Разработать текст программы для решения задачи по указанному преподавателем варианту.
3.2. Оформить отчет.
4 Содержание отчета
Отчет по лабораторной работе должен содержать:
5 Задание на лабораторную работу
Разработать класс в соответствии с полученным заданием в отдельном файле. Создать новый файл с основной функцией программы main(), инициализировать в ней объект разработанного вами класса, вызвать все методы, которые существуют в вашем классе.
6 Варианты заданий
1) Разработать класс CCrosslines, описывающий две прямые на плоскости:
Свойства класса:
а) координаты точки пересечения x, y;
б) коэффициент для первой и второй прямой a1 и a2;
в) смещение b1 и b2 (в соответствии с уравнением прямой: y = ax + b);
г) флаг типа BOOL, который определяет наличие или отсутствие точки пересечения прямых.
Методы класса:
а) конструктор: присвоение нулевых значений a, b и флагу;
б) ввод пользователем параметров прямых a1, a2, b1, b2;
в) определение координаты точки пересечения прямых, присвоение значения 0 или 1 флагу;
г) вывод параметров прямых a1, a2, b1, b2;
д) вывод координат точки
2. Разработать класс CCircle, описывающий круг.
Свойства класса:
а) координаты точки центра круга x, y;
б) радиус R;
в) площадь S;
г) периметр P.
Методы класса:
а) конструктор: присвоение нулевых значений свойствам класса;
б) ввод пользователем значений координат точки центра круга и радиуса;
в) вычисление и вывод на экран значения площади круга;
г) вычисление и вывод на экран значения периметра круга;
д) определение, лежит ли внутри круга точка, координаты которой вводит пользователь.
3. Класс CPtoD для перевода
полярных координат в
Свойства класса:
а) угол в радианах rad;
б) радиус R;
в) координата х;
г) координата у.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) задание пользователем величины угла в градусах и радиуса;
в) перевод величины угла в градусах в радианы;
г) вычисление координаты х и у по значению угла в радианах;
д) вывод на экран координат х и у.
4. Класс CSquareUr для решения квадратного уравнения.
Свойства класса:
а) коэффициенты а, b, с квадратного уравнения
б) корни х1 и х2;
в) флаг, показывающий количество корней (0, 1 или 2).
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем значений а, b, и с;
в) вывод на экран значений а, b, с;
г) вычисление корней, присвоение определенного значения флагу;
д) вывод на экран корней или сообщения, что их нет (с проверкой флага).
5. Разработать класс для CRomb для описания ромба.
Свойства класса:
а) диагонали ромба d1 и d2;
б) площадь S;
в) периметр P.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем значений свойств класса;
в) вычисление и вывод на экран значения площади ромба;
г) вычисление и вывод на экран значения периметра ромба;
д) вычисление длины стороны ромба и вывод ее значения на экран.
6. Разработать класс для описания прямоугольного треугольника CPrTreug.
Свойства класса:
а) катеты прямоугольного треугольника k1 и k2;
б) гипотенуза g;
в) площадь S;
г) периметр P.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем с клавиатуры значений свойств класса;
в) расчет величины гипотенузы и вывод ее значения на экран;
г) расчет площади треугольника и вывод ее значения на экран;
д) расчет периметра треугольника и вывод его значения на экран.
7. Разработать класс для описания параллелепипеда CParal.
Свойства класса:
а) ширина, длина и высота параллелепипеда w, L и h;
б) площадь поверхности S;
в) объем V;
г) диагональ параллелепипеда d.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем с клавиатуры значений свойств класса;
в) расчет величины диагонали параллелепипеда и вывод ее значения на экран;
г) расчет и вывод на
экран площади поверхности
д) расчет объема параллелепипеда и вывод его значения на экран.
8. Разработать класс CRing, описывающий кольцо.
Свойства класса:
а) координаты точки центра кольца x, y;
б) внешний и внутренний радиусы кольца R и r;
в) площадь S.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем значений координат точки центра круга и радиусов;
в) проверка правильности исходных данных (R>r, r>0);
г) вычисление и вывод на экран значения площади кольца;
д) определение, лежит ли внутри кольца точка, координаты которой вводит пользователь.
9. Разработать класс
для описания результатов
Свойства класса:
а) количество студентов в группе;
б) общее количество оценок «отлично» за сданные экзамены;
в) общее количество оценок «хорошо» за сданные экзамены;
г) общее количество оценок «удовлетворительно» за сданные экзамены;
д) общее количество неудовлетворительных оценок и неявок на экзамены;
е) средний балл студентов в группе.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем количества оценок «отлично»;
в) ввод пользователем количества оценок «хорошо»;
г) ввод пользователем количества оценок «удовлетворительно»;
д) ввод пользователем количества оценок «неудовлетворительно» и неявок;
е) определение и вывод на экран значения среднего балла.
10. Разработать класс для расчета заработной платы отдела Cwage.
Свойства класса: