Пример решения типового задания в Microsoft Developer Studio
7.1 Задание
Разработать класс CRectangle, который содержит свойства:
· левая граница по оси Х (Left);
· правая граница по оси Х (Right);
· верхняя граница по оси Y (Top);
· нижняя граница по оси Y (Bottom)
и методы:
· конструктор, который присваивает значениям свойств случайные числа;
· метод запроса у пользователя значений свойств прямоугольника;
· определение площади фигуры и вывод ее на экран;
· вывод на экран значений свойств.
Создать файл с основной функцией программы main(), инициализировать объект разработанного класса CRectangle, вызвать все методы, которые существуют в этом классе.
Текст программы
// Файл “rectan.h”
class CRectangle
{ //свойства класса –используется атрибут private,
//следовательно, их пользователь не сможет напрямую использовать
// (вывести на печать, присвоить им какие-либо значения …), а только с // использованием методов этого класса, которые должны быть
// описаны как public для прямого доступа к ним
private:
int Left; // левая граница по оси Х
intRight; // правая граница по оси Х
intTop; // верхняя граница по оси Y
intBottom; // нижняя граница по оси 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;
}
}
voidSquare() // метод определения площади фигуры
{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; // объявляем объект созданного класса, при этом
//запускается созданный конструктор CRectangle(),
// описанный в классе, он присваивает случайные
// значения всем свойствам объекта my_rect
my_rect.PrintSv(); // вывод значений свойств определенного с помощью
// констуктора прямоугольника
my_rect.Square(); // вывод значения площади определенного с помощью
// констуктора прямоугольника
cout<<endl<<endl<<endl; //Отступ
my_rect.Init(); //вызываем функцию для запроса значений свойств у
// пользователя
my_rect.PrintSv(); // печать свойств прямоугольника, введенных
// пользователем
my_rect.Square(); // вычисление и вывод на экран площади
// прямоугольника, свойства которого были введены
// пользователем
}
Результаты работы программы
На рисунке 2.1 приведен результат работы программы.
Рисунок 2.1 – Результат работы программы
Контрольные вопросы
1) Каковы основные свойства объектно-ориентированного программирования?
2) Какие свойства имеет разработанный вами класс?
3) Какие методы содержит разработанный вами класс, какие свойства класса используются в этих методах?
|
|
4) Какие существуют атрибуты доступа к членам класса?
5) Какие специальные методы класса вы знаете, как они использованы в разработанном вами классе?
Список литературы
1. Шилдт Г. Самоучитель С++. 2-е изд. /Пер. с англ.–СПб.: БХВ-Петербург, 1997. – 512с.
2. Шилдт Г. Справочник программиста по С/С++: Пер. с англ.: Учебное пособие. – М.: Издательский дом «Вильямс», 2000. – 448с.
3. Страуструп Б. Язык программирования С++ (2–ред.) /Пер. с англ. – М.: Радио и связь, 1995. – 352с.
4. Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ- Петербург, 2001. – 288с.
5. Буч Г. Объектно – ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. – М.: "Издательство Бином", СПб.: "Невский диалект", 1998. – 258с.
6. Дерк Луис. С и С++. Справочник/ Пер. с нем. – М.: Восточная книжная компания, 1997. – 592с.
7. Visual C++ 5.0. Руководство разработчика.: Пер. с англ./ Д. Беннет, С. Маконин, В.В. Мейфилд и др. – К.; М.; СПб.: Диалектика, 1998. – 768с.
Дата добавления: 2018-04-05; просмотров: 278; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!