Está en la página 1de 7

package proyectoagenda;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class ProyectoAgenda {

public static void main(String[] args) {


try {
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
String texto="";
char opcion='1';
Agenda mi_agenda= new Agenda();
while ((opcion=='1') || (opcion=='2') || (opcion=='3') || (opcion=='4')|| (opcion=='5') ||
(opcion=='6') )
{
System.out.println("......................");
System.out.println("AGENDA");
System.out.println("......................");
System.out.println("1-Nuevo contacto");
System.out.println("2-Listado de contactos");
System.out.println("3-Vaciar agenda");
System.out.println("0-Salir");
System.out.println("......................");
texto=teclado.readLine();
opcion= texto.charAt(0);
System.out.println("Opcin: ");
System.out.println("......................");
switch(opcion){
case '1':
String nombre;
String telefono;
String telMovil;
String apellidos;
String email;
String comentario;
boolean validar;
System.out.println("Por favor introduzca el nombre:");
nombre=teclado.readLine();
System.out.println("Por favor introduzca el apellido");
apellidos=teclado.readLine();
System.out.println("Por favor introduzca el telfono fijo(numero):");
telefono=teclado.readLine();
System.out.println("Por favor introduzca el telefono Movil (numero)");
telMovil=teclado.readLine();
System.out.println("Escriba su correo electronico");
email=teclado.readLine();
System.out.println("Escriba sus comentarios");
comentario=teclado.readLine();
validar=esNumerica(telefono);
if (validar){
String telefonofijo= (telefono);
mi_agenda.Consultar(nombre, telefonofijo);
mi_agenda.Anadir(nombre,apellidos,telefonofijo,telMovil,email,comentario);
}
else{
System.out.println("No es un nmero, formato de telefono incorrecto.");
}
break;
case '2':
mi_agenda.Mostrar();
break;
case '3':
mi_agenda.Vaciar();
break;
case '0':
System.out.println("Ha salido del programa");
break;

default:
System.out.println("Opcin incorrecta ...");
opcion='1';

}
} catch (IOException ex) {
Logger.getLogger(ProyectoAgenda.class.getName()).log(Level.SEVERE, null, ex);
}
}

public static boolean esNumerica(String str)


{
for (char c : str.toCharArray())
{
if (!Character.isDigit(c)) return false;
}
return true;
}
}

*****

package proyectoagenda;

public class Contacto {


private String nombre;
private String apellidos;
private String correo;
private char tipo;
private int dianacimiento;
private int mesnacimiento;
private int aonacimiento;
private String telefonoFijo;
private String telefonoMovil;
private char afinidad;
private String comentarios;
private boolean verificado;

public Contacto(){
this.nombre=null;
this.apellidos=null;
this.correo=null;
this.comentarios=null;
this.telefonoFijo=null;
this.telefonoMovil=null;
}
public Contacto(String nombre, String apellidos, String correo, String comentarios, String telFijo, String
telMovil){
this.nombre=nombre;
this.apellidos=apellidos;
this.correo=correo;
this.comentarios=comentarios;
this.telefonoFijo=telFijo;
this.telefonoMovil=telMovil;

}
public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getApellidos() {


return apellidos;
}

public void setApellidos(String apellidos) {


this.apellidos = apellidos;
}

public String getCorreo() {


return correo;
}

public void setCorreo(String correo) {


this.correo = correo;
}

public char getTipo() {


return tipo;
}

public void setTipo(char tipo) {


this.tipo = tipo;
}

public int getDianacimiento() {


return dianacimiento;
}

public void setDianacimiento(int dianacimiento) {


this.dianacimiento = dianacimiento;
}

public int getMesnacimiento() {


return mesnacimiento;
}

public void setMesnacimiento(int mesnacimiento) {


this.mesnacimiento = mesnacimiento;
}

public int getAonacimiento() {


return aonacimiento;
}

public void setAonacimiento(int aonacimiento) {


this.aonacimiento = aonacimiento;
}

public String getTelefonoFijo() {


return telefonoFijo;
}

public void setTelefonoFijo(String telefonoFijo) {


this.telefonoFijo = telefonoFijo;
}

public String getTelefonoMovil() {


return telefonoMovil;
}

public void setTelefonoMovil(String telefonoMovil) {


this.telefonoMovil = telefonoMovil;
}

public char getAfinidad() {


return afinidad;
}

public void setAfinidad(char afinidad) {


this.afinidad = afinidad;
}

public String getComentarios() {


return comentarios;
}
public void setComentarios(String comentarios) {
this.comentarios = comentarios;
}
public boolean isVerificado() {
return verificado;
}
public void setVerificado(boolean verificado) {
this.verificado = verificado;
}

*****

package proyectoagenda;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Agenda {


Contacto[] lista_contactos=new Contacto[100];
private int contador_contactos=0;

public void Consultar(String nombre, String telefono) {


for (int i = 0; i < this.contador_contactos; i++) {

if (nombre.equals(this.lista_contactos[i].getNombre())) {
System.out.println("Ya existe un contacto con ese nombre");
}
}

public void Anadir(String nombre,String apellidos, String telFijo,String telMovil,String correo, String
comentarios) {
if (contador_contactos < 99) {
this.lista_contactos[contador_contactos] = new Contacto();
this.lista_contactos[contador_contactos].setNombre(nombre);
this.lista_contactos[contador_contactos].setApellidos(apellidos);
this.lista_contactos[contador_contactos].setTelefonoFijo(telFijo);
this.lista_contactos[contador_contactos].setTelefonoMovil(telMovil);
this.lista_contactos[contador_contactos].setCorreo(correo);
this.lista_contactos[contador_contactos].setComentarios(comentarios);
this.contador_contactos++;
Ordenar();
} else {
System.out.println("La agenda est llena");
}

}
public void Ordenar() {
//Este mtodo ordenar el array de contacos por el nombre mediante el Mtodo Burbuja
int N = this.contador_contactos;
String nombre1;
String nombre2;
//Optimizo para cuando tenga ms de dos elementos al menos.
if (contador_contactos >= 2) {
for (int i = 1; i <= N - 1; i++) {
for (int j = 1; j <= N - i; j++) {
nombre1 = this.lista_contactos[j - 1].getNombre();
nombre2 = this.lista_contactos[j].getNombre();
if (nombre1.charAt(0) > nombre2.charAt(0)) {
Contacto tmp = this.lista_contactos[j - 1];
this.lista_contactos[j - 1] = this.lista_contactos[j];
this.lista_contactos[j] = tmp;
}
}
}
}
}

public void Mostrar() {


if (this.contador_contactos == 0) {
System.out.println("No hay contactos");
} else {
for (int t = 0; t < this.contador_contactos; t++) {
// Es necesario por precaucin usar el this para el metodo, puesto que si se ejecuta muchas veces
la referencias a memoria pueden fallar.
System.out.println(this.lista_contactos[t].getNombre()+ "-" + "Ap:" +
this.lista_contactos[t].getApellidos()+ "-" + "Tf:" + this.lista_contactos[t].getTelefonoFijo()+ "-" + "Tf:" +
this.lista_contactos[t].getTelefonoMovil()+ "-" + "msn:" + this.lista_contactos[t].getCorreo());
}
}
}

public void Vaciar() {


try {
System.out.println("Se eliminarn todos los contactos");
System.out.println("Estas seguro (S/N)?");
String respuesta;
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
respuesta = teclado.readLine();
respuesta = respuesta.toUpperCase();
if (respuesta.equals("S")) {
//Lo hago por mera formalidad porque java se encarga de liberar los objetos no referenciados creados.
El garbage collector
for (int i = 0; i < this.contador_contactos; i++) {
this.lista_contactos[i].setNombre("");
this.lista_contactos[i].setTelefonoFijo(null);
}
contador_contactos = 0;
System.out.println("Agenda vaciada correctamente");
} else {
System.out.println("Accin cancelada");
}
} catch (IOException ex) {
Logger.getLogger(Agenda.class.getName()).log(Level.SEVERE, null, ex);
}

}
}

También podría gustarte