Advertisement
Guest User

Untitled

a guest
Aug 28th, 2014
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. enum GodinaStudija{PRVA=1, DRUGA, TRECA, CETVRTA};
  4. enum NacinStudiranja{DL, REDOVAN};
  5. struct Predmet{
  6. char * _Naziv;
  7. int * _Ocjena;
  8. GodinaStudija * _Godina;
  9. void Unos(char * naziv, int ocjena, GodinaStudija g){
  10. //Izvrsiti potrebne alokacije i odgovarajuce inicijalilzaciju atributa struketure
  11. _Naziv=new char[strlen(naziv)+1];
  12. strcpy(_Naziv,naziv);
  13. _Ocjena=new int;
  14. _Ocjena=&ocjena;
  15. _Godina=new GodinaStudija;
  16. _Godina=&g;
  17. }
  18. void Ispis(){ //Ispisati vrijednosti atributa strukture
  19. cout<<"Naziv predmeta: "<<_Naziv<<endl;
  20. cout<<"Ocjena: "<<_Ocjena<<endl;
  21. cout<<"Godina studija: "<<_Godina<<endl;
  22. }
  23. void Dealociraj(){
  24. //Izvrsiti potrebnu dealokaciju
  25. delete[] _Naziv;
  26. _Naziv=nullptr;
  27. delete _Ocjena;
  28. _Ocjena=nullptr;
  29. delete _Godina;
  30. _Godina=nullptr;
  31. }
  32. };
  33. struct Student{
  34. int * _brojIndexa;
  35. char * _imePrezime;
  36. NacinStudiranja _Nacin;
  37. GodinaStudija _Godina;
  38. Predmet * _Polozeni;
  39. int * _brojPolozenih; //brojac
  40. void Unos(int brind,char *imeprezime,NacinStudiranja nacin, GodinaStudija godina, Predmet polozeni){
  41. /*Izvrsiti potrebne alokacije i odgovarajucu inicijalizaciju atributa strukture
  42. Svaki atibut moze imati maksimalno 40 polozenih predmeta*/
  43. _brojPolozenih=0;
  44. _brojIndexa=new int;
  45. _brojIndexa=&brind;
  46. _imePrezime=new char [strlen(imeprezime)+1];
  47. strcpy(_imePrezime,imeprezime);
  48. _Nacin=nacin;
  49. _Godina=godina;
  50. _Polozeni=&polozeni;
  51. polozeni.Unos(
  52. }
  53. void Ispis(){
  54. // Ispisati vrijednosti svih atributa strukture
  55. }
  56. bool DodajPolozeni(Predmet * p){
  57. /*Na osnovu primljenog parametra funkcija DodajPolozeni treba da omoguci inicijalizaciju vrijednosti
  58. atributa koji se odnose na novopolozeni predmet. Prilikom dodavanja novog predmeta voditi racuna
  59. o mogucim prekoracenjima. Onemoguciti dodavanje predmeta koji pripadaju visim godinama studija
  60. npr. ukoliko je student I godina, onda nece moci polagati predmet sa II i III godine. Funkcija
  61. vraca true ukoliko je predmet uspjesno dodat u suprotonom vraca FALSE */
  62. }
  63. bool UkloniPolozeni(char * naziv, GodinaStudija * godina){
  64. /*Uklanja polozeni predmet koji odgovara vrijednostima primljenog parametra. Nakon uklanjanja
  65. osigurati kontinuitet elemenata u nizu. U slucaju uspjesnog uklanjanja predmeta funkcija vraca TRUE
  66. a u suprotnom vraca FALSE */
  67. }
  68.  
  69.  
  70.  
  71.  
  72. float GetProsjek(GodinaStudija * godina){
  73. /*Funkcija vraca prosjecnu ocjenu na odredjenoj godini studija. Ukoliko student nema niti jedan polozeni
  74. predmet funkcija vraca vrijednost 5.0*/
  75. }
  76. void Dealociraj(){ /* Vrsi dealokaciju zauzete memorije*/ }
  77. };
  78.  
  79.  
  80.  
  81.  
  82. void PretragaPoNazivuIOcjeni(Student * pok, int max){
  83. /*Korisniku treba omoguciti da ispise listu svih studenata koji su odredjeni predmet polozili
  84. ocjenom vecom od definisane. Naziv predmeta i ocjenu, po kojima se vrsi pretraga, unosi korisnik na samom
  85. pocetku izvrsavanja funkcije (npr: Prikazi sve studente koji su polozili predmet PR1 ocjenom vecom od 8). */
  86. }
  87. int PretragaPoGodiniIProsjeku(Student * pok, int max){
  88. /*Funkcija treba da vrati broj studenta koji na odredjenoj godini studija imaju prosjek veci od zadatog
  89. Na samom pocetku funkcije program od korisnika zahtijeva da unese godinu studija i prosjek ocjene
  90. po kojem ce se vrsiti pretraga*/
  91. }
  92. void main(){
  93. //Korisniku omoguciti da odredi broj studenta cije ce podatke inicijalizovati
  94. //Nakon kreiranja liste studenata demonstrirati koristenje defnisanih funkcija
  95. system("pause>0");
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement