Tema d'esame - ArrayList

di il
8 risposte

Tema d'esame - ArrayList

In allegato ho messo il Pdf e di seguito un mezzo svolgimento del compito. Gentilmente se qualcuno mi potesse aiutare e cimentarsi alla risoluzione del tema o anche aiutarmi nei punti in cui non sono riuscito ad uscirne fuori(la gran parte) , grazie!


import java.util.ArrayList;
import java.util.Scanner;

public class Banca {

	public Scanner reader = new Scanner(System.in);
	
	
	//VARIABILI D'ISTANZA
	private double capitale;
	private double capitaleVecchio;
	private String nomeRichiedente;
	private int importo;
	
	
	//COSTRUTTORE VUOTO
	public Banca()
	{
	
		capitale = 0;
		
	}
	
	//COSTRUTTORE
	public Banca(double capitale)
	{
		
		this.capitale = capitale;
		ArrayList<String> Intestatari = new ArrayList<String>();
		
	}
	
	
	public double getCapitale(double capitale)
	{
		this.capitale = capitale;
		return capitale;
	}
	
	//public double capitaleVecchio;
	
	public String GetNomeRichiedente(String nomeRichiedente)
	{
		this.nomeRichiedente = nomeRichiedente;
		return nomeRichiedente;
	}
	
	public int getImporto()
	{
		this.importo = importo;
		importo = reader.nextInt();
		
		 String s = Integer.toString (importo);
		
		return importo;
		
	}
	
	public double getCapitale()
	{
		return capitale;
	}
	
	
	public void concediPrestito(String nomeRichiedente , int importo)
	{
   
		boolean concessionePrestito = false;
		
		try 
		{
			System.out.println("Inserisca un valore da 5000 a 50000 (€) , in base al prestito che vuole ricevere ");
		    importo = reader.nextInt();
			
		    if(importo > this.capitale)
			{
				System.out.println("Ci dispiace al momento non possiamo concederle una somma di questo tipo");
			}
	    
		    
		    else
			{
				
		    	if( (this.capitale >= importo) && (importo > 50.000) || (importo < 5.000))
		    	{
		    		
		    		System.out.println("Congratulazioni , ha ottenuto il prestito!");
		    		concessionePrestito = true;
		    		
		    	}
		    	
			}
		    
		}
		
		catch(ArithmeticException e)
		{
			System.out.println("Ci dispiace , non possiamo concederle il prestito.");
	        System.out.print(concessionePrestito);
		  
		}	
	}

	
}



import java.util.ArrayList;

public class BancaTest {

	

	public static void main(String[] args) {
		
	ArrayList<String> persone = new ArrayList<String>();
		persone.add("Russo Daniele");
	    persone.add("Bianco Francesco");
		persone.add("Miccia Giovanni");
		persone.add("Morra Aldo");
		
		
		Banca capitaleIniziale = new Banca(50000); //IL CAPITALE DELLA BANCA E' DI 50000.0€ 
		
		
		 
		System.out.println(capitaleIniziale.getCapitale());
	}


}



Allegati:
21713_7ebcaaa86def0bea2a12ebe80ee7e39b.pdf
21713_7ebcaaa86def0bea2a12ebe80ee7e39b.pdf

8 Risposte

  • Re: Tema d'esame - ArrayList

    È una richiesta troppo generica ... non si fanno le correzioni degli esercizi ...

    Indica un preciso problema e se ne parla
  • Re: Tema d'esame - ArrayList

    DAVIDE9792 ha scritto:


    In allegato ho messo il Pdf e di seguito un mezzo svolgimento del compito. Gentilmente se qualcuno mi potesse aiutare e cimentarsi alla risoluzione del tema o anche aiutarmi nei punti in cui non sono riuscito ad uscirne fuori(la gran parte) , grazie!
    La classe Banca comunque è molto "dubbia" e abbastanza inappropriata. Tanto per dirne una: nel secondo costruttore va sì ad istanziare un ArrayList<String> ma lo tieni solo come variabile locale del costruttore, quindi non serve a nulla.
    E poi vedo che fai dell'input dall'utente, in concediPrestito. Ma nel documento che hai allegato, NON mi pare che dica di leggere dallo standard-input e tanto meno dall'interno del concediPrestito.
  • Re: Tema d'esame - ArrayList

    Capisco , avendo avanti magari il codice finito avrei potuto studiarlo era solo per questo...
    Il problema è che al punto ( 3 - parte 2) si occupi di richiedere N prestiti, scegliendo a caso l’intestatario dalla lista di persone e con un importo fisso.
    In pratica usando il metodo concediPrestito() devo tornargli un parametro String e uno int ma non riesco a passarlo ad un ArrayList perchè giustamente mi accetta solo le Stringhe
  • Re: Tema d'esame - ArrayList

    andbin ha scritto:


    DAVIDE9792 ha scritto:


    In allegato ho messo il Pdf e di seguito un mezzo svolgimento del compito. Gentilmente se qualcuno mi potesse aiutare e cimentarsi alla risoluzione del tema o anche aiutarmi nei punti in cui non sono riuscito ad uscirne fuori(la gran parte) , grazie!
    La classe Banca comunque è molto "dubbia" e abbastanza inappropriata. Tanto per dirne una: nel secondo costruttore va sì ad istanziare un ArrayList<String> ma lo tieni solo come variabile locale del costruttore, quindi non serve a nulla.
    E poi vedo che fai dell'input dall'utente, in concediPrestito. Ma nel documento che hai allegato, NON mi pare che dica di leggere dallo standard-input e tanto meno dall'interno del concediPrestito.
    Si , questo pure è vero , era comunque una curiosità personale per vedere fino a che punto posso spingermi e cercare di capire concetti che ancora mi mancano.. Grazie
  • Re: Tema d'esame - ArrayList

    Mi mancano 2 punti che non riesco a risolvere..
    2.a) Se invece la banca ha abbastanza capitale , aggiunge il richiedente alla lista delle persone che ha avuto un prestito (anche se è già presente).

    3. contaPrestiti(String nomeRichiedente) : metodo che restituisce il numero di prestiti intestati ad un determinato richiedente, il cui nome è passato come parametro.
    
    import java.util.ArrayList;
    
    public class Banca {
    
    
    //VARIABILI D'ISTANZA----------------------------------------------------------------------------------------------------------------------------
    private double capitale;
    private String nomeRichiedente;
    private int importo;
    	
    	
    //COSTRUTTORE VUOTO----------------------------------------------------------------------------------------------------------------------------
    public Banca()
    {
      
    		capitale = 0;
    		nomeRichiedente = null;
    		importo = 0; 
    	  
    }
    	
    	
    //COSTRUTTORE-----------------------------------------------------------------------------------------------------------------------------------
    
    public Banca(double capitale)
    {
    		
    		this.capitale = capitale;
           ArrayList<String> Intestatari = new ArrayList<String>();  //COME POSSO USARE QUESTA VARIABILE DATO CHE MI è STATA CHIESTA NEL PUNTO (1)?
    		
    	
    }
    	
    	
    //METODI GET-------------------------------------------------------------------------------------------------------------------------------------
    
    public String getNomeRichiedente()
    {
    		return nomeRichiedente;
    }
    	
    public int getImporto()
    {
    		return importo;
    		
    }
    	
    public double getCapitale()
    {
    		return capitale;
    }
    	
    
    public String setNomeRichiedente(String nomeRichiedente)
    {
    	this.nomeRichiedente = nomeRichiedente;
    	return nomeRichiedente;
    }
    	
    //METODI----------------------------------------------------------------------------------------------------------------------------------------
    public String concediPrestito(String nomeRichiedente , int importo) 
    {
       
    		boolean concessionePrestito = false;
    	    
    
    		    	    if(importo <= this.capitale)
    		    	    {
    		    	
    		    	            if( (importo >= 5000 ) && (importo <= 50000) )
    		    	            {
    		    		
    		    		           System.out.println("Congratulazioni , ha ottenuto il prestito!");
    		    		           concessionePrestito = true;
    		    		           
    		    		      
    		   
    		    		           this.capitale = this.capitale - importo;
    		    		           System.out.println(concessionePrestito);
    		    		      
    		    		           
                             //System.out.println(this.capitale);  Vediamo alla fine di ogni prestito la diminuzione del capitale 
    		    		      
    		    	             }
    		    	            
    		    	            else
    		    	            {
    		    	    	      System.out.println("Deve rispettare i valori!");
    		    	            }
    		    	 
    		    	       
    		             }
    		    	    
    		    	    else
    		    	       {
    		    	    		System.out.println("Ci dispiace , non possiamo concederle il prestito.");
    		    	    		System.out.println(concessionePrestito);
    		    	       }
    					return nomeRichiedente;
    		    	  
    		      }
    		    	
    
    //NON SO ANCORA COME STRUTTURARE QUESTO METODO
    /*public int contaPrestiti(String nomeRichiedente)
    {
    	int i = 0;
    	return i;
    }*/
    		    	
    		     
    		
    }	
    
    
    
    
    import java.util.ArrayList;
    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    
    
    public class BancaTest {
    
    	
    
    	private static Scanner input = new Scanner(System.in);
    	
    	public static void main(String[] args) {
    		
    		int importo = 0;
    		
    		
    	ArrayList<String> persone = new ArrayList<String>();
    		persone.add("Russo Daniele");
    	    persone.add("Bianco Francesco");
    		persone.add("Miccia Giovanni");
    		persone.add("Morra Aldo");
    		
    		
    		Banca capitaleIniziale = new Banca(50000); //IL CAPITALE INIZIALE DELLA BANCA E' DI 50000.0€ 
    	
    		
    	       try
    	       {
    	    	   
    	        System.out.println("Inserisca un valore da 5000 a 50000 (€) , in base al prestito che vuole ricevere: ");
    		    importo = input.nextInt();
               capitaleIniziale.concediPrestito(persone.get(0) , importo);
           	
    	    		
    	       }	
    	       
    	     catch(InputMismatchException e)
    	      {
    					System.out.println("Errore , inserisci un valore valido.");
    	      }	
    	
    	    
    	   
    	       
    	      try
    	       {
    	    	 
    	    	
    	    	   if( (capitaleIniziale.getCapitale() == 0) )
    	    	   {
    	    		   System.out.print("");
    	    	   }
    	    	   
    	    	   else
    	    	   {
    	    	   
    	        System.out.println("Inserisca un valore da 5000 a 50000 (€) , in base al prestito che vuole ricevere: ");
    			importo = input.nextInt(); 
    		    capitaleIniziale.concediPrestito(persone.get(0) , importo);
    	       
    	    	   }		    
    	       }	
    	       
    	     catch(InputMismatchException e)
    	      {
    					System.out.println("Errore , inserisci un valore valido.");
              }	
    	       
    	       try
    	       {
    	    	   if( (capitaleIniziale.getCapitale() == 0) )
    	    	   {
    	    		   System.out.print("");
    	    	   }
    	    	   
    	      else
    	      {
    	        System.out.println("Inserisca un valore da 5000 a 50000 (€) , in base al prestito che vuole ricevere: ");
    			 importo = input.nextInt(); 
    		    capitaleIniziale.concediPrestito(persone.get(1) , importo);
    	      }
    		    
    	       }	
    	       
    	     catch(InputMismatchException e)
    	      {
    	 	 
    					System.out.println("Errore , inserisci un valore valido.");
    	
    	      }	
    	
    
      }
    }
    
    
    Non so davvero come poter contare il numero delle volte che un "richiedente" chiede un prestito , grazie per l'aiuto
  • Re: Tema d'esame - ArrayList

    Riguardo la classe Banca, il minimo da fare per la costruzione sarebbe:
    public class Banca {
        private double capitale;
        private List<String> intestatari;
    
        public Banca() {     // questo in realtà non è richiesto nel pdf
            this(0.0);
        }
    
        public Banca(double capitale) {
            this.capitale = capitale;
            intestatari = new ArrayList<String>();
        }
    
        // ................
    }
    Per il resto, SEGUI attentamente il documento che hai allegato. Ad esempio il pdf NON parla di fare nel concediPrestito del output tipo "Congratulazioni ecc...", NON parla di range di cifre da controllare (quei tuoi 5000 e 50000 che hai messo che non so dove sono indicati) ecc...
  • Re: Tema d'esame - ArrayList

    Ho provato a rifarlo seguendo tutti i passi , vorrei una conferma che ho eseguito tutti i punti correttamente
    
    import java.util.ArrayList;
    public class Banca{
    
      
    //VARIABILI D'ISTANZA-----------------------------------------------------------------------------------------------------------
    private double capitale;
    private ArrayList<String> intestatari;
    
    
    //COSTRUTTORE--------------------------------------------------------------------------------------------------------------------
     public Banca(double capitale){
     this.capitale = capitale;
     intestatari = new ArrayList<String>();
    
     }
    
    //METODI------------------------------------------------------------------------------------------------------------------------//
    public void concediPrestito(String nomeRichiedente , int importo)
    {
    
      boolean concessionePrestito = false;
      
      if(importo > this.capitale)
      {
      
        System.out.println("Errore");
        System.out.println(concessionePrestito);
        
      }
      
      else
      {
        
        intestatari.add(nomeRichiedente);
        this.capitale = this.capitale - importo;
        concessionePrestito = true;
        System.out.println(concessionePrestito);
        
      }
    }
       
    public void contaPrestiti(String nomeRichiedente)
    {
    
      int i = intestatari.lastIndexOf(nomeRichiedente);
      System.out.println("Prestiti intestati: " +i);
    
    
    }
    
    }
    
    
    
    
    import java.util.ArrayList;
    
    public class BancaTest{
    
      public static void main(String[] args){
    
     ArrayList<String> persone = new ArrayList<String>();
      persone.add("Russo Daniele");
      persone.add("Bianco Francesco");
      persone.add("Miccia Giovanni");
      persone.add("Morra Aldo");
      
      String Persona;
    
      Banca capitaleIniziale = new Banca(50000); //IL CAPITALE INIZIALE DELLA BANCA è DI 50000 (€)
    
      capitaleIniziale.concediPrestito(persone.get(0) , 30000 );  //1 PRESTITO
      capitaleIniziale.concediPrestito(persone.get(0) , 5000 );   //2 PRESTITO
      capitaleIniziale.concediPrestito(persone.get(2) , 2000 );   //3 PRESTITO
      capitaleIniziale.concediPrestito(persone.get(0) , 3000 );   //4 PRESTITO
      capitaleIniziale.concediPrestito(persone.get(1) , 10000 );  //5 PRESTITO
      
      capitaleIniziale.concediPrestito(persone.get(0) , 2000 );   //6 PRESTITO NEGATO
       
      
      capitaleIniziale.contaPrestiti("Russo Daniele");
      
      }  
      
    }
    
    
    
  • Re: Tema d'esame - ArrayList

    DAVIDE9792 ha scritto:


    vorrei una conferma che ho eseguito tutti i punti correttamente
    Eh .. no. concediPrestito deve restituire un boolean; contaPrestiti deve restituire "il numero di prestiti intestati ad un determinato richiedente", quindi perlomeno un int.
    E tra l'altro l'uso di lastIndexOf in contaPrestiti non ha nemmeno senso.
Devi accedere o registrarti per scrivere nel forum
8 risposte