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;
}
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);
}