Advertisement
Guest User

Untitled

a guest
May 24th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.40 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Student
  6. {
  7. string ime,prezime;
  8. int br_indexa,br_polozenih;
  9. double prosjek;
  10. public:
  11. Student()/**Konstruktor Bez Parametara koji podesava prosjek na 5 i broj polozenih na nulu**/
  12. {
  13. Student::prosjek=5;
  14. Student::br_polozenih=0;
  15. }
  16. Student(string ime,string prezime,int br_indexa)/**Konstruktor sa tri parametra skontajte sami**/
  17. {
  18. Student::ime=ime;
  19. Student::prezime=prezime;
  20. Student::br_indexa=br_indexa;
  21. }
  22. ~Student()/**Destruktor**/
  23. {
  24. /**BLJA**/
  25. }
  26. Student(const Student &b)/**Konstruktor kopije**/
  27. {
  28. /**BLJA**/
  29. }
  30. Student &operator=(const Student &b)/**Operator dodjele**/
  31. {
  32. //MATEMATICKOM INDUKCIJOM, TJ KORISTECI CTRL+C I CTRL+V PRETHODNIH KODOVA.
  33. /**BLJABLJA**/
  34. }
  35. string DajIme() const
  36. {
  37. return ime;
  38. }
  39. string DajPrezime() const
  40. {
  41. return prezime;
  42. }
  43. int DajIndex() const
  44. {
  45. return br_indexa;
  46. }
  47. int DajBrojPolozenih()const
  48. {
  49. return br_polozenih;
  50. }
  51. double DajProsjek() const
  52. {
  53. return prosjek;
  54. }
  55. /**Gore iznad potrebni geteri da se odrade.**/
  56. void Registracija(int n)/**Registracija ocjene i automatsko racunanje prosjeka, ocjenu je moguce evidentirati samo ako je prolazna**/
  57. {
  58. if(n<5 || n>10) throw "Halo";
  59. prosjek=(prosjek*br_polozenih+n)/(br_polozenih+1);
  60. br_polozenih++;
  61. }
  62. friend ostream &operator<<(ostream &cout,const Student &s)/**Operator Ispisa za studenta Ime prezime index i prosjek**/
  63. {
  64. return cout << "Ime:" << s.ime << "Prezime: " << s.prezime << "Broj indexa: "<< s.br_indexa << "Prosjek: " << s.prosjek <<endl;
  65. }
  66. friend istream &operator>>(istream &cin, Student &s)/**Operator Unosa za studenta**/
  67. {
  68. return cin >>s.ime>>s.prezime>>s.br_indexa>>s.prosjek;
  69. }
  70. };
  71. class Fakultet
  72. {
  73. int kapacitet,br_studenata, stanje;
  74. Student **pok;
  75. public:
  76. Fakultet(int maxi)/**Konstruktor Sa jednim Parametrom koji vrsi alokaciju prostora**/
  77. {
  78. if(maxi<=0) throw "hheheh";
  79. pok=new Student *[maxi];
  80. br_studenata=0; kapacitet=maxi;
  81. }
  82. ~Fakultet()/**Ono nas brate isto **/
  83. {
  84. for(int i=0; i<br_studenata; i++)
  85. {
  86. delete[] pok[i];
  87. }
  88. delete [] pok;
  89. }
  90. Fakultet(const Fakultet &f)/**Ofoono znate sta je**/
  91. {
  92. br_studenata=f.br_studenata;
  93. kapacitet=f.kapacitet;
  94. pok= new Student*[kapacitet];
  95. for(int i=0; i<br_studenata; i++)
  96. {
  97. pok[i]=new Student (*f.pok[i]);
  98. }
  99. }
  100. Fakultet &operator =(Fakultet &f)/**Istoo**/
  101. {
  102. if(this==&f) return *this;
  103. for(int i=0; i<br_studenata; i++)
  104. {
  105. delete[] pok[i];
  106. }
  107. delete [] pok;
  108. br_studenata=f.br_studenata;
  109. kapacitet=f.kapacitet;
  110. pok= new Student*[kapacitet];
  111. for(int i=0; i<br_studenata; i++)
  112. {
  113. pok[i]=new Student (*f.pok[i]);
  114. }
  115. return *this;
  116. }
  117. void DodajStudenta(Student s) /**Dodadavanje studenta kada se posalje po vrijednosti**/
  118. {
  119. if(br_studenata==kapacitet) throw "uhch";
  120. pok[br_studenata]=new Student (s);
  121. br_studenata++;
  122. }
  123. void DodajStudenta(Student *s)/**Dodavanje studenta cija se adresa posalje**/
  124. {
  125. if(br_studenata==kapacitet) throw "hehehe";
  126. pok[br_studenata]=s;
  127. br_studenata++;
  128. }
  129. void DodajStudenta(string ime,string prezime,int ind)/**Dodavanje studenta ciji se pdoaci posalju**/
  130. {
  131. if(br_studenata==kapacitet) throw "sjdjc";
  132. pok[br_studenata]=new Student (ime, prezime, ind);
  133. br_studenata++;
  134. }
  135. int DajKapacitet() const
  136. {
  137. return kapacitet;
  138. }
  139. int DajStanje() const
  140. {
  141. return stanje;
  142. }
  143. void IspisiStudenta()/**Ispisivanje studenata sortiranih po prosjeku od najveceg ka najmanjem a da nakon ispisa poredak ostane isti kao pri unosu**/
  144. {
  145.  
  146. Student **p1=new Student *[kapacitet];
  147. for(int i=0; i<br_studenata; i++)
  148. {
  149. p1[i]=pok[i];
  150. }
  151.  
  152. for(int i=0; i<br_studenata; i++)
  153. {
  154. for(int j=i; j<br_studenata-1; j++)
  155. {
  156. if(p1[i]->DajProsjek()<p1[j]->DajProsjek())
  157. {
  158. Student *pom=p1[i];
  159. p1[i]=p1[j];
  160. p1[j]=pom;
  161. }
  162. }
  163. }
  164. for(int i=0; i<br_studenata; i++)
  165. {
  166. cout << *p1[i];
  167. }
  168. delete [] p1;
  169. }
  170. void OcistiFax() /**Ispisivanje svih studenata sa fakulteta**/
  171. {
  172. for (int i=0; i<br_studenata; i++)
  173. {
  174. delete [] pok[i];
  175. }
  176. br_studenata=0;
  177. }
  178. void UnosOcjene(int index,int ocjena)/**Unos ocjene za odredjenog studenta ciji se index posalje**/
  179. {
  180. for(int i=0; i<br_studenata; i++)
  181. {
  182. if(pok[i]->DajIndex()==index)
  183. pok[i]->Registracija(ocjena);
  184. }
  185. }
  186. void IspisiOderdjenog(int index)/**Ispisivanje studenta sa odredjenim indexom, ukoliko pronadje potrebno je baciti nesto**/
  187. {
  188. for(int i=0; i<br_studenata; i++)
  189. {
  190. if(pok[i]->DajIndex()==index)
  191. cout << *pok[i] << " " << endl;
  192. }
  193. }
  194. void IspisiProsjecne(double prosjek)/**Ispisivanje studenata ciji je prosjek veci od zadanog**/
  195. {
  196. for(int i=0; i<br_studenata; i++)
  197. {
  198. if(pok[i]->DajProsjek()>prosjek)
  199. cout<< *pok[i];
  200. }
  201. }
  202. Student &operator[](int ind) /**Dvije verzije pristupnih operatora koji pristupaju studentu sa odredjin indexom**/
  203. {
  204. for(int i=0; i<br_studenata; i++)
  205. {
  206. if(pok[i]->DajIndex()==ind)
  207. return *pok[i];
  208. }
  209. }
  210. Student operator[](int ind) const
  211. {
  212. for(int i=0; i<br_studenata; i++)
  213. {
  214. if(pok[i]->DajIndex()==ind)
  215. return *pok[i];
  216. }
  217. }
  218. void Polozilivise(int n)/**Ispisivanje studenata koji su polozili vise predmeta od zadanih**/
  219. {
  220. for (int i=0; i<br_studenata; i++)
  221. {
  222. if (pok[i]->DajBrojPolozenih()>n)
  223. cout<<*pok[i];
  224. }
  225. }
  226.  
  227. };
  228. int main ()
  229. {
  230.  
  231.  
  232.  
  233. return 0;
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement