1: /*
  2:         AplicacionAgenda.jmm

  4:         Implementa una pequeña agenda para Zero en J--

  6:         Para compilar:
  7:                 j-- AplicacionAgenda.jmm
  8:                 za AplicacionAgenda

 10:         Ejecutar:
 11:                 zvm AplicacionAgenda

 13:         Pablo Martínez
 14:         J. Baltasar García
 15:         (c) 2005
 16: */


 19: // La clase Persona representará a todas las personas
 20: // en la agenda
 21: class Persona {
 22:         String nombre;
 23:         int edad;
 24:         String telefono;
 25:         
 26:         void putNombre(String n)
 27:         {
 28:                 nombre = n;
 29:         }
 30: 
 31:         void putEdad(int ed)
 32:         {
 33:                 edad = ed;
 34:         }
 35: 
 36:         void putTelefono(String tlf)
 37:         {
 38:                 telefono = tlf;
 39:         }
 40: 
 41:         String toString()
 42:         {
 43:                 String x;
 44: 
 45:                 x  = "Nombre: " + nombre + "\n";
 46:                 x += "Edad :" + edad.toString() + "\n";
 47:                 x += "Telefono: " + telefono + "\n";
 48: 
 49:                 return x;
 50:         }
 51: 
 52: }

 54: // La clase AplicacionAgenda es la principal

 55: class AplicacionAgenda extends ConsoleApplication {
 56:         Map agenda;
 57: 
 58:         void anadirPersona()
 59:         // Inserta una persona en la agenda
 60:         {
 61:                 String nombre;
 62:                 int edad;
 63:                 String tlf;
 64:                 Persona nuevaPersona;
 65: 
 66:                 System.console.write( "Introduzca el nombre: " );
 67:                 nombre = System.console.read();
 68: 
 69:                 try {
 70:                         System.console.write( "Introduzca su edad: " );
 71:                         edad = Int.parseString( System.console.read() );
 72:                 } catch ( ESemantic ex ) {
 73:                         System.console.write( "El dato introducido no es un número.\n" );
 74:                 }
 75: 
 76:                 System.console.write( "Introduzca su telefono: " );
 77:                 tlf = System.console.read();

 79:                 // Crear la nueva persona

 80:                 nuevaPersona = new Persona();

 82:                 // Rellenar sus datos

 83:                 nuevaPersona.putNombre( nombre );
 84:                 nuevaPersona.putEdad( edad );
 85:                 nuevaPersona.putTelefono( tlf );
 86:                 agenda.add( nombre, nuevaPersona );
 87:                 
 88:                 System.console.write( nombre + " fue añadido a la agenda ..." );
 89:                 System.console.lf();
 90:                 System.console.lf();
 91:         }
 92: 
 93:         void buscarPersona()
 94:         {
 95:                 Persona p;
 96:                 String name;

 98:                 // Pedir un nombre a buscar

 99:                 System.console.write("Introduzca un nombre: ");
100:                 name = System.console.read();
101: 
102:                 try {
103:                         // Buscarlo

104:                         p = agenda.lookUp( name );
105:                 }
106:                 catch ( ESemantic ex ) {
107:                         System.console.write( "No existe ninguna persona.\n\n" );
108:                 }
109: 
110:                 System.console.write( p );
111:                 System.console.write( "\nPulse INTRO para seguir." );
112:                 System.console.read();
113:         }        
114: 
115:         void eliminarPersona()
116:         {
117:                 Persona p;
118:                 String name;
119: 
120:                 System.console.write( "Introduzca un nombre: " );
121:                 name = System.console.read();
122: 
123:                 try {
124:                         agenda.delete( name );
125:                 } catch ( ESemantic ex ){
126:                         System.console.write( "No existe ninguna persona.\n\n" );
127:                 }
128:                 
129:                 System.console.write( "Persona eliminada.\n" );
130:         }
131: 
132: 
133:         void doIt(){
134:                 int op;

136:                 // Crear la agenda
137:                 agenda = new Map();
138: 
139:                 do {
140:                         // Presentar el menú

141:                         System.console.write( "1. Añadir persona" );
142:                         System.console.lf();
143:                         System.console.write( "2. Buscar persona" );
144:                         System.console.lf();
145:                         System.console.write( "3. Eliminar persona" );
146:                         System.console.lf();
147:                         System.console.write( "4. Salir" );
148:                         System.console.lf();
149:                         System.console.write("Introduzca una opcion: ");

151:                         // Leer la opción del teclado

152:                         try {
153:                                 op=Int.parseString( System.console.read() );
154:                         } catch(ESemantic ex) {
155:                                 System.console.write( "No es un número." );
156:                         }

158:                         // Ejecutar la opción

159:                         if ( op < 1 
160:               || op > 4 )
161:                         {
162:                                 System.console.write( "Opcion incorrecta." );
163:                                 System.console.lf();
164:                         }
165:                         else {
166:                                 if( op==1 ) {
167:                                         anadirPersona();
168:                                 }
169: 
170:                                 if( op==2 ) {
171:                                         buscarPersona();
172:                                 }
173: 
174:                                 if( op==3 ) {
175:                                         eliminarPersona();
176:                                 }
177:                         }
178:                 } while( op != 4 );
179:         }
180: }