Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    compito java

    ho da svolgere il seguente compito:

    Si vuole informatizzare la gestione di un negozio che noleggia DVD. Attualmente, in un file di testo, sono memorizzati i dati relativi a tutti i clienti. Ogni registrazione presente nel file contiene i seguenti dati:

    codice cliente (stringa di caratteri)(chiave primaria)
    nome cliente (stringa di caratteri)
    cognome cliente (stringa di caratteri)
    codice fiscale (stringa di caratteri)

    In un secondo file sono memorizzate le informazioni riguardanti l’elenco dei noleggi effettuati da ciascun cliente. Ogni registrazione è composta da:

    codice cliente (stringa di caratteri)
    codice DVD (stringa di caratteri)
    durata in giorni del noleggio (intero)

    In un terzo file sono memorizzate le informazioni relative ai DVD nel seguente formato

    Codice DVD
    Titolo del film
    Numero interpreti
    Attore1
    Attore2
    ….

    La durata in giorni del noleggio può anche essere pari a –1, in questo caso indica che il supporto non è mai stato riconsegnato.
    Tutti questi dati devono essere rappresentati in memoria centrale utilizzando una lista collegata per memorizzare i film.
    Per ciascun film deve essere memorizzata la lista degli attori e la lista dei clienti che hanno effettuato il noleggio di tale film.

    Lo studente implementi un programma Java che preveda le seguenti funzionalità:

    1. Caricamento dei dati dal file nella struttura dati precedentemente definita.

    il mio problema sta nell'interpretare il testo.Per memorizzare in memoria i film mi occorre una lista collegata.per usare questa uso la linkedList presente nei collection.poi le sottoliste le metto dentro la classe film.ovvero faccio qualcosa del genere:


    codice:
    public class Film{
    
    private LinkedList<String> actors;
    private LinkedList<Noleggio> rentals
    
    public Film(String cod,String title){
    ....
    ....
    actors=new LinkedList<String>();
    rentals=new LinkedList<Noleggio>();
    }
    dove Noleggio è la classe che istanzia i record del file Noleggi
    però poi non sono come continuare.qualche idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Se non riesci ad interpretare il testo puoi seguire diverse vie
    1. andare dal prof
    2. chiedere aiuto ai compagni/colleghi
    Se fornisci una tua versione (non l'approccio a quello che dovrebbe essere un manager) o spieghi in dettaglio cosa non riesci a capire del testo si può pensare di aiutarti, ma qui si tratta di fare il compito al posto tuo
    RTFM Read That F*** Manual!!!

  3. #3
    dunque ho iniziato a buttare giù del codice ma mi risulta parecchio difficile andare avanti

    codice:
    public class RentalSystem {
    	
    	private static final String movies="movies.txt";
    	private static final String rentals="rentals.txt";
    	private static final String clienti="clienti.txt";
    	private static LinkedList<Film> movieslist=new LinkedList<Film>();
    	private static LinkedList<Cliente> clientslist=new LinkedList<Cliente>(); 
    	
    	
    	public static void carica() throws IOException{
    		BufferedReader read_movies; BufferedReader read_rentals; BufferedReader read_clienti;
    		String pointer; 
    		
    		try{
    			read_movies=new BufferedReader(new FileReader(movies));
    			pointer=read_movies.readLine();
    			while(pointer!=null){ //legge il file film e carica i film
    				String cod=read_movies.readLine();
    				String title=read_movies.readLine();
    				Film f=new Film(cod,title);
    				movieslist.add(f);
    				int num_acts=Integer.parseInt(read_movies.readLine());
    				for(int i=0;i<num_acts;i++) 
    					(f.getActorsList()).add(read_movies.readLine());
    				pointer=read_movies.readLine();
    			}
    			read_clienti=new BufferedReader(new FileReader(clienti));
    			pointer=read_clienti.readLine();
    			while(pointer!=null){ //legge il file clienti e carica i clienti
    				String cod_cliente=read_clienti.readLine();
    				String nome_c=read_clienti.readLine();
    				String cognome_c=read_clienti.readLine();
    				String cod_fiscale=read_clienti.readLine();
    				Cliente c=new Cliente(cod_cliente,nome_c,cognome_c,cod_fiscale);
    				clientslist.add(c);
    				pointer=read_clienti.readLine();
    			}
    			read_rentals=new BufferedReader(new FileReader(rentals));
    			pointer=read_rentals.readLine();
    			while(pointer!=null){
    				String cod_c=read_rentals.readLine();
    				String cod_dvd=read_rentals.readLine();
    				int rdays=Integer.parseInt(read_rentals.readLine());
    				
    				//qui devo collegare la lista clienti
    						
    			    pointer=read_rentals.readLine();   
    			}
    		
    			}
    		catch(FileNotFoundException file){
    			System.err.println("Errore nel caricamento del file!");
    		}
    		catch(IOException e){
    			e.printStackTrace();
    		}
    	}
    
    
    }

    questa è la classe che va a

  4. #4

    eser

    dunque ho iniziato a buttare giù del codice ma mi risulta parecchio difficile andare avanti

    codice:
    public class RentalSystem {
    	
    	private static final String movies="movies.txt";
    	private static final String rentals="rentals.txt";
    	private static final String clienti="clienti.txt";
    	private static LinkedList<Film> movieslist=new LinkedList<Film>();
    	private static LinkedList<Cliente> clientslist=new LinkedList<Cliente>(); 
    	
    	
    	public static void carica() throws IOException{
    		BufferedReader read_movies; BufferedReader read_rentals; BufferedReader read_clienti;
    		String pointer; 
    		
    		try{
    			read_movies=new BufferedReader(new FileReader(movies));
    			pointer=read_movies.readLine();
    			while(pointer!=null){ //legge il file film e carica i film
    				String cod=read_movies.readLine();
    				String title=read_movies.readLine();
    				Film f=new Film(cod,title);
    				movieslist.add(f);
    				int num_acts=Integer.parseInt(read_movies.readLine());
    				for(int i=0;i<num_acts;i++) 
    					(f.getActorsList()).add(read_movies.readLine());
    				pointer=read_movies.readLine();
    			}
    			read_clienti=new BufferedReader(new FileReader(clienti));
    			pointer=read_clienti.readLine();
    			while(pointer!=null){ //legge il file clienti e carica i clienti
    				String cod_cliente=read_clienti.readLine();
    				String nome_c=read_clienti.readLine();
    				String cognome_c=read_clienti.readLine();
    				String cod_fiscale=read_clienti.readLine();
    				Cliente c=new Cliente(cod_cliente,nome_c,cognome_c,cod_fiscale);
    				clientslist.add(c);
    				pointer=read_clienti.readLine();
    			}
    			read_rentals=new BufferedReader(new FileReader(rentals));
    			pointer=read_rentals.readLine();
    			while(pointer!=null){
    				String cod_c=read_rentals.readLine();
    				String cod_dvd=read_rentals.readLine();
    				int rdays=Integer.parseInt(read_rentals.readLine());
    				
    				//qui devo collegare la lista clienti
    						
    			    pointer=read_rentals.readLine();   
    			}
    		
    			}
    		catch(FileNotFoundException file){
    			System.err.println("Errore nel caricamento del file!");
    		}
    		catch(IOException e){
    			e.printStackTrace();
    		}
    	}
    
    
    }

    questa è la classe che va a leggere dai tre file ed effettua il caricamento dei dati in strutture.
    qui io prendo i film e li carico in una lista collegata di film.poi prendo i clienti e li carico in una lista di clienti.
    poi devo collegare l'oggetto noleggio con i film ed i clienti.osservo che la struttura noleggio ha l'elemento codice_DVD e codice_cliente.questi due mi permetteranno di collegare l'oggetto noleggio a film e clienti. ma come posso fare tutto ciò?

    qui la classe FILM:

    codice:
    import java.util.*;
    
    public class Film {
    	private String codice_dvd;
    	private String title;
    	private Collection<String> actors;
    	private Collection<Noleggio> rentals;
    	
    	public Film(){}
    	
    	public Film(String cod,String title){
    		codice_dvd=cod;
    		this.title=title;
    		actors=new LinkedList<String>();
    		rentals=new LinkedList<Noleggio>();
    	}
    	
    	public Collection<String> getActorsList(){
    		return actors;
    	}
    	
    	public Collection<Noleggio> getRentalsList(){
    		return rentals;
    	}
    	public String getCodDVD(){
    		return codice_dvd;
    	}
    
    }
    qui la classe CLIENTE

    codice:
    public class Cliente {
    	private String cod_cliente;
    	private String nome;
    	private String cognome;
    	private String cf;
    	
    	
        public Cliente(){}
        public Cliente(String cod,String n,String c,String cf){
        	cod_cliente=cod;
        	nome=n;
        	cognome=c;
        	this.cf=cf;
        }
        
        public String getCodC(){
        	return cod_cliente;
        }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Allora le classi Noleggio, Film e Cliente sono semplici bean: non hanno all'interno aggregati o altro, servono solo a modellare una realtà (il Noleggio, il Film e il Cliente).

    Fatto questo, tu devi avere un manager, che tiene le liste.
    Infine non ho ancora capito il tuo problema
    RTFM Read That F*** Manual!!!

  6. #6
    cosa vuol dire avere un manager che tiene le liste?

  7. #7
    il mio problema è soddisfare questo punto: deve essere memorizzata la lista dei clienti che hanno effettuato il noleggio di tale film.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    è già qualcosa, prova a scrivere carta e penna (non in java9 quello che devi fare.
    Tu hai 3 liste:
    1. film
    2. noleggio
    3. clienti

    e le hai caricate.

    Poi come fai a dire che un cliente ha visto un film? descrivilo prima a parole, poi pensa a metterlo in java.

    Parlando di manager e altro: in genere hai una classe che modella l'entità, la realtà che vuoi far vedere. Un'altra classe, il manager appunto, si occupa di tenere la lista dei clienti e offre la possibilità di manipolare la struttura dati.
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.