elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / Programación C/C++ / Ayuda con estructuras anidadas en: 20 Julio 2018, 00:50 am
Cuando estoy introduciendo los datos me dice programa dejo de funcionar, si alguien puede ver mi error y decirme por favor
Código
  1. /* Se desea registrar una estructura Persona_Empleado que contenga como miembros los datos de una
  2. persona empleado que a su vez tenga los datos de la fecha de nacimiento. En el programa se muestra
  3. el uso de la estructura, se define una función para dar entrada a los datos de la estructura y otra
  4. función para dar salida a los datos de una estructura persona. A la función de entrada se transmite
  5. por dirección (&p) la variable estructura, por lo que el argumento correspondiente tiene que ser un
  6. Ipuntero (*p) y el acceso a los campos se hace con el selector -> */
  7.  
  8. #include<stdio.h>
  9.  
  10. struct fecha{
  11. int dia, mes, año;
  12. };
  13.  
  14. struct persona{
  15. char nombre[20];
  16. int edad;
  17. int altura;
  18. int peso;
  19. struct fecha f;
  20. };
  21.  
  22. struct persona_empleado{
  23. struct persona unapersona;
  24. int salario;
  25. int horas_por_semana;
  26. };
  27.  
  28. /* Prototipo de funciones */
  29.  
  30. void entrada(struct persona_empleado *p);
  31. void salida(struct persona_empleado up);
  32.  
  33. void main(){
  34.  
  35. /* Define una variable persona_empleado */
  36. struct persona_empleado p;
  37.  
  38. /* Llamada a entrada() transmitiendo la direccion */
  39.    entrada(&p);
  40.  
  41.    /* Salida de los datos almacenados */
  42.    salida(p) ;
  43.  
  44. }
  45.  
  46. void entrada(struct persona_empleado *p){
  47.  
  48. printf("\nIntroduzca su nombre: ");
  49. gets(p->unapersona.nombre);
  50.  
  51. printf("Introduzca su edad: ");
  52. scanf("%d", p->unapersona.edad);
  53.  
  54.  
  55. printf("Introduzca su altura: ");
  56. scanf("%d", p->unapersona.altura);
  57.  
  58. printf("Introduzca su peso: ");
  59. scanf("%d", p->unapersona.peso);
  60.  
  61. printf("Introduzca su fecha de nacimiento: ");
  62. scanf("%d %d %d", p->unapersona.f.dia,
  63.    p->unapersona.f.mes,
  64. p->unapersona.f.año);
  65.  
  66. printf("Introduzca su salario: ");
  67. scanf("%d", p->salario);
  68.  
  69. printf("Introduzca numero de horas");
  70. scanf("%d", p->horas_por_semana);
  71.  
  72. }
  73.  
  74. void salida(struct persona_empleado up){
  75. printf("\n\n\tDatos de un Empleado");
  76. printf("\n\n\t--------------------");
  77. printf("Nombre: %s\n", up.unapersona.nombre);
  78. printf("Edad: %d\n", up.unapersona.edad);
  79. printf("Fecha de nacimiento: %d-%d-%d", up.unapersona.f.dia,
  80.    up.unapersona.f.mes,
  81. up.unapersona.f.año);
  82. printf("Altura: %d\n", up.unapersona.altura);
  83. printf("Peso: %d\n", up.unapersona.peso);
  84. printf("Salario: %d\n", up.salario);
  85. printf("Numero de horas: %d\n", up.horas_por_semana);
  86. }
  87.  
22  Programación / Programación C/C++ / Re: Guardar Lista Enlazada en Archivo Binario en: 4 Abril 2018, 05:42 am
gracias no vi eso
23  Programación / Programación C/C++ / Guardar Lista Enlazada en Archivo Binario en: 4 Abril 2018, 00:34 am
Hola estoy comenzando con las listas, si alguien puede decirme caul es mi error el programa se me queda colgado en la funcion LeerDatosPersona y no encuentro el problema

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #include "Funciones.h"
  6.  
  7. void InicioSecion();
  8. void RegistrarPersona();
  9.  
  10. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  11.  
  12. int main(int argc, char *argv[]) {
  13. int opcion = 0, repite = 1;
  14.  
  15. do{
  16.  
  17. Presentacion();
  18. Menu();
  19. LeerCadena(Linea, M);
  20. sscanf(Linea, "%d", &opcion);
  21.  
  22. switch(opcion){
  23. case 1:
  24. break;
  25. case 2:
  26. RegistrarPersona();
  27.    break;
  28. case 3:
  29.    break;
  30. case 4:
  31. repite = 0;
  32.    break;
  33. default:
  34.    printf("\n\tOpcion Incorrecta: PRECIONE (1, 2, 3, 4)");
  35. break;
  36. }
  37.  
  38. }while(repite);
  39.  
  40. return 0;
  41. }
  42.  
  43. void RegistrarPersona(){
  44. Persona *persona;
  45. int buscarCedula = 0, repite = 1;
  46. char respuesta[M];
  47.  
  48. do{
  49.  
  50. system ("cls");
  51. Presentacion();
  52. printf("\n\n\t\t\t    .:Registro de Usuario:.\n");
  53.  
  54. printf("\n\tCedula: ");
  55. LeerCadena(Linea, M);
  56. sscanf(Linea, "%d", &buscarCedula);
  57.  
  58. if(!ExistePersona(buscarCedula, persona)){
  59.  
  60. persona = LeerDatosPersona(buscarCedula);
  61.  
  62. if (primer == NULL) primer = persona;
  63. if (ultimo != NULL) ultimo->siguiente = persona;
  64.  
  65. ultimo = persona;
  66.  
  67. if (GuardarDatos(ultimo)){
  68. system ("cls");
  69. Presentacion();
  70. printf("\n\n\t\t\t    .:Usuario Registrado Satisfactoriamente:.\n");
  71. }else{
  72. system ("cls");
  73. Presentacion();
  74. printf("\n\n\t\t\t    .:ERROR:.\n");
  75. printf("\n\tIntentelo Mas tarde");
  76. }
  77.  
  78. }else{
  79. system ("cls");
  80. Presentacion();
  81. printf("\n\n\t\t\t    .:El Usuario %d ya EXISTE:.\n", buscarCedula);
  82.            printf("\n\tNo puede registrarse multiples veces\n");
  83. }
  84.  
  85. printf("\n\tDesea registrar otra persona? [S/N]: ");
  86. LeerCadena(respuesta, M);
  87.  
  88. if (!(strcmp(respuesta, "s") == 0 || strcmp(respuesta, "S") == 0)){
  89. repite = 0;
  90. }
  91.  
  92. }while(repite);
  93. }

Funciones.h

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void Presentacion(){
  6. printf("\n\t****");                                                                
  7. printf("\n\t****");
  8. }
  9.  
  10. void Menu(){
  11. printf("\n\n\t\t\t    .::.\n");
  12.    printf("\n\t\t[1]. Inicio de Sesion\n");
  13.    printf("\t\t[2]. Registro de Usuario\n");
  14.    printf("\t\t[3]. Administrador\n");
  15.    printf("\t\t[4]. Salir\n");
  16.    printf("\n\t\tIngrese su Opcion: [ ]\b\b");
  17. }
  18.  
  19. #define M 100
  20. char Linea[M];
  21.  
  22. typedef struct Persona{
  23. char nombre[M];
  24. char apellido[M];
  25. char correo[M];
  26. char password[M];
  27. long int telefono;
  28. int cedula;
  29. struct Persona *siguiente;
  30. }Persona;
  31.  
  32. Persona *primer = NULL;
  33. Persona *ultimo = NULL;
  34.  
  35. int LeerCadena(char *cadena, int n){
  36.    int i, c;
  37. c = getchar();
  38.  
  39.    if (c == EOF){
  40.        cadena[0] = '\0';
  41.        return 0;
  42.    }
  43.  
  44.    if (c == '\n'){
  45.        i = 0;
  46.    }else{
  47. cadena[0] = c;
  48.        i = 1;
  49.    }
  50.  
  51.    for (; i < n-1 && (c = getchar()) != EOF && c != '\n'; i++){
  52.        cadena[i] = c;
  53.    }
  54.  
  55.    cadena[i] = '\0';
  56.  
  57.    if (c != '\n' && c != EOF)
  58.        while ((c = getchar()) != '\n' && c != EOF);
  59.  
  60.    return 1;
  61. }
  62.  
  63. char ExistePersona(int buscarCedula, Persona *persona){
  64. FILE *archivo = fopen ("DATOS.dat", "rb");
  65. char existe;
  66.  
  67. if (archivo == NULL){
  68. existe = 0;
  69. }else{
  70. existe = 0;
  71.  
  72. fread (&(*persona), sizeof(persona), 1, archivo);
  73.  
  74. while(!feof(archivo)){
  75. if (persona->cedula == buscarCedula){
  76. existe = 1;
  77. break;
  78. }
  79.  
  80. fread (&(*persona), sizeof(persona), 1, archivo);
  81. }
  82.  
  83. fclose(archivo);
  84. }
  85.  
  86. return existe;
  87. }
  88.  
  89. Persona *LeerDatosPersona(int cedula){
  90. Persona *persona = (Persona*) malloc(sizeof(Persona));
  91.  
  92. if (persona != NULL){
  93.    persona->cedula = cedula;
  94.  
  95.    printf("\n\t\tPrimer Nombre: ");
  96.    LeerCadena(persona->apellido, M);
  97.  
  98.    printf("\n\t\tPrimer Apellido: ");
  99.    LeerCadena(persona->apellido, M);
  100.  
  101.    printf("\n\t\tCorreo: ");
  102.        LeerCadena(persona->correo, M);
  103.  
  104.    printf("\n\t\tContrasena: ");
  105.    LeerCadena(persona->password, M);
  106.  
  107.     printf("\n\t\tTelefono: ");
  108.     LeerCadena(Linea, M);
  109.     sscanf(Linea, "%d", persona->telefono);
  110.  
  111.     persona->siguiente = NULL;
  112.  
  113. }else{
  114. system ("cls");
  115. Presentacion();
  116. printf("\n\n\t\t\t    .:Memoria Insuficiente:.\n");
  117. }
  118.  
  119. return persona;
  120. }
  121.  
  122. char GuardarDatos(Persona *persona){
  123. char guardar;
  124.  
  125. FILE *archivo = fopen ("DATOS.dat", "ab");
  126.  
  127. if (archivo == NULL){
  128. guardar = 0;
  129. }else{
  130. fwrite (&(*persona), sizeof(persona), 1, archivo);
  131. guardar = 1;
  132.  
  133. fclose (archivo);
  134. }
  135.  
  136. return guardar;
  137. }
24  Programación / Programación C/C++ / Programa en C que Agenda Cita de Pasaporte en: 22 Marzo 2018, 20:22 pm
Hola necesito ayuda con un programa en c que de una cita para pasaporte, por ejemplo;
pedir Cita: si o no
si: fecha de hoy 22/03/2018 dará la cita para 10 días después y no puede ser sábado ni domingo 2/04/2018

y el programa solo puede dar 10 citas por día

Si alguien me puede dar una idea de como debo hacer esto, que no entiendo muy bien como hacer esto
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines