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

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

Восстановить пароль Регистрация
 
tarakano
34 / 26 / 5
Регистрация: 24.12.2010
Сообщений: 164
17.05.2012, 23:10     Реализация собственных классов #1
Разработать прогнрамму, демонстрирующую работу с объектами 2х типов: Triangle(треугольник) и Quadrate(квадрат ).Каждый объект должен иметь идентификатор ввиде произвольной строки символов и одно или несколько полей для хранения состояния объекта
Клиенту (ф-ции main) должны быть доступны след основные операции:
-создать объект
-удалить объект
-показать состояние(значение) объекта
-переместить объект на плоскости -метод Move()
-сравнить объекты по площади - метод Compare(T& ob1, T& ob2)

снизу прикрепил файл - то что начал делать по примеру - но запутался дальше
помогите пожалуйста
Вложения
Тип файла: rar Point.rar (36.9 Кб, 12 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     Реализация собственных классов
Ответ Создать тему
Опции темы

Текущее время: 13:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru