Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабор_работа №2.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
88.06 Кб
Скачать

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; // объявляем объект созданного класса, при этом

//запускается созданный конструктор CRectangle(),

// описанный в классе, он присваивает случайные

// значения всем свойствам объекта my_rect

my_rect.PrintSv(); // вывод значений свойств определенного с помощью

// констуктора прямоугольника

my_rect.Square(); // вывод значения площади определенного с помощью

// констуктора прямоугольника

cout<<endl<<endl<<endl; //Отступ

my_rect.Init(); //вызываем функцию для запроса значений свойств у

// пользователя

my_rect.PrintSv(); // печать свойств прямоугольника, введенных

// пользователем

my_rect.Square(); // вычисление и вывод на экран площади

// прямоугольника, свойства которого были введены

// пользователем

}