Условие: Класс товары(goods). В классе должны быть представлены поля: наименование товара, дата оформления, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. Реализовать методы изменения цены товара, изменения количества товара (увеличение и уменьшение), вычисление стоимости товара.. Поле дата вводитса с помощью класса date.
Как это реализовать в плане вложености класса в класс. Я вот написала оба класса если кто то может то поменяйте в тексте проги куда что нада вставить. И еще помогите реализовать метод вычисляющий срок хранения товара.
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
| #include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <sstream>
class Date
{
unsigned int day,month,year;
public:
friend class ;
};
class Goods
{
{
private:
char* naimenovanie_tovara;
char* data_oformleniya;
float cena_tovara;
int kolichestvo_edinic_tovara;
int nomer_nakladnoi;
public:
friend class Date;
Date date;
void Read();
void Display();
float Izmenenie_cenu_tovara();
float Izmenenie_kolichestva_tovara();
float Vuchislenie_stoimosti_tovara();
float data_postyplenya_tovara ();
float srok_hranenya ();
};
void Goods::Read()
{
while(true)
{
cout<<"Vvedite naimenovanie tovara: ";
cin>>naimenovanie_tovara;
cout<<"Vvedite daty oformleniya: ";
cin>>data_oformleniya;
cout<<"Vvedite ceny tovara: ";
cin>>cena_tovara;
cout<<"Vvedite kolicestvo edinic tovara: ";
cin>>kolichestvo_edinic_tovara;
cout<<"Vvedite nomer nakladnoi: ";
cin>>nomer_nakladnoi;
if(cin.peek()=='\n' && cena_tovara>=0.0 && kolichestvo_edinic_tovara>=0 && nomer_nakladnoi>=0)
{
cin.get();
break;
}
else
{
cout<<endl<<"Oshibka!!! Prover'te vvodimue znacheniya."<<endl;
cout<<"Vvedite vse znaceniya povtorno: "<<endl;
cin.clear();
while(cin.get()!='\n') { }
}
}
cout<<"Znacheniya vvedenu verno."<<endl;
}
float Goods::Izmenenie_cenu_tovara()
{
float novaya_cena,konechnaya_cena;
int vubor;
cout<<" Izmenenie cenu tovara."<<endl;
while(true)
{
cout<<"Vvedite ceny tovara: ";
cin>>novaya_cena;
if(cin.peek()=='\n' && novaya_cena>=0.0)
{
cin.get();
break;
}
else
{
cout<<endl<<"Oshibka!!! Prover'te vvodimoe znacheniye."<<endl;
cout<<"Vvedite znacenie povtorno: "<<endl;
cin.clear();
while(cin.get()!='\n') { }
}
}
cout<<"Znachenie vvedeno verno."<<endl<<endl;
cout<<"Vuberite nugnoe deistvie s vvedennum znacheniem: "<<endl;
cout<<"1. Yvelichit' na vvedennyu velichinu."<<endl;
cout<<"2. Ymen'shit' na vvedennyu velichinu."<<endl;
cout<<"3. Zamenit' znachenie cenu na vvedennyu velichinu."<<endl;
cout<<"4. Ostavit' ceny tovara pregnei."<<endl;
cout<<"Vuberite deistvie soglasno punktam menu: ";
cin>>vubor;
switch(vubor)
{
case 1: konechnaya_cena=cena_tovara+novaya_cena;
cout<<"Konechnaya cena tovara ravna: "<<konechnaya_cena<<endl<<endl;
break;
case 2: konechnaya_cena=cena_tovara-novaya_cena;
cout<<"Konechnaya cena tovara ravna: "<<konechnaya_cena<<endl<<endl;
break;
case 3: konechnaya_cena=novaya_cena;
cout<<"Konechnaya cena tovara ravna: "<<konechnaya_cena<<endl<<endl;
break;
case 4: konechnaya_cena=cena_tovara;
cout<<"Konechnaya cena tovara ravna: "<<konechnaya_cena<<endl<<endl;
break;
default: cout<<"Nevernui vvod."<<endl<<endl;
break;
}
return konechnaya_cena;
}
float Goods::Izmenenie_kolichestva_tovara()
{
int novoe_kolichestvo,konechnoe_kolichestvo;
int vubor;
cout<<" Izmenenie kolichestva tovara."<<endl;
while(true)
{
cout<<"Vvedite kolichestvo tovara: ";
cin>>novoe_kolichestvo;
if(cin.peek()=='\n' && novoe_kolichestvo>=0)
{
cin.get();
break;
}
else
{
cout<<endl<<"Oshibka!!! Prover'te vvodimoe znacheniye."<<endl;
cout<<"Vvedite znacenie povtorno: "<<endl;
cin.clear();
while(cin.get()!='\n') { }
}
}
cout<<"Znachenie vvedeno verno."<<endl<<endl;
cout<<"Vuberite nugnoe deistvie s vvedennum znacheniem: "<<endl;
cout<<"1. Yvelichit' na vvedennyu velichinu."<<endl;
cout<<"2. Ymen'shit' na vvedennyu velichinu."<<endl;
cout<<"3. Zamenit' znachenie kolichestva tovara na vvedennyu velichinu."<<endl;
cout<<"4. Ostavit' kolichestvo tovara pregnim."<<endl;
cout<<"Vuberite deistvie soglasno punktam menu: ";
cin>>vubor;
switch(vubor)
{
case 1: konechnoe_kolichestvo=kolichestvo_edinic_tovara+novoe_kolichestvo;
cout<<"Konechnoe kolichestvo tovara ravno: "<<konechnoe_kolichestvo<<endl<<endl;
break;
case 2: konechnoe_kolichestvo=kolichestvo_edinic_tovara-novoe_kolichestvo;
cout<<"Konechnoe kolichestvo tovara ravno: "<<konechnoe_kolichestvo<<endl<<endl;
break;
case 3: konechnoe_kolichestvo=novoe_kolichestvo;
cout<<"Konechnoe kolichestvo tovara ravno: "<<konechnoe_kolichestvo<<endl<<endl;
break;
case 4: konechnoe_kolichestvo=kolichestvo_edinic_tovara;
cout<<"Konechnoe kolichestvo tovara ravno: "<<konechnoe_kolichestvo<<endl<<endl;
break;
default: cout<<"Nevernui vvod."<<endl<<endl;
break;
}
return konechnoe_kolichestvo;
}
float Goods::Vuchislenie_stoimosti_tovara()
{
float stoimost_tovara;
stoimost_tovara=Izmenenie_cenu_tovara()*Izmenenie_kolichestva_tovara();
cout<<" Vuchislenie stoimosti tovara."<<endl;
if(stoimost_tovara<0)
{
cout<<"V sledyushii raz bud'te vmimatel'nu."<<endl;
cout<<"V resul'tate nevernux dannux poluchim sleduushii rezultat: "<<endl;
cout<<"Stoimost' tovara sostavit: "<<stoimost_tovara<<endl;
}
else cout<<"Stoimost' tovara sostavit: "<<stoimost_tovara<<endl;
cout<<"Stoimost' tovara strokoi: "<<ToString(stoimost_tovara)+" denegnux edenic"<<endl;
return stoimost_tovara;
}
void Goods::Display()
{
cout<<endl;
Vuchislenie_stoimosti_tovara();
cout<<endl;
}
float Goods:: data_postyplenya_tovara ();
{
int i,day=0,month=0,year=0;
char buf[11];
for(int i=0,j=0,m=0;i<=strlen(str);i++)
{
if(str[i]=='.'||!str[i])
{
switch(j)
{
case 0: day=atoi(buf); j++; m=0; break;
case 1: month=atoi(buf); j++; m=0; break;
case 2: year=atoi(buf); j++; m=0; break;
}
}
else
{
buf[m]=str[i];
m++;
buf[m]='\0';
}
}
cout<<" Inithializaciya strokoi."<<endl;
cout<<"Date in char: "<<str<<endl;
cout<<"Date in int: "<<year<<":"<<month<<":"<<day<<endl;
getch ();
} |
|