Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "Biblioteka_vrijeme.cc"
- using namespace std;
- struct topstudent{
- int mat_br;
- char prez_ime[30];
- int god;
- float vrij;
- topstudent *sljedeci;
- };
- int kontrola(topstudent *lista, int maticni){
- topstudent *kon= lista-> sljedeci;
- while(kon){
- if(kon-> mat_br== maticni){
- cout << "Student pod tim maticnim brojem vec postoji! Ponovite unos!\n";
- return 1;
- }
- kon= kon-> sljedeci;
- }
- return 0;
- }
- void izbrisi(topstudent *lista, int maticni){
- if(lista == NULL || lista->sljedeci ==NULL){
- cout<<"lista je prazna ili glava nije alocirana!"<<endl;
- return;
- }
- bool postoji = 0;
- do{
- if(kontrola(lista, maticni)){
- topstudent *tekuci = lista->sljedeci;
- while(tekuci){
- cout<<"maticni"<<tekuci->mat_br<<endl;
- cout<<"ime i prezime"<<tekuci->prez_ime<<endl;
- cout<<"godina"<<tekuci->god<<endl;
- tekuci = tekuci->sljedeci;
- }
- cout<<"ponovo unesi maticni:"<<endl;
- cin>>maticni;
- }
- else postoji = 1;
- }while(postoji = 0);
- topstudent *tekuci = lista->sljedeci;
- topstudent *prethodni = lista;
- while(tekuci){
- if(tekuci->mat_br == maticni){
- cout<<"jeste li sigurni da ocete obrisat maticni? d/n"<<endl;
- char odg;
- cin>>odg;
- if(odg == 'd'){
- prethodni->sljedeci = tekuci->sljedeci;
- delete tekuci;
- cout<<"element je izbrisan"<<endl;
- return;
- }
- else return;
- }
- prethodni = tekuci;
- tekuci = tekuci->sljedeci;
- }
- }
- void unos_elemenata(topstudent *lista){
- topstudent *novi, *zadnji;
- int maticni;
- vrijeme_pocetak();
- do{
- cout << "Maticni broj: ";
- cin >> maticni;
- } while(kontrola(lista, maticni) || (maticni < 10000 || maticni > 99999));
- zadnji= lista;
- while(zadnji-> sljedeci) zadnji= zadnji-> sljedeci;
- novi= new topstudent;
- zadnji-> sljedeci= novi;
- novi-> sljedeci= NULL;
- novi-> mat_br= maticni;
- cout << "Prezime i ime: ";
- unos(novi-> prez_ime);
- cout << "Godina upisa: ";
- cin >> novi-> god;
- vrijeme_kraj();
- novi-> vrij= vrijeme_proteklo()/1000;
- cout << endl;
- }
- int ispisi_listu(topstudent *lista){
- if(!lista) return -1;
- int brojac= 0;
- float vremena= 0;
- topstudent *tekuci= lista-> sljedeci;
- while(tekuci){
- cout << "Maticni broj: " << tekuci-> mat_br << endl;
- cout << "Prezime i ime: " << tekuci-> prez_ime << endl;
- cout << "Godina upisa: " << tekuci-> god << endl;
- cout << "Vrijeme unosa: " << tekuci-> vrij << endl;
- vremena+= tekuci-> vrij;
- cout << "---------------" << endl;
- tekuci= tekuci-> sljedeci;
- brojac++;
- };
- cout << "Aritmeticka sredina svih vremena unosa je " << vremena/brojac << " sekundi" << endl;
- return brojac;
- }
- void brisi_listu(topstudent *lista){ // ovo izostavi dok ne dobis 4. zadatak
- topstudent *prethodni, *tekuci;
- prethodni= lista;
- tekuci= lista-> sljedeci;
- while(tekuci){
- delete prethodni;
- prethodni= tekuci;
- tekuci= tekuci-> sljedeci;
- }
- delete tekuci;
- }
- int main(){
- int biraj;
- topstudent *lista= NULL;
- do{
- cout << "Izbornik:\n-----------------\n";
- cout << "0. Alokacija glave vezane liste\n1. Unos novog elementa vezane liste studenata\n";
- cout << "2. Ispis sadrzaja cijele vezane liste;";
- cout<<"3.brisanje maticnog"<<endl;
- cout << "9. Izlaz iz programa\n\n";
- cin >> biraj;
- switch(biraj){
- case 0:{
- if(lista) cout << "Glava vezane liste je vec alocirana!\n" << endl;
- else{
- lista = new topstudent;
- lista -> sljedeci = NULL;
- cout << "Nova glava vezane liste je uspjesno alocirana!\n" << endl;
- }
- } break;
- case 1:{
- if(lista) unos_elemenata(lista);
- else cout << "Glava vezane liste nije alocirana!\nAlocirajte ju pomocu mogucnosti 0 te ponovite izbor!\n" << endl;
- } break;
- case 2:{
- cout << "Ukupan broj elemenata u listi je " << ispisi_listu(lista) << endl << endl;
- } break;
- case 3:int maticni;
- cout<<"koji oces izbrisat?"<<endl;
- cin>>maticni;
- izbrisi(lista,maticni);
- break;
- case 9:{
- if(lista)brisi_listu(lista); // ovo izostavi dok ne dobis 4. zadatak
- } break;
- }
- } while(biraj!= 9);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement