Forum » Programiranje » [C] Seznam s poljem
[C] Seznam s poljem
aceton ::
Pozdravljeni
narediti moram seznam s polejm in sicer tako, da moram implementirat pdatkovno strukturo vsaNarocila, ki je polje elementov tipa narocilo in hrani podatke o vseh podanih naročilih. posamezni elementi tega polaja so torej tipa narocilo in omogočajo hranjenje podatkov o mizi, natakarju, datumu, jedi, kolicini in statusu jedi. Vemo, da ima restavracija 77 miz. Status jedi pa izgleda tako, da po natakarjevemu vnosu enka "vneseeno", po kuharjevi končni potrditvi pa "prirpavljeno".
prosim za pomoč
narediti moram seznam s polejm in sicer tako, da moram implementirat pdatkovno strukturo vsaNarocila, ki je polje elementov tipa narocilo in hrani podatke o vseh podanih naročilih. posamezni elementi tega polaja so torej tipa narocilo in omogočajo hranjenje podatkov o mizi, natakarju, datumu, jedi, kolicini in statusu jedi. Vemo, da ima restavracija 77 miz. Status jedi pa izgleda tako, da po natakarjevemu vnosu enka "vneseeno", po kuharjevi končni potrditvi pa "prirpavljeno".
prosim za pomoč
- spremenil: Mavrik ()
Vesoljc ::
in kje je problem? domacih nalog ti ne bomo reseval, povej kje se ti zatakne.
Abnormal behavior of abnormal brain makes me normal...
aceton ::
Zatakne se mi že na samem začeetku...in sicer deklariram strukturo
struct narocila {
int miza;
char natakar[10];
int datum;
char jed[12];
int kolicina;
char status;
};
narocila VsaNarocila[100]; // tuki mi javi program napako in ne vem zakaj
no in potem ne vem na kakšn način naredim, da uporabnik (natakar) vpisuje podatke v to polje
struct narocila {
int miza;
char natakar[10];
int datum;
char jed[12];
int kolicina;
char status;
};
narocila VsaNarocila[100]; // tuki mi javi program napako in ne vem zakaj
no in potem ne vem na kakšn način naredim, da uporabnik (natakar) vpisuje podatke v to polje
Vesoljc ::
ojoj....dej mal pazi na memory use. ker tole vodi v katastrofo.
do explain please...
Abnormal behavior of abnormal brain makes me normal...
Vesoljc ::
Zatakne se mi že na samem začeetku...in sicer deklariram strukturo
struct narocila {
int miza;
char natakar[10];
int datum;
char jed[12];
int kolicina;
char status;
};
narocila VsaNarocila[100]; // tuki mi javi program napako in ne vem zakaj
no in potem ne vem na kakšn način naredim, da uporabnik (natakar) vpisuje podatke v to polje
in zakaj ne napises kake napake ti javi?
Abnormal behavior of abnormal brain makes me normal...
commissar ::
struct narocila { int miza; char natakar[10]; int datum; char jed[12]; int kolicina; char status; } narocila VsaNarocila[100];
probej to,
ko ne boš mogel dostopati do fieldov v structu jih pa daj na public
Zgodovina sprememb…
- spremenil: commissar ()
amacar ::
Polje v C# se drugače inicializira.
narocila []VsaNarocila=new narocila[100]; VsaNarocila[0].miza=1 //primer pisanja v strukturo
Pimoz ::
@Vesoljc
Tole sicer ni bilo še blizu katastrofe, vendar sem že večkrat videl nadaljevanje teh primerov v stilu:
Stvar postane kar zabavna. Lahko pa da avtor teme ni hotel zatavati v te vode. V tem primeru se pardoniram.
Tole sicer ni bilo še blizu katastrofe, vendar sem že večkrat videl nadaljevanje teh primerov v stilu:
struct narocila { int miza; char natakar[10]; int datum; char jed[12]; int kolicina; char status; } narocila VsaNarocila[100000];
Stvar postane kar zabavna. Lahko pa da avtor teme ni hotel zatavati v te vode. V tem primeru se pardoniram.
mihies ::
amacar ima prav. A strukturo ti pa prevede na tak način - mislim tista char[] polja?
Sicer pa uporabi raje kar string namesto char[]. To ni C :)
Sicer pa uporabi raje kar string namesto char[]. To ni C :)
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
aceton ::
pri inicializaciji polja na način: narocila []VsaNarocilanew narocila[100]; mi javlja napako in sicer, citiram:
syntax error before '[' token
'VsaNarocila' undeclared (fisrt use in this function)
(Each undeclared identifier is reported only once for each function it appears in.)
in tut prvič vidm to inicializacijo za polja
drugače, če uporabim char niz[5] mi prevede, če v oklepajih ne napišem nobene številke mi tut javi napako.
syntax error before '[' token
'VsaNarocila' undeclared (fisrt use in this function)
(Each undeclared identifier is reported only once for each function it appears in.)
in tut prvič vidm to inicializacijo za polja
drugače, če uporabim char niz[5] mi prevede, če v oklepajih ne napišem nobene številke mi tut javi napako.
amacar ::
Pa ka ti sploh delaš C# ali imaš C++ to?
Recimo:
Recimo:
class Program { struct narocila { public int miza; public string natakar; public string datum; public string jed; public int kolicina; public int status; }; static void Main(string[] args) { narocila []VsaNarocila=new narocila[100]; VsaNarocila[0].miza = 1; VsaNarocila[0].natakar = "Joze"; VsaNarocila[0].datum = "7.3.2013"; VsaNarocila[0].jed = "Polenta"; VsaNarocila[0].kolicina = 1; VsaNarocila[0].status = 1; Console.WriteLine(VsaNarocila[0].miza.ToString()); Console.WriteLine(VsaNarocila[0].natakar); Console.WriteLine(VsaNarocila[0].datum); Console.WriteLine(VsaNarocila[0].jed); Console.WriteLine(VsaNarocila[0].kolicina.ToString()); Console.WriteLine(VsaNarocila[0].status.ToString()); Console.ReadKey(); } }
mihies ::
Da ni pomešal ++ -> #
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
darkkk ::
Torej, kje smo ostali ?
Ti moraš narest seznam, v katerem živijo tvoje živali (naročila itd).
celica v seznamu ti bo:
//deli za seznam
Ti moraš narest seznam, v katerem živijo tvoje živali (naročila itd).
celica v seznamu ti bo:
//deli za seznam
struct narocilo { int id; ... } struct cell { struct cell *next; struct narocilo *content; }; //konstruktor za narocilo (sam je pač funkcija) bool narediNarocilo(struct narocilo *p, int id, ...) { p = malloc(sizeof(narocilo)); p->id = id; ... } //dodajanje v list zgleda pol tko(korake načeloma lahko združuješ): 1. narediš tvoje naročilo (če ne veš v naprej koliko in od kje prihajajo, jih moraš delat @runtime, tko da raznim malloc-om ne boš ušel. 2. poturiš tvoje naročilo v celico 3. potisneš tvojo celico nekam v seznam
aceton ::
torej ostali smo nekako na začetku :/
torej strukturo naredim tako ja
struct narocila{
};
in ker imam jst seznam na osnovi polja (navodila naloge) naredim polje
struct narocila VsaNarocila[100];
torej nekak predvidevam, da ta del odpade:
struct cell
{
struct cell *next;
struct narocilo *content;
};
torej strukturo naredim tako ja
struct narocila{
};
in ker imam jst seznam na osnovi polja (navodila naloge) naredim polje
struct narocila VsaNarocila[100];
torej nekak predvidevam, da ta del odpade:
struct cell
{
struct cell *next;
struct narocilo *content;
};
tadej123321 ::
Hey, ne vem če ti bo tole kej pomagalo, vendar če bi jaz recimo moral kaj podobnega napisati, bi naredil takole:
struktura:
ker pa maš število miz razločno on 0, recimo, 77, definiraš še konstanto #define MIZ 77
potem pa znotraj programa ustvariš seznam:
struktura:
typedef struct{ int miza; char natakar[10]; int datum; char jed[10]; int kolicina; int status; //1...vneseno 2...pripravljeno }narocilo;
ker pa maš število miz razločno on 0, recimo, 77, definiraš še konstanto #define MIZ 77
potem pa znotraj programa ustvariš seznam:
narocilo *vsaNarocila; vsaNarocila=(narocilo*)malloc(MIZ*sizeof(narocilo));
aceton ::
zakaj vsi s kazalci delate? ne smem s kazalci ampak striktno s polji
hvala za idejo za konstanto
drgač pa sm že nrdila in sicer da vnašam v polje...npr naredim s for zanko
ampak kako naredim, da vnesem eno narocilo in nato program skoči na začetni meni, kjer uporabnik zbere natakarja oz kuharja..in če izberem ponovno natakarja, kako napišem, da začne vpisovati v naslednje polje? torej če sem prej vpisovala v 1. polje želim sedaj vpisovati v 2. in tako naprej...
hvala za idejo za konstanto
drgač pa sm že nrdila in sicer da vnašam v polje...npr naredim s for zanko
ampak kako naredim, da vnesem eno narocilo in nato program skoči na začetni meni, kjer uporabnik zbere natakarja oz kuharja..in če izberem ponovno natakarja, kako napišem, da začne vpisovati v naslednje polje? torej če sem prej vpisovala v 1. polje želim sedaj vpisovati v 2. in tako naprej...
darkkk ::
Načeloma "gui" sprogramiraš tako, da maš zanko, v kateri čakaš dokler ne pride ukaz za neki novega.
npr:
Lepota oz. nelepota C-ja je, da je treba vso "logiko" vodit na roke oz. ni nobene vgrajene strukture, ki bi to zate počela :)
Recimo, peš moraš vodit koliko maš zares vpisanih elementov v polju (hint, zato je seznam boljši), itd.
npr:
int a = 1; while(a) { int cmd; printf("lepo oblikovan GUI, vpisi izbiro..."); scanf("%d", &cmd); switch cmd { case 1: {a = 0; break;} //exit case 2: {vnesiKuharja(); break;} //kličeš funkcijo, ki... case 3: {izpisiElement(); break;} //izpises neki default:{continue;} } }
Lepota oz. nelepota C-ja je, da je treba vso "logiko" vodit na roke oz. ni nobene vgrajene strukture, ki bi to zate počela :)
Recimo, peš moraš vodit koliko maš zares vpisanih elementov v polju (hint, zato je seznam boljši), itd.
Zgodovina sprememb…
- spremenil: darkkk ()
Klobasa ::
tadej123321 ::
Mal pozn odgovarjam, sam vseen, če bo kej pomagal...bomo pa vidl:)
jest sm uporabu samo dinamično polje, kar pomeni da sem samo rezerviral v pomnilniku toliko in toliko prostora [beri: malloc; sizeof;... te fore] in sem ustvaril s tem polje!
kako povečevati neko spremenljivko ko skačeš iz ene funkcije v drugo in nazaj v meni?
džabe:D primer:
ko skočim v funkcijo in želim povečati spremenljivko:
nova_miza(&i);
pri čemer je potem funkcija nekako takole:
void nova_miza(int *i){
...
}
to je vsa umetnost:)
jest sm uporabu samo dinamično polje, kar pomeni da sem samo rezerviral v pomnilniku toliko in toliko prostora [beri: malloc; sizeof;... te fore] in sem ustvaril s tem polje!
kako povečevati neko spremenljivko ko skačeš iz ene funkcije v drugo in nazaj v meni?
džabe:D primer:
ko skočim v funkcijo in želim povečati spremenljivko:
nova_miza(&i);
pri čemer je potem funkcija nekako takole:
void nova_miza(int *i){
...
}
to je vsa umetnost:)
aceton ::
tadej123321 je izjavil:
ker pa maš število miz razločno on 0, recimo, 77, definiraš še konstanto #define MIZ 77
potem pa znotraj programa ustvariš seznam:
narocilo *vsaNarocila;
vsaNarocila=(narocilo*)malloc(MIZ*sizeof(narocilo));
Vnesla to v kodo vendar mi ne deljuje. tudi če vpišem 78 mi pogram normalno deluje naprej...brez prekinitive
naredila sem z if stavkom, vendar tudi brez uspeha
printf("\nVnesite steviko mize: "); scanf("%d",&VsaNarocila[next_free].miza); if (VsaNarocila[next_free].miza<77) printf("Napaka!");
Ugotovila :)
Zgodovina sprememb…
- spremenilo: aceton ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] sortiranje priimkov po slovenski abecediOddelek: Programiranje | 1592 (1403) | mihies |
» | [C] strukture, kazalci in točen datum/časOddelek: Programiranje | 698 (566) | aceton |
» | c problem pri zaključevanju programaOddelek: Programiranje | 1161 (986) | BigWhale |
⊘ | [C#]polje znakovOddelek: Programiranje | 2387 (2215) | Ziga Dolhar |
» | c++ datotekeOddelek: Programiranje | 4058 (3547) | Vesoljc |