|
Mostrar Mensajes
|
Páginas: [1] 2
|
2
|
Programación / Java / Pequeño trabajito (AGENDA)
|
en: 20 Mayo 2015, 16:19 pm
|
Buenas estoy liado con un proyecto de una agenda en Java, me dan las interfaces y las excepcion y yo tengo que crear las clases, dichas clases ya las tengo pero hay unas funciones que se me resisten,me podrían dar alguna idea ? Gracias. Agenda.java public class Agenda implements AgendaInterfaz { private ContactoInterfaz matriz [] = null; private int numeroContactosUsados = 0; /** * Maximo numero de contactos que puede incluir la agenda. */ public Agenda ( String archivo ) throws OperacionNoPermitidaExcepcion { this.matriz = new ContactoInterfaz[MAX_NUM_CONTACTOS]; DatosDeEntrada obj = null; try { obj = new DatosDeEntrada( archivo ); while(obj.haySiguienteContacto()) { ContactoInterfaz contacto = obj.siguienteContacto(); this.insertarContacto ( contacto ); } } catch (OperacionNoPermitidaExcepcion e) { throw e; } } public void insertarContacto(ContactoInterfaz contacto) throws OperacionNoPermitidaExcepcion { }
public void modificarTelefono(TelefonoInterfaz telefonoAntiguo, TelefonoInterfaz telefonoNuevo) throws OperacionNoPermitidaExcepcion { }
public void eliminarContacto(TelefonoInterfaz telefono) throws OperacionNoPermitidaExcepcion { }
public void mostrarContactos() { }
}
AgendaInterfaz.java /** * Esta es una clase que representa una agenda de telefonos. * Mantiene un conjunto de contactos. * * @version version 1.1 Abril 2015 * @author Fundamentos de Programacion II */ public interface AgendaInterfaz {
/** * Maximo numero de contactos que puede incluir la agenda. */ public final static int MAX_NUM_CONTACTOS = 1000;
/** * Inserta un nuevo contacto, proporcionandolo como parametro. * En el caso de superar el numero maximo de contactos permitidos * o en el caso de que ya exista un contacto con el mismo numero de telefono * se lanzara la excepcion OperacionNoPermitidaExcepcion. */ public void insertarContacto(ContactoInterfaz contacto) throws OperacionNoPermitidaExcepcion;
/** * Modifica el telefono de un contacto. * Se proporciona como parametro el telefono del contacto a modificar * y el nuevo telefono. * Si el numero de telefono no existe se lanzara la excepcion * OperacionNoPermitidaExcepcion. */ public void modificarTelefono(TelefonoInterfaz telefonoAntiguo, TelefonoInterfaz telefonoNuevo) throws OperacionNoPermitidaExcepcion;
/** * Elimina un contacto de la agenda. * Se proporciona como parametro el numero de telefono del contacto a eliminar * Si el telefono indicado no esta en la agenda * se lanzara la excepcion OperacionNoPermitidaExcepcion. */ public void eliminarContacto(TelefonoInterfaz telefono) throws OperacionNoPermitidaExcepcion;
/** * Muestra por la salida estandar (System.out) todos los contactos que hay en la * agenda. * El orden de salida de los datos es el siguiente: * Numero de telefono, Nombre, Primer Apellido, Segundo Apellido, Domicilio y * Correo electronico. * Cada uno de estos datos debe ir en una l¡nea diferente. * No se inserta ninguna informacion adicional a la especificada. */
public void mostrarContactos();
}
|
|
|
3
|
Programación / Programación C/C++ / Re: [Consulta] Trabajo en C
|
en: 6 Marzo 2015, 16:00 pm
|
Buenas ya lo he empezado y tengo el main, y los errores que me daría el programa, pero ahora tengo que crear un archivo de configuración, pero no se por donde cogerlo me podéis echar una mano? Gracias, un saludo.
|
|
|
4
|
Programación / Programación C/C++ / Re: [Consulta] Trabajo en C
|
en: 25 Febrero 2015, 12:19 pm
|
Buenas ! Gracias por los consejos, me he puesto mano a la obra, me gustaría hacerles una duda concreta verán, como puedo crear una lista con puerto desde el 0 a 65535, y al igual con las direcciones ip, que voy a utilizar para así cambiar nodo privado por nodo publico, gracias!
|
|
|
7
|
Programación / Programación C/C++ / Re: [AYUDA] Ejercicio concatenar
|
en: 11 Enero 2015, 16:48 pm
|
Hola joraloma, el problema es que la función de entrada fgets() coge el carácter de nueva línea o ENTER y lo agrega al final de las cadenas ap1, ap2, por eso al concatenar e imprimir, se imprime dicho salto de línea pareciendo como si fueran dos cadenas distintas Una solución es depurar la cadena recibida para eliminar el salto de línea hallado al final de la misma, reemplazándolo por el carácter nulo de terminación: size_t n; n = strlen( ap1 ); if ( n > 0 && ap1[n-1] == '\n' ) ap1[n-1] = '\0';
y luego haces lo mismo para ap2, con lo cual debería solucionarse el problema. SI ! Mil gracias ahora va perfecto, una pregunta la liberación de memoria esta bien situada? Esque al pasar el comprueba de mi profesor, da error, "Error in ________ free(): invalid next size(fast): 0x09425008 ***
|
|
|
9
|
Programación / Programación C/C++ / [AYUDA] Ejercicio concatenar
|
en: 11 Enero 2015, 12:35 pm
|
Buenas gracias por .el aviso en el otro tema, puse una pregunta muy general jeje, bueno la cuestion es la siguiente en el ejercicio 3 tengo que concatenar, y hacer una especie de lista, el resultado debería corresponderse con : salas@318CDCr12: ̃$ ./nombreCompleto
Introduzca nombre : SALIR DEL PROGRAMA
salas@318CDCr12: ̃$ ./nombreCompleto
Introduzca nombre : Fulanito
Introduzca primer apellido : de Tal
Introduzca su segundo apellido: y Cual
Nombre completo: de Tal y Cual, Fulanito
Introduzca nombre : SALIR
salas@318CDCr12: ̃$ ./nombreCompleto Pero yo obtengo :salas@318CDCr12: ̃$ ./nombreCompleto
Introduzca nombre : SALIR DEL PROGRAMA
salas@318CDCr12: ̃$ ./nombreCompleto
Introduzca nombre : John
Introduzca primer apellido : Smith
Introduzca su segundo apellido:
Nombre completo: Smith
John
Introduzca nombre : SALIR
salas@318CDCr12: ̃$ ./nombreCompleto Y mi código es:/* Includes del sistema */ #include <stdio.h> #include <stdlib.h> #include <string.h> /* Includes de la aplicacion */ #include "nombreCompleto.h" /* Definición de constantes */
/* Tipos definidos por el usuario */
/************************************************************/
int main() { char * nombre = NULL; char * ap1 = NULL; char * ap2 = NULL; int tam; char * todo=NULL;
nombre = (char *) calloc(TAM, sizeof(char)); ap1 = (char *) calloc(TAM, sizeof(char)); ap2 = (char *) calloc(TAM, sizeof(char)); if(nombre == NULL || ap1 == NULL || ap2 == NULL) fprintf(stderr, MENSAJE_MEMORIA); else { do { printf(PIDE_NOMBRE); fgets(nombre, TAM, stdin); nombre=strchr(nombre,'\n'); *nombre='\0'; if(strncmp(nombre, NOMBRE_SALIR, NCOMPARAR) != 0) { printf(PIDE_AP1); fgets(ap1, TAM, stdin); ap2=strchr(ap1,'\n'); *ap2='\0'; printf(PIDE_AP2); fgets(ap2, TAM, stdin); ap2=strchr(ap2,'\n'); *ap2='\0'; tam = strlen(nombre) + strlen(ap1) + strlen(ap2); todo = (char *) calloc(tam, sizeof(char)); todo = strcat(todo, ap1); todo = strcat(todo, ap2); todo = strcat(todo, nombre);
printf(TEXTO_NOMBRE_COMPLETO, ap1); printf("%d", tam); } } while(strncmp(nombre, NOMBRE_SALIR, NCOMPARAR) != 0); free(nombre); nombre = NULL; free(ap1); ap1 = NULL; free(ap2); ap2 = NULL; free(todo); todo = NULL; } return 0; }
/* Definiciones de funciones */
Ojala sepan la solución, gracias!!!
|
|
|
|
|
|
|