All pastes #269852 Raw Edit

Stuff

public text v1 · immutable
·published 2006-12-06 21:27 UTC
rendered paste body
//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 <iostream>
#include <string>
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 <<endl;
         cout << "Izbira: ";
         cin >> 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;
};