Diskuze: Kontrola prográmku v JAVE a odstranění začátečnických chyb

Java Java Kontrola prográmku v JAVE a odstranění začátečnických chyb

Avatar
zoubek.s
Člen
Avatar
zoubek.s:

Ahoj,

snažín se naučit JAVU dle článků uvedených zde na ITNETWORK a rozhodl jsem se, že si jen tak pro sebe vytvořím program,
který bude simulovat klasické bankovní operace, abych se naučil programovat v JAVE.
Potřeboval bych vědět, jestli jsem začal dobře nebo špatně, na co si mám dávat pozor a případně mi poradit s odstranění chyb,
které jsem si do toho prográmku již zavedl.
Snažím se vytvořit něco, co nenajdu na internetu. Jinak ten můj prográmek je propojen s databází Oracle. Jak mám vytvořené propojení s db,
tak sem zatím dávat nebudu, teda pokud nebudu o to požádán.
Tak jak mám ten program vytvořený, tam mi i funguje, ale potřebuji aspoň tyto dvě třídy zkontrolovat od zkušených javystů.
Předem moc děkuji.

třída Banka s metodou main:

package banka;

import java.sql.SQLEx­ception;
import java.text.Par­seException;
import java.util.Scanner;

public class Banka {

public static void main(String[] args) throws SQLException, ParseException {
Scanner sc = new Scanner(System.in, "UTF-8");

System.out.prin­tln("Jste klient nebo bankéř? 1 - klient, 2 - bankéř:");
int volba = Integer.parse­Int(sc.nextLi­ne());
switch (volba)
{
case 1:
Klient klienti = new Klient();
klienti.Klienti();
break;
case 2:
Banker banker = new Banker();
banker.operace­Bankere();
break;
default:
System.out.prin­tln("Nebyla zadána správná volba!");
break;
}
}end main
}
end Banka

třída Banker:

package banka;

import java.sql.SQLEx­ception;
import java.util.Scanner;
import java.util.log­ging.Level;
import java.util.log­ging.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.prin­tln("Zadej operaci, kterou chcete provést:");
System.out.prin­tln("1 - Aktivace nového klienta");
System.out.prin­tln("2 - Založit nový účet");
System.out.prin­tln("3 - Založit nový spořící účet");
System.out.prin­tln("4 - Zrušit klienta");
System.out.prin­tln("5 - Zrušit běžný účet");
System.out.prin­tln("6 - Zrušit spořící účet");
int volba = Integer.parse­Int(sc.nextLi­ne());
switch (volba)
{
case 1:
Banker novyKlient = new Banker();
novyKlient.za­lozitNovehoKli­enta();
break;
case 2:
Banker novyBUcet = new Banker();
novyBUcet.zalo­zitNovyBeznyU­cet();
break;
default:
System.out.prin­tln("Nebyla zadána správná volba!");
break;
}
}

public void zalozitNoveho­Klienta() throws SQLException {
System.out.prin­tln("Aktivace nového klienta");
System.out.prin­tln("Zadejte Jméno: ");
jmeno = sc.nextLine();
System.out.prin­tln("Zadejte Přijmení: ");
prijmeni = sc.nextLine();

do
{
System.out.prin­tln("Zadejte Login: ");
login = sc.nextLine();

Connect_to_DB kontrolaLogin = new Connect_to_DB();
kontrolaLogin­.kontrolaLogin(lo­gin);

if (kontrolaLogin­.getLoginExis­t() != null)
{
System.out.prin­tln("Login je již registrován, zadejte jej znovu.");
opak = 1;
}
else
{
System.out.prin­tln("Zadejte Heslo: ");
heslo = sc.nextLine();
System.out.prin­tln("Zadejte Oslovení: ");
osloveni = sc.nextLine();

Connect_to_DB novyKlient = new Connect_to_DB();
novyKlient.In­sertKlient(jme­no,prijmeni,lo­gin,heslo,oslo­veni);

Connect_to_DB kontrolaKlienta = new Connect_to_DB();
kontrolaKlien­ta.existenceKli­enta(login, heslo);

if (kontrolaKlien­ta.getExisten­ceKlienta() == null)
{
System.out.prin­tln("Klient neexistuje!");
}
else
{
System.out.prin­tln("Aktivovat debet? [ano/ne]");
debet = sc.nextLine();

Debet aktivaceDebetu = new Debet();
if ("Ano".equals(de­bet))
{
castkaDebetu = aktivaceDebetu­.aktivaceDebe­tu();
}
else
{
castkaDebetu = 0;
}

Connect_to_DB novyBUcet = new Connect_to_DB();
novyBUcet.Inser­tBUcet(kontro­laKlienta.getE­xistenceKlien­ta(), debet, castkaDebetu, null);

}
opak = 2;
}
}
while (opak == 1);
}
}

 
Odpovědět 18.7.2014 6:25
Avatar
Odpovídá na zoubek.s
Neaktivní uživatel:

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ť.

Nahoru Odpovědět 18.7.2014 7:33
Neaktivní uživatelský účet
Avatar
zoubek.s
Člen
Avatar
zoubek.s:

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);
    }
}
 
Nahoru Odpovědět 18.7.2014 8:31
Avatar
Atrament
Člen
Avatar
Atrament:

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

 
Nahoru Odpovědět  +2 18.7.2014 15:38
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 4 zpráv z 4.