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

Программа-магазин - C++

Восстановить пароль Регистрация
 
Caaake
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 11
21.06.2013, 19:24     Программа-магазин #1
Ребят, есть задание:
Кликните здесь для просмотра всего текста

САМЫЙ ЧТО НИ НА ЕСТЬ ОБЫЧНЫЙ МАГАЗИН

В задании 7 классов. Четыре абстрактных: Товар, Одежда, На ноги, На руки. Три обычных: Обувь, Носки, Перчатки.

ОПИСАНИЯ КЛАССОВ

Класс "Товар"

Свойства:
- артикул.
- цена
Методы:
- установить артикул
- установить цену
- выдать артикул
- выдать цену
- показать всю информацию о товаре
- посчитать оптимальную цену. Должны учитываться категория товара, размер, материал и т.д.

Класс "Одежда"

Свойства:
- марка. Это свойство влияет на рекомендуемую цену. Установите зависимость сами.
- название
Методы:
- установить марку
- установить название
- выдать марку
- выдать название

Класс "На руки"

Свойства:
- размер. Буквенное обозначение (XS, S, M, L, XL, XXL). Это свойство влияет на рекомендуемую цену. Установите зависимость сами.
Методы:
- установить размер
- выдать размер

Класс "Перчатки"

Свойства:
- с пальцами или без. Это свойство влияет на рекомендуемую цену. Установите зависимость сами.
Методы:
- установить с пальцами или без
- выдать с пальцами или без

Класс "На ноги"

Свойства:
- размер. Обозначение цифрами (35 - 45). Это свойство влияет на рекомендуемую цену. Установите зависимость сами.
Методы:
- установить размер
- выдать размер

Класс "Носки"

Свойства:
- материал основы. Это свойство влияет на рекомендуемую цену. Установите зависимость сами.
Методы:
- установить материал основы
- выдать материал основы

Класс "Обувь"

Свойства:
- материал колодки. Это свойство влияет на рекомендуемую цену. Установите зависимость сами.
Методы:
- установить материал колодки
- выдать материал колодки

ОПИСАНИЕ ИЕРАРХИИ НАСЛЕДОВАНИЯ

Наследование Одежда ---> На ноги

Наследуются все свойства и методы

Наследование Одежда ---> На руки

Наследуются все свойства и методы.

Наследование На ноги ---> Носки

Наследуются все свойства и методы.

Наследование На руки ---> Перчатки

Наследуются все свойства и методы.

Наследование Товар ---> Носки

Наследуются все свойства и методы. Переопределяются методы "Посчитать оптимальную цену" и "Показать всю информацию о товаре".

Наследование Товар ---> Перчатки

Наследуются все свойства и методы. Переопределяются методы "Посчитать оптимальную цену" и "Показать всю информацию о товаре".

Наследование Носки ---> Обувь

Наследуются все свойства и методы. Переопределяются методы "Посчитать оптимальную цену" и "Показать всю информацию о товаре".

Вот написанный код:
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
173
174
175
176
177
178
179
180
class Goods
{
protected:
int article;
double cost;
public:
int GetArticle()
{
return article;
}
 
void SetArticle(int value)
{
article = value;
}
 
double GetCost()
{
return cost;
}
 
void SetCost(double value)
{
cost = value;
}
 
virtual char* GetInfo()
{
char* tmp;
sprintf(tmp, "Article: %d\nCost: %d\n", article, cost); 
return tmp;
}
 
virtual double GetOptimalCost();
};
 
class Clothes
{
protected:
int mark;
char* name;
public:
int GetMark()
{
return mark;
}
 
void SetMark(int value)
{
mark = value;
}
 
char* GetName()
{
return name;
}
 
void SetName(char* value)
{
name = value;
}
};
 
class OnFoot: public Clothes
{
private:
int size;
public:
int GetSize()
{
return size;
}
 
void SetSize(int value)
{
size = value;
}
};
 
class OnHand: public Clothes
{
private:
char* size;
public:
char* GetSize()
{
return size;
}
 
void SetSize(char* value)
{
size = value;
}
};
 
class Gloves: public OnHand, public Goods
{
private:
bool polen;
public:
bool GetPolen()
{
return polen;
}
 
void SetPolen(bool value)
{
polen = value;
}
 
virtual char* GetInfo()
{
char* tmp;
sprintf(tmp, "Article: %d\nCost: %d\nMark: %d\nName: %s\nWith polen: " + GetPolen() ? "yes" : "no\n", GetArticle(), GetCost(), GetMark(), GetName());
}
 
virtual double GetOptimalCost()
{
return GetCost() + GetMark() * 30 + GetPolen() ? 100 : 0; 
}
};
 
class Socks: public OnFoot, public Goods
{
private:
int materialOfBasis;
public:
int GetMaterialOfBasis()
{
return materialOfBasis;
}
 
void SetMaterialOfBasis(int value)
{
materialOfBasis = value;
}
 
virtual char* GetInfo()
{
char* tmp;
sprintf(tmp, "Article: %d\nCost: %d\nMark: %d\nName: %s\nMaterial of basis: %d\n", GetArticle(), GetCost(), GetMark(), GetName(), GetMaterialOfBasis());
}
 
virtual double GetOptimalCost()
{
return GetCost() + GetMark() * 30 + GetMaterialOfBasis() * 40; 
}
};
 
class Shoes: public Socks
{
private:
int materialOfShoes;
public:
int GetMaterialOfShoes()
{
return materialOfShoes;
}
 
void SetMaterialOfShoes(int value)
{
materialOfShoes = value;
}
 
virtual char* GetInfo()
{
char* tmp;
sprintf(tmp, "Article: %d\nCost: %d\nMark: %d\nName: %s\nMaterial of basis: %d\nMaterial of shoes: %d\n", GetArticle(), GetCost(), GetMark(), GetName(), GetMaterialOfBasis(), GetMaterialOfShoes());
}
 
virtual double GetOptimalCost()
{
return GetCost() + GetMark() * 30 + GetMaterialOfBasis() * 40 + GetMaterialOfShoes() * 50; 
}
};
 
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
Не подскажете, в чем ошибки?)
Миниатюры
Программа-магазин  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2013, 19:24     Программа-магазин
Посмотрите здесь:

C++ Создать класс, содержащий сведения об ассортименте игрушек в магазин
C++ Магазин
Что такое магазин? C++
интернет магазин C++
C++ Магазин в консоли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
21.06.2013, 19:30     Программа-магазин #2
@Caaake, неправильная скорее всего у вас схема. Иначе выходит, что все свойства должны быть открытыми, собственно для чего тогда классы?

Добавлено через 53 секунды
Что за классы "На руки", "На ноги" ?
Caaake
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 11
21.06.2013, 23:29  [ТС]     Программа-магазин #3
@MrGluck, схема - дурдом (разве разумный человек будет эдакое писать?). это университетское задание :/
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
21.06.2013, 23:56     Программа-магазин #4
+1 Переделайте схему, у вас вы ходит что обувь, это носки, которые на ноги (кроме того что они ещё и товар), которые одежда. Бредятина = )
Caaake
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 11
22.06.2013, 00:01  [ТС]     Программа-магазин #5
@Демик, на пост выше, пожалуйста.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
22.06.2013, 00:20     Программа-магазин #6
@Caaake, без 100 грамм тут не разобраться

Вот с этим
Цитата Сообщение от Caaake Посмотреть сообщение
разве разумный человек будет эдакое писать?
я согласен. Помог бы вам, но хрен поймет как эти классы должны друг от друга методы наследовать. По коду скажу вот что: protected быть не должно, он обозначается # (private -), здесь же везде +
А если выучить материал, подойти к преподу и обосновать почему он не прав тет а тет?
Могу выложить свои нормальные лекции по UML.
Caaake
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 11
22.06.2013, 00:23  [ТС]     Программа-магазин #7
@MrGluck, благодарю за отклик. лекции не нужны, спасибо
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
22.06.2013, 00:58     Программа-магазин #8
@Caaake, вообще-то я отвечал топик стартеру, а не вам, как вы могли ошибиться?=)

Добавлено через 8 минут
@Caaake, Все, понял. Признаю, я дурак = ). Ну если схема нарисована не вами то, вопросов нет = )
Croessmah
22.06.2013, 01:00
  #9

Не по теме:

Удивило, что обувь - это разновидность носок судя по схеме

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2013, 03:37     Программа-магазин
Еще ссылки по теме:

C++ С++ Магазин
C++ Сколькими способами человек может попасть в магазин

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

Или воспользуйтесь поиском по форуму:
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
22.06.2013, 03:37     Программа-магазин #10
Ладно в схеме может быть ошибка, но в пояснении к задаче, написано тоже самое что в схеме
Yandex
Объявления
22.06.2013, 03:37     Программа-магазин
Ответ Создать тему
Опции темы

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