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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
#1

Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. - C++

08.01.2013, 18:01. Просмотров 3773. Ответов 23
Метки нет (Все метки)

Добрый вечер, помогите плиз с программой
Создать класс треугольник, члены класса - длины 3-х сторон.
Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр,площадь.
Были наброски такие, с++ изучаю не долго, поэтому не могу додумать(
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
#include<iostream>
using namespace std;
class treyg
{
private:
     int storona;
     int P;
     int S;
     int L;
 
public:
 void st_treyg()
  {
      cout<<"Введите сторону"<<endl;
      cin>>storona;
   }
 void ps_treyg(int Per, int Plosh, int dlinstor)
 {
    P = Per;
    S = Plosh;
    L = dlinstor;
 }
void getDate()
{
    P=storona*storona;
    S=storona+storona+storona;
    L=storona;
}
};
 
int main()
{
     int storona, P, S, L;
cout<<"Stor"<<storona<<endl;
treyg sfaftreyg;
sfaftreyg.st_treyg();
sfaftreyg.ps_treyg();
sfaftreyg.getDate();
system("pause");
treyg P, S, L;
L.st_treyg =st_treyg();
setlocale(LC_ALL,"Russian");
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 18:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. (C++):

создать класс треугольник, члены класса - длины 3-х сторон - C++
Прошу помочь составить программу на С++ по задаче: создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть в классе...

Создать класс треугольник, члены класса – длины 3-х сторон - C++
Создать класс треугольник, члены класса – длины 3-х сторон. Предусмотреть в классе методы проверки существования треугольника, ...

Создать класс треугольник, члены класса - длины 3-х сторон - C++
Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр,...

Создать класс Прямоугольник, члены класса – длины сторон a и b - C++
Создать класс Прямоугольник, члены класса – длины сторон a и b. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – длины...

написать программу, которая считывает длины сторон треугольника, проверяет возможность построения треугольника и находит все медианы этого треугольник - C++
1) написать программу, которая считывает длины сторон треугольника, проверяет возможность построения треугольника и находит все медианы...

Проверить, можно ли построить треугольник из отрезков с длинами x, y, z. Предусмотреть проверку вводимых данных на отрицательность - C++
Проверить, можно ли построить треугольник из отрезков с длинами x, y, z. Предусмотреть проверку вводимых данных на отрицательность.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
08.01.2013, 18:10 #2
Члены класса - длины трех сторон, а у тебя члена класса, это одна сторона, периметр, площадь и ещё что то L

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
class triangle
{
public:
triangle(); //Конструктор по умолчанию
~triangle(); //Деструктор
void Inform(); //Внутри него вызывай функции периметра и т.д. Т.к. у тебя в задании указано, что члены класса только 3 стороны
private:
int a, b, c; //Три стороны
int Perimetr();
int Area();
//...остальные методы
};
Так же методы лучше описывать не в объявлении класса. Описывать внутри рекомендуется, когда кода совсем немного, тогда функции получаются inline.
0
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
08.01.2013, 18:55  [ТС] #3
ММ...не понятно..
не совсем понял
0
St-Voland
171 / 79 / 3
Регистрация: 05.12.2012
Сообщений: 217
08.01.2013, 19:15 #4
Цитата Сообщение от F@nt Посмотреть сообщение
не совсем понял
Что конкретно?)
Во-первых, у Вас должно участвовать 3 стороны( ведь треугольник задается 3мя сторонами, а у Вас прописан лишь один интовский параметр )
Во-вторых, Вам было предложено делать в обьявлении класса только обьявление функций. Реализацию следует проводить в реализации класса. В будущем, ваши классы будут состоять из 2х файлов: .h и .cpp, в ашнике будет обьявление класса, в срр - реализация.
0
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
08.01.2013, 19:21  [ТС] #5
робят вы меня загрузили, подвис на несколько минут, а можно какой нить пример похожий?))
0
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
08.01.2013, 21:42 #6
Да пжлста.

Я делал класс по представлению кольцевого списка в виде массива. Вроде так задание звучало.

Class.h

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
ifndef _CLASS_H
#define _CLASS_H
 
class Circle
{
public:
    Circle(unsigned int size);
    ~Circle();
    void ShowCircle () const; // Отобразить массив
    void ClearCircle (); // Очистка массива
    int SizeCirle () const; // Размер массива
    void ShowThisElement () const; // Показать текущий элемент
    void NextElement (); // Перейти к следующему
    void NextNPosition (unsigned int n); // Перейти по кольцу на n элементов
    void SearchElement (int element) const; // Поиск элемента по значению
    void DeleteThis (); // Удалить текущий
    void AddElement (unsigned int AddedCount); //Добавить следом за текущим
 
private:
    unsigned int ArraySize;
    unsigned int RealSize;
    unsigned int CountIndex;
    unsigned int *pArr;
};
 
#endif _CLASS_H
Class.cpp

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
#include "Class.h"
#include <iostream>
#include <cstring>
 
using namespace std;
 
Circle::Circle(unsigned int size)
{
    ArraySize=RealSize=size;
    pArr = new unsigned int [ArraySize];
    for (unsigned int i=0; i<ArraySize; i++)
    {
        pArr[i]=i;
    }
    CountIndex=0;
}
 
Circle::~Circle()
{
    delete []pArr;
    pArr=0;
}
 
void Circle::ShowCircle () const
{
    for (unsigned int i=CountIndex; i<ArraySize; i++)
    {
        cout<<pArr[i]<<" ";
    }
    for (unsigned int i=0; i<CountIndex; i++)
    {
        cout<<pArr[i]<<" ";
    }
    cout<<endl;
}
 
void Circle::ClearCircle () 
{
    for (unsigned int i = 0; i<ArraySize; i++)
        pArr[i]=0;
}
 
int Circle::SizeCirle() const
{
    return ArraySize;
}
....
Вот тебе пример, не очень сложный
0
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 14:47  [ТС] #7
В общем попробывал, но у меня проблема с математической функцией <math> ошибка:Не удается открыть файл include: math: No such file or directory, в чем проблема может?
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
#include<iostream>
#include <cmath> 
#include <math>
using namespace std;
 
class Triangle
{
private:
    double s[3];
public:
    Triangle(double a, double b, double c)
    {
        s[0] = a;
        s[1] = b;
        s[2] = c;
    }
    
    double side(int i)
    {
        return s[i];
    }
    
    bool exists()
    {
        return (s[0] + s[1] <= s[2]) && (s[1] + s[2] <= s[0]) && (s[0] + s[2] <= s[1]);
    }
    
    double perimeter()
    {
        return s[0] + s[1] + s[2];
    }
 
double square()
{
 * *double p=0.5*(s[0]+s[1]+s[2]);
    return sqrt(p*(p-s[0])*(p-s[1])*(p-s[2]));
}
};
  
int main()
{
setlocale(LC_ALL,"Russian");
double a, b, c;
cout << "Введи стороны треугольника:";
cin >> a >> b >> c;
Triangle triangle1(a, b, c);
cout << "Периметр: " << triangle1.perimeter() << endl;
cout << "стороны треугольника: " << triangle1.side(0) << ", " << triangle1.side(1) << ", " << triangle1.side(2) << endl;
triangle1.exists();
triangle1.perimeter();
triangle1.square();
system("pause");
return 0;
}
0
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
09.01.2013, 15:13 #8
Попробуй прописать <math.h>... Но вообще посмотри в корне программы, у меня Visual Studio 2011, там вот по такому адресу находится math.h и остальные заголовочные:

MS VS 2011\VS\crt\src
0
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 15:32  [ТС] #9
Если прописывать <math.h>, то все намного страшнее

Код
1.error C3872: 0xa0: этот символ невозможно использовать в идентификаторе
2. error C3872: 0xa0: этот символ невозможно использовать в идентификаторе
3. error C2065:  : необъявленный идентификатор
4. error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором " double"
5. error C2065:  double: необъявленный идентификатор
6. error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "p"
7. error C2065: p: необъявленный идентификатор
0
Croessmah
Эксперт CЭксперт С++
13221 / 7493 / 844
Регистрация: 27.09.2012
Сообщений: 18,412
Записей в блоге: 3
Завершенные тесты: 1
09.01.2013, 15:36 #10
Цитата Сообщение от F@nt Посмотреть сообщение
C++
1
2
#include <cmath> 
#include <math>
Интересное решение =))) Особенно <math>
C++
1
2
3
double square()
{
 * *double p=0.5*(s[0]+s[1]+s[2]);
А это что?
0
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 15:43 #11
Цитата Сообщение от Croessmah Посмотреть сообщение
А это что?
По всему видимо функция вычисления площади треугольника.. Только площадь треугольника равна половине основания, умноженной на высоту, либо S=корень(p*(p-s[0])*(p-s[1]*(p-s[2])),
где p - полупериметр,
s[i] - i-ая сторона
0
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 16:04  [ТС] #12
Croessmah,
C++
1
2
3
4
 
double square()
{
 * *double p=0.5*(s[0]+s[1]+s[2]);
косячок, исправлено.
но площадь по прежнему не считает
0
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 16:15 #13
это не площадь, а полупериметр.. и убери звездочки перед double
0
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 16:28  [ТС] #14
zener, звездочки убрал,
это формула Герона, и не суть, не работает все равно)
0
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 16:33 #15
а фигурную закрывающую скобочку поставил?)
ну и конечно же надо вернуть это p в некоторое определенное место) (то бишь написать еще return p)

Добавлено через 2 минуты
Цитата Сообщение от F@nt Посмотреть сообщение
zener, звездочки убрал,
это формула Герона, и не суть, не работает все равно)
и это ПОЛУПЕРИМЕТР!)) формулу Герона я написал, смотри выше)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 16:33
Привет! Вот еще темы с ответами:

Составьте программу для вычисления длин медиан треугольника, у которого длины сторон a, b, c - C++
Помогите кто шарит. 1.Составьте программу для вычисления длин медиан треугольника, у которого длины сторон a, b, c.

Разработать методы вычисления длины отрезка по координатам вершин и периметра треугольника по длинам сторон - C++
Разработать метод f(x1, y1, x2, y2), который вычисляет длину отрезка по координатам вершин (x1, y1) и (x2, y2), и метод d(a, b, c),...

Написать программу вычисления площади треугольника, если известно длины двух сторон и величина угла между ними. - C++
Написать программу вычисления площади треугольника, если известно длины двух сторон и величина угла между ними.

класс «Строка» (данные-члены класса – строчка, функции-члены класса – операции) - C++
Помогите пожалйуста с реализацией программы... Реализовать класс «Строка» (данные-члены класса – строчка (указатель на массив, ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.01.2013, 16:33
Ответ Создать тему
Опции темы

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