Diskuze: Semestrálna práca

Java Java Semestrálna práca

Avatar
Richard Gallo:

čauko, potreboval by som pomôcť so semestralnou prácou je vytvorená v programe BlueJ problem je v triede program metóda main ktorá má ovládať celý projekt nefuguje problem je že neviem vratiť knižku v triede knižnica pomocu metody vypis knizku podla jej poradoveho čisla v ArrayListe. (priložil som kódy všetkých tried)

 
Odpovědět 13.12.2015 1:26
Avatar
Richard Gallo:
public class Knizka {
    //atribúty triedy knizka
    private int rokVydania;
    private String nazov;
    private boolean aVypozicane;
    private int isbn;
    private String autor;
    private double cena;
    private int pocetKusov;

    /**
     * Konštruktor triedy Knizka
     * @param rokVydania Parameter, ktorým inicializujem atribút rokVydania.
     * @param nazov Parameter, ktorým inicializujem atribút nazov, teda názov knihy.
     * @param isbn Parameter, ktorým inicializujem atribút isbn.
     * @param autor Parameter, ktorým inicializujem atribút autor, teda autora knihy.
     * @param cena Parameter, ktorým inicalizujem atribút cena.
     * @param pocetKusovNaSklade Parameter, ktorým inicializujem atribút pocetKusov.
     */
    public Knizka(int rokVydania, String nazov, int isbn, String autor, double cena, int paKusovNaSklade) {
        this.rokVydania = rokVydania;
        this.nazov = nazov;
        if (paKusovNaSklade > 0) {
            this.aVypozicane = false;
        } else {
            this.aVypozicane = true;
        }
        this.isbn = isbn;
        this.autor = autor;
        this.cena = cena;
        this.pocetKusov = paKusovNaSklade;
    }

      /**
     * Metóda dajRokVydania(), ktorá vracia hodnotu atribútu rokVydania.
     *
     */
    public int getRokVydania() {
        return this.rokVydania;
    }

    /**
     * Metóda dajStav(), vracia hodnotu atribútu aVypozicane
     *
     */
    public boolean dajStavVypozicania() {
        return this.aVypozicane;
    }

    /**
     * Metóda pozicajKnizku(), zmení stav atribútu aVypozicane.
     *
     */

    public boolean pozicajKnizku() {
        if (this.pocetKusov <= 0) {
            System.out.println("Lutujeme, ale na sklade knizka s nazvom: " + this.nazov + " nemame");
            return false;
        } else if (this.pocetKusov == 1) {
            this.aVypozicane = true;
            this.pocetKusov--;
            return true;
        } else {
            this.pocetKusov--;
            return true;
        }
    }

      /**
     * Metóda getPocetKusov vracia hodnotu atribútu pocetKusov.
     *
     */
    public int getPocetKusov() {
        return this.pocetKusov;
    }

    /**
     * Metóda vratKnizku(), zmení stav atribútu aVypozicane a zaroveň pripočíta jeden kus k atribútu pocetKusov.
     *
     */
    public boolean vratKnizku() {
        this.aVypozicane = false;
        this.pocetKusov++;
        return true;
    }

    /**
     *Metóda getNazovDiela(), teda textová reprezentácia objektu.
     *
     */
    public String getNazovDiela() {
        String vysl;
        String pom;
        if (this.aVypozicane) {
            pom = "áno";
        } else {
            pom = "nie";
        }
        vysl = "Kniha: " + this.nazov + " autor: " + this.autor + ", vydaná : " + this.rokVydania + ", je vypožičaná : " + pom;
        return vysl;
    }

}
 
Nahoru Odpovědět 13.12.2015 1:35
Avatar
Odpovídá na Richard Gallo
Richard Gallo:
import java.util.ArrayList;

/**
 * Trieda knižnica
 *
 *
 */
public class Kniznica {
    private ArrayList<Knizka> knihy;  //ArryList predstavuje požičovňu kníh.

    public Kniznica() {
        this.knihy = new ArrayList<Knizka>();
    }

    /**
     * Metóda vlozKnizku vloží triedu knizka do ArrayListu.
     */
    public void vlozKnizku(Knizka kniha) {
        this.knihy.add(kniha);
    }

    /**
     * Metóda vypisNajstarsiu vypíše najstaršiu knizku na zaklade atribútu rokVydania.

     *
     */
    public String vypisNajstarsiu() {
        // Vypise najstarsiu knizku
        int pom = 0;
        String nazov = "Lutujeme, ale ziadne knizky niesu k dispozicií";

        if (this.knihy.get(0) != null) {
            pom = this.knihy.get(0).getRokVydania();

            for (int i = 0; i < this.knihy.size(); i++) {
                if (this.knihy.get(i).getRokVydania() <= pom) {
                    pom = this.knihy.get(i).getRokVydania();
                    nazov = this.knihy.get(i).getNazovDiela();
                }
            }

        }

        return nazov;
    }

    /**
     * Metóda pocetVypozicanych vracia počet vypožičaných kníh.
     */
    public int pocetVypozicanych() {
        int pocetVypozicanych = 0;
        for (int i = 0;i < this.knihy.size();i++) {
            if (this.knihy.get(i).dajStavVypozicania()) {
                pocetVypozicanych++;
            }
        }
        return pocetVypozicanych;
    }

    /**
     * Metóda vypisKnizku vypíše knižku na základe poradového čísla knižky v ArrayListe.
     */

    public void vypisKnizku(int poradoveCislo) {

        if ((poradoveCislo >= 0) && (poradoveCislo < this.knihy.size())) {
            System.out.println(this.knihy.get(poradoveCislo).getNazovDiela());

        }

    }

    /**
     * Metóda vyradKnizku odstráni knižku z ArryListu na zaklade poradového čísla.
     */
    public void vyradKnizku(int poradoveCislo) {
        if ((poradoveCislo >= 0) && (poradoveCislo < this.knihy.size())) {
            this.knihy.remove(poradoveCislo);
        } else {
            System.out.println("Knizka so zadanym poradovym cislom neexistuje");
        }
    }

    /**
     * Metóda vypozicajKnizku na základe poradového čísla vypožičia knihu a zároveň zmení jej stav vypožičania.
     */

    public boolean vypozicajKnizku(int poradoveCislo) {
        return this.knihy.get(poradoveCislo).pozicajKnizku();
    }

    /**
     * Metóda vratKnizku na základe poradového čísla vráti knihu a zároveň zmení jej stav vypožičania.
     */
    public boolean vratKnizku(int poradoveCislo) {
        return this.knihy.get(poradoveCislo).vratKnizku();
    }

    /**
     * Metóda getPocetKnih vracia hodnotu počtu kníh v ArryListe (knižnici).
     */
    public int getPocetKnih() {
        return this.knihy.size();
    }

}


---------------------
import java.io.IOException;
import java.util.Scanner;
/**
 * Write a description of class Main here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Program {
    /**
     * Constructor for objects of class Main
     */
    public static void main(String [] args)throws IOException {
        Kniznica kniznica = new Kniznica();
        int option = 0;
        int option2 = 0;
        int pomRokVydania = 0;
        String pomNazov = "";
        int pomISBN = 0;
        String pomAutor = "";
        double pomCena = 0;
        int pomPocetKusov = 0;
        Knizka pomKnizka = null;


        Knizka knizka1 = new Knizka(2012, "Algebra", 456, "Stankovianska", 5,1);
        Knizka knizka2 = new Knizka(2011, "MPI", 256, "Bachrata", 4,1);

        kniznica.vlozKnizku(knizka1);
        kniznica.vlozKnizku(knizka2);

        System.out.println("Vitajte v mojej knižnici");
        System.out.println("vyberte si z nasledujucich možností");

        Scanner s = new Scanner(System.in);
        do {
          System.out.print("\f");
          System.out.println("0 - Koniec programu");
          System.out.println("1 - Vlož knižku do knižnice");
          System.out.println("2 - Zobraz zoznam kníh");
          System.out.println("3 - Vypožíčať knižku");
          System.out.println("4 - Vrátiť knižku");
          System.out.println("-------------------------------------");
          System.out.print("Vyber si možnosť : ");
          option = s.nextInt();
          switch(option) {
              case 1: System.out.print("Rok vydania: ");
                      pomRokVydania = s.nextInt();
                      System.out.print("Názov knižky: " );
                      pomNazov = s.nextLine();
                      System.out.print("ISBN: ");
                      pomISBN = s.nextInt();
                      System.out.print("Autor: ");
                      pomAutor = s.nextLine();
                      System.out.print("Cena: ");
                      pomCena = s.nextDouble();
                      System.out.print("Počet kusov: ");
                      pomPocetKusov = s.nextInt();
                     pomKnizka = new Knizka(pomRokVydania, pomNazov, pomISBN, pomAutor, pomCena, pomPocetKusov);
                      kniznica.vlozKnizku(pomKnizka);
                      break;
              case 2: System.out.print('\f');
                      System.out.println(kniznica);
                      do {
                        System.out.println("0 - Návrat na začiatok");
                        System.out.println("1 - Zobraz vypožičané knihy");
                        System.out.println("2 - Zobraz celý zoznam");
                        System.out.println("-------------------------------------");
                        System.out.print("Vyber si možnosť : ");
                        option2 = s.nextInt();
                        System.out.print("\f");
                        switch (option2)
                        {
                          case 1: System.out.println("Vypozicane knihy :\n");
                                  System.out.println("-----------------------------------------------");
                                  System.out.println("Počet vypozičaných kníh : "+kniznica.pocetVypozicanych());
                                  System.out.println("\n");
                                 break;

                          case 2: System.out.println(kniznica);
                        }
                    }while (option2 != 0);
                break;
                case 3: System.out.print("Vypožíčať knižku číslo (0-"+(kniznica.getPocetKnih()-1)+") : ");
                int i = s.nextInt();
                pomKnizka = kniznica.vypisKnizku(i);
                if (pomKnizka != null)

                    pomKnizka.vypozicajKnizku();
                    break;

                    case 4: System.out.print("Vrátiť knižku číslo (0-"+(pozicovna.pocetKnih()-1)+") : ");
                    int j = s.nextInt();
                    pomKnizka = kniznica.vratKnizku(j);
                    if (pomKnizka != null)
                    pomKnizka.vratKnizku();
                    break;
            }

        }while (option != 0);
    }
}
 
Nahoru Odpovědět 13.12.2015 1:37
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 3 zpráv z 3.