» »

Pomoč pri programu v c++

Pomoč pri programu v c++

freserovski ::

Naredil sem že vse, funkcije za vpis in izpis struktur in podobno, zdaj bi pa rad, da bi vpisal poljubno število, npr. držav. Sem probaval nekaj z polji, toda ne gre, vsaj po mojem načinu ne, zanima me, kako to naredit..., no malo dolga koda, upam, da bo kdo pomagal :\

/*Napišite program, ki bo vodil evidenco o številu prebivalstva v N državah in večjih mestih.
Za vsako državo imamo podane naslednje podatke: ime države,
število prebivalcev,
površino države.


Za vsako mesto poznamo: ime mesta,
število prebivalcev,
kateri državi pripada,
površino mesta.
Program naj sortira mesta in države po gostoti prebivalstva in številu prebivalcev.
Izpiše naj tudi vsa večja mesta posamezne države.*/



#include

const int st_drzav=100;


//Struktura za ime države
struct ImeDrzave{
char ime[30];
void vpisi();
void izpisi();
};


//struktura za celotno državo
struct drzava{
ImeDrzave ime;
int stPreb;
int povrsina_drzave;
void vpisi_drzavo();
void izpisi_drzavo();
};



//struktura za celotno mesto
struct mesto{
char imeM [40];
int stPreb;
ImeDrzave ime;
int povrsina_mesta;
void vpisi_mesto();
void izpisi_mesto();
};

//FUNKCIJE ZA DRZAVO
//*************************************************************
//funkcija za vpis imena drzave void ImeDrzave ::vpisi(){
cout<<"Vpisite ime drzave"<<":";
cin>>ime;
}

//funkicija za vpis države

void drzava :: vpisi_drzavo(){
ime.vpisi();
cout<<"Vpisite stevilo prebivalcev te drzave"<<":";
cin>>stPreb;
cout<<"Vpsite povrsino te drzave"<<":";
cin>>povrsina_drzave;
}


//Funkcija za izpis imena drzave

void ImeDrzave :: izpisi(){
cout<<"ime drzave je"<<":"< }

//funkcija za izpis države

void drzava :: izpisi_drzavo(){
ime.izpisi();
cout<<"st. prebivalcev te drzave je"<<":"< cout<<"povrsina drzave je"<<":"<
}

//*************************************************************

//FUNKCIJE ZA MESTO
//*************************************************************
//funkcija za vpis mesta
void mesto::vpisi_mesto(){
cout<<"Vpisite ime mesta"<<":";
cin>>imeM;
ime.vpisi();
cout<<"Vpisite stevilo prebivalcev tega mesta"<<":";
cin>>stPreb;
cout<<"Vpisite povrsino mesta"<<":";
cin>>povrsina_mesta;
}


//funkcija za izpis mesta

void mesto :: izpisi_mesto(){
cout<<"ime mesta je"<<":"< ime.izpisi();
cout<<"v mestu je :"< cout<<"povrsina mesta je :"< }

//*******************************************************************************
//*******************************************************************************
//polje za vpisovanje drzav in mest

.....,
.....
evo, tukaj mi manjka???
Problemi so, problemi bodo! Kurc jih gleda!!

rsaver ::



Jaz ti svetujem da naredis tako:
struct mesto{

char ime_m[25];
int st_preb;
char narod[25];
int povrsina_m;

};

struct drzava{

char ime_d[25];
int st_prebivalcev;
int povrsina;
mesto p_mesta;
};

pol pa glavni program v katerem vpisiujes
drzava n_drzava;
cin>>n_drzava.ime_d;//vpises ime drzava!!
cin>>n_drzava.p_mesto.ime_m;//vpises ime mesta itd...

rsaver ::

Aja ce pa rabis za vec mest pa def.,kot vektor spremenljivko v glavnem programu.Samo prej moras dat,da ti vpise st mest ki jih hoce vpisat!!!


pol pa vpisuje na tak nacin!!!

obstaja pa se en nacin:dinamicno povezan seznam -> vpisujes direktno v pomnilnik! samo moras kazalce dobro
obvladat.
Upam da sem ti kaj pomago::))

freserovski ::

Hja, saj tak bi tudi šlo, ja, to sem že mel narejeno :) , jaz bi rabo tako, da bi zaj naredil en meni, pol pa bi npr. pod prvo možnost dal vpis države, pa bi samo eno vpisal, pol bi me pa spet vrglo na meni itd, ko pa bi hoto izpisat bi mi pa izpisalo vse države, ki sem jih vpisal, kao, da bi vpisoval v polju. Saj mi je to že ratalo naredit, samo pol mi pa eror ven vrže, ko izpiše vse do konca, mah, še bom malo preštudiral, zgleda, da je z definicijami spremenljivk kaj narobe (lokalno, globalno), kaj te jaz vem
Problemi so, problemi bodo! Kurc jih gleda!!

rsaver ::

Ce pa tak pa v struct drzava naredis kazalec drzava* k_naslednji;

Ja samo potem pa se to zlo zakomplicira!

freserovski ::

ja, to sem tudi probal, za vpis mi sicer rata nekako naredit (mislim vsaj), ker pol ne znam izpisat prav, zgleda, da še ne obvladam dovolj kazalcev :), eh, pa saj bo :)
Problemi so, problemi bodo! Kurc jih gleda!!

freserovski ::

Hehe, evo, se en dokaz, da resitev pride vedno ob najbolj neprepdvidljivem času, ko sem se bil že v pojstli sem nekaj kar brezveze razmišljal, in sem moral idejo it kar sprobat na računalnik, evo:


//*******************************************************************************
//*******************************************************************************
//polje za vpisovanje drzav in mest

void polje_drzava(drzava a[]){
a[i].vpisi_drzavo();
i++;
}


void polje_drzavai(drzava a[]){
for(i=1;i<=drzav;i++){
a[i].izpisi_drzavo();
}
}



void main(){
int znak;
drzava a[st_drzav];
do{
cout < < "vnesi izbiro 1, ce zelis dodat drzavo"< cout < <"vnesi izbiro 2, ce zelis izpisat vse drzave"< cout < < "vnesi izbiro 0, ce zelis koncati z delom"< cin > > znak;
switch (znak)
{
case 1:{

polje_drzava(a);
drzav++;
break;
}


case 2:{
polje_drzavai(a);
break;
}
}
}
while (znak!=0);
}

tako zgleda rešitev, uvedel sem samo novo spremenljivko "drzav" in i sem dal kot globalno spremenljivko, pa dela!!! :D
Problemi so, problemi bodo! Kurc jih gleda!!

Zgodovina sprememb…

freserovski ::

Tako, zaj morm pa naredit še to isto nalogo z kazalci, te približno obvladam, no vem vsaj, kaj se z njimi dogaja :\ :) , pa mi javi en error že čisto na začetko in ne vem zaradi česa, mi lahko prosim kdo še tu pomaga, jah, na napakah se učimo :)

#include



//Struktura za ime države
struct ImeDrzave{
char ime[30];
ImeDrzave *pnext;
};


//struktura za celotno državo
struct drzava{
ImeDrzave ime;
int stPreb;
int povrsina_drzave;
drzava *pnext;
};



//struktura za celotno mesto
struct mesto{
char imeM [40];
int stPreb;
ImeDrzave ime;
int povrsina_mesta;
mesto *pnext;
};


void DodajanjeNaZacetek (drzava** ppZacetek,char d_ime[30],int d_preb,int d_povrsina){

drzava* pNovo=new drzava;
pNovo->ime.ime=d_ime;
pNovo->stPreb=d_preb;
pNovo->povrsina_drzave=d_povrsina;
pNovo->pnext=(*ppZacetek);
(*ppZacetek)=pNovo;
}





void main(){}

ps. javi mi pa naslednji error : error C2440: '=' : cannot convert from 'char []' to 'char [30]'
Problemi so, problemi bodo! Kurc jih gleda!!

Zgodovina sprememb…

rsaver ::

Uporabi stringe!
Stringi ne delujejo v Windowsovih compajlerih!!

jlpktnst ::

eh, stringi???
poznam jih samo kot dodatne knjiznice, lahko pa ga sam implementiras, po moznisti dinamicne...


Vredno ogleda ...

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

[C#]naloga iz metod!

Oddelek: Programiranje
81645 (1478) Ziga Dolhar
»

[C++]Strukture

Oddelek: Programiranje
54027 (3956) jernejf
»

[C++][Naloga] Strukture - izpis po abecednem redu

Oddelek: Programiranje
91500 (1340) wat56
»

[C] čuden izpis iz txt dat. na zaslon

Oddelek: Programiranje
121661 (1398) l0g1t3ch
»

Programiranje v C++

Oddelek: Programiranje
352558 (1416) krneki0001

Več podobnih tem