Problem w programie Kolekcjoner

0

Mam do napisania coś takiego:

„Kolekcjoner”
Napisz program, który umożliwi założenie wybranej kolekcji, np.:

  • kolekcji utworów muzycznych
  • kolekcji filmów
  • kolekcji książek.
    Założenia:
  • utwory muzyczne/filmy/książki powinny być obiektami odpowiednio zdefiniowanych klas
  • program powinien umożliwiać dodawanie, usuwanie, edycję i przeglądanie utworów
    muzycznych/filmów/książek
  • użytkownik powinien mieć możliwość wybierania powyższych działań i wprowadzania niezbędnych
    danych.
    UWAGA!
    Dobrze byłoby wstępnie zainicjować informacje o kilku utworach muzycznych/filmach/książkach.

Poniżej przedstawiam kod lecz zawiera on błędy których nie jestem w stanie zlikwidować bez pomocy ani bez żadnych podpowiedzi lub wytłumaczenia gdzie zrobiłem błąd.

package zaliczenie;

import java.beans.*;
import java.io.*;
import java.util.*;

public class Main {

static List<ksiazki> ksiazki = new ArrayList<ksiazki>();
static List<filmy> filmy = new ArrayList<filmy>();
static List<muzyka> muzyka = new ArrayList<muzyka>();

static void inicjalizujKsiazki() {
ksiazki.add(new ksiazki("Krzysztof Kotowski", "Kapłan", "Thriller"));
ksiazki.add(new ksiazki("Tomasz Depczyński", "Kombatant - Historia prawdziwa", "Dramat"));
ksiazki.add(new ksiazki("Piotr Skrzypczak", "Byż jak Kurtyzana", "Biografia"));
ksiazki.add(0, new ksiazki("Tomasz Czyżewski", "Jak zostać Wodzem", "Poradnik"));
    }

static void wyswietlKsiazki() {
for (int i = 0; i < ksiazki.size(); i++) {
System.out.println(ksiazki.get(i).toString());
        }
    }

static List<filmy> zaliczenie = new ArrayList<filmy>();

static void inicjalizujFilmy() {
filmy.add(new filmy("Ali G", "Borat", "Bruno", "BCM"));
filmy.add(new filmy("Józef Oleksy", "Sejm RP", "Dramat", "Obywatele RP"));
filmy.add(new filmy("Piotr Skrzypczak", "Skrzypek na dachu", "Biografia", "S.F. Wartkowice"));
filmy.add(0, new filmy("Mydełko Fa", "Chciałbym Cię mydlić", "Poradnik", "Z.Ch. Mydło"));
    }

static void wyswietlFilmy() {
for (int i = 0; i < filmy.size(); i++) {
System.out.println(filmy.get(i).toString());
        }
    }


//static List<muzyka> muzyka = new ArrayList<muzyka>();

static void inicjalizujMuzyka() {
muzyka.add(new muzyka("Boys", "Jesteś szalona", "Disco Polo"));
muzyka.add(new muzyka("Feel", "Feel - Historia prawdziwa", "Dramat"));
muzyka.add(new muzyka("OSP Prawęcice", "Strażacki MegaMix 2011", "Biesiadne"));
muzyka.add(0, new muzyka("Szwagier Kolaska", "Protezy wszelakie", "Łubudubu"));
    }

static void wyswietlMuzyka() {
for (int i = 0; i < muzyka.size(); i++) {
System.out.println(muzyka.get(i).toString());
        }
    }

static String wczytajString(String co) {
Scanner sc = new Scanner(System.in);
String str = "";
do {
System.out.println("Podaj " + co);
str = sc.nextLine();
} while (str.isEmpty());
return str;
    }

static double wczytajDouble(String co) {
Scanner sc = new Scanner(System.in);
double liczba = 0;
do {
System.out.println("Podaj " + co);
try {
liczba = sc.nextDouble();
} catch (InputMismatchException wyjatek) {
System.out.println("Niepoprawna wartość");
sc.nextLine();
}
} while (liczba <= 0);
return liczba;
    }

static void dodajKsiazki() {
String autor = wczytajString("Autor książki");
String tytul = wczytajString("Tytuł książki");
String gatunek = wczytajString("Gatunek książki");
ksiazki.add(new ksiazki(autor, tytul, gatunek));
}

static void dodajFilmy() {
String rezyser = wczytajString("Reżyser filmu");
String tytul = wczytajString("Tytuł filmu");
String gatunek = wczytajString("Gatunek filmu");
String wytwornia = wczytajString("Wytwórnia");
filmy.add(new filmy(rezyser, tytul, gatunek, wytwornia));
}

static void dodajMuzyka() {
String wykonawca = wczytajString("Wykonawca");
String album = wczytajString("Tytuł albumu");
String gatunek = wczytajString("Gatunek płyty");
muzyka.add(new muzyka(wykonawca, album, gatunek));
}

static void zapisDoPliku1(String plik) {
try {
XMLEncoder xml = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(plik)));
xml.writeObject(ksiazki);
xml.close();
} catch (FileNotFoundException ex) {
System.out.println("Błąd zapisu do pliku");
}
}

static void zapisDoPliku2(String plik) {
try {
XMLEncoder xml = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(plik)));
xml.writeObject(filmy);
xml.close();
} catch (FileNotFoundException ex) {
System.out.println("Błąd zapisu do pliku");
}
}

static void zapisDoPliku3(String plik) {
try {
XMLEncoder xml = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(plik)));
xml.writeObject(muzyka);
xml.close();
} catch (FileNotFoundException ex) {
System.out.println("Błąd zapisu do pliku");
}
}

static void odczytZPliku1(String plik) {
try {
XMLDecoder xml = new XMLDecoder(new BufferedInputStream(new FileInputStream(plik)));
ksiazki = (ArrayList<ksiazki>) xml.readObject();
xml.close();
} catch (FileNotFoundException ex) {
System.out.println("Błąd odczytu z pliku");
}
}

static void odczytZPliku2(String plik) {
try {
XMLDecoder xml = new XMLDecoder(new BufferedInputStream(new FileInputStream(plik)));
filmy = (ArrayList<filmy>) xml.readObject();
xml.close();
} catch (FileNotFoundException ex) {
System.out.println("Błąd odczytu z pliku");
}
}

static void odczytZPliku3(String plik) {
try {
XMLDecoder xml = new XMLDecoder(new BufferedInputStream(new FileInputStream(plik)));
muzyka = (ArrayList<muzyka>) xml.readObject();
xml.close();
} catch (FileNotFoundException ex) {
System.out.println("Błąd odczytu z pliku");
}
}

public static void main(String[] args) {
        // TODO code application logic here
        inicjalizujListe();
        int opcja = 0;
        do {
            System.out.println("Menu programu:\n"
                    + "1 - wyjście z programu\n"
                    + "2 - wyświetl wszystko\n"
                    + "3 - dodaj nowa książkę\n"
                    + "4 - dodaj nowy film\n"
                    + "5 - dodaj nowa płytę\n"
                    + "6 - zapis do pliku\n"
                    + "7 - odczyt z pliku\n");
            opcja = (int) wczytajDouble("numer wybranej opcji");
            switch (opcja) {
                case 1:
                    System.exit(0);
                case 2:
                    System.out.println("Wyświetl wszystko");
                    wyswietlKsiazki();
                    wyswietlFilmy();
                    wyswietlMuzyka();
                    break;
                case 3:
                    System.out.println("Dodawanie nowej książki");
                    dodajKsiazki();
                    break;
                case 4:
                    System.out.println("Dodawanie nowego filmu");
                    dodajFilmy();
                    break;
                case 5:
                    System.out.println("Dodawanie nowej płyty");
                    dodajMuzyka();
                    break;
                case 6:
                    System.out.println("Zapis danych do pliku");
                    zapisDoPliku1("ksiazki.xml");
                    zapisDoPliku2("filmy.xml");
                    zapisDoPliku3("muzyka.xml");
                    break;
                case 7:
                    System.out.println("Odczyt danych z pliku");
                    odczytZPliku1("ksiazki.xml");
                    odczytZPliku2("filmy.xml");
                    odczytZPliku3("muzyka.xml");
                    break;
                default:
                    System.out.println("Nie ma takiej opcji");
            }
        } while (opcja != 1);
    }

    private static void inicjalizujListe() {
           }
}
package zaliczenie;
public class ksiazki {
    protected String autor, tytul, gatunek;
    ksiazki(String string, String string0, String string1) {
//        throw new UnsupportedOperationException("Not yet implemented");
    }    
     public String getGatunek() {
        return gatunek;
    }
    public void setWydownictwo(String gatunek) {
        this.gatunek = gatunek;
    }
    public String getTytul() {
        return tytul;
    }
    public void setTytul(String tytul) {
        this.tytul = tytul;
    }
    public String getAutor() {
        return autor;
    }
    public void setAutor(String autor) {
        this.autor = autor;
    }
    public ksiazki(String autor, String tytul, String gatunek, short rok) {
    this.autor = autor;
    this.tytul = tytul;
    this.gatunek = gatunek;
       }
    public ksiazki() {
    }
    @Override
    public String toString() {
        return autor + ", " + tytul + ", " + gatunek ;
    }
}
package zaliczenie;
public class filmy {
    protected String rezyser, tytul, gatunek, wytwornia;
    filmy(String string, String string0, String string1, String string2) {
     //   throw new UnsupportedOperationException("Not yet implemented");
    }
    public String getWytwornia() {
        return wytwornia;
    }
    public void setWytwornia(String wytwornia) {
        this.wytwornia = wytwornia;
    }
    public String getGatunek() {
        return gatunek;
    }
    public void setGatunek(String gatunek) {
        this.gatunek = gatunek;
    }
        public String getTytul() {
        return tytul;
    }
    public void setTytul(String tytul) {
        this.tytul = tytul;
    }
    public String getRezyser() {
        return rezyser;
    }
    public void setRezyser(String rezyser) {
        this.rezyser = rezyser;
    }
    public filmy(String rezyser, String tytul, String gatunek, String wytwornia, short rok) {
    this.rezyser = rezyser;
    this.tytul = tytul;
    this.gatunek = gatunek;
    this.wytwornia = wytwornia;   
    }
    public filmy() {
    }
    @Override
    public String toString() {
        return rezyser + ", " + tytul + ", " + gatunek + wytwornia ;
    }
} 
package zaliczenie;
public class muzyka {
    protected String wykonawca, album, rodzaj;
    muzyka(String string, String string0, String string1) {
//        throw new UnsupportedOperationException("Not yet implemented");
    }
    public String getRodzaj() {
        return rodzaj;
    }
    public void setRodzaj(String gatunek) {
        this.rodzaj = gatunek;
    }
    public String getAlbum() {
        return album;
    }
    public void setAlbum(String album) {
        this.album = album;
    }
        public String getWykonawca() {
        return wykonawca;
    }
    public void setWykonawca(String wykonawca) {
        this.wykonawca = wykonawca;
    }
    public muzyka(String wykonawca, String album, String rodzaj, short cena) {
    this.wykonawca = wykonawca;
    this.album = album;
    this.rodzaj = rodzaj;
     }
    public muzyka() {
    }
    @Override
    public String toString() {
        return wykonawca + ", " + album + ", " + rodzaj ;
    }
} 

Program piszę w NetBeans. Programowanie nie jest moją pasją ani mocną stroną ale męczę się z tym parę dni i nie mogę zrobić. Pewnie robię jakieś podstawowe błędy i będą to banalne błędy. I z góry dziękuje za wszystkie podpowiedzi i wyjaśnienia co robię źle :)

0

A my mamy przeczytać Twoje kilkaset linijek i błąd znaleźć? Zadaj sobie przynajmniej trochę trudu i napisz CO nie działa...

0

Masz 3 zmienne o tej samej nazwie zaliczenie :P :D

0

Obecnie mam już tylko jeden błąd. Przy
static List<muzyka> muzyka = new ArrayList<muzyka>();
wyskakuje mi
"muzyka is already defined in zaliczenie.Main

Field hides another field"

0

Wydaje mi się ,ze w linijce 11 i 42 masz dwa razy tę samą zmienną o nazwie muzyka.

0

Była aktualizacja kodu. Obecnie błędu mi nie pokazuje żadnego ale program nie działa do końca poprawnie. Gdy dodaje coś nowego czy to książka/film/muzyka i zapisuje do pliku, następnie chce z niego odczytać to co zapisałem wyskakuje mi null, null, null czyli tak jakby nie zapisał tego co podałem i nie wiem co źle napisałem że nie działa poprawnie...

0

weź się w garść! znasz takie pojęcie jak debug! zastosuj!
co w końcu nie działa? zapis czy odczyt? jak zapiszesz plik to go otwórz (taki magiczny programik jest w każdym windows - notatnik) i zobacz co w nim jest

tak w ogole to temat do newbie, bo jak się nie umie błędów kompilatora samemu poprawić, to coś mi się zdaje, że kod nie był pisany samodzielnie

0

Kod był pisany na podstawie innego kodu po prostu. Problem rozwiązany i już wszystko działa jak powinno :) Dzięki wszystkim za pomoc :) Temat można zamknąć...

1 użytkowników online, w tym zalogowanych: 0, gości: 1