Diskuze: Kontrola prográmku v JAVE a odstranění začátečnických chyb
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Neaktivní uživatel:18.7.2014 7:33
Ahoj, keď píšeš otázku, tak hore máš tlačítko "vložiť zdrojový kód". Ten svoj zdrojový kód sem daj pomocou toho tlačítka, v hentom sa nevyzná nikto a nikto to nebude ani čítať.
Tak ještě jednou:
třída Banka s metodou main:
package banka;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Scanner;
/**
 *
 * @author szoubek
 */
public class Banka {
    public static void main(String[] args) throws SQLException, ParseException {
        Scanner sc = new Scanner(System.in, "UTF-8");
        System.out.println("Vitejte v bance Kaktus Banka.");
        System.out.println("Jste klient nebo bankéř? 1 - klient, 2 - bankéř:");
        int volba = Integer.parseInt(sc.nextLine());
        switch (volba)
        {
            case 1:
                Klient klienti = new Klient();
                klienti.Klienti();
                break;
            case 2:
                Banker banker = new Banker();
                banker.operaceBankere();
                break;
            default:
                System.out.println("Nebyla zadána správná volba!");
                break;
        }
    }//end main
}//end Banka
třída Banker:
package banka;
import java.sql.SQLException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author szoubek
 */
public class Banker {
    private String jmeno;
    private String prijmeni;
    private String login;
    private String heslo;
    private String osloveni;
    private String datumZalozeni;
    private String sporiciUcet;
    private String debet;
    private int castkaDebetu;
    private int cisloBUctu;
    private int opak = 0;
    private Scanner sc = new Scanner(System.in, "UTF-8");
    public void operaceBankere() throws SQLException {
        Scanner sc = new Scanner(System.in, "UTF-8");
        System.out.println("Zadej operaci, kterou chcete provést:");
        System.out.println("1 - Aktivace nového klienta");
        System.out.println("2 - Založit nový účet");
        System.out.println("3 - Založit nový spořící účet");
        System.out.println("4 - Zrušit klienta");
        System.out.println("5 - Zrušit běžný účet");
        System.out.println("6 - Zrušit spořící účet");
        int volba = Integer.parseInt(sc.nextLine());
        switch (volba)
        {
            case 1:
                Banker novyKlient = new Banker();
                novyKlient.zalozitNovehoKlienta();
                break;
            case 2:
                Banker novyBUcet = new Banker();
                novyBUcet.zalozitNovyBeznyUcet();
                break;
            case 3:
                Banker novySUcet = new Banker();
                novySUcet.zalozitNovySporiciUcet();
                break;
            case 4:
                System.out.println("Zrušit klienta");
                break;
            case 5:
                System.out.println("Zrušit účet");
                break;
            case 6:
                System.out.println("Zrušit spořící účet");
                break;
            default:
                System.out.println("Nebyla zadána správná volba!");
                break;
        }
    }
    public void zalozitNovehoKlienta() throws SQLException {
        System.out.println("Aktivace nového klienta");
        System.out.println("Zadejte Jméno: ");
        jmeno = sc.nextLine();
        System.out.println("Zadejte Přijmení: ");
        prijmeni = sc.nextLine();
        do
            {
                System.out.println("Zadejte Login: ");
                login = sc.nextLine();
                Connect_to_DB kontrolaLogin = new Connect_to_DB();
                kontrolaLogin.kontrolaLogin(login);
                if (kontrolaLogin.getLoginExist() != null)
                {
                    System.out.println("Login je již registrován, zadejte jej znovu.");
                    opak = 1;
                }
                else
                {
                    System.out.println("Zadejte Heslo: ");
                    heslo = sc.nextLine();
                    System.out.println("Zadejte Oslovení: ");
                    osloveni = sc.nextLine();
                    Connect_to_DB novyKlient = new Connect_to_DB();
                    novyKlient.InsertKlient(jmeno,prijmeni,login,heslo,osloveni);
                    Connect_to_DB kontrolaKlienta = new Connect_to_DB();
                    kontrolaKlienta.existenceKlienta(login, heslo);
                    if (kontrolaKlienta.getExistenceKlienta() == null)
                    {
                        System.out.println("Klient neexistuje, zadejte login a heslo znovu.");
                    }
                    else
                    {
                        System.out.println("Aktivovat debet? [ano/ne]");
                        debet = sc.nextLine();
                        Debet aktivaceDebetu = new Debet();
                        if ("Ano".equals(debet))
                        {
                            castkaDebetu = aktivaceDebetu.aktivaceDebetu();
                        }
                        else
                        {
                            castkaDebetu = 0;
                        }
                        Connect_to_DB novyBUcet = new Connect_to_DB();
                        novyBUcet.InsertBUcet(kontrolaKlienta.getExistenceKlienta(), debet, castkaDebetu, null);
                    }
                    opak = 2;
                }
            }
        while (opak == 1);
    }
}
					No já nejsem žádný expert, ale na první pohled je vidět, že máš jasno v takových těch základech, co se týká syntaxe jazyka. Dále by ses měl rozhodně zaměřit na samotnou architekturu aplikace - oddělit gui od dat například. Zatím používáš textové rozhraní pro interakci s uživatelem, ale představ si, že se za pár měsíců rozhodneš to předělat aby to mělo pěkné okýnkové prostředí, napsané třeba za pomocí Swingu nebo JavaFX. Tak jak to máš napsané teďka z toho při tom přepisování zešedivíš. Měl bys mít samostatný objekt na tu komunikaci s uživatelem, samostatný objekt na komunikaci s datovým úložišťem a samostatný objekt který by to celé koordinoval. Přímo tady na webu vyšel článenk na toto téma - http://www.itnetwork.cz/…avrhovy-vzor
Zobrazeno 4 zpráv z 4.
				
