|   | 
     
       Us encarreguen fer un programa que, des del caixer automàtic, 
        donarà als clients del vostre banc la possibilitat de fer canvis 
        de divises.  
         
        Heu d'escriure, doncs, un programa que reculli algunes dades del vostre 
        client (la identificació, els tipus de moneda implicats i la quantitat 
        que vol canviar) i que, després de fer el càlcul, retorni 
        informació amb les dades de l'operació. Anem per passos. 
       
      
        - Obriu JCreator i creeu 
          el projecte (empty project) amb nom M2ex01. 
          En aquest projecte hi creeu una nova classe 
          (java file), i li poseu de nom Canvi.java. 
          
 
           
         
        - Aquesta classe ha de tenir:
 
           
           
          
            - una sentència 
              d'importació com aquesta: import 
              java.io.*; (recordeu que l'heu de posar 
              immediatament abans del nom de la classe). 
 
               
               
            - un mètode main(String[] 
              args) que comença de la següent 
              manera: 
 
               
               
              
                 
                  public static 
                    void main(String[] args) throws IOException { 
                        // la 
                    classe BufferedReader serveix per llegir del 
                        // teclat 
                        BufferedReader entrada=new BufferedReader( 
                                             new 
                    InputStreamReader(System.in)); 
                        // Demanem 
                    informació a l'usuari i la recollim a la  
                        // variable divisain.  
                        System.out.println("Quina moneda 
                    desitgeu canviar? "+ 
                                           "(E)uros, 
                    (D)olars o (I)ens?"); 
                        String divisain=entrada.readLine(); 
                        // carreguem 
                    la moneda canviada  
                        System.out.println("Quina moneda 
                    voleu rebre? "+ 
                                           "(E)uros, 
                    (D)olars o (I)ens?"); 
                        String divisaout=entrada.readLine(); 
                    }  | 
                 
               
               
              La classe BufferedReader 
              serveix per llegir del teclat. L'estudiareu amb més detall 
              en els següents mòduls. Ara no cal entendre-la: només 
              la usareu. 
               
              Observeu que heu creat les cadenes 
              divisain i divisaout. 
              Serviran per recollir els tipus de divisa. 
               
               
           
            
        -  Tot seguint el mateix sistema, creeu 
          les següents variables: nom, cognom, 
          dni i quantitat. 
          Un cop creades, compileu el programa i executeu-lo. Ha de fer això: 
          
 
           
          
           
         
        - Ara heu de protegir 
          divisain i divisaout 
          per evitar entrades de dades incorrectes. Si algú demana la moneda 
          "T", per exemple, heu de fer que 
          es torni a repetir la pregunta. Embolcalleu aquestes sentències
 
           
           
          
             
                  System.out.println("Quina 
                moneda desitgeu canviar? "+ 
                                       "(E)uros, 
                (D)olars o (I)ens?"); 
                    String divisain=entrada.readLine(); | 
             
           
           
          amb un bucle while que només es completi 
          quan la variable divisain sigui igual a "E", 
          "D" o "I". 
          Podeu declarar divisain fora del bucle i després 
          construir el bucle while amb els següents 
          operadors per a la sentència 
          de control del bucle: !, divisain.equals("E") 
          i &&. 
           
         
        - Feu el mateix amb divisaout. 
          Compileu i executeu i verifiqueu que les entrades de tipus de moneda 
          ja estan ben controlades.
 
           
         
        - En el mètode main(String[] 
          args) creeu-hi 
          la variable doubleCalers, 
          del tipus double. 
          Ompliu-la de valor a partir de les dades de la variable String 
          quantitat. Heu après el procediment 
          de casting 
          a la pràctica 5 (Conversió entre tipus primitius).
 
           
           
        - Ara heu de crear un nou mètode 
          de la classe. Aquest mètode es dirà getCanvi() 
          i serà el motor del canvi de divises. L'heu d'escriure immediatament 
          a sota del mètode main(String[] args). 
          Aquest en serà l'encapçalament: 
          
 
           
           
          
             
                  public 
                static double getCanvi(double doubleCalers, 
                                                  
                String divisain, 
                                                  String 
                divisaout) { 
                    }  | 
             
           
          A partir de l'encapçalament, sabeu interpretar 
            la feina que fa?: rep una quantitat de diners (doubleCalers) 
            del tipus de moneda divisain i l'ha de transformar 
            a una quantitat de la nova moneda (divisaout). 
             
             
            Si des del mètode main cridéssiu 
            aquest mètode així: 
           
          
             
              | doubleCalers 
                = getCanvi(10000,"I","E"); | 
             
           
           
          significaria que voleu que el mètode us calculi quants euros 
          són 10000 iens.  
           
          Heu de construir el cor d'aquest mètode. Podeu seguir les següents 
          pistes:  
           
          
            - Podeu utilitzar sentències de control del 
              tipus if (divisain.equals("D")) { 
              per decidir com actuar en funció del tipus de divisa.
 
               
             
            - L'algorisme en pseudocodi pot ser: Pren el valor 
              de doubleCalers i converteix-lo a euros. 
              Després, pren aquesta quantitat i converteix-la a la moneda 
              de sortida. D'aquesta forma només us cal saber el canvi 
              del dòlar i el ien amb l'euro (0.825 
              el dòlar i 0.007463 el ien a dia 
              d'avui). Per canviar 10 dolars a euros: 
              10*0.825. Per canviar 10 
              euros a yens: 10*(1/0.007463).
 
               
             
            - El resultat de la conversió s'ha de posar 
              com a valor de return del mètode.
 
               
             
           
          Quan el mètode estigui llest, crideu-lo des del mètode 
          main. Ompliu amb ell la variable doubleCalers: 
           
            
          
             
              | doubleCalers 
                = getCanvi(doubleCalers,divisain,divisaout); | 
             
           
           
         
        - Modifiqueu el valor de la variable 
          doubleCalers tot restant-li el 2% en concepte 
          de comissió. Reserveu el valor de la comissió en la variable 
          de tipus double doubleComissio.
 
           
         
        - Afegiu aquest altre mètode 
          després del mètode getCanvi():
 
           
           
          
             
                  public 
                static String getLletra (String dni) { 
                        String cadena="TRWAGMYFPDXBNJZSQVHLCKET"; 
                        String sdni=dni.substring(0,8); 
                        int posicio=(Integer.parseInt(sdni))%23; 
                        char lletra=cadena.charAt(posicio); 
                        return sdni+lletra; 
                    }  | 
             
           
           
          que serveix per calcular la lletra del DNI. L'utilitzareu per emetre 
          el "tiquet" de l'operació.  
           
         
        - Completeu la tasca del 
          mètode main tot generant 
          el tiquet de l'operació amb un codi que ha de ser semblant 
          a aquest:
 
           
           
          
             
              System.out.println("----------------------------------"); 
                System.out.println("Resum Operació de Canvi de Divises"); 
                System.out.println("----------------------------------"); 
                System.out.println("Data: "+new java.util.Date()); 
                System.out.println("----------------------------------"); 
                System.out.println("Sr/a: "+nom+" "+cognom); 
                System.out.println("DNI : "+getLletra(dni));  
                System.out.println("----------------------------------"); 
                System.out.println("Input: "+quantitat+" "+divisain); 
                System.out.println("Output: "+doubleCalers+" "+divisaout); 
                System.out.println("Comissió: "+doubleComissio+" 
                "+divisaout); | 
             
           
           
         
        - Compileu i executeu 
          al programa. Ha de reaccionar així:
 
           
          
         
       
     |