Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.61 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Cdrom {
  4.     private String titolo, autore, durata;
  5.     private int n_brani;
  6.     //public boolean b = false;
  7.    
  8.     public Cdrom ( String t, String a, String d, int n ) {
  9.         titolo = t;
  10.         autore = a;
  11.         durata = d;
  12.         n_brani = n;
  13.         }
  14.     public Cdrom ( Cdrom x ) {
  15.         x.titolo = titolo;
  16.         x.autore = autore;
  17.         x.durata = durata;
  18.         x.n_brani = n_brani;
  19.         }
  20.        
  21.     public String getTitolo () {    return titolo; }
  22.     public String getAutore () {    return autore; }
  23.     public String getDurata () {    return durata; }
  24.     public int getN_brani () {  return n_brani; }
  25.     public void setTitolo ( String t ) {    titolo = t; }
  26.     public void setAutore ( String a ) {    autore = a; }
  27.     public void setDurata ( String d ) {    durata = d; }
  28.     public void setn_Brani ( int n ) {  n_brani = n; }
  29.    
  30.     public String toString () { return titolo + " - " + autore + "(" + durata + "), " + n_brani + " brani"; }
  31.     /*public String compareDurata () {}
  32.     public boolean equals ( CD x ) {}*/
  33.     }
  34.  
  35.  
  36.  
  37. //---------------------------------------------------------------------------------------------------------------
  38.  
  39.  
  40. import java.util.*;
  41.  
  42. public class RaccoglitoreCD {
  43.    
  44.     private final int maxCD; //capienza del raccoglitore
  45.     private Cdrom [] raccoglitore; //raccoglitore di Cd
  46.    
  47.    
  48.     public RaccoglitoreCD ( int m ) {  
  49.         maxCD = m;
  50.         raccoglitore = new Cdrom [ maxCD ]; //allocazione raccoglitore cd in base alla capienza, passata per parametro
  51.         }
  52.        
  53.        
  54.     public RaccoglitoreCD ( RaccoglitoreCD x ) {
  55.         raccoglitore = new Cdrom [ x.maxCD ]; //allocazione di un vettore uguale a quello dell'oggetto da copiare
  56.         maxCD = x.maxCD; //assegnazione della capienza del raccoglitore copiato
  57.         for ( int i = 0; x.maxCD > i; i++ ) //riallocazione (copia) di ogni cd dentro il raccoglitore da copiare nel raccoglitore copiato
  58.             if ( x.raccoglitore [ i ] != null ) raccoglitore [ i ] = new Cdrom ( x.raccoglitore [ i ] );
  59.         }
  60.        
  61.        
  62.     public int getMaxCD () {    return maxCD; }
  63.    
  64.    
  65.     public boolean aggiungiCD ( Cdrom x ) { //aggiunge un cd nel primo spazio libero
  66.         boolean b = false;
  67.         for ( int i = 0; ( i < maxCD ) && !b; i++ )
  68.             if ( raccoglitore [ i ] == null ) {
  69.                 raccoglitore [ i ] = new Cdrom ( x );
  70.                 b = true;
  71.                 }
  72.         return b;
  73.         }
  74.        
  75.        
  76.     public boolean aggiungiCD ( Cdrom x, int i ) { //aggiunge un cd nello spazio i
  77.         boolean b = false;     
  78.         if ( raccoglitore [ i ] == null ) {
  79.             raccoglitore [ i ] = new Cdrom ( x );  
  80.             b = true;
  81.             }
  82.         return b;
  83.         }
  84.        
  85.        
  86.     public boolean eliminaCD ( String t ) { //rimuove un cd ricercandolo per titolo (mette null)
  87.         int i; boolean b = false;
  88.         for ( i = 0; ( i < maxCD ) && !b; i++ ) {
  89.             if ( raccoglitore [ i ].getTitolo ().equals ( t ) ) {
  90.                 raccoglitore [ i ] = null;
  91.                 b = true;
  92.                 }
  93.             }
  94.         return b;
  95.         }
  96.        
  97.        
  98.     public boolean eliminaCD ( int i ) { //rimuove un cd ricercandolo per indirizzo i
  99.         boolean b = false;
  100.         if ( raccoglitore [ i ] != null ) {
  101.             raccoglitore [ i ] = null;
  102.             b = true;
  103.             }
  104.         return b;
  105.         }
  106.        
  107.        
  108.     public boolean ricercaCD ( String t ) { //ricerca un cd per titolo e restituisce vero se esiste
  109.         int i; boolean b = false;
  110.         for ( i = 0; ( i < maxCD ) && !b; i++ )
  111.             if ( raccoglitore [ i ].getTitolo ().equals ( t ) ) b = true;
  112.         return b;
  113.         }
  114.    
  115.    
  116.     public String toString () {
  117.         String s = "";
  118.         for ( int i = 0; i < maxCD; i++ )
  119.             if ( raccoglitore [ i ] != null )
  120.                 s += raccoglitore [ i ].getTitolo () + ": " + raccoglitore [ i ].getAutore () + "\n";
  121.         return s;
  122.         }      
  123.     }              
  124.    
  125.  
  126.  
  127.  
  128.  
  129.  
  130. //----------------------------------------------------___----------------------------------------
  131.  
  132.  
  133.  
  134.  
  135. import java.util.*;
  136.  
  137.  
  138. public class provaCD {
  139.  
  140.  
  141.     private static Menu m;
  142.     private static Cdrom c;
  143.     private static boolean b = false;
  144.     private static int l, n;
  145.     private static String t, a, d;
  146.     private static Scanner input = new Scanner ( System.in );
  147.  
  148.     public static void crea_menu () {
  149.        
  150.         m = new Menu ( 7 );
  151.         String opzioni = " Aggiungi un CD/. Aggiungi un CD in una posizione specifica/. Elimina un CD per titolo/. Elimina un CD per posizione/. Ricerca CD per titolo/. Elenco dei CD/.Esci";
  152.         m.riempi_opzioni ( opzioni );
  153.         }
  154.        
  155.    
  156.     public static void allocaCD () {
  157.         System.out.print ( "Inserisci il nome del CD: " );
  158.         t = input.nextLine ();
  159.         System.out.print ( "Inserisci il nome dell'autore : " );
  160.         a = input.nextLine ();
  161.         System.out.print ( "Inserisci la durata del CD: " );
  162.         d = input.nextLine ();
  163.         System.out.print ( "Inserisci il numero di brani del CD: " );
  164.         n = input.nextInt ();
  165.         c = new Cdrom ( t, a, d, n );  
  166.         }
  167.        
  168.        
  169.     public static void main ( String [] args ) {
  170.         System.out.print ( "quanti CD può contenere il tuo raccoglitore?\t" );
  171.         int dim = input.nextInt ();
  172.         crea_menu ();
  173.         RaccoglitoreCD r1 = new RaccoglitoreCD ( dim );
  174.         int scelta;
  175.         do {
  176.             System.out.println ( m.toString () );
  177.             do {
  178.                 scelta = input.nextInt ();
  179.                 } while ( ( scelta < 1 ) && ( scelta > 7 ) );
  180.                
  181.             switch ( scelta ) {
  182.                 case 1:
  183.                     allocaCD ();
  184.                     b = r1.aggiungiCD ( c );
  185.                     if ( b )    System.out.println ( "Cd aggiunto!" );
  186.                     else    System.out.println ( "Raccoglitore pieno" );
  187.                     break;
  188.                    
  189.                 case 2:
  190.                     allocaCD ();
  191.                     r1.aggiungiCD ( c );
  192.                     System.out.print ( "Inserisci il posto dove inserire il CD: " );
  193.                     l = input.nextInt ();
  194.                     b = r1.aggiungiCD ( c, l );
  195.                     if ( b )    System.out.println ( "Cd aggiunto!" );
  196.                     else    System.out.println ( "Posizione non valida" );
  197.                     break;
  198.                    
  199.                 case 3:
  200.                     System.out.print ( "Inserisci il nome del CD: " );
  201.                     t = input.nextLine ();
  202.                     b = r1.eliminaCD ( t );
  203.                     if ( b )    System.out.println ( "Cd eliminato!" );
  204.                     else    System.out.println ( "CD non trovato" );
  205.                     break;
  206.                    
  207.                 case 4:
  208.                     System.out.print ( "Inserisci la posizione del CD: " );
  209.                     l = input.nextInt ();
  210.                     b = r1.eliminaCD ( l );
  211.                     if ( b )    System.out.println ( "Cd eliminato!" );
  212.                     else    System.out.println ( "CD non trovato" );
  213.                     break;
  214.                
  215.                 case 5:
  216.                     System.out.print ( "Inserisci il nome del CD: " );
  217.                     t = input.nextLine ();
  218.                     b = r1.ricercaCD ( t );
  219.                     if ( b )    System.out.println ( "Trovato!" );
  220.                     else    System.out.println ( "CD non presente" );
  221.                     break;
  222.                
  223.                 case 6:
  224.                     System.out.println ( r1.toString () );
  225.                     break;
  226.                 }
  227.             } while ( scelta != 7 );
  228.         }
  229.     }
  230.                    
  231.                    
  232.        
  233.  
  234. //---------------------------------------------------------------------------------------------------------------
  235.  
  236.  
  237.  
  238.  
  239. import java.util.Scanner;
  240. public class Menu {
  241. //attributi
  242.     private int numero_opzioni;
  243.     private String [] opzioni;
  244. //costruttori
  245.     public Menu ( int numero_opz ) {
  246.         numero_opzioni = numero_opz;
  247.         opzioni = new String [ numero_opzioni ];
  248.         }
  249. //metodi
  250.     public void riempi_opzioni () {
  251.         Scanner input = new Scanner ( System.in );
  252.         for ( int i = 0; i < this.numero_opzioni; i++ ) {
  253.             System.out.println ( "Opzione " + ( i + 1 ) + ":" );
  254.             opzioni [i] = input.nextLine ();
  255.             }
  256.         }
  257.     public void riempi_opzioni ( String OString ) {
  258.         int j, k = 0, inizio = 0;
  259.         String s;
  260.         for ( int i = 0; i < OString.length (); i++ )
  261.             if ( ( ( OString.charAt ( i ) == '/' ) && ( OString.charAt ( i + 1 ) == '.' ) ) || ( i == ( OString.length () - 1 ) ) ) {
  262.                 j = i;             
  263.                 opzioni [ k ] = OString.substring ( inizio, j );       
  264.                 i += 2; k++;
  265.                 inizio = i;
  266.                 }
  267.         }
  268.     public void modifica_opzione ( int numero_opz, String opzione ) {
  269.         opzioni [ numero_opz ] = opzione;
  270.         }
  271.     public String toString () {
  272.         String menu = "";
  273.         for ( int i = 1; i <= numero_opzioni; i++ )
  274.             menu = menu + ( i + ": " + opzioni [ i - 1 ] + "\n" );
  275.         return menu;
  276.         }
  277.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement