Задание на лабораторную работу



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

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

Цель работы

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

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

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

3.2. Оформить отчет.

 

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

Отчет по лабораторной работе должен содержать:

· цель работы;

· текст программы;

· исходные данные и результаты вычислений;

· выводы по работе.

Задание на лабораторную работу

Разработать класс в соответствии с полученным заданием в отдельном файле. Создать новый файл с основной функцией программы main(), инициализировать в ней объект разработанного вами класса, вызвать все методы, которые существуют в вашем классе.

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

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.

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

а) количество работников с зарплатой z1;

б) количество работников с зарплатой z2;

в) количество работников с зарплатой z3;

г) величина зарплаты z1;

д) величина зарплаты z2;

е) величина зарплаты z3;

ж) общая зарплата отдела z.

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

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

б) ввод пользователем значений z1, z2, z3;

в) ввод пользователем количества работников с разными зарплатами;

г) вывод пользователем значений z1, z2, z3;

д) определение и вывод на экран общей зарплаты отдела.


Дата добавления: 2018-04-05; просмотров: 321; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!