Tak delam paty ukol lekce C++ a mam to skoro hotove, muchy vychytane, ale mam jeden docela vazny problem.
Vsechno ?lape jak ma, ale kdyz treba zalozim 3zamestnance a vsechny je vyplnim tak pri zadavani prace tretiho a odentrovani mi to nic nevypise, jen konecny text (zkousku).Kdyz ale zalozim 3 lidi a vyplnim treba jen 2 vse je OK.
Netusim cim to je, jakoby nechctela projit bud
else if (vytvoreno_lidi != 0)
nebo
while (vypsano_zamestnancu <= vytvoreno_lidi)
jen?e oba tryto cykly jsou v naprostem poradku a o tom svedci i zkouska dole.
Nevim si rady, pls pomozte.
P.S.A taky proc musim mit
cin.getline(clovek[vytvoreno_lidi].prace, 32);
dvakrat aby to ?lapalo? (jak u prace tak u jmeno)
CELY PROGRAMEK :
#include <iostream>
using namespace std;
// deklarace struktury
struct lide
{
char jmeno[32];
int vek;
char prace[32];
};
// konec deklarace struktury
int main()
{
// --- zacatek zakladani promenych CHAR a INT ---
int pocet_lidi;
int vytvoreni=0;
char firma[50];
int vypsano_zamestnancu=1;
int vytvoreno_lidi=0;
int odpoved;
// --- konec zadavani promenych ---
// ****** zacatek uvodnich kecu ******
cout << "**************************************** n";
cout << "*--------------------------------------* n";
cout << "*--- Vitam Vas ve fiktivnim podniku ---* n";
cout << "*--------------------------------------* n";
cout << "**************************************** nn";
cout << "-- prosim, abyste vsechny udaje zadavane do tohoto programu psali bez hacku a carek, ";
cout << "jinak se program vypne, dekuji za pochopeni -- nn";
cout << "Jak se Vase firma jmenuje? ";
cin.get(firma, 50);
cout << "Kolik si prejete mit ve vasi firme " << firma << " zamestnancu ? (maximalne 32 000 a nesmi to byt nula) ";
cin >> pocet_lidi;
// osetreni max.poctu zamestnancu a nuly
while (pocet_lidi>32000 || pocet_lidi==0) {
cout << "Opakuji, zamestnancu muze byt maximalne 32 000 a nemuze jich byt nula, kolik si jich prejete vytvorit?";
cin >> pocet_lidi;
}
lide clovek[pocet_lidi]; // zakladani pole struktur o velikosti POCET_LIDI
// souhlasi-li podminky, pta se na 1 nebo 2
while (vytvoreno_lidi < pocet_lidi) {
cout << "Dalsiho zamestnance?pro ano 1, pro ne 2";
cin >> odpoved;
while (odpoved !=1 && odpoved !=2){
cout << "Musite zadat bud 1 nebo 2, zadejte znovu ";
cin >> odpoved;
}
// ** zapisovani a vypis zamestancu **
if (odpoved == 1) {
vytvoreno_lidi++;
cout << "---- zapisovani dalsiho zamestance ----n";
// ----- zadavani informaci o zamestnanci -----
cout << "Napis jmeno " << vytvoreno_lidi << ". zamestnance : ";
cin.getline(clovek[vytvoreno_lidi].jmeno, 32);
cin.getline(clovek[vytvoreno_lidi].jmeno, 32);
cout << "Napis vek " << vytvoreno_lidi <<". zamestnance : ";
cin >> clovek[vytvoreno_lidi].vek;
cout << "Napis praci " << vytvoreno_lidi << ". zamestnance : ";
cin.getline(clovek[vytvoreno_lidi].prace, 32);
cin.getline(clovek[vytvoreno_lidi].prace, 32);
}
// ----- konec zadavani informaci o zamestnanci -----
// ----- vypis zamestnancu ------ (pokud vytvoreno_lidi neni nula)
else if (vytvoreno_lidi != 0) {
cout << "n----------- vypis zamestancu -----------n";
while (vypsano_zamestnancu <= vytvoreno_lidi) {
cout << "TOTO JE ZAMESTNANEC CISLO " << vypsano_zamestnancu << "n";
cout << "Jmeno : " << vypsano_zamestnancu << ". zamestnance je " << clovek[vypsano_zamestnancu].jmeno << "n";
cout << "Vek " << vypsano_zamestnancu << ". zamestnance je " << clovek[vypsano_zamestnancu].vek << "n";
cout << "Prace " << vypsano_zamestnancu << ". zamestnance je " << clovek[vypsano_zamestnancu].prace << "n";
cout << "n n";
vypsano_zamestnancu++;
}
cin.get();
cin.get();
return 0;
}
// ----- konec - vypis zamestnancu ------
// ** konec zapisovani a vypis zamestancu **
// pokud je vytvoreno_lidi nula => konec
else {
cout << "Nevytvoril jste zadneho zamestnance, takze :(";
cin.get();
cin.get();
return 0;
}
} // konec IF na 54 ??dku
cout << "TOTO JE ZKOUSKA, proc mi to furt nejde :(";
cout << vypsano_zamestnancu << "vypsano" << "______" << vytvoreno_lidi << "vytvoreno";
cout << "nkonecccccccc";
cin.get();
cin.get();
return 0;
} // konec INT MAIN()