E-gradiva > Računalništvo > Programiranje > Načrtovanje in razvoj programskih aplikacij > Strukture > Primer uporabe strukture

Prijava

Primer uporabe strukture

 

Primer definicije strukture

 

Podatki o osebi:

 

struct oseba
{


char
ime_in_priimek[30];
char
spol;
char
naslov[30];

char
datum_rojstva[30];
int
postna_stevilka;
};

 

Primer inicializacije strukture:

 
void
main()
{

oseba znanec = {"AndrejMedved",'M', "Pekre 14","10.10.1957", 2010};
oseba sodelavec = znanec;
}

 

 

Kako dostopamo do elementov?

cout << znanec.ime_in_priimek;

 

 

Strukturo lahko tudi bolj razčlenimo:

 

struct oseba
{


char
ime[30];
char
priimek[30];
char
spol;

naslov naslov_doma;
datum datum_rojstva;
};

 

 

 

Za osebo lahko napišemo naslednji podprogram za vnos osebe:


void vnesi_osebo (oseba&  nova_oseba)
{


cout << "Vpisi ime in priimek:";
cin >> nova_oseba.ime;
cin >> nova_oseba.priimek;

cout << "Vpisi spol:";
cin >> nova_oseba.spol;
cout << "Vpisi naslov doma:" << endl;

vnesi_naslov( nova_oseba.naslov_doma );
cout << "Vpisi datum rojstva" << endl;

vnesi_datum( nova_oseba.datum_rojstva );
}
// konec vnesi_osebo

 

 

Izpis osebe:


void izpisi_osebo (oseba izpisana_oseba)
{


cout << "Ime in priimek osebe: ";
cout << izpisana_oseba.ime << " " << izpisana_oseba.priimek << endl;

cout << "Spol: " << ((izpisana_oseba.spol == 'm')? "moski" : "zenski") << endl;

cout << "Naslov doma:" << endl;
izpisi_naslov( izpisana_oseba.naslov_doma );

cout << "Datum rojstva:" << endl;
izpisi_datum( izpisana_oseba.datum_rojstva );
}
// konec izpisi_osebo

 

Iz strukture oseba in funkcij vnesi_osebo in izpisi_osebo vidimo, da moramo definirati še strukturi naslov in datum, ter ustrezne funkcije za vnos in izpis.

 

 

Struktura naslov ima naslednjo obliko:

 

struct naslov
{


char
ulica[20];
char
mesto[20];
int
postna_stevilka;
};

 

Za izpis naslova definiramo naslednjo funkcijo:


void izpisi_naslov (naslov izpisani_naslov)
{


cout << izpisani_naslov.ulica << " " << izpisani_naslov.postna_stevilka << " " << izpisani_naslov.mesto << endl;
}

 

Za vnos naslova definiramo naslednjo funkcijo:


void vnesi_naslov (naslov&  novi_naslov)
{


cout << "Vpisi ulico:";
cin >> novi_naslov.ulica;
cout << "Vpisi mesto:";

cin >> novi_naslov.mesto;
cout << "Vpisi poštno stevilko:";
cin >> novi_naslov.postna_stevilka;
}

 

Podobno definiramo strukturo za datum: 


struct datum
{


int
dan;
int
mesec;
int
leto;
};

 

Funkcija za vnos datuma:


void vnesi_datum (datum&  novi_datum)
{


cout << "Vpisi dan:";
cin >> novi_datum.dan;
cout << "Vpisi mesec:";
cin >> novi_datum.mesec;
cout << "Vpisi leto:";
cin >> novi_datum.leto;
}

 

Funkcija za izpis datuma: 


void izpisi_datum (datum izpisani_datum)
{


cout << izpisani_datum.dan << "." << izpisani_datum.mesec << "." << izpisani_datum.leto << endl;
}

 

Glavna funkcija, ki pomeni ilustracijo delovanja funkcij ima naslednjo obliko: 

 

void main()
{


oseba jaz, znanec;
vnesi_osebo(jaz);
vnesi_osebo(znanec);

izpisi_osebo(jaz);
izpisi_osebo(znanec);
}