Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Tewe
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
#1

Создать класс типа квадрат - C++

14.05.2012, 18:29. Просмотров 1847. Ответов 5
Метки нет (Все метки)

Создать класс типа "квадрат". Поля - координаты сторон квадрата. Функции члены вычисляют площадь, периметр, устанавливают поля и возвращают значения. Функции-члены установки полей класса должны проверять корректность задаваемых параметров. Функция печати.

Правильно ли написана программа?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
class Kvadrat {
public:
    Kvadrat(double, double, double, double);
    double fooP();
    double fooS();
private:
    double x1, y1, x2, y2;
    double perimetr;
    double square;
};
 
Kvadrat::Kvadrat(double a, double b, double c, double d)
{
x1 = a; y1 = b; x2 = c; y2 = d;
 
if ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) <= 0)
 
 cout << "Данные координаты не верны!" << endl;
 
else
{
    cout << "Координаты начала и конца одной из сторон квадрата: "
         << "(" << x1 << "," << y1 << ")" << " и " << "(" << x2 << "," << y2 << ")" << endl << endl;
  }
}
 
 
double Kvadrat::fooP()
{
perimetr = ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) + (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))))) / 2;
return perimetr;
}
double Kvadrat::fooS()
{
square = (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))) * sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))));
return square;
}
 
Kvadrat q(double, double, double, double);
 
int main()
{
double x1, y1, x2, y2;
cout << "Введите x1: " << endl;
cin >> x1;
cout << "Введите y1: " << endl;
cin >> y1;
cout << "Введите x2: " << endl;
cin >> x2;
cout << "Введите y2: " << endl;
cin >> y2;
Kvadrat w = Kvadrat(x1, y1, x2, y2);
cout << "Периметр квадрата равен: " << w.fooP();
cout << endl;
cout << "Площадь квадрата равна: " << w.fooS();
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 18:29     Создать класс типа квадрат
Посмотрите здесь:

Создать класс типа - окружность - C++
Создать класс типа - окружность. Поля - радиус. Функции-члены вычисляют площадь, длину окружности, устанавливает поля и возвращают...

Создать класс типа - время - C++
Создать класс типа - время с полями: час (0-23), минуты (0-59), секунды (0-59). Класс имеет конструктор. Функции-члены установки времени,....

Создать класс Matrix, реализующий двухмерный динамический массив типа int - C++
Здравствуйте! Задание: Создать класс Matrix, реализующий двухмерный динамический массив типа int. Конструктор должен заполнять массив...

Создать шаблонный класс для определения нормы элемента заданного типа - C++
Нужно создать шаблонный класс для определения нормы элемента заданного ти-пу. Для комплексных чисел норма определяется как модуль...

Создать класс "Квадрат" с методами - C++
На языке С++ создать класс типа - квадрат. Поля - сторона. Методы вычисляют площадь, периметр, устанавливает поля и возвращают значения....

Создать базовый класс Array, в котором определите поле-массив подходящего типа - C++
Всем привет!!! Создать базовый класс Array, в котором определите поле-массив подходящего типа и поле для хранения количества элементов у...

Создать динамичный класс для операций с динамическими массивами чисел действительного типа - C++
Создать динамичный класс для операций с динамическими массивами чисел действительного типа. Сделать перегрузки символов операций: &quot;=&quot; -...

Создать класс "квадрат" - C++
Создать класс &quot;квадрат&quot; с 5 свойствами и 3-мя методами

Создать класс "Список объектов любого типа" - C++
Создайте класс, который способен запоминать список объектов не заданного типа класса (для любого класса). #include &lt;iostream&gt; ...

Создать класс "Список объектов любого типа" - C++
Создайте класс, который способен запоминать список объектов не заданного типа класса (для любого класса). Помогите кто знает (Нужен код,...

Создать класс Book. Переменная типа Book должна содержать следующие поля: - C++
Помогите решить=(. Создать класс Book. Переменная типа Book должна содержать следующие поля: название, количество авторов; авторы; год...

Класс объявление с элементом типа класс Текст - C++
Необработанное исключение в &quot;0x770015de&quot; в &quot;FAQ.exe&quot;: 0xC0000005: Нарушение прав доступа при записи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.05.2012, 18:48     Создать класс типа квадрат #2
Ну а почему в конструкторе не идеализируются переменные perimetr и square?
dimcoder
Полярный
455 / 428 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
14.05.2012, 18:52     Создать класс типа квадрат #3
Цитата Сообщение от yuron_477 Посмотреть сообщение
идеализируются
инициализируются
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
14.05.2012, 18:57     Создать класс типа квадрат #4
Вопрос: зачем хранить площадь и периметр в экземпляре? Всё равно при вызове одноимённых ф-й они пересчитываются.
zss
Модератор
Эксперт С++
6287 / 5890 / 1910
Регистрация: 18.12.2011
Сообщений: 15,123
Завершенные тесты: 1
14.05.2012, 19:14     Создать класс типа квадрат #5
1. Проверка правильности координат в конструкторе сделана неверно.
Корень квадратный - всегда принимает неотрицательные значения.
Надо проверить, что все стороны равны и один из углов - 90 градусов.

2. При вычислении периметра надо умножить на 2, а не делить на 2.

И потом - у квадрата все стороны одинаковые, поэтому P=4a,S=a*a.
Tewe
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
21.05.2012, 17:25  [ТС]     Создать класс типа квадрат #6
Кто поможет довести программу до ума?
Yandex
Объявления
21.05.2012, 17:25     Создать класс типа квадрат
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru