sandra0309

vesnik

Mar 27th, 2015
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. /*а потребите на оваа класа да се креираат потребните конструктори и да се напише соодветен деструктор.
  7. */
  8. class Statija
  9. {
  10. private:
  11. char naslov[100];
  12. char avtor[50];
  13. char *sodrzina;
  14. bool objavena;
  15. public:
  16. Statija(char *naslov="",char *avtor="",char *sodrzina="",bool objavena=false)
  17. {
  18. strcpy(this->naslov,naslov);
  19. strcpy(this->avtor,avtor);
  20. this->sodrzina=new char[strlen(sodrzina)+1];
  21. strcpy(this->sodrzina,sodrzina);
  22. this->objavena=objavena;
  23. }
  24. Statija(const Statija &s)
  25. {
  26. strcpy(this->naslov,s.naslov);
  27. strcpy(this->avtor,s.avtor);
  28. this->sodrzina=new char[strlen(s.sodrzina)+1];
  29. strcpy(this->sodrzina,s.sodrzina);
  30. this->objavena=s.objavena;
  31. }
  32. Statija &operator =(Statija &s)
  33. {
  34. if(this!=&s)
  35. {
  36. strcpy(this->naslov,s.naslov);
  37. strcpy(this->avtor,s.avtor);
  38. delete [] this->sodrzina;
  39. this->sodrzina=new char[strlen(s.sodrzina)+1];
  40. strcpy(this->sodrzina,sodrzina);
  41. this->objavena=s.objavena;
  42.  
  43. }
  44. return *this;
  45. }
  46. ~Statija ()
  47. {
  48. delete [] sodrzina;
  49.  
  50. }
  51.  
  52. char *getSodrzina ()
  53. {
  54. return this->sodrzina;
  55. }
  56. void setSodrzina(char *sodrzina)
  57. {
  58. delete []this->sodrzina;
  59. this->sodrzina=new char[strlen(sodrzina)+1];
  60. strcpy(this->sodrzina,sodrzina);
  61.  
  62. }
  63.  
  64. void pecati()
  65. {
  66. cout<<this->naslov<<endl;
  67. cout<<this->avtor<<endl;
  68. cout<<this->sodrzina<<endl;
  69.  
  70. }
  71. bool eAvtor(char *a) {
  72. return strcmp(avtor, a) == 0;
  73. }
  74.  
  75.  
  76. };
  77.  
  78. class Vesnik
  79. { private:
  80. char ime[100];
  81. Statija *ss;
  82. Statija prva;
  83.  
  84. int statii;
  85. public:
  86. Vesnik(char *ime="",Statija *ss,int statii=0)
  87. {
  88. strcpy(this->ime,ime);
  89. this->ss=new char Statija[statii];
  90.  
  91. for(int i=0;i<statii;i++){
  92. this->ss[i]=Statija(ss[i]);
  93. }
  94. }
  95. ~Vesnik()
  96. {
  97. delete [] ss;
  98. }
  99. Vesnik(const Vesnik &v)
  100. { strcpy(this->ime,v.ime);
  101. this->ss=new char Statija(v.statii);
  102. this->ss=ss;
  103. for(int i=0; i<statii;i++)
  104. {
  105. this->ss[i]=Statija(v.ss[i]);
  106. }
  107.  
  108.  
  109.  
  110. }
  111. Vesnik &operator=(Vesnik &v)
  112. {
  113. if(this!=&v)
  114. {
  115. strcpy(this->ime,v.ime);
  116. delete []this->ss;
  117. this->statii=v.statii;
  118. this->ss=new char Statija[statii];
  119. for(int i=0;i<statii;i++)
  120. {
  121. this->ss[i]=v.ss[i];
  122. }
  123. }
  124. return *this;
  125. }
  126.  
  127. void dodadiStatija(Statija s)
  128. {
  129. Statija *temp;
  130. temp=new Statija[this->statii];
  131. for(int i=0,i<this->statii,i++)
  132. {
  133. temp[i]=Statija(this->ss[i]);
  134. }
  135. delete [] s;
  136. this->ss=new Statija[statii + 1];
  137. for(int i=0;i<statii)
  138. {
  139. this->ss[i]=Statija(this->temp[i]);
  140. }
  141. delete [] temp;
  142. this->ss[statii]=Statija(s);
  143. statii++;
  144. }
  145. void pecatiPrva()
  146. {
  147. prva.pecati();
  148. }
  149. void pecatiNajdolga()
  150. {
  151. for(int i=0;i<this->statii;i++)
  152. {
  153. for(int j=i+1;j<this->i+1;i++)
  154. {
  155. if(strlen(ss[i].getSodrzina())>strlen(ss[j].getSodrzina()))
  156. }
  157. }
  158. }
  159. int vkupnoOdAvtor(const char *avtor)
  160. { int avtorii=0;
  161. for(int i=0;i<statii;i++)
  162. {
  163. if(ss[i].eAvtor(avtor));
  164. {
  165. avtorii++;
  166. }
  167. }
  168.  
  169. }
  170.  
  171.  
  172.  
  173.  
  174. };
  175.  
  176.  
  177.  
  178. class Vesnik
  179. { private:
  180. char ime[100];
  181. Statija *ss;
  182. Statija prva;
  183.  
  184. int statii;
  185. public:
  186. Vesnik(char *ime="",Statija *ss,int statii=0)
  187. {
  188. strcpy(this->ime,ime);
  189. this->ss=new char Statija[statii];
  190.  
  191. for(int i=0;i<statii;i++){
  192. this->ss[i]=Statija(ss[i]);
  193. }
  194. }
  195. ~Vesnik()
  196. {
  197. delete [] s;
  198. }
  199. Vesnik(const Vesnik &v)
  200. { strcpy(this->ime,v.ime);
  201. this->ss=new char Statija[v.statii];
  202. this->ss=ss;
  203. for(int i=0; i<statii;i++)
  204. {
  205. this->ss[i]=Statija(v.ss[i]);
  206. }
  207.  
  208.  
  209.  
  210. }
  211. Vesnik &operator=(Vesnik &v)
  212. {
  213. if(this!=&v)
  214. {
  215. strcpy(this->ime,v.ime);
  216. delete []this->ss;
  217. this->statii=v.statii;
  218. this->ss=new char Statija[statii];
  219. for(int i=0;i<statii;i++)
  220. {
  221. this->ss[i]=v.ss[i];
  222. }
  223. }
  224. return *this;
  225. }
  226.  
  227. void dodadiStatija(Statija s)
  228. {
  229. Statija *temp;
  230. temp=new Statija[this->statii];
  231. for(int i=0;i<this-statii,i++)
  232. {
  233. temp[i]=Statija(this->ss[i]);
  234. }
  235. delete [] s;
  236. this->ss=new Statija[statii + 1];
  237. for(int i=0;i<statii)
  238. {
  239. this->ss[i]=Statija(this->temp[i]);
  240. }
  241. delete [] temp;
  242. this->ss[statii]=Statija(s);
  243. statii++;
  244. }
  245. void pecatiPrva()
  246. {
  247. prva.pecati();
  248. }
  249. pecatiNajdolga()
  250. {
  251. for(int i=0;i<this->statii;i++)
  252. {
  253. for(int j=i+1;j<this->i+1;i++)
  254. {
  255. if(strlen())
  256. }
  257. }
  258. }
  259. vkupnoOdAvtor(const *char avtor)
  260. { int avtorii=0;
  261. for(int i=0;i<statii;i++)
  262. {
  263. if(ss[i].eAvtor(avtor));
  264. {
  265. avtorii++;
  266. }
  267. }
  268.  
  269. }
  270.  
  271.  
  272.  
  273.  
  274. };
  275.  
  276.  
  277.  
  278. int main() {
  279. char naslov[100], avtor[50], sodrzina[100];
  280. int n;
  281. cin >> n;
  282. char ime[100];
  283. cin.getline(ime, 100);
  284. cin.getline(ime, 100);
  285.  
  286. Statija prva("VAZNO","OOP","Vezba:OOP",true);
  287. Vesnik v(ime,prva);
  288. Statija **s = new Statija*[n];
  289. for(int i = 0; i < n; ++i) {
  290. cin.getline(naslov, 100);
  291. cin.getline(avtor, 50);
  292. cin.getline(sodrzina, 100);
  293. v.dodadiStatija(Statija(naslov, avtor, sodrzina, true)); //se koristi copy konstruktor
  294. }
  295. v.pecatiPrva();
  296. v.pecatiNajdolga();
  297. cout << v.vkupnoOdAvtor(avtor) << endl;
  298. for(int i = 0; i < n; ++i) {
  299. delete s[i];
  300. }
  301. delete [] s;
  302. return 0;
  303. }
Advertisement
Add Comment
Please, Sign In to add comment