Изучение основ объектно-ориентированного программирования в среде Microsoft Developer Studio

Автор работы: Пользователь скрыл имя, 07 Декабря 2013 в 20:28, лабораторная работа

Описание работы

Целью работы является создание приложения на основе принципов объектно-ориентированного программирования в среде Microsoft Developer Studio (Visual C++).
Важнейшие концепции объектно-ориентированного программирования отражены в новом типе данных класс (class), разработанном в языке С++. Классы служат для того, чтобы переменные (свойства класса) и функции для обработки этих переменных (методы класса) объединить в один тип данных. Классы могут предоставить различные права доступа к своим свойствам и методам.

Файлы: 1 файл

Лабор_работа №1.doc

— 86.50 Кб (Скачать файл)

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

ИЗУЧЕНИЕ ОСНОВ  ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В СРЕДЕ Microsoft Developer Studio

 

1 Цель работы 

Целью работы является создание приложения на основе принципов объектно-ориентированного  программирования в среде Microsoft Developer Studio (Visual C++).

 

2 Краткие теоретические  сведения

2.1 Определение класса  как типа данных в языке  C++

Важнейшие концепции объектно-ориентированного программирования отражены в новом типе данных класс (class), разработаном в языке С++. Классы служат для того, чтобы переменные (свойства класса) и функции для обработки этих переменных (методы класса) объединить в один тип данных. Классы могут предоставить различные права доступа к своим свойствам и методам.

Объектно-ориентированное  программирование характеризуется тремя основными свойствами:             

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 идентичны.


 

Для конструкторов существует несколько  важных правил:

  • имя конструктора совпадает с именем его класса;
  • конструктор не имеет никакого возвращаемого значения (даже void);
  • классу без конструктора предоставляется конструктор по умолчанию;
  • если конструктор описан явно, то конструктор по умолчанию не генерируется;
  • конструктор не наследуется.

Деструктор вызывается автоматически, если объекты классов становятся недействительными (например, при выходе за область определения или при вызове оператора delete для указателя на объект класса). Деструктор уничтожает объект и освобождает зарезервированную оперативную память.

Правила для деструктора аналогичны правилам для конструктора:

  • имя деструктора также совпадает с именем его класса, но предваряется символом «~» (тильдой):

   ~имя_класса()

  • деструктор не имеет никакого возвращаемого значения (даже void);
  • если в классе деструктор явно не описан, то компилятор генерирует деструктор по умолчанию;
  • деструктор не наследуется.

 

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. Разработать класс  для описания результатов сессии CExamine.

Свойства класса:

а) количество студентов  в группе;

б) общее количество оценок «отлично» за сданные экзамены;

в) общее количество оценок «хорошо» за сданные экзамены;

г) общее количество оценок «удовлетворительно» за сданные  экзамены;

д) общее количество неудовлетворительных оценок и неявок на экзамены;

е) средний балл студентов  в группе.

Методы класса:

а) конструктор: присвоение нулевых значений переменным;

б) ввод пользователем  количества оценок «отлично»;

в) ввод пользователем  количества оценок «хорошо»;

г) ввод пользователем  количества оценок «удовлетворительно»;

д) ввод пользователем  количества оценок «неудовлетворительно»  и неявок;

е) определение и вывод на экран значения среднего балла.

10. Разработать класс  для расчета заработной платы  отдела Cwage.

Свойства класса:

Информация о работе Изучение основ объектно-ориентированного программирования в среде Microsoft Developer Studio