Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
1

Структура классов

09.12.2010, 15:50. Показов 2775. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте! У меня задание создать структуру классов и придумать варианты её использования.
Написала вот не понятно что.

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;
}
подскажите пожалуйста, что тут исправить, чтобы было похоже на структуру классов.
Вот то что в инт мэйне там типа способ использования. Но это будет работать и без структуры классов.
или приведите пожалуйста пример проги чего-то подобного, чтоб я могла по аналогии переделать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2010, 15:50
Ответы с готовыми решениями:

Структура классов для игры
Здравствуйте. В универе дали задание: написать игру - текстовый квест. Только не статичные переходы...

Структура наследования базовых/производных классов: error LNK 1104
Может быть проблема, если я неправильно что-то записал в структуре наследования базовых/производных...

Иерархия классов "Структура - Список - Кольцевой Двусвязный список"
Неделю назад получил задание и срок выполнения до конца мая. Разработка иерархии классов....

Динамическая списочная структура, содержащая объекты классов, связанных наследованием
В общем. Есть базовый класс и 2 класса наследника. Нужно создать динамическую структуру(пусть это...

18
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
09.12.2010, 17:37 2
Цитата Сообщение от Slafira Посмотреть сообщение
подскажите пожалуйста, что тут исправить, чтобы было похоже на структуру классов.
Всё...
0
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 17:46  [ТС] 3
Цитата Сообщение от rangerx Посмотреть сообщение
Всё...
а можно как-нибудь поконкретней?
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
09.12.2010, 18:04 4
Цитата Сообщение от Slafira Посмотреть сообщение
а можно как-нибудь поконкретней?
https://www.cyberforum.ru/cpp-... ost1042212
0
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 18:16  [ТС] 5
Цитата Сообщение от rangerx Посмотреть сообщение
только то, что смысл неправильный?
мне это неважно, ну придумаю я правильный смысл, что нужно добавить или изменить конкретно в коде?
если не считать, что по-другому назвать переменные
0
4770 / 2580 / 892
Регистрация: 29.11.2010
Сообщений: 5,581
09.12.2010, 18:30 6
Добавь пару осмысленных классов с осмысленным наследованием и покажи, как их использовать.
Чтобы было легче, напомню, что как указал ссылкой rangerx, дочерний класс является базовым классом. Например, щука является рыбой или кошка является животным. Но фен или, упаси, косметолог, увы, не являются салоном, как в вашем примере.

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

Оттого и нельзя сказать, что не так в коде. Получается, все не так.
а что изменится от того, что классы будут по-другому называться? У меня суть не в наследовании, а в умении использовать структуру классов, чтоб взаимодействие между ними было.
У меня проблема в том что они не взаимодействуют, а то, что я написала будет работать и без всех этих классов. Я не знаю синтаксис.
0
4770 / 2580 / 892
Регистрация: 29.11.2010
Сообщений: 5,581
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;
}
Как должны взаимодействовать касса, которая салон, с солярием, который тоже салон?! Бред пьяного мультипликатора.
0
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 21:51  [ТС] 9
Цитата Сообщение от lemegeton Посмотреть сообщение
Как должны взаимодействовать касса, которая салон, с солярием, который тоже салон?! Бред пьяного мультипликатора.
но у меня структура классов же. то, что вы написали в примере просто отдельно взятые классы, а не структура.
Вот допустим создам я структуру фрукты и там будут классы яблоко, банан, апельсин, персик. И как они будут между собой взаимодействовать?

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

Препод так объяснил на примере машины - если двигатель включен, то колеса крутятся, бензин уменьшается.
По-моему аналогично.
0
4770 / 2580 / 892
Регистрация: 29.11.2010
Сообщений: 5,581
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;
}
0
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 22:36  [ТС] 13
Цитата Сообщение от lemegeton Посмотреть сообщение
Вот и используйте созданные объекты класса в коде функции main, а не сторонние переменные. И, ради Б-га, вводите "говорящие" переменные, сквозь эти ttt iii iiii1ii1iiiiiiiii не продраться.
так вот я и спрашиваю как это сделать. не знаю синтаксис. Я ещё в первом посте прошу пример хотя бы.
0
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
09.12.2010, 22:37 14
Цитата Сообщение от Slafira Посмотреть сообщение
Препод так объяснил на примере машины - если двигатель включен, то колеса крутятся, бензин уменьшается.
По-моему аналогично.
Здесь мне кажется он объяснял не взаимодействие классов, а взаимодействие внутри объектов класса. Например данный пример описывает метод скажем StartRiding() или что-то в этом духе.
0
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
09.12.2010, 22:49  [ТС] 15
Цитата Сообщение от almazsr Посмотреть сообщение
Здесь мне кажется он объяснял не взаимодействие классов, а взаимодействие внутри объектов класса. Например данный пример описывает метод скажем StartRiding() или что-то в этом духе.
если дословно от задания то вариант использования структуры классов
0
4770 / 2580 / 892
Регистрация: 29.11.2010
Сообщений: 5,581
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;
}
1
2 / 2 / 1
Регистрация: 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
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
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>
1
2 / 2 / 1
Регистрация: 18.10.2010
Сообщений: 113
10.12.2010, 00:08  [ТС] 19
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
#include <vcl.h>
ага, спасибо, я уже сама исправила, теперь работает.
0
10.12.2010, 00:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2010, 00:08
Помогаю со студенческими работами здесь

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и...

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет функцию, которая...

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение,...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru