Изучение основ объектно-ориентированного программирования в среде Microsoft Developer Studio
Лабораторная работа, 07 Декабря 2013, автор: пользователь скрыл имя
Описание работы
Целью работы является создание приложения на основе принципов объектно-ориентированного программирования в среде Microsoft Developer Studio (Visual C++).
Важнейшие концепции объектно-ориентированного программирования отражены в новом типе данных класс (class), разработанном в языке С++. Классы служат для того, чтобы переменные (свойства класса) и функции для обработки этих переменных (методы класса) объединить в один тип данных. Классы могут предоставить различные права доступа к своим свойствам и методам.
Файлы: 1 файл
Лабор_работа №1.doc
— 86.50 Кб (Скачать файл)а) количество работников с зарплатой z1;
б) количество работников с зарплатой z2;
в) количество работников с зарплатой z3;
г) величина зарплаты z1;
д) величина зарплаты z2;
е) величина зарплаты z3;
ж) общая зарплата отдела z.
Методы класса:
а) конструктор: присвоение нулевых значений переменным;
б) ввод пользователем значений z1, z2, z3;
в) ввод пользователем количества работников с разными зарплатами;
г) вывод пользователем значений z1, z2, z3;
д) определение и вывод на экран общей зарплаты отдела.
7 Пример решения типового задания в Microsoft Developer Studio
7.1 Задание
Разработать класс CRectangle, который содержит свойства:
- левая граница по оси Х (Left);
- правая граница по оси Х (Right);
- верхняя граница по оси Y (Top);
- нижняя граница по оси Y (Bottom)
и методы:
- конструктор, который присваивает значениям свойств случайные числа;
- метод запроса у пользователя значений свойств прямоугольника;
- определение площади фигуры и вывод ее на экран;
- вывод на экран значений свойств.
Создать файл с основной функцией программы main(), инициализировать объект разработанного класса CRectangle, вызвать все методы, которые существуют в этом классе.
7.2 Текст программы
// Файл “rectan.h”
class CRectangle
{ //свойства класса –используется атрибут private,
//следовательно, их пользователь не сможет напрямую использовать
// (вывести на печать, присвоить им какие-либо значения …), а только с // использованием методов этого класса, которые должны быть
// описаны как public для прямого доступа к ним
private:
int Left; // левая граница по оси Х
int Right; // правая граница по оси Х
int Top; // верхняя граница по оси Y
int Bottom; // нижняя граница по оси Y
public: //чтобы пользователь имел доступ к этим методам класса
CRectangle() //конструктор
{int _i;
Left = rand(); //присвоение свойствам случайных значений
Right = rand();
if (Left > Right) // проверка корректности данных
{_i = Right;
Right = Left;
Left = _i;
}
Top = rand();
Bottom = rand();
if (Bottom > Top)
{_i = Bottom;
Bottom = Top;
Top = _i;
}
}
void Init() // метод запроса у пользователя значений свойств прямоугольника
{
cout<<”Enter Left value of rectangle (integer) ”;
cin>>Left;
cout<<”Enter Right value of rectangle (integer) ”;
cin>> Right;
cout<<”Enter Bottom value of rectangle (integer) ”;
cin>> Bottom;
cout<<”Enter Top value of rectangle (integer) ”;
cin>> Top;
if (Bottom > Top) // проверка корректности данных
{_i = Bottom;
Bottom = Top;
Top = _i;
}
if (Left > Right) // проверка корректности данных
{_i = Right;
Right = Left;
Left = _i;
}
}
void Square() // метод определения площади фигуры
{int _S;
_S = (Right - Left) * (Top - Bottom);
cout<<”Rectangle square is ”<<_S<<endl;
}
void PrintSv() // вывод на экран значений свойств
{cout<<” Left = “<<Left<<endl;
cout<<”Right = “<<Right<<endl;
cout<<”Top = “<<Top<<endl;
cout<<”Bottom = “<<Bottom<<endl;
}
// компилятор будет генерировать и вызывать деструктор по умолчанию
}; //описание класса всегда заканчивается знаком «;»
// СОЗДАЕМ НОВЫЙ ТЕКСОВЫЙ ФАЙЛ, например rectan.cpp
#include <iostream.h>
#include <stdlib.h> // для получения набора псевдослучайных чисел
#include <time.h> //для работы с функцией time(), возвращающей значение
// времени в момент ее вызова, она необходима для
// получения разных псевдослучайных
// чисел при каждом запуске программы
#include “rectan.h” //присоединяем описание разработанного класса
void main() //основная функция - тело программы
{ srand((unsigned)time( NULL )); // инициализируем псевдослучайную базу
CRectangle my_rect; // объявляем объект созданного класса, при этом
//запускается
созданный конструктор
// описанный в классе, он присваивает случайные
// значения всем свойствам объекта my_rect
my_rect.PrintSv(); // вывод значений свойств определенного с помощью
// констуктора прямоугольника
my_rect.Square(); // вывод значения площади определенного с помощью
// констуктора прямоугольника
cout<<endl<<endl<<endl; //Отступ
my_rect.Init(); //вызываем функцию для запроса значений свойств у
// пользователя
my_rect.PrintSv(); // печать свойств прямоугольника, введенных
// пользователем
my_rect.Square(); // вычисление и вывод на экран площади
// прямоугольника,
свойства которого были
// пользователем
}
7.3 Результаты работы программы
На рисунке 2.1 приведен результат работы программы.
Рисунок 2.1 – Результат работы программы
8 Контрольные вопросы
- Каковы основные свойства объектно-ориентированного программирования?
- Какие свойства имеет разработанный вами класс?
- Какие методы содержит разработанный вами класс, какие свойства класса используются в этих методах?
- Какие существуют атрибуты доступа к членам класса?
- Какие специальные методы класса вы знаете, как они использованы в разработанном вами классе?
Список литературы
- Шилдт Г. Самоучитель С++. 2-е изд. /Пер. с англ.–СПб.: БХВ-Петербург, 1997. – 512с.
- Шилдт Г. Справочник программиста по С/С++: Пер. с англ.: Учебное пособие. – М.: Издательский дом «Вильямс», 2000. – 448с.
- Страуструп Б. Язык программирования С++ (2–ред.) /Пер. с англ. – М.: Радио и связь, 1995. – 352с.
- Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ- Петербург, 2001. – 288с.
- Буч Г. Объектно – ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. – М.: "Издательство Бином", СПб.: "Невский диалект", 1998. – 258с.
- Дерк Луис. С и С++. Справочник/ Пер. с нем. – М.: Восточная книжная компания, 1997. – 592с.
- Visual C++ 5.0. Руководство разработчика.: Пер. с англ./ Д. Беннет, С. Маконин, В.В. Мейфилд и др. – К.; М.; СПб.: Диалектика, 1998. – 768с.