Anonymní profil Neznalec – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Neznalec – Programujte.comAnonymní profil Neznalec – Programujte.com

 

Příspěvky odeslané z IP adresy 178.255.168.–

Láďa
PHP › Databáze ?
2. 3. 2016   #209037

#2 ondrej39
Díky za odpoved,

doufal jsem v trošku jednodušší odpoved protože ten rozvadeč muze obsahovat doslova cokoliv a hlavne pokazdy jinou hodnotu kdyz jeden ma 10A jistič od Moelleru tak druhej mam 10 A od OEZ Letohrady .

kazdej rozvadec ma jinej pocet jističů a jejich hodnota impedancni smyscky je pokazdy jina myslel jsem ze treba nejaka syntaxe pro tabulku která je jakoby ted to reknu moc laicky v jedne bunce toho danneho radku

Láďa
PHP › Databáze ?
2. 3. 2016   #209035

Ahoj,

   mám takový dotaz, který mi tady určitě každý zodpoví a bude si myslet že sem lama že to nevim ale prostě nevim.

Mám databázi v té databází si udržuji informace o výrobku má nejake konstanty které jsou porad jine ale tohle chapu ale co nechapu je to, jak ke kazdemu vyrobku pridat jeho obsah ktery muze byt treba 100 polozkovy a urcite pokazdy jiny.

Jestli je to moc zamotane tak to zkusim na prikladu :

1,Vyrabim rozvadece

2, Kazdy rozvadec ma výrobní číslo , evidenční číslo zákazníka a spoustu dalších konstant

3, Mam databazi která je jeden radek jeden rozvadec a sloupce jsou ty konstanty

A ted ten dotaz :-)

Kazdy rozvadec ma i svuj obsah a ten muze byt klidne 100 polozek treba 50 jističů značky Moeller o hodnotě 10A 1f každý jistič muze byt bud zaply nebo vyplý 

a tohle nevim jak to do te databaze zakomponovat koncim znalostma tim ze co sloupec to 1 hodnota a ne ve sloupci 100 hodnot

Poradte prosim Díky Láďa

Java › Chyba - základ
4. 1. 2015   #197832

Tu  "bohužel" taky mám právě na stole.

Pak ještě Začínáme programovat v jazyce JAVA od  J. CHapmana

a následně JAVA SCRIPT od Davida Morkese

Knih by bylo jen ta hlava není :D

Java › Chyba - základ
4. 1. 2015   #197829

Tak nějak jsem tušil, že se to nikomu líbit nebude. Shit, celý předělat   

Java › Chyba - základ
4. 1. 2015   #197827

Taky právě čtu Herouta (java5) i když nato můj program nevypadá :D.

hlavní třída: 

package bankomat;

import java.util.*;

/**
 *
 * @author marek
 */
public class Bankomat {

    int pocetklientu=1;
    private int hotovost;
    SeznamKlientu[] pole = new SeznamKlientu[50];

    public Bankomat(int hotovost) {
        this.hotovost = hotovost;
    }

    public static int nactiInt() {
        Scanner sc = new Scanner(System.in);
        int i;
        do {
            try {
                i = sc.nextInt();
                sc.nextLine(); /* Vyprázdní Buffer klávesnice*/

                return i;
            } catch (InputMismatchException e) {
                System.out.println("Chybné zadání! \n Zkuste to znovu: ");
                sc.nextLine(); /* Vyprázdní Buffer klávesnice*/

            }
        } while (true);
    }

    public static String nactiString() {
        Scanner sc = new Scanner(System.in);
        String text = sc.nextLine();
        return text;
    }

    public void menu1() {
        System.out.println("---------------------------------\n ZCUBank Vás vítá.\n");
        System.out.println(" 1. Vytvoř klienta\n 2. Vypsat klienty\n 3. Přihlásit se do bankomatu\n 4. Odejít \n");
        volba();
    }

    public void volba() {
        int i;
        do {
            i = nactiInt();
            switch (i) {
                case 1:
                    vytvorKlienta();
                    break;
                case 2:
                    vypisKlienty();
                    break;
                case 3:
                    prihlasKlienta();
                    break;
                case 4:
                    System.out.println("Program byl ukončen");
                    System.exit(0);
                default:
                    System.out.println("Neplatný výběr možnosti. Zkuste to příště");
            }
        } while (i < 4);
    }

    public int zadejKartu(){
    boolean ok = false;
        System.out.println("Zadejte prvních pět čísel vaší karty: ");
        int cislokarty = nactiInt();
        if (cislokarty < 100000 && cislokarty > 9999) {
            for (int i = 1; i < pole.length; i++) {
                if (pole[i] != null) {
                    if (((Klient) pole[i]).cislokarty == cislokarty) {
                        ok = true;
                        if (ok == true) {
                            System.err.println("Tato karta už existuje!");
                            vytvorKlienta();
                        } else {
                            return cislokarty;
                        }
                    }
                }
            }
        } else {
            System.err.println("Vypište pouze prvních pět čísel vaší karty");
            vytvorKlienta();
        }
    return cislokarty;
    }
    
    public int zadejPin(){
    System.out.println("Zadejte čtyřmístný pin: ");
        int pin = nactiInt();
        if (pin < 10000 && pin > 999){
        return pin;
        }else {
           System.err.println("Pin kod musí obsahovat pouze čtyři čísla");
           zadejPin(); 
        }
    return pin;
   }
    
    public int zadejStavKonta(){
        System.out.println("Zadejte kolik jste vložil peněz na účet: ");
        int stavkonta = nactiInt();
        if (stavkonta > 0){
        return stavkonta;
        }else {
           System.err.println("stav konta nemůže být záporný");
           zadejStavKonta(); 
        }
    return stavkonta;
    }
    
    public void vytvorKlienta() {
        int cislokarty = zadejKartu();
        int pin = zadejPin();
        int stavkonta = zadejStavKonta();
        System.out.println("Zadejte jméno klienta: ");
        String jmeno = nactiString();
        pole[pocetklientu] = new Klient(cislokarty, pin, stavkonta, jmeno);
        pocetklientu = pocetklientu + 1;
        System.out.println(" \n *****Právě přibyl nový klient, děkujeme.*****");
        menu1();
    }

    
    
    public void vypisKlienty() {
        for (int i = 0; i < pole.length; i++) {
            if (pole[i] != null) {
                System.out.println(+(i) + "." + " Klient: " + ((Klient) pole[i]).getJmeno() + "| karta: " + ((Klient) pole[i]).getCisloKarty() + "| pin: " + ((Klient) pole[i]).getPin() + "| Stav konta: " + ((Klient) pole[i]).getStavKonta());
            }
        }
        System.out.println("Pro navrácení do hlavního menu stiskněte enter");
         int menu;
        do{ menu=nactiInt();
        if(menu == 1){
            menu1();}else{
        System.err.println("Špatně zadáno");
        }
        }while(false);
    }

    public void prihlasKlienta() {
        System.out.print("Zadejte číslo vaší karty (prvních pět číslic): ");
        int cislokarty = nactiInt();
        System.out.print("Zadejte PIN vaší karty: ");
        int PIN = nactiInt();
        int poradivpoli = 0;
        int ok = 0;
        for (int i = 0; i < pole.length; i++) {
            if (pole[i] != null) {
                if (((Klient) pole[i]).getCisloKarty() == cislokarty && ((Klient) pole[i]).getPin() == PIN) {
                    ok = 1;
                    poradivpoli = i;
                }

            }
        }
        if (ok == 1) {
            do {
                System.out.println("------------------------\n Vítejte ve svém účtu\n");
                System.out.println(" 1. Vložit peníze\n 2. Vybrat peníze\n 3. Vypsat aktulální zůstatek\n 4. Odhlásit se \n-----------------------");
                int volba = nactiInt();

                if (volba == 1) {
                    System.out.println("Vložit peníze");
                    System.out.print("Částka, kterou si přejete uložit: ");
                    int castka = nactiInt();
                    ((Klient) pole[poradivpoli]).stavkonta += castka;
                    System.out.println("Na Váš účet byla uložena částka: " + castka + " Kč");
                    System.out.println("Váš aktuální zůstatek: " + ((Klient) pole[poradivpoli]).getStavKonta() + " Kč");
                }

                if (volba == 2) {
                    System.out.println("Vybrat peníze");
                    System.out.print("Částka, kterou si přejete vybrat: ");
                    int castka = nactiInt();
                    int penize = hotovost;
                    try { 
                        penize -= hotovost;
                    }catch (BankomatException be) {
                                    System.out.println("Vyhledejte jiný bankomat");
                                    System.out.println(be.getMessage());
                                    be.printStackTrace();
                                }
                    if (castka > 0) {
                        if (pole[poradivpoli] != null) {
                            if (((Klient) pole[poradivpoli]).getStavKonta() >= castka) {
                                
                                    ((Klient) pole[poradivpoli]).stavkonta -= castka;
                                System.out.println("Z vašeho účtu byla vybráno: " + castka + " Kč");
                                System.out.println("Váš aktuální zůstatek: " + ((Klient) pole[poradivpoli]).getStavKonta() + " Kč");
                                }
                                
                            } else {
                                System.err.println("Z účtu není možné vybrat tolik peněz");
                            }
                        }
                    }
                

                if (volba == 3) {
                    System.out.println("Váš aktuální zůstatek: " + ((Klient) pole[poradivpoli]).stavkonta + " Kč");
                }

                if (volba == 4) {
                    ok = 0;
                    break;
                }
            } while (ok == 1);
        } else {
            System.err.println("Špatné číslo karty nebo heslo!");
        }
    }

    public static void main(String[] args) {
        Bankomat b1 = new Bankomat(200000);
        b1.menu1();
    }

}

klient.java:


package bankomat;

/**
 *
 * @author marek
 */
public class Klient implements SeznamKlientu {

    int cislokarty;
    private int pin;
    int stavkonta;
    private String jmeno;
  
    public Klient(int cislokarty, int pin, int stavkonta, String jmeno) {
        this.cislokarty = cislokarty;
        this.pin = pin;
        this.stavkonta = stavkonta;
        this.jmeno = jmeno;
    }
    
    public int getCisloKarty() {
        return cislokarty;
    }

    public void setCisloKarty(int cislokarty) {
        this.cislokarty = cislokarty;
    }

    public int getPin() {
        return pin;
    }

    public void setPin(int pin) {
        this.pin = pin;
    }

    public double getStavKonta() {
        return stavkonta;
    }
    
    public void setStavKonta(int stav) {
        this.stavkonta = stavkonta;
    }

    public String getJmeno() {
        return jmeno;
    }

    public void setJmeno(String jmeno) {
        this.jmeno = jmeno;
    }

    public String toString() {
        return super.toString() + " Klient: " + getJmeno() + ", Cislo karty: " + getCisloKarty() + ", PIN: " + getPin() + ", Stav konta: " + getStavKonta();
    }
    public void tisk() {
        System.out.println("" + toString());
    }

}

BankomatException.java:

package bankomat;

/**
 *
 * @author marek
 */
public class BankomatException extends Exception {

    public BankomatException() {
        super("Bankomat dočasně mimo provoz");
    }
}

Poslední co bych dneska chtěl dořešit. Pokouším se o výjimku kdy dojde k vybrání zásob bankomatu (řádek 197-203).

Hází mi chybu: exception BankomatException is never thrown in body of corresponding try statement

Java › Chyba - základ
4. 1. 2015   #197823

Vám se musí z mých paskvilů kroutit prsty. :D

Děkuji moc za vytrvalost

Java › Chyba - základ
4. 1. 2015   #197816

Měl bych další dotaz. 

Používám tento můj paskvil pro pokračování v programu:

System.out.println("Pro navrácení do hlavního menu napište jedničku a stiskněte enter");
do{
	menu=nactiInt();
        if(menu == 1){
            menu1();	/*tam se chci dostat*/
     }else{
     	 System.err.println("Špatně zadáno");
        }

Prosím jak napsat aby uživatel mohl pro pokračování stisknout pouze enter?

Java › Chyba - základ
4. 1. 2015   #197811

dobrý už jsem to vyřešil.

Java › Chyba - základ
4. 1. 2015   #197809

Upraveno.

Snad už naposled. Nerad otravuji ale u výpisu zákazníků mi to hází NullPointerException. Dočetl jsem se, že nastává při práci s proměnnou, která obsahuje hodnotu null. 

Java › Chyba - základ
4. 1. 2015   #197806

Tak Volbu jsem vyřešil takto:  

public void Volba() {
        int i;
        do{
        i = NactiInt();
            switch (i) {
                case 1:
                    VytvoreniZakaznika();
                    break;
                case 2:
                    VypisZakazniku();
                    break;
                case 3:
                    System.out.println("Přihlásit se do bankomatu");
                    break;
                case 4:
                    System.out.println("Program byl ukončen");
                    System.exit(0);
                default:
                    System.out.println("Neplatný výběr možnosti. Zkuste to znovu");
            }
        } while (i > 4);
    }

a metodu UvodniMenu jsem změnil na Uvodnimenu. Tak jste to myslel?

Neznalec
Java › Chyba - základ
4. 1. 2015   #197803

S těma static mě to taky napadlo ale potom to hlásí v mainu u příkazu bankomat.UvodniMenu(); tuto hlášku:

non-static method UvodniMenu() cannot be referenced from a static context

To mám volat jinak?

Java › Chyba - základ
4. 1. 2015   #197795

Zdravím,

mám chybu v rozdělaným příkladu, poradil by někdo. Jsem samouk a podle toho to vypadá.

Chyba se nalézá v 73,83 a 84 řádku.

  Hlavní třída:

package bankomat;

import java.util.*;

/**
 *
 * @author marek
 */
public class Bankomat {

    private int hotovost;
    SeznamZakazniku[] pole = new SeznamZakazniku[50];
    
    public Bankomat(int hotovost) {
        this.hotovost = hotovost;
    }

    public static int NactiInt() {
        do {
            try {
                Scanner sc = new Scanner(System.in);
                int i = sc.nextInt();
                sc.nextLine(); /* Vyprázdní Buffer klávesnice*/

                return i;
            } catch (InputMismatchException e) {
                System.out.println("Něco jste zadal špatně! \n Zkuste to znovu: ");
            }
        } while (true);
    }

    public static String NactiString() {
        Scanner sc = new Scanner(System.in);
        String text = sc.nextLine();
        return text;
    }

    public static void UvodniMenu() {
        System.out.println("\n DBank Vás vítá. Postupujte dle seznamu. \n");
        System.out.println(" 1. Vytvoř zákazníka\n 2. Vypsat zákazníky\n 3. Přihlásit se do bankomatu\n 4. Odejít \n");
        Volba();
    }

    public static void Volba() {
        int i = NactiInt();
        switch (i) {
            case 1:
                VytvoreniZakaznika();
                break;
            case 2:
                VypisZakazniku();
                break;
            case 3:
                System.out.println("Přihlásit se do bankomatu");
                break;
            case 4:
                System.out.println("Program byl ukončen");
                System.exit(0);
            default:
                System.out.println("Neplatný výběr možnosti. Zkuste to znovu");
                Volba();
        }
    }

    public static void VytvoreniZakaznika() {
        int pocetzakazniku = 0;
        
        System.out.println("Zadejte prvních pět čísel karty: ");
        int cislokarty = NactiInt();
        System.out.println("Zadejte čtyřmístný pin: ");
        int pin = NactiInt();
        System.out.println("Zadejte kolik jste vložil peněz na účet: ");
        int stavkonta = NactiInt();
        System.out.println("Zadejte jméno klienta: ");
        String jmeno = NactiString();
        pole[pocetzakazniku] = new Zakaznik(cislokarty, pin, stavkonta, jmeno);
        pocetzakazniku = pocetzakazniku + 1;
        System.out.println(" \n Právě přibyl nový klient, děkujeme.");
        UvodniMenu();
    }

    public static void VypisZakazniku() {
        for (int i = 0; i < pole.length; i++) {
            System.out.println(pole[i+1] + "." + " Klient: " + ((Zakaznik) pole[i]).getJmeno() + "| karta: " + ((Zakaznik) pole[i]).getCisloKarty() + "| pin: " + ((Zakaznik) pole[i]).getPin() + "| Stav konta: " + ((Zakaznik) pole[i]).getStavKonta());
       }
    }

    public static void main(String[] args) {
        Bankomat b1 = new Bankomat(200000);
        Bankomat.UvodniMenu();
    }

Zde ještě další moje třídy:


package bankomat;

/**
 *
 * @author marek
 */
public class Zakaznik implements SeznamZakazniku {

    private int cislokarty;
    private int pin;
    private int stavkonta;
    private String jmeno;
  
    public Zakaznik(int cislokarty, int pin, int stavkonta, String jmeno) {
        this.cislokarty = cislokarty;
        this.pin = pin;
        this.stavkonta = stavkonta;
        this.jmeno = jmeno;
    }
    
    public int getCisloKarty() {
        return cislokarty;
    }

    public void setCisloKarty(int cislokarty) {
        this.cislokarty = cislokarty;
    }

    public int getPin() {
        return pin;
    }

    public void setPin(int pin) {
        this.pin = pin;
    }

    public double getStavKonta() {
        return stavkonta;
    }
    
    public void setStavKonta(int stav) {
        this.stavkonta = stavkonta;
    }

    public String getJmeno() {
        return jmeno;
    }

    public void setJmeno(String jmeno) {
        this.jmeno = jmeno;
    }
}

tuhle třídu jsem okoukal v jiným programu a abych se přiznal nevím k čemu přesně je.

package bankomat;

/**
 *
 * @author marek
 */
public interface SeznamZakazniku {
    
}

Budu rád za jakoukoli radu, která mi pomůže se tím prokousat.

Ještě v jiném vlákně (zde na foru) jsem vyčetl, že nemůžu pracovat s variable(proměnnou) v metodě, která je static, když proměnná není static.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý