//Datoteka: n18.cpp // //Napišite program za delo z urejenim dinamično enosmerno povezanim seznamom s //strukturo, ki vsebuje vpisno številko, priimek in ime študenta. Seznam je //urejen naraščajoče glede na vpisno številko. //Napišite naslednje funkcije, ki jih kličete iz glavnega programa //(menu naj ima naslednji vrstni red): //1 izpis seznama, //2 vstavljanje elementa v seznam, //3 iskanje elementa seznama po priimku, //4 izpis števila elementov seznama, //5 izpis povprečne dolžine priimkov študentov v seznama, //6 izpis študenta, ki ima največjo vpisno številko, //7 brisanje seznama, //0 zaključek programa. //Pri zaključku programa zbrišite seznam (uporaba operatorja delete). //Vse funkcije lahko pokličete tudi s parametrom, ki lahko kaže na prazen seznam. #include #include using namespace std; struct student { int vpisna; char priimek[20]; char ime[20]; student* k_nasl; }; student* k_dosedanji; student* k_student; student* k_nasel; student* nek; void IzpisVsega(const student* p) { while(p != NULL) { cout << p->vpisna << ", "; cout << p->priimek << ", "; cout << p->ime << endl; p = p->k_nasl; } return; }; void Vstavljanje(int vpisna1, char priimek1[], char ime1[]) { k_student = new student; strcpy(k_student -> priimek, priimek1); strcpy(k_student -> ime, ime1); k_student -> vpisna = vpisna1; k_student->k_nasl = k_dosedanji; //predhodno vneseni element prejme naslov dosedanjega k_dosedanji = k_student; return; }; void IskanjePriimek() { return; }; void SteviloElementov() { return; }; void PovprecnaDolzina() { return; }; void NajdaljsiPriimek() { return; }; void Brisanje() { return; }; int main() { int vpisna; char priimek[20]; char ime[20]; int odgovor; k_dosedanji = NULL; k_student = NULL; do { cout << "1 - Izpis seznama" << endl << "2 - Vstavljanje elementa v seznam" << endl << "3 - Iskanje elementa seznama po priimku" << endl << "4 - Izpis stevila elementov seznama" << endl << "5 - Izpis povprecne dolzine priimkov studentov v seznamu" << endl << "6 - Izpis studenta, ki ima najvecjo vpisno stevilo" << endl << "7 - Brisanje seznama" << endl << "0 - Zakljucek programa" << endl <> odgovor; if(odgovor<0 || odgovor>7) { cout << "Nepravilna izbira, poskusi ponovno!" << endl; }; switch(odgovor) { case 1: cout << endl << "Seznam: " << endl; IzpisVsega(k_dosedanji); cout << endl; break; case 2: cout << endl << "Vpisite vpisno stevilko, priimek" << " in ime studenta: " << endl; cin >> vpisna; cin >> priimek; cin >> ime; Vstavljanje(vpisna, priimek, ime); cout << endl; break; case 3: cout << endl << "Vpisi priimek: " << endl; cin >> priimek; //IskanjePriimek(k_dosedanji); cout << endl; break; case 4: cout << endl << "Stevilo elementov seznama: " << endl; //SteviloElementov(k_dosedanji); cout << endl; break; case 5: cout << endl << "Povprecna dolzina priimka: " << endl; //PovprecnaDolzina(k_dosedanji); cout << endl; break; case 6: cout << endl << "Student, ki ima najvecjo " << "vpisno stevilko: " << endl; //NajdaljsiPriimek(k_dosedanji); cout << endl; break; case 7: cout << endl << "Brisanje seznama..." << endl; //Brisanje(); cout << endl; break; }; } while(odgovor != 0); //Brisanje(); return 0; };