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

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

Войти
Регистрация
Восстановить пароль
 
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
#1

Реализация собственных классов - C++

17.05.2012, 23:10. Просмотров 648. Ответов 5
Метки нет (Все метки)

Разработать прогнрамму, демонстрирующую работу с объектами 2х типов: Triangle(треугольник) и Quadrate(квадрат ).Каждый объект должен иметь идентификатор ввиде произвольной строки символов и одно или несколько полей для хранения состояния объекта
Клиенту (ф-ции main) должны быть доступны след основные операции:
-создать объект
-удалить объект
-показать состояние(значение) объекта
-переместить объект на плоскости -метод Move()
-сравнить объекты по площади - метод Compare(T& ob1, T& ob2)

снизу прикрепил файл - то что начал делать по примеру - но запутался дальше
помогите пожалуйста
Вложения
Тип файла: rar Point.rar (36.9 Кб, 12 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 23:10     Реализация собственных классов
Посмотрите здесь:

Приведение типов собственных классов - C++
Добрый день, пусть есть класс class Line { public int x1,x2 ; public int y1,y2 ; Line (int X1,int X2, int...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) - C++
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как вынести методы из классов Panel и...

Как правильно перегрузить операторы для собственных классов? - C++
Операторы перегрузки не выполняются. Мне кажется, я не правильно передаю объекты класса в функцию. Прошу обратить внимание на файл ...

Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс - C++
Доброго времени суток! Осваивая UML, решил реализовать отношение двунаправленной ассоциации по диаграмме: У одного владельца...

Реализация классов - C++
Помогите, пожалуйста, с 2-мя заданиями! 1) class A { public: A(); ~A(); private: D m_data;

Реализация классов чисел - C++
есть задача по реализации 2 классов действительно и комплексного числа, при дебаги возникают непонятные мне ошибки хелп. # include...

Реализация классов integer, double - C++
Есть задания реализовать класс integer,double,char производные от абстрактного класса Number. Определить между этими классами все...

Реализация программы с помощью классов - C++
Здравствуйте, коллеги-программеры! Обращаюсь к Вам с таким вопросом. У меня есть написанная мной неплохая демка, с использованием...

Реализация списка + Шаблоны классов - C++
Всем добрый день, есть не большая проблема с реализацией списка с помощью шаблонов класса. Далеко не профи я :) Тоже самое смог сделать...

ООП реализация сложных классов - C++
Вот задание как реализуется сложный класс“база-сектор” (дуга+радиус+радиус) , в которых класс “фигура” должен присутствовать в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
18.05.2012, 19:01  [ТС]     Реализация собственных классов #2
никто не знает??
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
19.05.2012, 19:39  [ТС]     Реализация собственных классов #3
добавление к первой программе
Вложения
Тип файла: rar Point.rar (1.01 Мб, 21 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
19.05.2012, 23:24     Реализация собственных классов #4
tarakano, проект большой, чтобы не ломать голову скажи что именно не так или чего у ебя не хватает в проекте?
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
22.05.2012, 22:12  [ТС]     Реализация собственных классов #5
-=ЮрА=-, вот теперь уже дошёл до этого,
не хватает - описания метода Move и Compare
дальше не знаю уже как делать, совсем запутался



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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
////Triangle.h
 
#ifndef Triangle_h
#define Triangle_h
class Triangle
{public:
    Triangle (float x, float y,float z);
    ~Triangle();
    Quadrate(float n);
    ~Quadrate();
 
    float areaT(){return sT;};
    float areaQ(){return sQ;};
    void set_sidesT (float new_a, float new_b,float new_c);
    void set_sidesQ (float new_n);
    void get_propertiesT();
    void get_propertiesQ();
 
private:
    float a,b,c,n;
    float s,p;
};
#endif
 
///////////////////////////////////
 
 
 
/////////DefTriangle
#include <iostream>
#include "Triangle.h"
#include <math.h>
using namespace std;
 
Triangle::Triangle (float x, float y,float z)
{a=x;
b=y;
c=z;
 
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));}
Triangle::~Triangle(){}
 
void Triangle::set_sidesT(float new_a,float new_b,float new_c)
{a=new_a;
b=new_b;
c=new_c;
 
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));}
 
void Triangle::get_propertiesT()
{cout<<"\nTreugol'nik imeet storony, dlinoy "<<a<<", "<<b<<", "<<c<<";}
 
 
 
 
Quadrate::Qudrate(float n)
{n=d
    s=d*d;}
Quadrate::~Qudrate(){}
 
void Quadrate::set_sidesQ(float new_n)
{n=new_n;
s=n*n;}
 
 
void Quadrate::get_propertiesQ()
{cout<<"\nQuadrate imet storoni dlinoy "<<n<<";}
 
 
//////////////////////////////
 
 
 
///////////UseTriangle
#include "Triangle.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
int choice;
int menu()
{
    int choice;
    cout<<"\n\n ***Menu*** \n";
    cout<<"(1)Storoni treygolnika\n";
    cout<<"(2)Storona kvadrata\n";
    cout<<"(3)Izmenit' storoni treygolnika\n";
    cout<<"(4)Izmenit' storoni kvadrata\n";
    cout<<"(5)Ploshad treugolnika\n";
    cout<<"(6)Ploshad kvadrata\n";
    cout<<"(7)Move treygolnik\n";
    cout<<"(8)Move kvadrat\n";
    cout<<"(9)Vyhod\n";
    cin>>choice;
    cout<<"-------------------";
    return choice;
}
int main()
{Triangle tr(3,4,5);
Qudrate qu(2);
int f_quit=false;
while(!f_quit)
    {choice=menu();
    switch(choice)
{case 1:tr.get_propertiesT();break;
    case 2:qu.get_propertiesQ();break;
 
case 3:
    float x,y,z;
    cout<<"\nVvedite novuyu storonu a:";
    cin>>x;
    cout<<"\nVvedite novuyu storonu b:";
    cin>>y;
    cout<<"\nVvedite novuyu storonu c:";
    cin>>z;
    cout<<"\n---------------";
    if ((x<y+z) & (y<z+x) & (z<x+y) & (x>0) & (y>0) & (z>0)){tr.set_sides(x,y,z);}
    else {cout<<"Vnimanie! Obrazovat' treugolnik s dannymi storonami nevozmozhno!!!";};
    break;
case 4:
    float n;
    cout<<"\nVvedite novuyu storonu n:";
    cin>>n;
    break;
 
case 5:
    cout<<"\nPloschad treugol'nika ravna "<<tr.area()<<endl;
    break;
case 6:
    cout<<"\nPloschad kvadrata ravna:"<<qu.area()<<endl;
    break;
case 7:
    cout<<"\nSmeshenir treygolnika po X:";
    cin>>
case 9:
    f_quit=true;
    cout<<"\nVyhod...\n\n";
    break;
default:
    cout<<"\nNevernaya opciya! Povtorite vvod!\n";
    //f_quit=true;
    break;
    }
}
return 0;
}
 
 
////////////////////////////////////
Вложения
Тип файла: rar Triangleа.rar (875.6 Кб, 6 просмотров)
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
22.05.2012, 22:29  [ТС]     Реализация собственных классов #6
заметил ошибку, там надо было через 2 класса делать, вот переделал:

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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
////Triangle.h
 
#ifndef Triangle_h
#define Triangle_h
class Triangle
{public:
    Triangle (float x, float y,float z);
    ~Triangle();
 
 
    float areaT(){return sT;};
    void set_sidesT (float new_a, float new_b,float new_c);
    void get_propertiesT();
 
 
private:
    float a,b,c;
    float s,p;
};
#endif
 
///////////////////////////////////
//////Quadrate.h
 
#ifndef Quadrate_h
#define Qudrate_h
class Quadrate
{public:
    Quadrate(float n);
    ~Quadrate();
 
    float areaQ(){return sQ;};
    void set_sidesQ (float new_n);
    void get_propertiesQ();
 
private:
    float n;
    float s;
};
#endif
 
/////////////////////////
 
 
 
/////////DefTriangle
#include <iostream>
#include "Triangle.h"
#include <math.h>
using namespace std;
 
Triangle::Triangle (float x, float y,float z)
{a=x;
b=y;
c=z;
 
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));}
Triangle::~Triangle(){}
 
void Triangle::set_sidesT(float new_a,float new_b,float new_c)
{a=new_a;
b=new_b;
c=new_c;
 
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));}
 
void Triangle::get_propertiesT()
{cout<<"\nTreugol'nik imeet storony, dlinoy "<<a<<", "<<b<<", "<<c<<";}
 
 
 
 
Quadrate::Qudrate(float n)
{n=d
    s=d*d;}
Quadrate::~Qudrate(){}
 
void Quadrate::set_sidesQ(float new_n)
{n=new_n;
s=n*n;}
 
 
void Quadrate::get_propertiesQ()
{cout<<"\nQuadrate imet storoni dlinoy "<<n<<";}
 
 
//////////////////////////////
 
 
 
///////////UseTriangle
#include "Triangle.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
int choice;
int menu()
{
    int choice;
    cout<<"\n\n ***Menu*** \n";
    cout<<"(1)Storoni treygolnika\n";
    cout<<"(2)Storona kvadrata\n";
    cout<<"(3)Izmenit' storoni treygolnika\n";
    cout<<"(4)Izmenit' storoni kvadrata\n";
    cout<<"(5)Ploshad treugolnika\n";
    cout<<"(6)Ploshad kvadrata\n";
    cout<<"(7)Move treygolnik\n";
    cout<<"(8)Move kvadrat\n";
    cout<<"(9)Vyhod\n";
    cin>>choice;
    cout<<"-------------------";
    return choice;
}
int main()
{Triangle tr(3,4,5);
Qudrate qu(2);
int f_quit=false;
while(!f_quit)
    {choice=menu();
    switch(choice)
{case 1:tr.get_propertiesT();break;
    case 2:qu.get_propertiesQ();break;
 
case 3:
    float x,y,z;
    cout<<"\nVvedite novuyu storonu a:";
    cin>>x;
    cout<<"\nVvedite novuyu storonu b:";
    cin>>y;
    cout<<"\nVvedite novuyu storonu c:";
    cin>>z;
    cout<<"\n---------------";
    if ((x<y+z) & (y<z+x) & (z<x+y) & (x>0) & (y>0) & (z>0)){tr.set_sides(x,y,z);}
    else {cout<<"Vnimanie! Obrazovat' treugolnik s dannymi storonami nevozmozhno!!!";};
    break;
case 4:
    float n;
    cout<<"\nVvedite novuyu storonu n:";
    cin>>n;
    break;
 
case 5:
    cout<<"\nPloschad treugol'nika ravna "<<tr.area()<<endl;
    break;
case 6:
    cout<<"\nPloschad kvadrata ravna:"<<qu.area()<<endl;
    break;
case 7:
    cout<<"\nSmeshenir treygolnika po X:";
    cin>>
case 9:
    f_quit=true;
    cout<<"\nVyhod...\n\n";
    break;
default:
    cout<<"\nNevernaya opciya! Povtorite vvod!\n";
    //f_quit=true;
    break;
    }
}
return 0;
}
 
 
////////////////////////////////////
Вложения
Тип файла: rar Triangleа.rar (878.5 Кб, 13 просмотров)
Yandex
Объявления
22.05.2012, 22:29     Реализация собственных классов
Ответ Создать тему
Опции темы

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