Siemanko, zaczynam powoli uczyć się Javy i postanowiłem zrobić prosty programik, który ma być imitacją biblioteki. Mam zamiar go przerabiać wraz z postępami w nauce, więc nie czepiajcie się sporych braków ;p M.in. dodawanie danych książek, wypożyczeń etc. do bazy danych będę dodawał w późniejszym czasie. Nadmienię też od razu, że data ostatniego logowania jest teraz aktualną datą, prawidłowe jej działanie mam zamiar zaimplementować w momencie, kiedy będę się bawił operacjami na plikach. I tak, wiem, że ten kod wygląda jak jedna wielka abstrakcja, ale chcę w nim korzystać ze wszystkiego, czego się da
Na ten moment mam trzy pytania:
1/ Jakaś optymalizacja kodu bądź poprawki? Coś zmienić? Rady dla początkującego zawsze przydatne ;p
2/ W klasie Ksiazki mam zdefiniowane zmienne String oraz int, są one wykorzystywane w metodach dodaj() oraz wyswietlKsiazki(). Tutaj pojawia się już problem, ponieważ po przypisaniu wartości do zmiennych w metodzie dodaj(), nie są one odczytywane w metodzie wyswietlKsiazki(). Jak to naprawić?
3/ Warto definiować tablice takie jak w metodzie wybor()? Zastosowanie pętli for oraz tablicy String wydaje mi się bardziej czytelne w kodzie, lecz jak to wygląda w praktyce? Ma to jakikolwiek sens? :D
Z góry dziękuję za pomoc :D
Oczywiście załączam kod:
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
class Logowanie {
private static final String nick = "root", haslo = "root";
Scanner wejscie = new Scanner(System.in);
public void dataOstatniegoLogowania() {
Date data = new Date();
SimpleDateFormat formatDaty = new SimpleDateFormat("HH:mm:ss dd.MM.yyyy");
String dataOstatniegoLogowania = formatDaty.format(data);
System.out.println("Data Twojego ostatniego logowania: " + dataOstatniegoLogowania);
}
protected void zaloguj() throws IOException {
System.out.println("Podaj swoj nick: ");
String wprowadzonyNick = wejscie.nextLine();
System.out.println("Podaj swoje haslo: ");
String wprowadzoneHaslo = wejscie.nextLine();
if (!Logowanie.nick.equals(wprowadzonyNick) || !Logowanie.haslo.equals(wprowadzoneHaslo)) {
System.out.println("Bledne dane!");
System.exit(1);
} else {
System.out.println("Logowanie przebieglo pomyslnie!\nWitaj, " + nick);
Menu menu = new Menu();
menu.wybor();
}
}
}
class Menu {
public void wybor() throws IOException {
final String pozycjeMenu[] = { "Biblioteka", "Co chcesz zrobić?", "1) Dodac ksiazke", "2) Dodac klienta",
"3) Wypozyczyc ksiazke", "4) Wyswietlic wypozyczenia", "5) Wyswietlic ksiazki" };
for (int i = 0; i < pozycjeMenu.length; i++) {
System.out.println(pozycjeMenu[i]);
}
Scanner wejscie1 = new Scanner(System.in);
int wybranaPozycja = wejscie1.nextInt();
System.out.println("Wybor: " + wybranaPozycja);
switch (wybranaPozycja) {
case 1:
Ksiazki dodajKsiazke = new Ksiazki();
dodajKsiazke.dodaj();
break;
case 2:
DodajKlienta dodajKlienta = new DodajKlienta();
break;
case 3:
Wypozyczenia wypozyczKsiazke = new Wypozyczenia();
break;
case 4:
Wypozyczenia wyswietlWypozyczenia = new Wypozyczenia();
break;
case 5:
Ksiazki wyswietlKsiazki = new Ksiazki();
wyswietlKsiazki.wyswietlKsiazki();
break;
default:
System.out.println("Wybierz poprawną pozycję z menu!");
Menu menu = new Menu();
menu.wybor();
}
}
}
class Ksiazki {
String tytul, autor, isbn;
int id, liczbaStron;
public void dodaj() throws IOException {
Scanner wejscie = new Scanner(System.in);
System.out.println("-Dodawanie ksiazki-");
System.out.println("Podaj tytul: ");
tytul = wejscie.nextLine();
System.out.println("Podaj autora: ");
autor = wejscie.nextLine();
System.out.println("Podaj ISBN: ");
isbn = wejscie.nextLine();
System.out.println("Podaj liczbe stron: ");
liczbaStron = wejscie.nextInt();
System.out.println("Wcisnij dowolny przycisk, aby wrocic do menu glownego...");
System.in.read();
Menu menu = new Menu();
menu.wybor();
wejscie.close();
}
public void wyswietlKsiazki() throws IOException {
System.out.println("----------------------------------------");
System.out.println("Tytul: " + this.tytul);
System.out.println("Autor: " + this.autor);
System.out.println("ISBN: " + this.isbn);
System.out.println("Liczba stron: " + this.liczbaStron);
System.out.println("Wcisnij dowolny przycisk, aby wrocic do menu glownego...");
System.in.read();
Menu menu = new Menu();
menu.wybor();
}
}
class DodajKlienta {
}
class Wypozyczenia {
}
public class Biblioteka {
public static void main(String[] args) throws IOException {
Logowanie logowanie = new Logowanie();
logowanie.dataOstatniegoLogowania();
logowanie.zaloguj();
}
}