Diskuze: Bankomat

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

Aktivity (1)
Avatar
lvictoryl
Člen
Avatar
lvictoryl:26.5.2013 16:16

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):26.5.2013 16:18
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)
Зайчик:26.5.2013 16:25
EnvironmentExit(0);
ApplicationExit();
Editováno 26.5.2013 16:26
Nahoru Odpovědět 26.5.2013 16:25
Коммунизм для нашего будущего!
Avatar
lvictoryl
Člen
Avatar
lvictoryl:26.5.2013 16:42

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):26.5.2013 16:46

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:26.5.2013 16:54

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:26.5.2013 17:02

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:26.5.2013 17:04

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:26.5.2013 17:11

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:26.5.2013 17:35

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:26.5.2013 17:43

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:26.5.2013 17:48

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
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Odpovídá na Honza Bittner
Michal Žůrek (misaz):26.5.2013 17:50

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:26.5.2013 17:50

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
Odpovídá na David Čápka
Honza Bittner:26.5.2013 18:01

dobře no :D ...

Nahoru Odpovědět 26.5.2013 18:01
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:26.5.2013 18:02

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:26.5.2013 18:05

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:26.5.2013 18:27

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:1.7.2013 19:09

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

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:1.7.2013 19:24

Dekuju
;)

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

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:9.7.2013 14:43

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:9.7.2013 14:50

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
hondre
Člen
Avatar
 
Nahoru Odpovědět 9.7.2013 14:52
Avatar
Theodor Johnson
Redaktor
Avatar
Nahoru Odpovědět 9.7.2013 14:57
Přecházím na "Cross-Platform Development"
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Theodor Johnson
Jan Vargovský:9.7.2013 15:06

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.