|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Java / Buscar un string en un txt y modificarlo
|
en: 28 Junio 2017, 14:17 pm
|
Hola muy buenas tengo una duda con un metodo y no se como resolverla ni si es posible Quiero que el metodo haga lo siguiente: Tengo un personas.txt el cual contiene informacion de una serie de personas : Monitores o Usuarios. Lo que hago es leer este fichero e ir rellenando dos HashMap uno que contiene los monitores ( HashMap<Integer, Monitor>) y otro a los usuarios (HashMap<Integer,Usuario>) la key de los HashMap es el id de cada persona 1 //id monitor //tipo Jose Carlos //nombre Alvarez Perez //apellidos 07/09/1976 //fechaNacimiento 14 //horasAsignables 1 1;1 2; 1 3; 1 4; 2 1; 2 3; 4 6 //GruposImpartidos idActividad idGrupo; <--- ESTA *************************************** 4 //id usuario Susana //nombre Rodriguez Estevez //apellidos 15/01/1998 //fechaNacimiento 6/10/2015 //fechaIngreso //actividadesCursadasAnteriores 90,5 //saldo 1 [1]; 2 [3]; //actividadesActuales
La cuestion es la siguiente , quiero que al final de ejecutar un metodo el cual añade un grupo impartido: public static void asignaMonitorGrupo(HashMap<Integer, Monitor> monitores, int idMonitor){} coja la nueva linea de GruposImpartidos y sustituya a la del fichero personas.txt
|
|
|
2
|
Programación / Java / Pasar ArrayList generico como argumento a un metodo
|
en: 18 Junio 2017, 00:20 am
|
Hola muy buenas tengo que creo que es de teoria. Tengo un metodo llamado imprimePersonas(); el cual lo que va a hacer como su nombre dice es imprimir personas en un fichero siguiendo un formato especifico , para ello quiero que el metodo tenga 3 parametros de entrada: public static void imprimePersonas(String tipoPersona, String nombreFichero, Arraylist<Personas> listPersonas) bien la pregunta consiste en ¿Hay alguna manera de pasar un arraylist por parametro sin especificar que tipo de dato trabaja el ArrayList?? es decir yo tengo dos tipos de personas Unas son monitores y las otras usuarios ( ambas heredan de una clase llamada persona) entonces quiero saber si hay alguna manera de pasar el arraylist sin especificar si se trata de ArrayList<Monitor> o ArrayList<Usuario>
|
|
|
3
|
Seguridad Informática / Seguridad / Primeros pasos en seguridad ?
|
en: 3 Abril 2017, 21:49 pm
|
Hola muy buenas a todos !
Estoy aquí porque me gustaría saber por donde empezar en la seguridad informática , es un ambito que me llama mucho y me encantaría aprender. Soy estudiante de teleco y aun no he tenido la asignatura de seguridad informática .Se que no es fácil y que no es para todo el mundo pero me gustaría que me ayudaseis a poder empezar y que me dieseis consejos sobre que leer , que practicar , que ver ..... todas esas cosas serán de ayuda! Lo máximo que he conseguido ha sido conseguir la clave wifi de la casa de mi amigo con wifislax así que ... tengo muuuuucho que aprender
|
|
|
4
|
Programación / Java / Herencia java
|
en: 3 Abril 2017, 14:27 pm
|
Hola muy buenas a todos!! tengo un problema en este programa que estoy realizando ahora mismo el cual mediante la lectura de un fichero que contiene personas y sus datos, va a ordenarlas en función de si son monitores o usuarios en dos HashMaps diferentes ( Monitores y Usuarios). El problema está en que las clases monitores y usuarios heredan de la clase personas un identificador( idPersona) el nombre, los apellidos y la fecha de nacimiento. Esos 4 datos a la hora de imprimir los HashMap de Personas y Monitores me dice que son null y no deberia de ser asì , a parte cuando intento imprimir un hashmap con todas las personas , me dice la ruta donde se encuentra la clase personas . Os adjunto el codigo! muchas gracias! MI PREGUNTA: ¿Porque cuando relleno el HashMap de Usuarios y Monitores , no me rellena los campos de id nombre apellidos fecha de nacimiento? ¿ Porque cuando imprimo el hashmap de personas me imprime el paquete donde se encuentra ? ejemplo: {1=es.uvigo.pii.instalacionesdeportivas.main.Persona@6d06d69c, 2=es.uvigo.pii.instalacionesdeportivas.main.Persona@7852e922, 3=es.uvigo.pii.instalacionesdeportivas.main.Persona@15db9742} import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.util.HashMap; import es.uvigo.pii.instalacionesdeportivas.main.Persona; public class FicheroPersonas { public static void main (String[] args ) { // TODO Auto-generated method stub HashMap<Integer,Persona> Personas= new HashMap<Integer,Persona>(); HashMap<Integer,Usuario> Usuarios= new HashMap<Integer,Usuario>(); HashMap<Integer,Monitor> Monitores= new HashMap<Integer,Monitor>(); int i=0; int idsOcupados=0; String rutaPersonas = "personas.txt"; try { // Apertura del fichero y creacion de BufferedReader para poder // hacer una lectura comoda (disponer del metodo readLine()). // Lectura del fichero while ((linea = br.readLine()) != null) { if(linea.startsWith("*")!=true){ datos[i]=linea; // guardo la linea i++; } if(linea.startsWith("*")==true){ if(datos[1].equalsIgnoreCase("usuario")){ System. out. println(datos [0]+datos [1]); Usuario usuario =new Usuario (Integer. parseInt(datos [0]),datos [2],datos [3],datos [4],datos [5],datos [6], Float. parseFloat(datos [7]),datos [8]); Usuarios. put(Integer. parseInt(datos [0]), usuario ); Persona persona =new Persona (Integer. parseInt(datos [0]),datos [2],datos [3],datos [4]); Personas. put(Integer. parseInt(datos [0]), persona ); } if(datos[1].equalsIgnoreCase("monitor")){ System. out. println(datos [0]+datos [1]); Monitor monitor =new Monitor (Integer. parseInt(datos [0]),datos [2],datos [3],datos [4], Integer. parseInt(datos [5]),datos [6]); Monitores. put(Integer. parseInt(datos [0]), monitor ); Persona persona =new Persona (Integer. parseInt(datos [0]),datos [2],datos [3],datos [4]); Personas. put(Integer. parseInt(datos [0]), persona ); } i=0; idsOcupados ++; } } if(datos[1].equalsIgnoreCase("usuario")){ System. out. println(datos [0]+datos [1]); idsOcupados ++; } if(datos[1].equalsIgnoreCase("monitor")){ System. out. println(datos [0]+datos [1]); idsOcupados ++; } System. out. println(Monitores ); e.printStackTrace(); } finally { // En el finally cerramos el fichero, para asegurarnos // que se cierra tanto si todo va bien como si salta // una excepcion. try { if (null != fr) { fr.close(); } e2.printStackTrace(); } } } } public class Usuario extends Persona{ public int idUsuario; public String fechaNacimiento ; public String actividadesPrevias ; public float saldo; public String actividadesActuales ; super(idUsuario,nombre,apellidos,fechaNacimiento); this.fechaAlta=fechaAlta; this.actividadesActuales=actividadesActuales; this.saldo=saldo; this.actividadesPrevias=actividadesPrevias; } //GETTERS & SETTERS @Override return "Usuario [nombre=" + nombre + ", apellido=" + apellidos+", fechaNacimiento=" + fechaNacimiento + ", fechaAlta=" + fechaAlta + ", actividadesPrevias=" + actividadesPrevias + ", saldo=" + saldo + ", actividadesActuales=" + actividadesActuales + "]"; } public String getFechaAlta () { return fechaAlta; } public void setFechaAlta (String fechaAlta ) { this.fechaAlta = fechaAlta; } public String getActividadesPrevias () { return actividadesPrevias; } public void setActividadesPrevias (String actividadesPrevias ) { this.actividadesPrevias = actividadesPrevias; } public float getSaldo() { return saldo; } public void setSaldo(float saldo) { this.saldo = saldo; } public String getActividadesActuales () { return actividadesActuales; } public void setActividadesActuales (String actividadesActuales ) { this.actividadesActuales = actividadesActuales; } } public class Monitor extends Persona{ public int idMonitor; public String fechaNacimiento ; public int horasAsignables; public String GruposImpartidos ; public Monitor (int idMonitor, String nombre, String apellidos, String fechaNacimiento, int horasAsignables, String GruposImpartidos ){ super(idMonitor,nombre,apellidos,fechaNacimiento); this.horasAsignables=horasAsignables; this.GruposImpartidos=GruposImpartidos; } @Override return "Monitor [nombre=" + nombre + ", apellidos=" + apellidos + ", fechaNacimiento=" + fechaNacimiento + ", horasAsignables=" + horasAsignables + ", GruposImpartidos=" + GruposImpartidos + "]"; } public int getHorasAsignables() { return horasAsignables; } public void setHorasAsignables(int horasAsignables) { this.horasAsignables = horasAsignables; } public String getGruposImpartidos () { return GruposImpartidos; } public void setGruposImpartidos (String gruposImpartidos ) { GruposImpartidos = gruposImpartidos; } } public class Persona { public int idPersona; public String fechaNacimiento ; super(); this.idPersona=idPersona; this.nombre=nombre; this.apellidos=apellidos; this.fechaNacimiento=fechaNacimiento; } //GETTERS & SETTERS public int getIdPersona() { return idPersona; } public void setIdPersona(int idPersona) { this.idPersona = idPersona; } 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 getFechaNacimiento () { return fechaNacimiento; } public void setFechaNacimiento (String fechaNacimiento ) { this.fechaNacimiento = fechaNacimiento; } }
|
|
|
5
|
Sistemas Operativos / Windows / error 0xc0000255 al instalar windows 10
|
en: 6 Enero 2017, 22:27 pm
|
Hola muy buenas, y gracias a todos los que me ayuden!
el problema es el siguiente: tenia un adware en el pc el cual no conseguia eliminar de ninguna manera, este lo que hacia era cambiar la pagina de inicio de google chrome asi como el motor de busqueda a otros motores como amisites por ejemplo. Desde que esto pasó el portatil comenzo a ir mas lento asi que como no tenia mucha informacion en el pc decidí formatearlo y reinstalar W10 pro.
Para reinstalar W10 pro lo hago desde un USB Booteable , he usado tanto windows media creation tool como Rufus para poder hacerlo booteable. Hasta aqui todo bien, el problema esta en que tengo dos ISO diferentes, la original descargada de microsoft y la otra descargarda de un post en fiuxy.com
Cuando utilizo la oficial instala crea el proceso de instalacion y cuando llega al siguiente paso despues de preparando los dispositivos pone preparando y el circulo de puntos dando vueltas durante horas lo he tenido mas de 20 horas y no acaba nunca.
En cambio cuando no utilizo la oficial me salta el error 0xc0000255
alguien me puede ayudar?? Gracias!
|
|
|
6
|
Programación / Programación C/C++ / AYUDA PROGRAMA EN C:No detecta los tipo Char
|
en: 6 Mayo 2016, 12:38 pm
|
; esto forma parte de un programa mayor ; el porblema esta en que cuando lo ejecuto y le introduzco por teclado un valor tal que resp pasa a ser igual a ... por ejemplo '3f', es decir: resp[0]=3 resp[1]=f entonces me deberia de volver a pedir que escoja un nuevo nivel de dificultad pero no lo hace. Lo que hace es retornarme la parte entera del array y , si no tiene parte entera me devuelve un 0; LO QUE QUIERO QUE HAGA ES QUE SI INTRODUZCO UN CARACTER ME LO DETECTE Y ME DIGA QUE VUELVA A INTRODUCIR LA DIFICULTAD. MUCHAS GRACIAS  int main(){ int control=0,n,i,dif; char resp[4]; printf("Nivel actual %i \n", dificultad); do{ printf("Elige el nuevo nivel[1..100]: \n"); fflush(stdin); scanf(" %s", &resp); n=strlen(resp); //COMPROBACIONES if(n<1||n>=4){control=1;} for(i=0;i<n;i++){ //letras if(resp[i]<'0'&& resp[i]>'9'){ control=2;}} switch(control){ case 1: printf("\nHas seleccionado un n\243mero no v\240lido\n\n");break; case 2: printf("El numero ha de contener solo digitos\n");break; case 0: dif=atoi(resp); if(dif>=1&&dif<=100){ printf("\nHas establecido numero de intentos máximo como: %i \n\n", dif);control=0;} else{printf("\nHas establecido un n\243mero no v\240lido\n\n"); control==1; } } }while(control==3 || control==2 || control==1); return 0;}
|
|
|
7
|
Programación / Programación C/C++ / Ayuda: programa en lenguaje C
|
en: 28 Abril 2016, 18:26 pm
|
Hola buenas, os pido ayuda con este programa. Lo que quiero es ordenar unos caracteres de tal manera que primero se impriman '*' , luego '|' y final mente' _ '. Para eso tiene que comparar un array predefinido con valor= 1234 , con otro que introducimos por teclado. Si estos dos son iguales el programa para de ejecutarse; sino sigue. Si el valor es correcto ha de escribir ****. Si un numero esta escrito en el array pero esta en una posicion incorrecta | y si no esta en el array una _. Por ejemplo : introducimos 1245 y nos devuelve **|_ , otro ejemplo; introducimos 3524 y devuelve *||_ Muchas gracias!!Y tened paciencia por favor , soy nuevo en programacion. ADEMAS si no fuera mucho pedir podriais decirme a que se debe este fallo en concreto: si escribimos cualquier numero mayor de 4 lo da por bueno, cuando deberia de escribir una barra baja ya que en el array solo hay numeros menores de 4. #include<stdio.h> #include<time.h> #include<ctype.h> #include<math.h> #include<stdlib.h> #include<string.h> int main (){ char cad[5]="1234"; char resp[5]; char resul[5]; char correc[5]="****"; int asteriscos=0, barras=0, bajas=0, intentos=0, controlador=0,i,j,k,q; do{ intentos ++; printf("Escribe una cadena de 4 numeros + ENTER: "); for(i=0;i>4;i++){ if(resp[i]<'0'||resp[i]>'9'){ printf("No pueden ser caracteres, tienen que ser numeros");} else continue;} if (strlen(resp )!=4 ){//si la cadena escrita es demasiado larga o corta printf("Error de longitud de cadena ");} for(i = 0; i < 4; i++){ for(j = 0; j < 4; j++){ if (i == j && cad[i]==resp[j]){ asteriscos=asteriscos+1;j==4;} if(i != j && cad[i]==resp[j]){ barras=barras+1;j==4;} else { bajas=bajas+1;j==4; } } } for(q=0;q<asteriscos;q ++){ resul[q]='*';} for(q=asteriscos; q<asteriscos+barras; q++){ resul[q]='/';} for(q=asteriscos+barras; q<4; q++){ resul[q]='_';} for(k = 0; k<4; k++){ intentos==100;} }while(intentos<100);return 0;}
MOD EDIT: Titulo y etiqueta GeSHi corregidos.
|
|
|
8
|
Programación / Programación C/C++ / [AYUDA] Juego Master mind
|
en: 20 Abril 2016, 12:40 pm
|
Hola a todos abrí este tema ya que necesito ayuda urgente con este programa. Estoy estudiando telecomunicaciones y me han mandado hacer el juego mastermind en lenguaje c. No estan definidas todas las funciones principales del juego aun , tan solo NivelDificultad, MENU, JugarPartida, impresionCARATULA... en fin; la duda es la siguiente: Al ejecutar la función NivelDificultad, se supone que la variable dificultad tendria que cambiar su valor de 100 por el valor que devuelve la funcion NivelDificultad. Eso lo que haíia sería que al ejecutar seguidamente JugarPartida limitar el numero de intentos que se puede jugar. Pero no lo hace, no guarda el valor devuelto con la funcion NivelDificultad. Algun consejo por favor? todos seran bien recibidos; soy nuevo en esto asi que tener piedad #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include <time.h>
//FUNCIONES CREADAS:
void impresionCARATULA(); void JugarPart(int dificultad, int intentos); void Gene_Num_Aleatorios(); int NivelDificultad(int dificultad); int MENU(int *dir_opcion, int dificultad, int control, int intentos);
int main(){ int opcion, num_adivinar[4],num_jugador, control, dificultad, intentos; control=1; impresionCARATULA(); dificultad=100; do{ control=MENU(&opcion, dificultad, control, intentos);}while(control==1);
}
//CODIGO DE LAS FUNCIONES CREADAS:
void impresionCARATULA(){//imprimir la caratula intentar que sea lo mas corto posible. int i; int aste; int linea=0; do{ linea ++; if(linea != 4){ for(aste=0; aste<80;aste ++){// LINEA DE ASTERISCOS printf("*");} printf("\n");} else{ for(aste=0;aste<32;aste ++){printf("*");}printf(" MASTER MIND ");for(aste=0;aste<35;aste ++){printf("*");}printf("\n");//Linea mastermind }}while(linea<7);}
int MENU(int *dir_opcion, int dificultad, int control, int intentos){//imprimir el menú printf("\n1) Jugar partida \n2) Jugar partida de prueba\n3) Establecer nivel de dificultad\n4) Listar historial de partidas\n0) Salir\n\n ¿Siguiente operacion?\t"); scanf("%i", dir_opcion); switch(*dir_opcion){ case 1: control=1; JugarPart(dificultad, intentos); break; case 2: control=1; break; case 3: control=1; NivelDificultad( dificultad); break; case 4: control=1; printf("Has selecionado Listar historial de partidas\n"); break; case 0: printf("Has seleccionado Salir\n"); control=0; break; default: control=1; printf("Has seleccionado una opcion no valida\n"); break; }return control; } int NivelDificultad(int dificultad){ int c1=0; do{ printf("Seleccione un numero de 1 a 100 para establecer el numero de intentos: \t"); scanf("%i", & dificultad); if(1<dificultad && dificultad<100){ printf("Has establecido numero de intentos máximo como: %i \n\n", dificultad); c1=0;} else{printf("Has selecionado un numero no valido\n");c1=1;}}while(c1!=0);return dificultad;}
void Gen_Num_Aleatorio_y_Comp(int adivinar[],int n){
int i; int bande; int j; int cont; srand (time(NULL)); do{ for(cont=0; cont<4; cont++){ adivinar[cont]=(rand() %10); //del 0 al 10 for(j=0;j<4;j ++){ for(i=j+1;j<3;i++){ if(adivinar[j]==adivinar[i]){ bande=1; } else continue; } } }}while(bande!=1); printf("correcto");}
void JugarPart(int dificultad, int intentos){ printf("Has seleccionado Jugar Partida con dificultad %i \n", intentos); do{ intentos++; printf("2f\t", dificultad); }while(intentos<dificultad); }
|
|
|
9
|
Programación / Programación C/C++ / ayuda: programa en lenguaje c
|
en: 20 Abril 2016, 12:35 pm
|
Hola a todos abrí este tema ya que necesito ayuda urgente con este programa. Estoy estudiando telecomunicaciones y me han mandado hacer el juego mastermind en lenguaje c. No estan definidas todas las funciones principales del juego aun , tan solo NivelDificultad, MENU, JugarPartida, impresionCARATULA... en fin; la duda es la siguiente: Al ejecutar la función NivelDificultad, se supone que la variable dificultad tendria que cambiar su valor de 100 por el valor que devuelve la funcion NivelDificultad. Eso lo que haíia sería que al ejecutar seguidamente JugarPartida limitar el numero de intentos que se puede jugar. Pero no lo hace, no guarda el valor devuelto con la funcion NivelDificultad. Algun consejo por favor? todos seran bien recibidos; soy nuevo en esto asi que tener piedad #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include <time.h>
//FUNCIONES CREADAS:
void impresionCARATULA(); void JugarPart(int dificultad, int intentos); void Gene_Num_Aleatorios(); int NivelDificultad(int dificultad); int MENU(int *dir_opcion, int dificultad, int control, int intentos);
int main(){ int opcion, num_adivinar[4],num_jugador, control, dificultad, intentos; control=1; impresionCARATULA(); dificultad=100; do{ control=MENU(&opcion, dificultad, control, intentos);}while(control==1);
}
//CODIGO DE LAS FUNCIONES CREADAS:
void impresionCARATULA(){//imprimir la caratula intentar que sea lo mas corto posible. int i; int aste; int linea=0; do{ linea ++; if(linea != 4){ for(aste=0; aste<80;aste ++){// LINEA DE ASTERISCOS printf("*");} printf("\n");} else{ for(aste=0;aste<32;aste ++){printf("*");}printf(" MASTER MIND ");for(aste=0;aste<35;aste ++){printf("*");}printf("\n");//Linea mastermind }}while(linea<7);}
int MENU(int *dir_opcion, int dificultad, int control, int intentos){//imprimir el menú printf("\n1) Jugar partida \n2) Jugar partida de prueba\n3) Establecer nivel de dificultad\n4) Listar historial de partidas\n0) Salir\n\n ¿Siguiente operacion?\t"); scanf("%i", dir_opcion); switch(*dir_opcion){ case 1: control=1; JugarPart(dificultad, intentos); break; case 2: control=1; break; case 3: control=1; NivelDificultad( dificultad); break; case 4: control=1; printf("Has selecionado Listar historial de partidas\n"); break; case 0: printf("Has seleccionado Salir\n"); control=0; break; default: control=1; printf("Has seleccionado una opcion no valida\n"); break; }return control; } int NivelDificultad(int dificultad){ int c1=0; do{ printf("Seleccione un numero de 1 a 100 para establecer el numero de intentos: \t"); scanf("%i", & dificultad); if(1<dificultad && dificultad<100){ printf("Has establecido numero de intentos máximo como: %i \n\n", dificultad); c1=0;} else{printf("Has selecionado un numero no valido\n");c1=1;}}while(c1!=0);return dificultad;}
void Gen_Num_Aleatorio_y_Comp(int adivinar[],int n){
int i; int bande; int j; int cont; srand (time(NULL)); do{ for(cont=0; cont<4; cont++){ adivinar[cont]=(rand() %10); //del 0 al 10 for(j=0;j<4;j ++){ for(i=j+1;j<3;i++){ if(adivinar[j]==adivinar[i]){ bande=1; } else continue; } } }}while(bande!=1); printf("correcto");}
void JugarPart(int dificultad, int intentos){ printf("Has seleccionado Jugar Partida con dificultad %i \n", intentos); do{ intentos++; printf("2f\t", dificultad); }while(intentos<dificultad); }
|
|
|
|
|
|
|