» »

[C++]Strukture

[C++]Strukture

jernejf ::

LP!

Spet jaz in moji problemi s C++. Tokrat mi ni jasno nekaj pri strukturah. Evo naloge:

Napišite program za vnos podatkov o 10 računalnikih. Računalnik je nov tip in je sestavljen iz: ime, datuma_nakupa, hitrosti_procesotja in velikosti_pomnilnika. Datum je sestavljen iz dneva, meseca in leta. Program naj vpisane podatke tudi izpiše urejene po hitrosti procesorja (padajoče). Pri implementaciji uporabite polje računalnikov in funkcije.

Naredil sem da vpišem vse zahtevane podatke. Program mi tudi izpiše vneseno. Težava se mi pojavi, ko mora izpisati po hitrosti procesorja. Prosim za namig, kako se lotiti problema

Evo kode do sedaj:
struct Datum //Struktura datum
{
int dan, mesec, leto;
};

struct predmet //struktura predmet
{
char ime[32];
Datum d_nakupa;
int hitrost_procesorja;
int velikost_pomnilnika;
};

void vpis(predmet racunalnik[]) //funkcija za vpis podatkov
{
for (int i=0; i 10; i++)
{
cout "Vpisi podatke za " i+1 " racunalnik." endl;
cout "Vpisi ime racunalnika: ";
cin racunalnik[i].ime;
cout "Vpisi datum nakupa (dan mesec leto): ";
cin racunalnik[i].d_nakupa.dan >> racunalnik[i].d_nakupa.mesec racunalnik[i].d_nakupa.leto;
cout "Vpisi hitrost procesorja: ";
cin racunalnik[i].hitrost_procesorja;
cout "Vpisi velikost pomnilnika: ";
cin racunalnik[i].velikost_pomnilnika;
cout endl;
}

void izpis(predmet racunalnik[]) //funkcija za izpis podatkov
{
for (int i=0; i 10; i++)
{
cout "Ime racunalnika: " racunalnik[i].ime endl;
cout "Datum nakupa: " racunalnik[i].d_nakupa.dan "." racunalnik[i].d_nakupa.mesec "."
racunalnik[i].d_nakupa.leto endl;
cout "Hitrost procesorja: " racunalnik[i].hitrost_procesorja endl;
cout "Velikost pomnilnika: " racunalnik[i].velikost_pomnilnika endl;
cout endl;
}
}

int main()
{
predmet racunalnik[10]; //definicija polja racunalnik tipa predmet

vpis (racunalnik); //klic funkcije vpis
cout "-----------------------------------"endl;
izpis(racunalnik); //klic funkcije izpis

system("PAUSE");
return 0;
}

}
PS:(Manjkajo operatorji - je manjše in je večje)
Hvala lepa in LP!

darkolord ::

Napiši/uporabi eno funkcijo za sortiranje polja/arraya... Bubble sort je za tako zadevo recimo OK - pač namesto direktne vrednosti primerjaš vrednosti hitrost_procesorja

jernejf ::

Če tako naredim a mi nebo potem uredil po velikosti samo hitrosti procesorja ostale podatke pa pustil??

Naredil sem z booble sort, toda pri prvem izpisu je neka napaka, ter to kar sem že prej omenil. Hitrosti procesorja uredi po vrsti, druge podatke pa pusti(če ima računalnik , ki je vnešen tretji najhitrejši procesor, pri izpisu to hitrost procesorja samo kopira k prvemu.)

Kode za sortiranje:

void izpis(predmet racunalnik[])
{
int x; //vmesni spremenljivki za zamenjavo vrednosti
bool has_swapped;
while(1)
{ has_swapped = 0; //reset flag
for (int i=0;i 4;i++)
{
if (racunalnik[i].hitrost_procesorja racunalnik[i+1].hitrost_procesorja) //ce niso razporejena
{
//exchange them

x=racunalnik[i].hitrost_procesorja;
racunalnik[i].hitrost_procesorja = racunalnik[i+1].hitrost_procesorja;
racunalnik[i+1].hitrost_procesorja = x;
has_swapped = 1; //vsaj enkrat smo zamenjali, lahko, da seznam še vedno ni urejen
}
}
//if no swaps were made during this pass, the list has been sorted
if (has_swapped == 0)
{break;}
}

for (int i=4; i 0; i--)
{
cout "Ime racunalnika: " racunalnik[i].ime endl;
cout "Datum nakupa: " racunalnik[i].d_nakupa.dan "." racunalnik[i].d_nakupa.mesec "."
racunalnik[i].d_nakupa.leto endl;
cout "Hitrost procesorja: " racunalnik[i].hitrost_procesorja endl;
cout "Velikost pomnilnika: " racunalnik[i].velikost_pomnilnika endl;
cout endl;
}
}

Prosim za pomoč in LP

Gundolf ::

Ne menjat samo hitrosti procesorja:
> x=racunalnik[i].hitrost_procesorja;
> racunalnik[i].hitrost_procesorja = racunalnik[i+1].hitrost_procesorja;
> racunalnik[i+1].hitrost_procesorja = x;
Zamenjaj celo strukturo:
predmet temp = racunalnik[i];
racunalnik[i] = racunalnik[i+1];
racunalnik[i+1] = temp;

darkolord ::

x=racunalnik[i].hitrost_procesorja;

tole zamenjaj v x = racunalnik[i] prav tako tisto dve vrstici kasneje... Pa deklaracijo iz int v racunalnik

jernejf ::

Najlepša hvala:)
Joj sem bumbar da nisem sam ugotovil kaj je potrebno menjati;((
Hvala in LP!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++]Brisanje strukture

Oddelek: Programiranje
71353 (1284) jernejf
»

c++ in linux/windows

Oddelek: Programiranje
121625 (1501) rapvirus
»

[C++]Kako polje iz funkcije za vnos spravit ven?

Oddelek: Programiranje
61331 (1287) Moravče
»

čitanje črk

Oddelek: Programiranje
71456 (1325) BigWhale
»

c++ datoteke

Oddelek: Programiranje
463830 (3319) Vesoljc

Več podobnih tem