|
Mostrar Temas
|
Páginas: [1]
|
1
|
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++ / [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!!!
|
|
|
5
|
Programación / Programación C/C++ / Problema decimal - hexadecimal en C
|
en: 8 Diciembre 2014, 13:19 pm
|
Buenas, estoy empezando en esto de C, y tengo un ejercicio con punteros y tablas pero no me sale bien, agradecería que le echasen un ojo al codigo, gracias! /* ** Fichero: <nombre del fichero> ** Autor: <nombre del alumno> ** Fecha: <fecha de última edición> ** ** Descripcion: <Descripción sucinta del contenido del fichero> */
/* Includes del sistema */ #include <stdio.h>
/* Includes de la aplicacion */ #include "decHex.h"
/* Definición de constantes */
/* Tipos definidos por el usuario */
/* Declaración de funciones locales. Para cada función: */ /* ** Parámetros: <tipo1> <parm1> <Descripción> ** <tipo2> <parm2> <Descripción> ** ... ** Devuelve: <tipo> <Descripción> ** ** Descripción: <Descripción> */ int leeNumero(signed char tipoNumero); void decBin(int numero, int i, char * pfaux); /************************************************************/
int main() { int tipoNumero; int numero; int i; char tabcaracteres[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char * pfaux=tabcaracteres; i=0; tipoNumero=0; numero=(leeNumero(tipoNumero)); printf("El numero en hexadecimal es: %d",numero); decBin(numero, i, pfaux); printf("\n"); return 0; }
/* Definiciones de funciones */
int leeNumero(signed char tipoNumero) { int valorentero; int valorreal; int valor; valorentero=0; valorreal=0; if (tipoNumero) { printf(T_INTRODUZCA_NUMERO2); scanf("%d", &valorreal); } else { do { printf(T_INTRODUZCA_NUMERO); scanf("%d", &valorentero); } while (valorentero<0); } valor=valorentero+valorreal; return valor; }
void decBin(int numero, int i, char * pfaux) { int resto; if (numero==0) printf("%d",numero); else if (numero==1) printf("%d",numero); else if ((numero/16)==1) { printf("%d",(numero/16)); printf("%d",(numero%16)); while((i-1)>=0) { printf("%d",*(pfaux+(i-1))); i++; }
} else { resto=(numero%16); numero=numero/16; *(pfaux+i)=numero; decBin((numero/16),( i+1), pfaux); } } Esque ando un poco perdido
|
|
|
|
|
|
|