Gestire una biblioteca con Java

Exarion

Utente Attivo
1,187
12
CPU
Q9550 Step E0 @ 4 GHz Cooled ZEROtherm Nirvana NV120
Scheda Madre
Asus P5Q Deluxe
HDD
Samsung SSD 840 EVO 250 GB + RIP Seagate 2x 250GB 32MB Buffer in Stripe + Seagate 1TB 32MB Buffer
RAM
Corsair TWIN2X4096-6400C4DHX
GPU
R9 270X OC
Audio
SupremeFX II
Monitor
Samsung - 2232BW
PSU
ENERMAX INFINITI DXX 650W
Case
CM690 with NANOXIA FX12
OS
Windows XP SP2 - Windows 7 Ultimate - Ubuntu Lucid Lynx
Spiegami: tu per POO intendi il più comune (e presumibilmente corretto) OOP vero? :)

Tralasciando il fatto che ho espresso più volte la mia conoscenza base in ambito java che di conseguenza non mi permette di afferrare il concetto di certe parole anche "gergali", ho modificato il codice:
Codice:
import java.io.*;
import java.util.Scanner;

public class Bibliotest {
    
public static void main(String[] args) throws IOException {

String riga;
int i=0;
int j=0;
String libri[] = new String[3];
Biblioteca B = new Biblioteca();
String pre = new String();
    
ConsoleReader console = new ConsoleReader(System.in);
FileReader fr = new FileReader("prova.txt");                                        o
BufferedReader br = new BufferedReader(fr);    

while((riga=br.readLine()) != null )
libri[i++]=riga;
        
System.out.println("scegli un'opzione:");
System.out.println("1. Stampa il catalogo");
System.out.println("2. Preleva un libro");
System.out.println("3. Restituisci un libro");
System.out.println("4. Esci \n");
              
int scelta = console.readInt();             
              
switch (scelta)
{
    case 1: {
            for(i=0; i<libri.length; i++)
            System.out.println("Nel catalogo e' presente " + libri[i]);
            break;
            }
    case 2: {
            System.out.println("Inserisci il titolo che vuoi prelevare \n ");
            pre=console.readLine();
            for(i=0; i<libri.length; i++)
            {
                if(libri[j].equals(pre))
                {    
                    System.out.println("Match");
                    libri[i]=new String();
                }
            else
            System.out.println("Elemento non trovato");    
            break;
            }
            }
    case 3: {break;
            
            }
    case 4: System.exit(0);        
}
    
    
}
}
Riguardo all'inizializzazione dell'array: sapendo già il contenuto del file non vedo l'utilità al momento di complicarmi la vita, visto che già non riesco a concludere un programma relativamente semplice come questo anche se usufruisco di un file di testo, che non è proprio comune.

Stesso discorso per "e se si preme 5". Apparte che ci vuole davvero sana demenzialità per premere deliberatamente un numero che non rientri nei case, se mi dici come fare il recupero dell'input sarei molto contento: ho imparato qualcosa di più.

Venendo ora al codice che ti ho postato, le difficoltà al momento vertono sul fatto che non mi trova l'elemento e che una volta finito quello che doveva fare, il programma si chiude. Come faccio a farlo ciclare finché non sia io a deciderlo?
Ho dato un'occhiata alla classe ArrayList e mi sembra molto funzionale allo scopo ma non saprei come implementarla.
 

appena_iscritto

Utente Attivo
505
2
CPU
t7600
HDD
200GB
RAM
2GB
GPU
Nvidia
OS
Vista Hp
Spiegami: tu per POO intendi il più comune (e presumibilmente corretto) OOP vero? :)
Object-oriented programming == Programmazione orientata agli oggetti

Tralasciando il fatto che ho espresso più volte la mia conoscenza base in ambito java che di conseguenza non mi permette di afferrare il concetto di certe parole anche "gergali", ho modificato il codice:

import java.io.*;
import java.util.Scanner;

public class Bibliotest {

public static void main(String[] args) throws IOException {

String riga;
int i=0;
int j=0;
String libri[] = new String[3];
Biblioteca B = new Biblioteca();
String pre = new String();

ConsoleReader console = new ConsoleReader(System.in);
FileReader fr = new FileReader("prova.txt"); o
BufferedReader br = new BufferedReader(fr);

while((riga=br.readLine()) != null )
libri[i++]=riga;

System.out.println("scegli un'opzione:");
System.out.println("1. Stampa il catalogo");
System.out.println("2. Preleva un libro");
System.out.println("3. Restituisci un libro");
System.out.println("4. Esci \n");

int scelta = console.readInt();

switch (scelta)
{
case 1: {
for(i=0; i<libri.length; i++)
System.out.println("Nel catalogo e' presente " + libri);
break;
}
case 2: {
System.out.println("Inserisci il titolo che vuoi prelevare \n ");
pre=console.readLine();
for(i=0; i<libri.length; i++)
{
if(libri[j].equals(pre))
{
System.out.println("Match");
libri=new String();
}
else
System.out.println("Elemento non trovato");
break;
}
}
case 3: {break;

}
case 4: System.exit(0);
}


}
}Riguardo all'inizializzazione dell'array: sapendo già il contenuto del file non vedo l'utilità al momento di complicarmi la vita, visto che già non riesco a concludere un programma relativamente semplice come questo anche se usufruisco di un file di testo, che non è proprio comune.

quello che dici è assurdo: il programma deve adattarsi a runtime all' input che riceve e non deve essere predisposto a compile-time per elaborare un preciso ingresso. Se domani il file cambia, devi riaprire il codice...Non non esiste proprio.
Stesso discorso per "e se si preme 5". Apparte che ci vuole davvero sana demenzialità per premere deliberatamente un numero che non rientri nei case, se mi dici come fare il recupero dell'input sarei molto contento: ho imparato qualcosa di più.
l' utente potrebbe sbagliare, non è un caso cosi raro. Per sopperire basta un while.
Venendo ora al codice che ti ho postato, le difficoltà al momento vertono sul fatto che non mi trova l'elemento
non lo trova perchè incrementi l' indice i ma la ricerca la fai su j.

e che una volta finito quello che doveva fare, il programma si chiude. Come faccio a farlo ciclare finché non sia io a deciderlo?
anche qui basta un while.


Ho dato un'occhiata alla classe ArrayList e mi sembra molto funzionale allo scopo ma non saprei come implementarla.
Esistono appositamente le API, in ogni caso è lo stesso principio di funzionamento di un array, solo che si utilizzano i metodi add,get,remove.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!