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

Структура классов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 15:50     Структура классов #1
Здраствуйте! У меня задание создать структуру классов и придумать варианты её использования.
Написала вот не понятно что.

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
169
170
171
172
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream.h>
#include <ostream.h>
#include <Math.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
struct salon
{
        protected:
        int a;  int h;
        AnsiString type; char type_move;
        public:
                virtual void set_type(AnsiString a)
                {
                  type=a;
                }
                void show()
                {
 
                }
};
class kassa : public salon
{
  protected: int cena;
  public:
  void set_cena(int a)
  {
   cena=a;
  }
    void show()
  {
   cout<<"H: "<<h<<endl<<"Type moving: "<<type_move<<endl<<"cena: "<<cena<<endl;
  }
  kassa(int a)
  {
   h=a;
  }
  };
class stulparikmahera :   public salon
{
  protected: int klient;
  public:
  void set_klient(int a)
  {
   klient=a;
  }
    void show()
  {
   cout<<"H: "<<h<<endl<<"Type moving: "<<type_move<<endl<<"klient: "<<klient<<endl;
  }
  stulparikmahera(int a)
  {
   h=a;
  }
  };
class paricmaher :   public salon
{
  protected: int rabota;
  public:
  void set_rabota(int a)
  {
   rabota=a;
  }
    void show()
  {
   cout<<"H: "<<h<<endl<<"Type moving: "<<type_move<<endl<<"rabota: "<<rabota<<endl;
  }
  paricmaher(int a)
  {
   h=a;
  }
  };
class fen:   public salon
{
  protected: int vkl;
  public:
  void set_vkl(int a)
  {
   vkl=a;
  }
    void show()
  {
   cout<<"H: "<<h<<endl<<"Type moving: "<<type_move<<endl<<"vkl: "<<vkl<<endl;
  }
  fen(int a)
  {
   h=a;
  }
  };
class soljarii: public salon
{
  protected: int zan;
  public:
  void set_zan(int a)
  {
   zan=a;
  }
    void show()
  {
   cout<<"H: "<<h<<endl<<"Type moving: "<<type_move<<endl<<"zan: "<<zan<<endl;
  }
  soljarii(int a)
  {
   h=a;
  }
  };
class kosmetolog :  public salon
{
  protected: int del;
  public:
  void set_del(int a)
  {
   del=a;
  }
    void show()
  {
   cout<<"H: "<<h<<endl<<"Type moving: "<<type_move<<endl<<"del: "<<del<<endl;
  }
  kosmetolog(int a)
  {
   h=a;
  }
  };
 
#pragma argsused
int main(int argc, char* argv[])
{     bool ii; int ii1; bool ii2; bool ii3; int ii4; int ii5;  int y;
 stulparikmahera tt(ii);
        kassa tt1(ii1);
        paricmaher tt2(ii2);
        fen tt3(ii3);
        soljarii tt4(ii4);
        kosmetolog  tt5(ii5);
       printf("vvedite 1 esli kreslo zanjato ili 0 esli kreslo svobodno\n");
      cin>>y;
      ii=y;  ii1=0;
      if (ii==1) {    ii1=ii1+1;  ii2=1;  ii3=1  ;
      } else if (ii==0) {ii2=0; ii3=0;}  ;
      if (ii==0) { cout<<"\nKreslo svobodno\n";
      }  else if (ii==1) {cout<<"\nKreslo zanjato\n";};
      cout<<"Deneg v kasse "<<ii1<<"\n";
      if (ii2==0) { cout<<"Master ne rabotaet\n";
      }  else if (ii2==1) {cout<<"Master rabotaet\n";};
      if (ii3==0) { cout<<"Fen vyklyuchen\n";
      }  else if (ii3==1) {cout<<"Fen vklyuchen\n";};
 
      printf("\nvvedite 1 esli soljarii zanjat ili 0 esli svoboden\n");
      cin>>y;
      ii4=y;
      if (ii4==1) {ii1=ii1+1;}
        if (ii4==0) { cout<<"\nSoljarii svoboden\n";
      }  else if (ii4==1) {cout<<"\nSolirii zanjat\n";};
      cout<<"Deneg v kasse "<<ii1<<"\n";
 
      printf("\nvvedite 1 esli kosmetolog zanjat ili 0 esli svoboden\n");
      cin>>y;
      ii5=y;
      if (ii5==1) {ii1=ii1+1;}
        if (ii5==0) { cout<<"\nKosmetolog svoboden\n";
      }  else if (ii5==1) {cout<<"\nKosmetolog zanjat\n";};
      cout<<"Deneg v kasse "<<ii1<<"\n";
       char kk = getch();
        return 0;
}
подскажите пожалуйста, что тут исправить, чтобы было похоже на структуру классов.
Вот то что в инт мэйне там типа способ использования. Но это будет работать и без структуры классов.
или приведите пожалуйста пример проги чего-то подобного, чтоб я могла по аналогии переделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2010, 15:50     Структура классов
Посмотрите здесь:

C++ структура
Структура C++
C++ Структура
Структура C++
C++ Структура
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
09.12.2010, 17:37     Структура классов #2
Цитата Сообщение от Slafira Посмотреть сообщение
подскажите пожалуйста, что тут исправить, чтобы было похоже на структуру классов.
Всё...
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 17:46  [ТС]     Структура классов #3
Цитата Сообщение от rangerx Посмотреть сообщение
Всё...
а можно как-нибудь поконкретней?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
09.12.2010, 18:04     Структура классов #4
Цитата Сообщение от Slafira Посмотреть сообщение
а можно как-нибудь поконкретней?
http://www.cyberforum.ru/cpp-cross-p...ml#post1042212
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 18:16  [ТС]     Структура классов #5
только то, что смысл неправильный?
мне это неважно, ну придумаю я правильный смысл, что нужно добавить или изменить конкретно в коде?
если не считать, что по-другому назвать переменные
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.12.2010, 18:30     Структура классов #6
Добавь пару осмысленных классов с осмысленным наследованием и покажи, как их использовать.
Чтобы было легче, напомню, что как указал ссылкой rangerx, дочерний класс является базовым классом. Например, щука является рыбой или кошка является животным. Но фен или, упаси, косметолог, увы, не являются салоном, как в вашем примере.

Оттого и нельзя сказать, что не так в коде. Получается, все не так.
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 20:05  [ТС]     Структура классов #7
Цитата Сообщение от lemegeton Посмотреть сообщение
Добавь пару осмысленных классов с осмысленным наследованием и покажи, как их использовать.
Чтобы было легче, напомню, что как указал ссылкой rangerx, дочерний класс является базовым классом. Например, щука является рыбой или кошка является животным. Но фен или, упаси, косметолог, увы, не являются салоном, как в вашем примере.

Оттого и нельзя сказать, что не так в коде. Получается, все не так.
а что изменится от того, что классы будут по-другому называться? У меня суть не в наследовании, а в умении использовать структуру классов, чтоб взаимодействие между ними было.
У меня проблема в том что они не взаимодействуют, а то, что я написала будет работать и без всех этих классов. Я не знаю синтаксис.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.12.2010, 20:57     Структура классов #8
Цитата Сообщение от Slafira Посмотреть сообщение
а что изменится от того, что классы будут по-другому называться? У меня суть не в наследовании, а в умении использовать структуру классов, чтоб взаимодействие между ними было.
У меня проблема в том что они не взаимодействуют, а то, что я написала будет работать и без всех этих классов. Я не знаю синтаксис.
Изменится многое. Станет понятно что с чем и как должно взаимодействовать.

Например, в cледующем примере показывает взаимодействие объектов двух классов.
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
class Tree
{
public:
     int height;
     string name;
     bool is_peed;
     Tree(int h=10) { height=h; is_peed=0; name="General tree"; };
};
 
class Oak : public Tree
{
public:
     Oak(int h=20) { height=20; is_peed=0; name="Oak"; };
};
 
class Dog
{
public:
    void pee_on(Tree& tree) { tree.is_peed = true; cout << "Dog pissed on " << tree.name << "." << endl; }
}
 
int main()
{
     Oak oak;
     Dog dog;
 
     dog.pee_on(oak);
 
     return 0;
}
Как должны взаимодействовать касса, которая салон, с солярием, который тоже салон?! Бред пьяного мультипликатора.
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 21:51  [ТС]     Структура классов #9
Цитата Сообщение от lemegeton Посмотреть сообщение
Как должны взаимодействовать касса, которая салон, с солярием, который тоже салон?! Бред пьяного мультипликатора.
но у меня структура классов же. то, что вы написали в примере просто отдельно взятые классы, а не структура.
Вот допустим создам я структуру фрукты и там будут классы яблоко, банан, апельсин, персик. И как они будут между собой взаимодействовать?

И если вам так уж не нравится, то можно назвать не салон, а инвентарь салона или оборудование. И чтоб парикмахер и косметолог не были оборудованием заменить их на ножницы и эпилятор.
И суть вопроса остаётся той же, что надо изменить, чтоб эти классы взаимодействовали?
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.12.2010, 22:17     Структура классов #10
Дико извиняюсь, я сделал абсурдное предположение, что вам, как и всем, объясняли про отношения классов, а вы просто перепутали, обозвав их взаимодействием. В таком случае, вам придется объяснить, что вы понимаете под "взаимодействием классов". Например, как могут взаимодействовать ваши объекты классов.
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 22:24  [ТС]     Структура классов #11
Цитата Сообщение от lemegeton Посмотреть сообщение
Дико извиняюсь, я сделал абсурдное предположение, что вам, как и всем, объясняли про отношения классов, а вы просто перепутали, обозвав их взаимодействием. В таком случае, вам придется объяснить, что вы понимаете под "взаимодействием классов". Например, как могут взаимодействовать ваши объекты классов.
если бы мне что-то объясняли, я бы сделала сама и не спрашивала тут. Отношения классов в первый раз слышу.
взаимодействие не как термин, а я так объяснила что мне нужно.
придумать вариант использования структуры мне надо.
вот я создала структуру классов и они у меня взаимодействуют. Если стул парикмахера занят, то парикмахер работает, деньги в кассе прибавляются, фен включен.

Препод так объяснил на примере машины - если двигатель включен, то колеса крутятся, бензин уменьшается.
По-моему аналогично.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.12.2010, 22:30     Структура классов #12
Вот и используйте созданные объекты класса в коде функции main, а не сторонние переменные. И, ради Б-га, вводите "говорящие" переменные, сквозь эти ttt iii iiii1ii1iiiiiiiii не продраться.

Если в том примере "структурность классов" была не очевидна, то вот более очевидный пример.
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
class Leaf
{
public: 
    bool is_falling;
    Leaf () { is_falling = false; }
};
 
class Branch
{
public:
    vector<Leaf> leaves;
    vector<Branch> branches;
};
 
class Tree
{
public:
    vector<Branch> branches;
    int height;
    bool is_peed;
    string name;
    Tree(int h=0) { is_peed=false; height = h; name="General tree."; };
};
 
class Oak : public Tree
{
    Oak(void) { Tree(10); name = "oak"; }
};
 
class Dog
{
public:
    vector<Tree> peed_trees;
    Dog(void) {}
    void pee_on(Tree& tree) { peed_trees.push_back(tree); tree.is_peed = true; }
};
 
int main()
{
    srand(static_cast<unsigned int>(time(0)));
 
 
    system("pause");
    return 0;
}
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 22:36  [ТС]     Структура классов #13
Цитата Сообщение от lemegeton Посмотреть сообщение
Вот и используйте созданные объекты класса в коде функции main, а не сторонние переменные. И, ради Б-га, вводите "говорящие" переменные, сквозь эти ttt iii iiii1ii1iiiiiiiii не продраться.
так вот я и спрашиваю как это сделать. не знаю синтаксис. Я ещё в первом посте прошу пример хотя бы.
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
09.12.2010, 22:37     Структура классов #14
Цитата Сообщение от Slafira Посмотреть сообщение
Препод так объяснил на примере машины - если двигатель включен, то колеса крутятся, бензин уменьшается.
По-моему аналогично.
Здесь мне кажется он объяснял не взаимодействие классов, а взаимодействие внутри объектов класса. Например данный пример описывает метод скажем StartRiding() или что-то в этом духе.
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 22:49  [ТС]     Структура классов #15
Цитата Сообщение от almazsr Посмотреть сообщение
Здесь мне кажется он объяснял не взаимодействие классов, а взаимодействие внутри объектов класса. Например данный пример описывает метод скажем StartRiding() или что-то в этом духе.
если дословно от задания то вариант использования структуры классов
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.12.2010, 23:01     Структура классов #16
Вот вам пример. Тут и наследование и ассоциации и то, что вы называете взаимодействием.
Собачка прыгает на дерево, дерево трясется, листья падают.
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
#include <iostream>
#include <iomanip>
#include <time.h>
#include <vector>
#include <string>
#include <algorithm>
 
using namespace std;
 
class Leaf
{
public:
    bool is_fallen;
    Leaf() { is_fallen = false; }
};
 
class Branch
{
public:
    vector<Leaf> leaves;
    vector<Branch> branches;
 
    Branch(bool more_branches=true)
    {
        if (more_branches)
            for (int i=0; i<rand()%5; i++)
                branches.push_back(Branch(false));
        for (int i=0; i<rand()%11+10; i++)
            leaves.push_back(Leaf());
    }
 
    int shake()
    {
        int fallen_leaves = 0;
        for (int i=0; i<branches.size(); i++)
            fallen_leaves += branches[i].shake();
        for (int i=0; i<leaves.size(); i++)
            if (rand()%10 == 0)
            {
                leaves[i].is_fallen = true;
                fallen_leaves++;
            }
        return fallen_leaves;
    }
};
 
class Tree
{
public:
    vector<Branch> branches;
    int height;
    string name;
    int shake_branches() 
    {
        cout << name << " is shaking branches." << endl;
        int count = 0;
        for (int i=0; i<branches.size(); i++)
            count += branches[i].shake();
        cout << count << " leaves has fallen." << endl;
        return count;
    }
    Tree(int h=0) 
    { 
        height = h; 
        name="General tree."; 
        for (int i=0; i<rand()%5+10; i++)
            branches.push_back(Branch());
    };
};
 
class Oak : public Tree
{
public:
    Oak(void) { Tree(10); name = "oak"; }
};
 
class Dog
{
public:
    string name;
    vector<Tree> jumped_trees;
    Dog(string n) { name=n; }
    void jump_on(Tree& tree) 
    { 
        jumped_trees.push_back(tree);
        cout << name << " has jumped on " << tree.name << endl;
        tree.shake_branches();
    }
};
 
int main()
{
    srand(static_cast<unsigned int>(time(0)));
 
    Oak oak;
    Dog dog("Sharik");
 
    dog.jump_on(oak);
 
    system("pause");
    return 0;
}
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
10.12.2010, 00:01  [ТС]     Структура классов #17
Цитата Сообщение от lemegeton Посмотреть сообщение
Вот вам пример. Тут и наследование и ассоциации и то, что вы называете взаимодействием.
Собачка прыгает на дерево, дерево трясется, листья падают.
спасибо. попробую разобраться. только у меня ошибка при компиляции
[ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MTI.LIB|crtlvcl
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
10.12.2010, 00:07     Структура классов #18
Цитата Сообщение от Slafira Посмотреть сообщение
[ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\CODEGEAR\RAD STUDIO\6.0\LIB\CP32MTI.LIB|crtlvcl
C++
1
#include <vcl.h>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 00:08     Структура классов
Еще ссылки по теме:

Структура C++
Структура наследования базовых/производных классов: error LNK 1104 C++
C++ Структура классов для игры

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

Или воспользуйтесь поиском по форуму:
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
10.12.2010, 00:08  [ТС]     Структура классов #19
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
#include <vcl.h>
ага, спасибо, я уже сама исправила, теперь работает.
Yandex
Объявления
10.12.2010, 00:08     Структура классов
Ответ Создать тему
Опции темы

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