Пример решения типового задания в 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; Мы поможем в написании вашей работы!

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






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