Diskuze: Bankomat

C# .NET .NET (C# a Visual Basic) Bankomat American English version English version

Avatar
lvictoryl
Člen
Avatar
lvictoryl:

Zdravím, potřeboval bych poradit u jedná prácičky.
Vše funguje, jen nevím, jak udělat funkci, kdy při výběru čtvrté možnosti a odsouhlasením (vložením - "ano") se program ukončil a při vložením "ne" program opět zobrazil hlavní možnost výběrů akce.

Zde je kód:

static void Main(string[] args)
        {
            Console.WriteLine("Dobrý den, vítejte v bankomatu");
            Console.WriteLine("=============================");
            string pokracovat = "ne";
            while(pokracovat =="ne")
                {
                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.");
                float stavUctu = 0;                                     //Nastaven stav účtu na nulu, typ float
                int volba = int.Parse(Console.ReadLine());              //Přeparsovaní na celé číslo
                string konec = "ano";
                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();
                    else
                         Console.WriteLine("Zadal jste špatnou volbu, libovolnou klávesou ukončíte program");
                  }
                  if (konec == "ano")
                      Console.WriteLine("Stiskněte libovolné tlačítko pro ukončení");
                        Console.ReadKey();

        }

Díky za radu :)

Editováno 26.5.2013 16:55
 
Odpovědět 26.5.2013 16:16
Avatar
Michal Žůrek (misaz):
Close();

Jinak na vložení kódu je tu funkce. Světe div se jmenuje se Vložit zdrojový kód

Nahoru Odpovědět 26.5.2013 16:18
Nesnáším {}, proto se jim vyhýbám.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
Зайчик:
EnvironmentExit(0);
ApplicationExit();
Editováno 26.5.2013 16:26
Nahoru Odpovědět 26.5.2013 16:25
Коммунизм для нашего будущего!
Avatar
lvictoryl
Člen
Avatar
lvictoryl:

Jsem začátečník, tudíž, nemám ponětí, jak se používají/chovají ty funkce, které mi píšete a kde by měli být umístěny :)

 
Nahoru Odpovědět 26.5.2013 16:42
Avatar
Michal Žůrek (misaz):

Tak si pořádně přečti tutoriály a možná tě napadne kam to napsat.

Nahoru Odpovědět 26.5.2013 16:46
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na lvictoryl
David Čápka:

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 :P

Nahoru Odpovědět 26.5.2013 16:54
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na lvictoryl
Petr Nymsa:

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čí.

Nahoru Odpovědět 26.5.2013 17:02
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na lvictoryl
David Čápka:

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 :)

Nahoru Odpovědět 26.5.2013 17:04
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
lvictoryl
Člen
Avatar
lvictoryl:

Díky moc lidi. Draco díky, už teď vidím, kde jsou chyby a dost mi to pomohlo, si to uvědomit. Jenom mohl bych se zeptat, jak by to vypadalo přes "bool" jak radíte?

btw. Fakt díky, ujasnili jste mi pořádně jak na to :)

 
Nahoru Odpovědět 26.5.2013 17:11
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na lvictoryl
Petr Nymsa:

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

Nahoru Odpovědět 26.5.2013 17:35
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
lvictoryl
Člen
Avatar
lvictoryl:

Ok, díky Zirko, zkusím si to napsat sám podle toho co jste mi řekli oběma způsoby :)

 
Nahoru Odpovědět 26.5.2013 17:43
Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

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 :)

Nahoru Odpovědět 26.5.2013 17:48
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Odpovídá na Honza Bittner
Michal Žůrek (misaz):

To sice ano, ale například začátečník toto nepochopí.

Nahoru Odpovědět 26.5.2013 17:50
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Správně, s tím mu nepleťte hlavu :)

Nahoru Odpovědět 26.5.2013 17:50
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Honza Bittner
Redaktor
Avatar
Nahoru Odpovědět 26.5.2013 18:01
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:

Ony by se zde ty metody musely udělat statické a učit začátečníka používat statiku vede do pekla ]:>

Nahoru Odpovědět  +1 26.5.2013 18:02
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

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 ! :D Ale fungovalo to, naučil jsem se dost a pak jsem objevil něco jménem OOP :)

Nahoru Odpovědět  +1 26.5.2013 18:05
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
lvictoryl
Člen
Avatar
lvictoryl:

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();
            }
        }
    }
}
 
Nahoru Odpovědět  +1 26.5.2013 18:27
Avatar
hondre
Člen
Avatar
hondre:

Jak se da udelat po nejake akci, ze by se pictureBoxu zmenil obrazek ?

 
Nahoru Odpovědět 1.7.2013 19:09
Avatar
Odpovídá na hondre
Michal Žůrek (misaz):

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

Editováno 1.7.2013 19:20
Nahoru Odpovědět 1.7.2013 19:19
Nesnáším {}, proto se jim vyhýbám.
Avatar
hondre
Člen
Avatar
hondre:

Dekuju
;)

 
Nahoru Odpovědět 1.7.2013 19:24
Avatar
Odpovídá na hondre
Michal Žůrek (misaz):

není zač a pro příště je tu tlačítko odpovědět.

Nahoru Odpovědět 1.7.2013 19:42
Nesnáším {}, proto se jim vyhýbám.
Avatar
hondre
Člen
Avatar
hondre:

Jde nějak změnit barva progress baru ?

 
Nahoru Odpovědět 9.7.2013 14:43
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na hondre
Theodor Johnson:

Jedině pokud si uděláš vlastní progress bar, od windows vista to už nebere nastavenou barvu progress baru

Nahoru Odpovědět 9.7.2013 14:50
Přecházím na "Cross-Platform Development"
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Theodor Johnson
Jan Vargovský:

Nebo změnit visualstyle celého formu a pak můžeš mít barvu jakou chceš :)

 
Nahoru Odpovědět 9.7.2013 15:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 27 zpráv z 27.