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: }