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

Ошибка в задаче с классами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как обойтись без указателей и указателей на указатель? http://www.cyberforum.ru/cpp-beginners/thread1023428.html
Ибо не совсем выходит понять,что на что тут указывает #include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std; void matrix( int **m, int r, int s) {
C++ Выполнить свертку байтов в диапазоне Добрый день, я очень-очень плохой студент и очень-очень не понимаю программирование, а хотелось бы. Читаю разные самоучители и прочее.. Но данные задания Написать программу, которая получает случайное целое типа int, выводит его двоичное представление на экран, выполняет преобразование в соответствии с вариантом (см. ниже), затем выводит на экран двоичное представление результата... http://www.cyberforum.ru/cpp-beginners/thread1023427.html
C++ Нужна рабочая функция быстрого/прямого и обратного преобразования Фурье
Нужна рабочая функция быстрого/прямого и обратного преобразования Фурье. В гугле много всего, рабочего не нашел.
C++ Нужна программа - Найти кратчайший путь между двумя заданными вершинами графа
Ребят, у кого есть программа на С++ или текст программы: Найти кратчайший путь между двумя заданными вершинами графа. Желательно с графикой.
C++ Как реализовать многоуровневое меню? http://www.cyberforum.ru/cpp-beginners/thread1023402.html
Допустим есть в главном меню пункт 1, пункт 2,пункт 3. При переходе по любому из пунктов программа что то выполняет. Для каждого пункта есть своя функция. Но мне нужно перейти обратно в главное меню. Что делать? GOTO ругают за превращение программы в спагетти, а если в функции одного из пунктов для возвращения назад вызывать функцию главного меню выходит то же самое. Как реализуются такие задачи?
C++ Ошибка в классе IntegerSet IntegerSet.h: #pragma once //#ifndef _INTEGERSET_H #define _INTEGERSET_H class IntegerSet { public: IntegerSet(); IntegerSet(int); ~IntegerSet(); подробнее

Показать сообщение отдельно
Irisha3581
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 10
29.11.2013, 23:08     Ошибка в задаче с классами
не могу понять почему не выводятся значения и не выполняется подсчёт...
помогите, пожалуйста, сижу очень долго, а скоро сессия...
Задача:
Создать класс "квадрат", члены класса - длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре: диагональ, периметр, площадь. Создать производный класс "правильная квадратная призма с высотой H", добавить в класс метод определения объёма фигуры, переопределить методы расчёта площади и вывода сведений о фигуре. Разработать программу, демонстрирующую работу с объектами этих классов: дано N квадратов и M призм, найти квадрат с максимальной площадью и призму с максимальной диагональю.


Среда разработки - Visual Studio (приложение Windows Forms).
Делала через DataGridView ввод кол-ва квадратов и призм и вывод инфы о них.

Сама программа:

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#pragma endregion
    private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) 
             {
             Close();    
             };
    public: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                 int i;
                 float  max_S, max_diagonal_prisma;
                 float n[100], m[100];
                 int numer_max_S, numer_max_diagonal_prisma;
                 for (i=1; i>=dataGridView1->RowCount; i++) // записываем введённые числа в длины сторон квадратов
                 {
                     if (dataGridView1[0, i]->Selected)
                     {
                         int Dlina_storon = Convert::ToInt32(dataGridView1[0, i]->Value);
                         kv1[i-1].input_my(Dlina_storon);
                     }
                 };
                 for (i=1; i>=dataGridView2->RowCount; i++) // записываем введённые числа в высоты призм
                 {
                     if (dataGridView2[0, i]->Selected)
                     {
                         int H = Convert::ToInt32(dataGridView2[0, i]->Value);
                         kv2[i-1].input_my(H);
                     }
                 };
                 float dig1,dig2;
                 for (i=1; i>=dataGridView1->RowCount; i++) // выводим диагональ квадратов
                 {
                    if (dataGridView1[1, i]->Selected)
                     {
                         dig1=kv1[i-1].diagonal();
                         dataGridView1[1,i]->Value=Convert::ToString(dig1);
                     }
                 };
                 float pl1,per1,pl2,per2;
                 for (i=1; i>=dataGridView1->RowCount; i++) // выводим периметр квадратов
                 {
                     if (dataGridView1[2, i]->Selected)
                     {
                         per1=kv1[i-1].Perimetr();
                         dataGridView1[2,i]->Value=Convert::ToString(per1);
                     }
                 };
                 for (i=1; i>=dataGridView1->RowCount; i++) // выводим площадь квадратов
                 {
                     if (dataGridView1[3, i]->Selected)
                     {
                         pl1=kv1[i-1].Ploshad();
                         dataGridView1[3,i]->Value=Convert::ToString(pl1);
                     }
                 };
 
                 for (i=1; i>=dataGridView2->RowCount; i++) // выводим диагональ призм
                 {
                     if (dataGridView2[1, i]->Selected)
                     {
                         dig2=kv2[i-1].diagonal();
                         dataGridView2[1,i]->Value=Convert::ToString(dig2);
                     }
                 };
                 for (i=1; i>=dataGridView2->RowCount; i++) // выводим объём призм
                 {
                     if (dataGridView2[2, i]->Selected)
                     {
                         per2=kv2[i-1].f_obem();
                         dataGridView2[2,i]->Value=Convert::ToString(per2);
                     }
                 };
                 for (i=1; i>=dataGridView1->RowCount; i++) // выводим площадь призм
                 {
                     if (dataGridView1[3, i]->Selected)
                     {
                         pl2=kv2[i-1].Plozhad();
                        dataGridView2[3,i]->Value=Convert::ToString(pl2);
                     }
                 };
                               // начало поиска максимумов и вывод соответственно
                 max_S=m[0];
                 numer_max_S=1;
                 for (i=1; i>=dataGridView1->RowCount; i++)
                 {
                     if (m[i-1]>max_S) {max_S=m[i-1]; numer_max_S=i;}
                 }
                 textBox7->Text=Convert::ToString(numer_max_S);
 
                 max_diagonal_prisma=n[0];
                 numer_max_diagonal_prisma=1;
                 for (i=1; i>=dataGridView2->RowCount; i++)
                 {
                     if (m[i-1]>max_diagonal_prisma) {max_diagonal_prisma=n[i-1]; numer_max_diagonal_prisma=i;}
                 }
                 textBox8->Text=Convert::ToString(numer_max_diagonal_prisma);
 
 
             };
          }; 
}
И класс:
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
class Kvadrat
{
public: 
    float d; // длина стороны
public:
    virtual void input_my(float x)
    {
        d=x;
    };
    virtual float diagonal(void) // диагональ квадрата
    { 
        return sqrtf(d);
    }; 
    virtual float Perimetr(void) // периметр квадрата
    {
        return 4*d;
    };
    virtual float Ploshad(void) // площадь квадрата
    {
        return d*d;
    };
};
 
class Prizma: public Kvadrat
{
public:
    int H; // высота призмы
public:
    virtual void input_my(int y)
    {
        H=y;
    }
    virtual float diagonal(void) // диагональ призмы
    {
        return sqrtf(2*H*H+H*H);
    }
    virtual float Plozhad(void) // площадь призмы
    {
        return 4*d*H+2*((3*sqrtf(3))/2)*(d*d);
    }
    virtual float f_obem(void) // объём призмы
    {
        float S1=Ploshad();
        return H*S1;
    }
    
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru