Diskuze: Bankomat
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 27 zpráv z 27.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Close();
Jinak na vložení kódu je tu funkce. Světe div se jmenuje se Vložit zdrojový kód
EnvironmentExit(0);
ApplicationExit();
Tak si pořádně přečti tutoriály a možná tě napadne kam to napsat.
Nahoře máš proměnnou pokracovat. Proto nenačítej odpověď do proměnné konec, ale do té pokracovat. Ta podmínka nedává smysl, máš tam while (pokracovat == "ne"), snad pokracovat == ano
S tou podmínkou do while, použij bool. Dokud je bool pokracovat true, cyklus se opakuje. Jakmile nastane volba ukončit, nastav pokracovat na false, cyklus skončí -> aplikace skončí.
Jinak co ti psali Close a Exit, tak to nepoužívej, program skončí tak, že skončí. Ne tak, že běží v nekonečné smyčce a my ho přerušíme podobným příkazem. Dole máš nějaký bordel v těch závorkách. Moc často to nedělám, ale protože tenhle program je krátký a vypadá docela dobře, tady to máš opravené:
static void Main(string[] args)
{
Console.WriteLine("Dobrý den, vítejte v bankomatu");
Console.WriteLine("=============================");
float stavUctu = 0; //Nastaven stav účtu na nulu, typ float
string konec = "ne";
while(konec !="ano")
{
Console.WriteLine("Co si přejete provést?");
Console.WriteLine("1 - Zobrazit stav mého účtu."); //Hlavní
Console.WriteLine("2 - Provést vklad."); //nabídka
Console.WriteLine("3 - Vybrat prostředky."); //možností
Console.WriteLine("4 - Nic, chci ukončit program.");
int volba = int.Parse(Console.ReadLine()); //Přeparsovaní na celé číslo
switch (volba) //Funkce v příkladech
{
case 1:
Console.WriteLine("Stav Vašeho účtu je: " +stavUctu); //Zobrazí stav účtu
break;
case 2:
Console.WriteLine("Zadejte sumu pro vklad"); //Provede vklad a zobrazí zůstatek
float suma = float.Parse(Console.ReadLine());
stavUctu = suma + stavUctu;
Console.WriteLine("Na vašem účtu je: {0}", stavUctu);
break;
case 3:
Console.WriteLine("Kolik si přejete vybrat?"); //Provede výběr a zobrazí zůstatek (možný mínus)
float vyber = float.Parse(Console.ReadLine());
Console.WriteLine("Vybral jste {0}", vyber);
stavUctu = stavUctu - vyber;
Console.WriteLine("Na vašem účtu je zůstatek: {0}", stavUctu);
break;
case 4:
Console.WriteLine("Opravdu chcete ukončit program ano/ne?");
konec = Console.ReadLine();
break;
}
if ((volba > 0 && volba < 5))
Console.WriteLine();
if (konec == "ano")
{
Console.WriteLine("Stiskněte libovolné tlačítko pro ukončení");
Console.ReadKey();
}
}
Koukni se na změny co jsem provedl a hlavně stav účtu nuluj na začátku programu a ne v tom cyklu, jinak si něco vložíš a hned tam zas nic nemáš. Pro banky ideální stav, pro klienty ani moc ne
Přes bool - napíšu jenom krátký příklad, cyklus běží a vypisuje ahoj, vždy se tě zeptá jestli pokračovat, když zadáš "ano", program resp. cyklus skončí
bool pokracuj = true;
while (pokracuj)
{
Console.WriteLine("Ahoj");
Console.Write("Skončit ? ");
string s = Console.ReadLine();
if (s == "ano")
pokracuj = false;
}
Uvědom si že veškeré podmínky, včetně podmínky v cyklu vlastně vrací také bool - TRUE / FALSE. Proto je už na místě použít rovnou bool, když máš jenom dvě možnosti - POKRAČOVAT / KONEC
Já bych dal v casu odkaz na metody ... např. :
case 1: stavUctu()
break;
////
public void stavUctu()
{
Console.WriteLine("Stav Vašeho účtu je: " + stavUctu);
}
podle mě to je přehlednější a dá se to lépe upravovat
To sice ano, ale například začátečník toto nepochopí.
Ony by se zde ty metody musely udělat statické a učit začátečníka používat statiku vede do pekla
Já jsem osobně začal používat metody až asi po půl roce. Za tu dobu jsem měl za sebou úspěšně lodě, robota Karla, králiky a ano byly to samé cykly a switche a všechno možný dohromady v Main ! Ale fungovalo to, naučil jsem se dost a pak jsem objevil něco jménem OOP
Tak tu to je finální výtvor. Nechtěl jsem opisovat od Draca, ukončení přes "if". Tak jsem si přečetl od Zirka a ukončil podle něho přes bool a funguje! Můj první, program, který se jím už dá nazvat. Nějaké nápady, jak bych to ještě mohl v mých znalostech vytunit, vylepšit, přidat něco?
Kód dole -
namespace Bankomat___Konec_přes_bool
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Dobrý den, vítejte v bankomatu");
Console.WriteLine("=============================");
float stavUctu = 0; //Nastaven stav účtu na nulu, typ float
bool pokracuj = true;
while(pokracuj)
{
Console.WriteLine("Co si přejete provést?");
Console.WriteLine("1 - Zobrazit stav mého účtu."); //Hlavní
Console.WriteLine("2 - Provést vklad."); //nabídka
Console.WriteLine("3 - Vybrat prostředky."); //možností
Console.WriteLine("4 - Nic, chci ukončit program.");
int volba = int.Parse(Console.ReadLine()); //Přeparsovaní na celé číslo
switch (volba) //Funkce v příkladech
{
case 1:
Console.WriteLine("Stav Vašeho účtu je: " +stavUctu); //Zobrazí stav účtu
break;
case 2:
Console.WriteLine("Zadejte sumu pro vklad"); //Provede vklad a zobrazí zůstatek
float suma = float.Parse(Console.ReadLine());
stavUctu = suma + stavUctu;
Console.WriteLine("Na vašem účtu je: {0}", stavUctu);
break;
case 3:
Console.WriteLine("Kolik si přejete vybrat?"); //Provede výběr a zobrazí zůstatek (možný mínus)
float vyber = float.Parse(Console.ReadLine());
Console.WriteLine("Vybral jste {0}", vyber);
stavUctu = stavUctu - vyber;
Console.WriteLine("Na vašem účtu je zůstatek: {0}", stavUctu);
break;
case 4:
Console.WriteLine("Opravdu chcete ukončit program ano/ne?");
string s = Console.ReadLine();
if (s=="ano")
pokracuj = false;
break;
}
if ((volba > 0 && volba < 5))
Console.WriteLine();
}
}
}
}
prostě napíšeš aby se po skončení té akce provedlo:
PictureBox.Image = obr...;
Pokud chceš načítat obrázky ze souboru tak použij:
PictureBox.Image = Image.FromFile(cesta);
přečti si: http://www.itnetwork.cz/…indows-forms
není zač a pro příště je tu tlačítko odpovědět.
Jedině pokud si uděláš vlastní progress bar, od windows vista to už nebere nastavenou barvu progress baru
Nebo změnit visualstyle celého formu a pak můžeš mít barvu jakou chceš
Zobrazeno 27 zpráv z 27.