Advertisement
Guest User

labavo

a guest
Oct 23rd, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.52 KB | None | 0 0
  1. #include <iostream>
  2. #include "Biblioteka_vrijeme.cc"
  3. using namespace std;
  4.  
  5. struct topstudent{
  6. int mat_br;
  7. char prez_ime[30];
  8. int god;
  9. float vrij;
  10. topstudent *sljedeci;
  11. };
  12.  
  13. int kontrola(topstudent *lista, int maticni){
  14.  
  15. topstudent *kon= lista-> sljedeci;
  16.  
  17. while(kon){
  18. if(kon-> mat_br== maticni){
  19. cout << "Student pod tim maticnim brojem vec postoji! Ponovite unos!\n";
  20. return 1;
  21. }
  22. kon= kon-> sljedeci;
  23. }
  24. return 0;
  25. }
  26.  
  27. void izbrisi(topstudent *lista, int maticni){
  28. if(lista == NULL || lista->sljedeci ==NULL){
  29. cout<<"lista je prazna ili glava nije alocirana!"<<endl;
  30. return;
  31. }
  32. bool postoji = 0;
  33. do{
  34. if(kontrola(lista, maticni)){
  35. topstudent *tekuci = lista->sljedeci;
  36. while(tekuci){
  37. cout<<"maticni"<<tekuci->mat_br<<endl;
  38. cout<<"ime i prezime"<<tekuci->prez_ime<<endl;
  39. cout<<"godina"<<tekuci->god<<endl;
  40. tekuci = tekuci->sljedeci;
  41. }
  42. cout<<"ponovo unesi maticni:"<<endl;
  43. cin>>maticni;
  44. }
  45. else postoji = 1;
  46. }while(postoji = 0);
  47. topstudent *tekuci = lista->sljedeci;
  48. topstudent *prethodni = lista;
  49. while(tekuci){
  50. if(tekuci->mat_br == maticni){
  51. cout<<"jeste li sigurni da ocete obrisat maticni? d/n"<<endl;
  52. char odg;
  53. cin>>odg;
  54. if(odg == 'd'){
  55. prethodni->sljedeci = tekuci->sljedeci;
  56. delete tekuci;
  57. cout<<"element je izbrisan"<<endl;
  58. return;
  59. }
  60. else return;
  61. }
  62. prethodni = tekuci;
  63. tekuci = tekuci->sljedeci;
  64. }
  65. }
  66.  
  67. void unos_elemenata(topstudent *lista){
  68.  
  69. topstudent *novi, *zadnji;
  70. int maticni;
  71. vrijeme_pocetak();
  72. do{
  73. cout << "Maticni broj: ";
  74. cin >> maticni;
  75. } while(kontrola(lista, maticni) || (maticni < 10000 || maticni > 99999));
  76. zadnji= lista;
  77. while(zadnji-> sljedeci) zadnji= zadnji-> sljedeci;
  78. novi= new topstudent;
  79. zadnji-> sljedeci= novi;
  80. novi-> sljedeci= NULL;
  81. novi-> mat_br= maticni;
  82. cout << "Prezime i ime: ";
  83. unos(novi-> prez_ime);
  84. cout << "Godina upisa: ";
  85. cin >> novi-> god;
  86. vrijeme_kraj();
  87. novi-> vrij= vrijeme_proteklo()/1000;
  88. cout << endl;
  89. }
  90.  
  91. int ispisi_listu(topstudent *lista){
  92.  
  93. if(!lista) return -1;
  94.  
  95. int brojac= 0;
  96. float vremena= 0;
  97. topstudent *tekuci= lista-> sljedeci;
  98.  
  99. while(tekuci){
  100. cout << "Maticni broj: " << tekuci-> mat_br << endl;
  101. cout << "Prezime i ime: " << tekuci-> prez_ime << endl;
  102. cout << "Godina upisa: " << tekuci-> god << endl;
  103. cout << "Vrijeme unosa: " << tekuci-> vrij << endl;
  104. vremena+= tekuci-> vrij;
  105. cout << "---------------" << endl;
  106. tekuci= tekuci-> sljedeci;
  107. brojac++;
  108. };
  109.  
  110. cout << "Aritmeticka sredina svih vremena unosa je " << vremena/brojac << " sekundi" << endl;
  111. return brojac;
  112. }
  113.  
  114. void brisi_listu(topstudent *lista){ // ovo izostavi dok ne dobis 4. zadatak
  115.  
  116. topstudent *prethodni, *tekuci;
  117. prethodni= lista;
  118. tekuci= lista-> sljedeci;
  119.  
  120. while(tekuci){
  121. delete prethodni;
  122. prethodni= tekuci;
  123. tekuci= tekuci-> sljedeci;
  124. }
  125. delete tekuci;
  126. }
  127.  
  128. int main(){
  129.  
  130. int biraj;
  131. topstudent *lista= NULL;
  132.  
  133. do{
  134. cout << "Izbornik:\n-----------------\n";
  135. cout << "0. Alokacija glave vezane liste\n1. Unos novog elementa vezane liste studenata\n";
  136. cout << "2. Ispis sadrzaja cijele vezane liste;";
  137. cout<<"3.brisanje maticnog"<<endl;
  138. cout << "9. Izlaz iz programa\n\n";
  139. cin >> biraj;
  140.  
  141. switch(biraj){
  142. case 0:{
  143. if(lista) cout << "Glava vezane liste je vec alocirana!\n" << endl;
  144. else{
  145. lista = new topstudent;
  146. lista -> sljedeci = NULL;
  147. cout << "Nova glava vezane liste je uspjesno alocirana!\n" << endl;
  148. }
  149. } break;
  150. case 1:{
  151. if(lista) unos_elemenata(lista);
  152. else cout << "Glava vezane liste nije alocirana!\nAlocirajte ju pomocu mogucnosti 0 te ponovite izbor!\n" << endl;
  153. } break;
  154. case 2:{
  155. cout << "Ukupan broj elemenata u listi je " << ispisi_listu(lista) << endl << endl;
  156. } break;
  157. case 3:int maticni;
  158. cout<<"koji oces izbrisat?"<<endl;
  159. cin>>maticni;
  160. izbrisi(lista,maticni);
  161. break;
  162. case 9:{
  163. if(lista)brisi_listu(lista); // ovo izostavi dok ne dobis 4. zadatak
  164. } break;
  165. }
  166. } while(biraj!= 9);
  167.  
  168. system("pause");
  169. return 0;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement