You are on page 1of 8

1.

Воз (40 поени)


2.
3. Да се креира класа Patnik во која се чуваат податоци за патниците на еден воз и
тоа: име (низа од максимум 100 знаци), класа на вагон во која се вози (цел број 1 или 2) и
велосипед (булова променлива). (5 поени)
4.
5. За оваа класа да се преоптоварат:
6.
7. Оператор << - за печатење на информациите за патникот во формат: (5 поени)
8. Име на патник
9.
10. Бројот на класата (1 или 2)
11.
12. Дали има велосипед?
13.
14. Потоа да се креира клaса Voz во која се чува: крајна дестинација (низа од
максимум 100 знаци), динамички алоцирана низа од објекти од класата Patnik, како и број на
елементи во низата (цел број), број на дозволени велосипеди (цел број). (5 поени)
15.
16. За класата да се обезбедат:
17.
18. Оператор += – за додавање нов патник во воз. Патник со велосипед ќе може да се качи во воз
само ако возот го дозволува тоа. (10 поени)
19. Оператор << - за печатење на крајната дестинација до која вози и листата на
патници (5 поени)
20. Функција со потпис: patniciNemaMesto(). Со оваа функција се пресметува вкупниот број на
патници (од 1-ва класа и 2-ра класа) за кои нема место да влезат во возот со велосипед.
Притоа треба да се внимава дека во пресметувањето на вкупниот број патници со велосипеди кои
ќе влезат во возот прво треба да се земат предвид патниците од 1-ва класа, а потоа се
дозволува да влегуваат патниците од 2-ра класа се додека не се достигне максималниот број на
дозволени велосипеди во возот. На крај се печати бројот на патници со велосипеди кои
остануваат (не влегуваат во возот) од 1-ва класа, а потоа од 2-ра класа. (10 поени)
21.
22. #include<iostream>
23. #include<cstring>
24. using namespace std;
25.
26. class Patnik
27. {
28.
29. private:
30. char ime[100];
31. int klasa;
32. bool velosiped;
33. public:
34. Patnik() {}
35. Patnik(char *ime,int kl,bool v)
36. {
37. strcpy(ime,ime);
38. klasa = kl;
39. velosiped = v;
40. }
41.
42.
43. friend ostream &operator <<(ostream &o, Patnik &p)
44. {
45. o << p.ime<< endl;
46. o << p.klasa <<endl;
47. o << p.velosiped << endl;
48. return o;
49. }
50. ~Patnik() {}
51. };
52.
53. class Voz
54. {
55.
56. private:
57. char krajnaDestinacija[100];
58. Patnik *p;
59. int brElemeni;
60. int brVelosipedi;
61. public:
62. Voz(char *kD,int brV)
63. {
64. strcpy(krajnaDestinacija,kD);
65. // p = new Patnik[0];
66. // brElemeni = brE;
67. brVelosipedi = brV;
68. }
69.
70. Voz(const Voz &v)
71. {
72. strcpy(krajnaDestinacija,v.krajnaDestinacija);
73. //p = new Patnik [v.brElemeni+1];
74. // brElemeni = v.brElemeni;
75. brVelosipedi = v.brVelosipedi;
76. }
77.
78. Voz &operator =(const Voz &v)
79. {
80. if(this!=&v)
81. {
82. delete [] p;
83. brElemeni = v.brElemeni;
84. for(int i=0; i < brElemeni; i++)
85. {
86. p[i]=v.p[i];
87. }
88. p= new Patnik[brElemeni];
89. strcpy(krajnaDestinacija,v.krajnaDestinacija);
90. brVelosipedi = v.brVelosipedi;
91. }
92. return *this;
93. }
94.
95. Voz &operator += (Voz &v)
96. {
97. if(brElemeni == 0)
98. p = new Patnik[1];
99. Patnik *tmp = new Patnik[brElemeni+1];
100. for(int i=0; i < brElemeni; i++)
101. {
102. tmp[i]=p[i];
103. }
104. tmp[brElemeni++] = v;
105. delete [] p;
106. p=tmp;
107. return *this;
108. }
109.
110. friend ostream &operator <<(ostream &o, Voz &v)
111. {
112. o << v.krajnaDestinacija<<endl;
113. for(int i = 0; i < v.brElemeni; i++)
114. {
115. o << v.p[i];
116. }
117. return o;
118. }
119.
120. int patniciNemaMesto()
121. {
122.
123.
124. cout << "Brojot na patnici od 1-va klasa koi ostanale bez mesto e:
"<<brPrva<<endl;
125. cout << "Brojot na patnici od 2-va klasa koi ostanale bez mesto e:
"<<brVtora;
126. }
127.
128.
129. ~Voz()
130. {
131. delete [] p;
132. }
133. };
134.
135.
136. int main()
137. {
138. Patnik p;
139. char ime[100], destinacija[100];
140. int n;
141. bool velosiped;
142. int klasa;
143. int maxv;
144. cin >> destinacija >> maxv;
145. cin >> n;
146. Voz v(destinacija, maxv);
147. //cout<<v<<endl;
148. for (int i = 0; i < n; i++)
149. {
150. cin >> ime >> klasa >> velosiped;
151. Patnik p(ime, klasa, velosiped);
152. //cout<<p<<endl;
153. v += p;
154. }
155. cout << v;
156. //v.patniciNemaMesto();
157.
158. return 0;
159. }
160. Berlin
161. 10
162. 20
163. Ana
164. 1
165. 1
166. Kate
167. 2
168. 0
169. Ace
170. 2
171. 0
172. Borce
173. 1
174. 1
175. Mimi
176. 2
177. 1
178. Deni
179. 1
180. 0
181. Nikola
182. 1
183. 1
184. Bojan
185. 1
186. 1
187. Tamara
188. 1
189. 1
190. Kiki
191. 2
192. 1
193. Ana
194. 1
195. 1
196. Kate
197. 2
198. 0
199. Ace
200. 1
201. 1
202. Borce
203. 1
204. 1
205. Mimi
206. 1
207. 0
208. Deni
209. 1
210. 0
211. Nikola
212. 1
213. 1
214. Bojan
215. 1
216. 1
217. Tamara
218. 2
219. 0
220. Kiki
221. 1
222. 1
223.
224. Sample output
225. Berlin
226. Ana
227. 1
228. 1
229.
230. Kate
231. 2
232. 0
233.
234. Ace
235. 2
236. 0
237.
238. Borce
239. 1
240. 1
241.
242. Mimi
243. 2
244. 1
245.
246. Deni
247. 1
248. 0
249.
250. Nikola
251. 1
252. 1
253.
254. Bojan
255. 1
256. 1
257.
258. Tamara
259. 1
260. 1
261.
262. Kiki
263. 2
264. 1
265.
266. Ana
267. 1
268. 1
269.
270. Kate
271. 2
272. 0
273.
274. Ace
275. 1
276. 1
277.
278. Borce
279. 1
280. 1
281.
282. Mimi
283. 1
284. 0
285.
286. Deni
287. 1
288. 0
289.
290. Nikola
291. 1
292. 1
293.
294. Bojan
295. 1
296. 1
297.
298. Tamara
299. 2
300. 0
301.
302. Kiki
303. 1
304. 1
305.
306. Brojot na patnici od 1-va klasa koi ostanale bez mesto e: 1
307. Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: 2

You might also like