Ahoj, mam takovej problem. Ucim se C ++ a mam script na login. Pokud spatne zadate login, hodi vam to nabidku na restart s tim, ze restart znamena znovuspusteni programu, nebo zacinani od zacatku (tzn. prvni otazka na zadani loginu).
Otazky:
1) Jak na to?
2) Jak se odkazovat na urcite casti, napriklad vrat se k otazce cislo 5.
3) Jak priradim moznost A/N (Ano / NE) misto 1/2 pokud pouzivam switch (muze byt i s potvrzovanim entru)
4) Jak udelat heslo na pismena a ne na cislice?
Kod:
#include <iostream>
using namespace std;
int main()
{
int login;
printf("Prejete se prihlasit? 1 = ano / 2 = ne\n");
scanf("%d", &login);
switch(login){
case 1:
cout << "========================================\n";
cout << "Vitejte v programu spolecnosti AGD-profi\n";
cout << "====================\n";
cout << "Prihlaste se:\n\n";
int id;
cout << "ID: ";
cin >> id;
cin.get();
int pass;
cout << "PASSWORD: ";
cin >> pass;
cin.get();
if (pass == 1409 && id == 1409)
cout << "Probiha nacitani systemu.......";
else
cout << "Vyplnte spravne udaje!\n";
break;
case 2:
printf("=========================\n");
break;
}
int restart;
printf("\nPrejete si restartovat program? 1 = ano / 2 = ne\n");
scanf("%d", &restart);
switch(restart){
case 1:
cout << "--- RESTARTUJI PROGRAM ---\n";
break;
case 2:
cin.get();
break;
}
cin.get();
return 0;
}
PROSIM O POMOC. DEKUJI ZA KAZDY PRISPEVEK!
Fórum › C / C++
Jak se vratit v programu na zacatek, nebo se odkazat na nekterou cast
To Hanz.S : ptáš se na to same, na co jsem se ptal ja - http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=10359-podminka-if
proboha ucit hned goto... az bude mit vetsi kod a bude se ho snazit po nejakym case projit tak se v tom utopi...
najdi si neco o cyklech! v tomto pripade nejspis do { } while ( ... );
To KIIV : To asi dělá pro nějakou bosenskou firmu... http://www.agdprofi.ba/
To budou mít z konzolové aplikace radost :-)
KIIV napsal:
To czbero : hlavne uplne zeru ten nadpis "Vitejte v programu spolecnosti AGD-profi"
improvizace? klam? vymysl?
miluju hesla ajejich dobyvani
btW: ja jsem si precetl funkce i cykly! Jenze je tam napsany pouze obecny info a neni tam to co potrebuju ja:) Asi to vyresim knizkou. Ja totiz nevim, zda-li mohu kombinovat while, if, else if a for v sobe napr while (neco obsahuje) a ve prostred while bude if a v if bude for.
No vzhledem k tomu, že funkce, podmínka i cyklus mohou obsahovat blok jakýchkoliv příkazu, je možné je libovolně kombinovat, vnořovat apod.
A kniha není špatný nápad, doporučuji "Mistrovství v C++ (3. vyd.)" od CPressu.
To KIIV : No myslím, že podobné aplikace zkusili naprogramovat snad všichni začínající programátoři (z těchto příkladů přímo srší skromnost :smile5: ), já sám jsem se na něčem podobném hodně naučil.
czbero napsal:
To KIIV : No myslím, že podobné aplikace zkusili naprogramovat snad všichni začínající programátoři, já sám jsem se na něčem podobném hodně naučil.
:) ja se chci naucit programovani, pac me to fascinuje. Male cerne okenko, ktere dela to, co jste mu prikazali. Fascinujici, tedy pro ty, co se to uci. Ovsem ty, kteri uz to ovladaji velmi dobre nefascinuje nejaka malinka tecka v cele pestre palete kodu C++.
#include <iostream>
using namespace std;
int main()
{
MENU:
int login;
printf("Prejete se prihlasit? 1 = ano / 2 = ne\n");
scanf("%d", &login);
switch(login){
case 1:
cout << "========================================\n";
cout << "Vitejte v programu spolecnosti AGD-profi\n";
cout << "====================\n";
cout << "Prihlaste se:\n\n";
int id;
cout << "ID: ";
cin >> id;
cin.get();
int pass;
cout << "PASSWORD: ";
cin >> pass;
cin.get();
if (pass == 1409 && id == 1409)
cout << "Probiha nacitani systemu.......";
else
cout << "Vyplnte spravne udaje!\n";
break;
case 2:
printf("=========================\n");
break;
}
int restart;
printf("\nPrejete si restartovat program? 1 = ano / 2 = ne\n");
scanf("%d", &restart);
switch(restart){
case 1:
cout << "--- RESTARTUJI PROGRAM ---\n\n";
goto MENU;
break;
case 2:
cin.get();
break;
}
cin.get();
LOGIN:
int jm_zam;
cout << "Jmeno zamestance: ";
cin >> jm_zam;
cin.get();
return 0;
}
Jinak bych prosil jeste pomoc. Vyresil jsem tedy to, ze pri restartu se dostanu na zacatek pres goto MENU. Jenze ted bych chtel, aby pri spravnem loginu (ktery je v IF = pokud zadas spravne ID a heslo, dostanes se dal) se dostal do goto LOGIN, kde by se odehravala dalsi cast pridavani zamestnancu, nebo veci (pro inventuru). Jenze kdyz napisu cokoliv, co je tucne (int, char, while, goto...) mezi if a else, tak mi to hodi chybu v else. Jak se tedy prehodim do jine casti scriptu, pokud je to v IF? Nebo bych mel zmenit funkci if na for, ci while? Tim moc nerozumim :(
Jeste bych potreboval pomoc s prekladem (vysvetlenim) nekolika pojmu (jinak nevite o nejake strance, kde je obsah vsech prikazu, ze kterych bych mohl cerpat nebo to najdu v knizce)?
printf - ?
scanf("%d", &login); - ?!!!
switch(restart){ - ,_??!!!
diky
#include <iostream>
using namespace std;
int main()
{
int login;
cout << "========================================\n";
cout << "Vitejte v programu spolecnosti AGD-profi\n";
cout << "====================\n";
MENU:
cout << "Prihlaste se:\n\n";
int id;
cout << "ID: ";
cin >> id;
cin.get();
int pass;
cout << "PASSWORD: ";
cin >> pass;
cin.get();
if (pass == 1409 && id == 1409)
cout << "Probiha nacitani systemu.......";
else
cout << "\nVyplnte spravne udaje!\n";
goto MENU;
LOGIN:
int jm_zam;
cout << "Jmeno zamestance: ";
cin >> jm_zam;
cin.get();
return 0;
}
Ne, ze bych tu chtel spamovat, ale vyrazne jsem zkratil script. Proste kdyz zadam spatne udaje, prihlasuju se znova. Ted bez zbytecneho restartu. Porad ale nevim, jak prejdu u if -> login aniz by se me to pletlo s else
!
To Hanz.S : http://www.cplusplus.com/
To Earl Cash : Tak to zkusím poprvé v životě já
To Hanz.S : To není script! Je to zdrojový kód. Script je pouze interpretovaný kód, tzn. nekompiluje se.
#include <iostream>
using namespace std;
int main()
{
cout << "========================================\n";
cout << "Vitejte v programu spolecnosti AGD-profi\n";
cout << "====================\n";
MENU:
cout << "Prihlaste se:\n\n";
int id;
cout << "ID: ";
cin >> id;
cin.get();
int pass;
cout << "PASSWORD: ";
cin >> pass;
cin.get();
while (pass != 1409)
{
cout << "Vyplnte spravne udaje!\n\n";
goto MENU;
}
while (id != 1409)
{
cout << "Vyplnte spravne udaje!\n\n";
goto MENU;
}
while (pass == 1409 && id == 1409)
{
cout << "Prihlasili jste se, nacitam data!\n\n";
goto LOGIN;
}
LOGIN:
int jm_zam;
cout << "Jmeno zamestance: ";
cin >> jm_zam;
cin.get();
return 0;
}
Juchuchu !!!! Vyreseno, hodilo se procitani prispevku na foru, coz delam celou dobu a mensi ctenicko ve while. Diky moc za prispevky a pomoc
Jestli se někdo najde, budeš mít štěstí. Málokoho baví odpovídat na neustálé rady, anebo ještě líp rovnou za tazatele psát kód :-)
Máš s něčím problém? Napiš ho na fórum. Nejlepší a nejmíň bolestivé řešení pro všechny :)
To jsem tam dal (&&), jenze me to pak pustilo dal, kdyz jsem vyplnil spravne alespon jeden udaj (bud ID, nebo pass). Ale diky moc Earl Cash, ktery to vyresil "nebo" ||.
#include <iostream>
using namespace std;
int main()
{
cout << "------------------------------------------\n";
cout << "|Vitejte v programu spolecnosti AGD-profi|\n";
cout << "------------------------------------------\n";
MENU:
cout << "Prihlaste se:\n\n";
int id;
cout << "ID: ";
cin >> id;
cin.get();
int pass;
cout << "PASSWORD: ";
cin >> pass;
cin.get();
while (pass != 1409 || id != 1409)
{
cout << "Vyplnte spravne udaje!\n\n";
goto MENU;
}
while (pass == 1409 && id == 1409)
{
cout << "Prihlasili jste se, nacitam data!\n\n";
goto ZAMESTNANCI;
}
ZAMESTNANCI:
int zamestanec;
printf("Prejete se pridat zamestance? 1 = ano / 2 = ne\n");
scanf("%d", &zamestanec);
switch(zamestanec){
case 1:
char jmeno[20];
cout << "Jmeno: ";
cin >> jmeno;
cin.get();
int vek;
cout << "Vek: ";
cin >> vek;
cin.get();
char prace[250];
cout << "Napln prace: ";
cin >> prace;
cin.get();
//zadano
cout << "\nZadali jste udaje: ";
cout << "\n------------------";
cout << "\nJmeno zamestnance: " << jmeno;
cout << "\nJeho/jeji vek: " << vek;
cout << "\nNapln prace: " << prace;
break;
}
int status;
printf("\n\nPrejete si zobrazit zamestance? 1 = ano / 2 = ne\n");
scanf("%d", &status);
switch(status){
case 1:
cout << "\nZadali jste zamestance: ";
cout << "\n-----------------------";
break;
}
goto ZAMESTNANCI;
return 0;
}
Dalsi upravicky, ted mam dalsi problem. Proc bych sem asi jinak psal :D:D:D. Takze, pokud si pridam zamestnance s jmenem, vekem a naplni prace, nabidne mi program zobrazeni vsech pridanych zamestnancu (v tuto chvili 1). Pokud zvolim ze ne, nabidne mi program pridat dalsiho. Jak ale udelam zapis do databaze jednoho zamestnance, pokud chci, aby pridavani zamestnance bylo pro vice zamestnancu (multifunkcni) a ne jen pro prvniho. A co musim udelat pro to, aby se mi zobrazili na konci, muzu to udelat pres printf a case? Diky
nastuduj si struktury a praci s polem...Jak ale udelam zapis do databaze jednoho zamestnance, pokud chci, aby pridavani zamestnance bylo pro vice zamestnancu (multifunkcni) a ne jen pro prvniho.
btw pro zdrojovy kod pouzivej "kod" - lepe se to cte...
To Hanz.S : No nie že by som ti do toho chcel kecať ale príkaz "goto" je riadna prasačina a nikto ti taký zdrojový kod nezhltne. Profesionáli si o tebe pomyslia svoje a žiaden zamestnávatel nezamestná nikoho kto to používa. Goto je prosto prežitok zo starých čias keď ešte cykli neexistovali, takže ak sa chceš niečo naozaj naučiť tak ti radím na goto rýchlo zabudnúť a stráviť tých pár minút radšej rozmýšľaním ako tam použiť niečo také ako goto.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
[c#]switch jak se vrátit na začátek? — založil Figa
Jak přehrát mp3 nebo WMA v C# programu — založil trotl41
Vraceni na zacatek programu — založil Tomáš
Čím je definovaný začátek programu v C? — založil kju: b
Jak odkázat na třídu POINT do paměti — založil Kevil
Moderátoři diskuze