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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Colas de supermercado en: 13 Marzo 2020, 23:45 pm
Hola tengo que hacer un proyecto de simulación gráfica de colas de supermercado en lenguaje c, y no encuentro ninguna información de esto para guiarme, donde puedo encontrar información de esto? "NO ESTOY PIDIENDO CÓDIGO" ya hice las colas y las voy mostrando en pantalla de esta forma

system("cls");

caja 1: *****

caja 2: ****

Imprimo las colas de cada caja completa y voy borrando la pantalla para que se vea cuando sale y entra un cliente. Lo que quiero saber es como simular esto de forma gráfica, que librería debo usar, porque el proyecto me pide que los clientes entran en el supermercado y se muevan por los pasillos y luego a las cajas, y debo usar hilos para esto? "SOLO PIDO ORIENTACIÓN NO QUE ME HAGAN EL PROYECTO"
2  Programación / Programación C/C++ / Ayuda con memoria dinamica en: 10 Febrero 2020, 05:44 am
Que error tengo en la linea 128?

mercado->p = (struct Puestos) malloc(sizeof(struct Puestos) * tam);

y si hago estas dos funciones

void espacio_memoria(Mercados *mercado); para crear espacio en memoria de todo
void free_memoria(Mercados *mercado); y para liberarla

también me funciona?

Código
  1. /* Se necesita la información de los mercados municipales de ciudad Guayana, indicando
  2.    el nombre de cada mercado, dirección, TLF y la información del coordinador del
  3.    mercado (c.i, nombre, apellido y teléfono). Cada mercado tiene un máximo de 50
  4.    puestos, a cada puesto se le específica un nro de local y tamaño (largo y ancho),
  5.    datos del propietario (TLF, c.i, nombre y apellido) y cada local almacena
  6.    adicionalmente los ingresos por cada mes del año.
  7.    
  8.    *Realizar una función para solicitar la información y una para mostrarla, usar dichas
  9.    funciones para un total de 20 mercados municipales
  10.    
  11.     *Crear las cadenas dinámicamente.
  12.     *Los puestos de mercado crearlos dinámicamente.
  13.     *Los mercados crearlos dinámicamente. */
  14.  
  15. #include<stdio.h>
  16. #include<stdlib.h>
  17.  
  18. typedef struct Mercados_Municipales{
  19. char* nombre;
  20. char* direccion;
  21. char* telefono;
  22. struct Datos_Coordinador *info_c;
  23. struct Puestos *p;
  24. }Mercados;
  25.  
  26. struct Datos_Coordinador{
  27. char* nombrec;
  28. char* apellidoc;
  29. char* cedulac;
  30. char* telefonoc;
  31. };
  32.  
  33. struct Puestos{
  34. int numero;
  35. struct Tamano *t;
  36. struct Datos_Propietario *info_p;
  37. int* mensual;
  38. };
  39.  
  40. struct Tamano{
  41. float largo;
  42. float ancho;
  43. };
  44.  
  45. struct Datos_Propietario{
  46. char* nombrep;
  47. char* apellidop;
  48. char* cedulap;
  49. char* telefonop;
  50. };
  51.  
  52. void Presentacion();
  53. Mercados *Leer_Mercado();
  54.  
  55. int main(){
  56.  
  57. Mercados *mercados[20];
  58. char desicion;
  59. int cantidad;
  60.  
  61. Presentacion();
  62.  
  63. for(cantidad = 0; cantidad < 20; cantidad ++){
  64.  
  65. printf("\tMercado Municipal #%d\n\n", cantidad + 1);
  66. mercados[cantidad] = Leer_Mercados();
  67.  
  68. do{
  69. printf("Pasamos a otro? [S/N] ", cantidad);
  70. desicion = getchar(); // Leemos un caracter
  71. while(getchar() == EOF); // Necesario para se coma el \n
  72. }while(desicion != 'S' && desicion != 's' && desicion != 'N' && desicion != 'n');
  73. if(desicion == 'N' || desicion == 'n') break; // Si elige N, se sale
  74.  
  75. }
  76.  
  77. return 0;
  78. }
  79.  
  80. void Presentacio(){
  81. printf("\t\t*********************************\n");
  82. printf("\t\t*         Giudad Guayana        *\n");
  83. printf("\t\t*      Mercados Municipales     *\n");
  84. printf("\t\t*********************************\n\n");
  85. }
  86.  
  87. Mercados *Leer_Mercado(){
  88.  
  89. Mercados *mercado = (Mercados *) malloc(sizeof(Mercados));
  90.  
  91. mercado->nombre = (char *) malloc(sizeof(char) * 20);
  92. mercado->direccion = (char *) malloc(sizeof(char) * 50);
  93. mercado->telefono = (char * ) malloc(sizeof(char) * 15);
  94.  
  95. printf("Nombre: ");
  96. gets(mercado->nombre);
  97. printf("Direccion: ");
  98. gets(mercado->direccion);
  99. printf("Telefono: ");
  100. gets(mercado->telefono);
  101.  
  102. printf("\nInformacion del Coordinador\n\n");
  103.  
  104. mercado->info_c = (struct Datos_Coordinador *) malloc(sizeof(struct Datos_Coordinador));
  105.  
  106. mercado->info_c->nombrec = (char *) malloc(sizeof(char) * 20);
  107. mercado->info_c->apellidoc = (char *) malloc(sizeof(char) * 20);
  108. mercado->info_c->cedulac = (char *) malloc(sizeof(char) * 15);
  109. mercado->info_c->telefonoc = (char *) malloc(sizeof(char) * 15);
  110.  
  111. printf("\tNombre: ");
  112. gets(mercado->info_c->nombrec);
  113. printf("\tApellido: ");
  114. gets(mercado->info_c->apellidoc);
  115. printf("\tCedula: ");
  116. gets(mercado->info_c->cedulac);
  117. printf("\tTelefono: ");
  118. gets(mercado->info_c->telefonoc);
  119.  
  120. printf("\nNumero de Locales ");
  121. int i, tam; scanf("%d", &tam);
  122.  
  123. mercado->p = (struct Puestos) malloc(sizeof(struct Puestos) * tam);
  124.  
  125. for(i = 0; i < tam; i++){
  126.  
  127. mercado->p[i]->numero = i;
  128.  
  129. mercado->p[i]->t = (struct Tamano) malloc(sizeof(struct Tamano));
  130.  
  131. mercado->p[i]->info_p = (struct Datos_Propietario) malloc(sizeof(struct Datos_Propietario));
  132. mercado->p[i]->info_p->nombrep = (char *) malloc(sizeof(char) * 20);
  133. mercado->p[i]->info_p->apellidop = (char *) malloc(sizeof(char) * 20);
  134. mercado->p[i]->info_p->cedulap = (char *) malloc(sizeof(char) * 15);
  135. mercado->p[i]->info_p->telefonop = (char *) malloc(sizeof(char)* 15);
  136.  
  137. printf("\n\tTamaño [L/A]: ");
  138. scanf("&d %d", &mercado->p->t->largo, &mercado->p->t->ancho);
  139. printf("\tInformacion del Propietario\n\n");
  140. printf("\t\tNonbre: ");
  141. gets(mercado->p->info_p->nombrep);
  142. printf("\t\tApellido: ");
  143. gets(mercado->p->info_p->apellidop);
  144. printf("\t\tCedula: ");
  145. gets(mercado->p->info_p->cedulap);
  146. printf("\t\tTelefono: ");
  147. gets(mercado->p->info_p->telefonop);
  148.  
  149. printf("\n\tIngresos Mensuales: "); int j;
  150. mercado->p->mensual = (int *) malloc(sizeof(int) * 12);
  151.  
  152. for(j = 0; j < 12; j++){
  153. printf("\t\t#%d. ", j + 1);
  154. scanf("%d", &mercado->p->mensual[j]);
  155. }
  156.  
  157. }
  158.  
  159. return mercado;
  160. }
  161.  
3  Programación / Programación C/C++ / Estructuras Anidadas, dudas en: 8 Febrero 2020, 21:28 pm
Nose  si la estructura anidada esta bien declarada porque cuando voy a ingresar los datos del coordinador el programa deja de funcionar, y si estoy creando bien las cadenas y mercados dinamicamente?

Código
  1. /*
  2.       Crear las cadenas dinámicamente.
  3.       Los mercados crearlos dinámicamente.  */
  4.  
  5. #include<stdio.h>
  6. #include<stdlib.h>
  7.  
  8. typedef struct Mercados_Municipales{
  9. char *nombre;
  10. char *direccion;
  11. char *telefono;
  12. struct Datos_Coordinador *c;
  13. }Mercados;
  14.  
  15. struct Datos_Coordinador{
  16. char *nombrec;
  17. char *apellidoc;
  18. char *cedulac;
  19. char *telefonoc;
  20. };
  21.  
  22. void Presentacion();
  23. Mercados *Leer_Mercado(void);
  24. void Imprimir_Mercado(Mercados *mercado);
  25.  
  26. int main(){
  27. Mercados *mercados[20];
  28. char desicion;
  29. int cantidad, mercado = 0;
  30.  
  31. Presentacion();
  32.  
  33. for(cantidad = 0; cantidad < 20; cantidad++){
  34.  
  35. printf("\n\tMercado Municipal #%d\n\n", cantidad + 1);
  36. mercados[cantidad] = Leer_Mercado();
  37.  
  38. do{
  39.  
  40. printf("\n\tPasamos a otro? [S/N] ");
  41. desicion = getchar();       /* Leemos un caracter */
  42. while(getchar() == EOF);    /* Necesario para que se coma el \n */
  43.  
  44. }while(desicion != 'S' && desicion != 's' && desicion != 'N' && desicion != 'n');
  45. /* Si elige N o n, se sale */
  46. if(desicion == 'N' || desicion == 'n') break;
  47. }
  48.  
  49. printf("\nInformacion del Mercado: ");
  50. scanf("%d", &mercado);
  51.  
  52. Imprimir_Mercado(mercados[mercado - 1]);
  53.  
  54. return 0;
  55. }
  56.  
  57. void Presentacion(){
  58. printf("\t\t********************************\n");
  59. printf("\t\t*        Ciudad Guayana        *\n");
  60. printf("\t\t*     Mercados municipales     *\n");
  61. printf("\t\t********************************\n");
  62. }
  63.  
  64. Mercados *Leer_Mercado(){
  65.  
  66. Mercados *mercado = (Mercados *) malloc(sizeof(Mercados));
  67.  
  68. mercado->nombre = (char *) malloc(sizeof(char) * 20);
  69. mercado->direccion = (char *) malloc(sizeof(char) * 50);
  70. mercado->telefono = (char *) malloc(sizeof(char) * 15);
  71.  
  72. printf("Nombre: ");
  73. gets(mercado->nombre);
  74. printf("Direccion: ");
  75. gets(mercado->direccion);
  76. printf("Telefono: ");
  77. gets(mercado->telefono);
  78.  
  79. mercado->c->nombrec = (char *) malloc(sizeof(char) * 20);
  80. mercado->c->apellidoc = (char *) malloc(sizeof(char) * 20);
  81. mercado->c->cedulac = (char *) malloc(sizeof(char) * 15);
  82. mercado->c->telefonoc = (char *) malloc(sizeof(char) * 15);
  83.  
  84. printf("Informacion del Coordinador\n\n");
  85. printf("\tNombre: ");
  86. gets(mercado->c->nombrec);
  87. printf("\tApellido: ");
  88. gets(mercado->c->apellidoc);
  89. printf("\tCedula: ");
  90. gets(mercado->c->cedulac);
  91. printf("\tTelefono: ");
  92. gets(mercado->c->telefonoc);
  93.  
  94. return mercado;
  95. }
  96.  
  97. void Imprimir_Mercado(Mercados *mercado){
  98. printf("\n\tMercado Municipal: %s\n\n", mercado->nombre);
  99.  
  100. printf("Direccion: %s\tTelefono: %s\n\n",
  101.       mercado->direccion, mercado->telefono);
  102.  
  103. printf("Datos del Coordinador:\n\n");
  104. printf("%s %s\tCedula: %s\n",
  105.       mercado->c->nombrec, mercado->c->apellidoc,
  106.   mercado->c->cedulac);
  107.    printf("Telefono: %s\n\n", mercado->c->telefonoc);
  108. }
4  Programación / Programación C/C++ / Ayuda con Estructuras en: 8 Febrero 2020, 07:40 am
El programa deja de funcionar con la funcion imprimir_mercado, y no entiendo por que sucede esto

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef struct Mercados_Municipales{
  6. char nombre[20];
  7. char direccion[50];
  8. char telefono[11];
  9. }Mercados;
  10.  
  11. Mercados leer_mercado(void);
  12. void imprimir_mercado(Mercados mercado);
  13.  
  14. int main(){
  15. Mercados mercados[20];
  16. Mercados mercado;
  17. char desicion;
  18. int i, cantidad = 0, numero;
  19.  
  20. printf("\n\t\tMercados Municipales de Ciudad Guayana\n\n");
  21.  
  22. while(cantidad < 20){
  23.  
  24. do{
  25. printf("%d Mercados Municipales. Pasamos a otro? [S/N] ", cantidad);
  26. desicion = getchar(); // Leemos un caracter
  27. while(getchar() == EOF); // Necesario para se coma el \n
  28. }while(desicion != 'S' && desicion != 's' && desicion != 'N' && desicion != 'n');
  29. if(desicion == 'N' || desicion == 'n') break; // Si elige N, se sale
  30.  
  31. mercado = leer_mercado();
  32. mercados[cantidad++] = mercado;
  33. }
  34.  
  35. printf("\nMostrar informacion del Mercado: ");
  36. scanf("%d", numero);
  37.  
  38. imprimir_mercado(mercados[numero]);
  39.  
  40. return 0;
  41. }
  42.  
  43. Mercados leer_mercado(){
  44. Mercados mercado;
  45.  
  46. printf("\nNombre: ");
  47. gets(mercado.nombre);
  48. printf("Direccion: ");
  49. gets(mercado.direccion);
  50. printf("Telefono: ");
  51. gets(mercado.telefono);
  52. printf("\n");
  53.  
  54. return mercado;
  55. }
  56.  
  57. void imprimir_mercado(Mercados mercado){
  58. printf("\n\n\t\t%s", mercado.nombre);
  59. printf("\nDireccion: &s\tTelefono: %s\n", mercado.direccion, mercado.telefono);
  60. }
  61.  
5  Programación / Programación C/C++ / AYUDA: generar numero alfanumérico en: 8 Noviembre 2018, 03:37 am
quiero generar un alfanumérico pero me sale caracteres que no quiero

Código
  1. #include<stdio.h>
  2. #include<time.h>
  3.  
  4. int main(){
  5. int i;
  6.  
  7. char aleatorio[10];
  8.    srand(time(NULL));
  9.    for(i=0; i <= 9; i++)
  10.        aleatorio[i] = 33 + rand() % (126 - 33);
  11.  
  12. printf("%s", aleatorio);
  13. return 0;
  14. }
6  Programación / Programación C/C++ / Ayuda URGENTE con este programa en C en: 22 Octubre 2018, 01:13 am
Tengo problemas con estas  dos funciones void RegistrarUsuario(); void InicioSesion(); la registrar usuario me guarda el primer usuario cuando se crea al archivo pero luego me dice email registrado con todos los demás que intento guardar y inicio sesión después de introducir email y contraseña dice programa dejo de funcionar

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<windows.h>
  5.  
  6. #define MAX 50
  7.  
  8. char Linea[MAX];
  9.  
  10. /* ----------------------
  11.   | Definir Estructuras |
  12.   ----------------------*/
  13.  
  14. // Usuario
  15. typedef struct Billetera{
  16. char moneda[MAX];
  17. float saldo;
  18. }Monedas;
  19.  
  20. typedef struct Datos{
  21. char nombre[MAX];
  22. char apellido[MAX];
  23. char telefono[MAX];
  24. char pais[MAX];
  25. }DatosPersonales;
  26.  
  27. typedef struct PerfilUsuario{
  28. char e_mail[MAX];
  29. char pasword[MAX];
  30. DatosPersonales p;
  31. Monedas m;
  32. }Usuario;
  33. // Administrador
  34. typedef struct CompraVenta{
  35. char moneda[MAX];
  36. float precioD;
  37. float precioE;
  38. float precioBS;
  39. float compra;
  40. float venta;
  41. }Moneda;
  42.  
  43. typedef struct PerfilAdministrador{
  44. Moneda monedas;
  45. }Administrador;
  46.  
  47. int MostrarMenu_BilleteraVirtual();
  48. int MostrarMenu_InicioSesion();
  49. int LeerCadena(char *cadena, int n);
  50. int ConfirmarEmail(char email[], Usuario *usuario);
  51.  
  52. void InicioSesion();
  53. void RegistrarUsuario();
  54. void GuardarCuentaUsuario(Usuario *usuario);
  55.  
  56. void MenuPrincipal();
  57. void MenuInicioSesion();
  58. void FinalizarPrograma();
  59.  
  60.  
  61. int main(){
  62.  
  63. switch(MostrarMenu_BilleteraVirtual()){
  64. case 1:
  65. system("cls");
  66. InicioSesion();
  67. system("cls");
  68. break;
  69. case 2:
  70. system("cls");
  71. RegistrarUsuario();
  72.    break;
  73. case 3:
  74.    break;
  75. case 4:
  76.    FinalizarPrograma();
  77.    break;
  78. default:
  79.    system("cls");
  80.    printf("\n\t\t ===================");
  81.    printf("\n\t\t| Opcion incorrecta |");
  82.    printf("\n\t\t ===================");
  83.    MenuPrincipal();
  84.    main();
  85. }
  86.  
  87. return 0;
  88. }
  89.  
  90. int MostrarMenu_BilleteraVirtual(){
  91. int opcion = 0;
  92. printf("\n\t\t\t\t ===================");
  93. printf("\n\t\t\t\t| Billetera Virtual |");
  94. printf("\n\t\t\t\t ===================\n\n");
  95.  
  96. printf("\t\t[1] Ingresar como Usuario\n");
  97. printf("\t\t[2] Registrarse\n");
  98. printf("\t\t[3] Ingresar como Administrador\n");
  99. printf("\t\t[4] Salir del Programa\n");
  100.  
  101. printf("\n\t\tDigite su opcion: [ ]\b\b");
  102. LeerCadena(Linea, MAX);
  103. sscanf(Linea, "%d", &opcion);
  104. return opcion;
  105. }
  106.  
  107. int MostrarMenu_InicioSesion(){
  108. int opcion = 0;
  109.  
  110. printf("\t\t[1] Perfil de Usuario\n");
  111. printf("\t\t[2] Su Billetera\n");
  112. printf("\t\t[3] Comprar Criptomonedas\n");
  113. printf("\t\t[4] Vender Criptomonedas\n");
  114. printf("\t\t[5] Cerrar Sesion\n");
  115.  
  116. printf("\n\t\tDigite su opcion: [ ]\b\b");
  117. LeerCadena(Linea, MAX);
  118. sscanf(Linea, "%d", &opcion);
  119. return opcion;
  120. }
  121.  
  122. void RegistrarUsuario(){
  123. Usuario usuario;
  124. printf("\n\t\t\t\t ================");
  125. printf("\n\t\t\t\t| Cree su Cuenta |");
  126. printf("\n\t\t\t\t ================\n\n");
  127.    printf("\t\tNombre de pila: ");
  128. LeerCadena(usuario.p.nombre, MAX);
  129. printf("\t\tApellido: ");
  130. LeerCadena(usuario.p.nombre, MAX);
  131. printf("\n\t\tCorreo elctronico: ");
  132. LeerCadena(usuario.e_mail, MAX);
  133. printf("\t\tElegir una contasena: ");
  134. LeerCadena(usuario.pasword, MAX);
  135.  
  136. if(ConfirmarEmail(usuario.e_mail, &usuario) == 0){
  137. GuardarCuentaUsuario(&usuario);
  138. MenuPrincipal();
  139. }else{
  140. printf("\n\t\tEste Email ya tiene Cuenta de Usuario");
  141. MenuPrincipal();
  142. }
  143. }
  144.  
  145. void InicioSesion(){
  146. FILE *archivo = fopen("BilleteraVirtualUsuarios.dat", "rb");
  147. char pass[MAX], e_mail[MAX], encontrado;
  148. Usuario usuario;
  149.  
  150. if(archivo == NULL){
  151. printf("\n\t\t ========================");
  152. printf("\n\t\t|Lo siento. ERROR Interno|");
  153. printf("\n\t\t ========================");
  154. MenuPrincipal();
  155. }else{
  156. encontrado = 0;
  157. printf("\n\t\t\t =====================================");
  158.    printf("\n\t\t\t| Iniciar sesion en Billetera Virtual |");
  159.    printf("\n\t\t\t =====================================\n\n");
  160.  
  161.    printf("\t\tCorreo electronico: ");
  162.    LeerCadena(e_mail, MAX);
  163.    printf("\t\tContrasena: ");
  164.    LeerCadena(pass, MAX);
  165.  
  166.    /* Se recorre el archivo secuencialmente */
  167. fseek(archivo, 0, SEEK_SET); /* Posiciona el cursor al principio del archivo */
  168.    fread(&usuario, sizeof(usuario), 1, archivo);
  169.  
  170.    while(!feof(archivo)){
  171.     if((strcmp(usuario.e_mail, e_mail) == 0) && (strcmp(usuario.pasword, pass) == 0)){
  172.     encontrado = 1;
  173. }
  174. fread(&usuario, sizeof(usuario), 1, archivo);
  175. }
  176.  
  177. if(encontrado == 1){
  178. system("cls");
  179. printf("\n\tBilletera Virtual\t\t%s %s\n\n", usuario.p.nombre, usuario.p.apellido);
  180.  
  181. switch(MostrarMenu_InicioSesion()){
  182. case 1:
  183. break;
  184. case 2:
  185.    break;
  186. case 3:
  187.    break;
  188. case 4:
  189.    break;
  190. case 5:
  191. MenuPrincipal();
  192.    break;
  193. default:
  194. printf("\n\t\t ===================");
  195.            printf("\n\t\t| Opcion incorrecta |");
  196.            printf("\n\t\t ===================");
  197.        MenuInicioSesion();
  198.    break;
  199. }
  200.  
  201. }else{
  202. printf("\n\n\t\tUsuario no registrado");
  203. MenuPrincipal();
  204. }
  205.  
  206. fclose(archivo);
  207. }
  208. }
  209.  
  210. int ConfirmarEmail(char email[], Usuario *usuario){
  211. FILE *archivo = fopen("BilleteraVirtualUsuarios.dat", "rb");
  212. int existe;
  213.  
  214. if(archivo == NULL){
  215. existe = 0;
  216. }else{
  217. existe = 0;
  218.  
  219. fread(usuario, sizeof(usuario), 1, archivo);
  220.  
  221. while(!feof(archivo)){
  222. if(strcmp(usuario->e_mail, email) == 0){
  223. existe = 1;
  224. break;
  225. }
  226. fread(usuario, sizeof(usuario), 1, archivo);
  227. }
  228.  
  229. fclose(archivo);
  230. }
  231. return existe;
  232. }
  233.  
  234. void GuardarCuentaUsuario(Usuario *usuario){
  235. FILE *archivo = fopen("BilleteraVirtualUsuarios.dat", "ab");
  236.  
  237. if(archivo == NULL){
  238. printf("\n\t\t ========================");
  239. printf("\n\t\t|Lo siento. ERROR Interno|");
  240. printf("\n\t\t ========================");
  241. MenuPrincipal();
  242. }else{
  243. fwrite(usuario, sizeof(usuario), 1, archivo);
  244. fclose(archivo);
  245. printf("\n\t\tUsuario Registrado con EXITO");
  246. }
  247. }
  248.  
  249. int LeerCadena(char *cadena, int n){
  250. int i, c;
  251.  
  252. c = getchar();
  253. if (c == EOF) {
  254. cadena[0] = '\0';
  255. return 0;
  256. }
  257.  
  258. if (c == '\n') {
  259. i = 0;
  260. } else {
  261. cadena[0] = c;
  262. i = 1;
  263. }
  264.  
  265. for (; i < n - 1 && (c = getchar()) != EOF && c != '\n'; i++) {
  266. cadena[i] = c;
  267. }
  268. cadena[i] = '\0';
  269.  
  270. if (c != '\n' && c != EOF)
  271. while ((c = getchar()) != '\n' && c != EOF);
  272.  
  273. return 1;
  274. }
  275.  
  276. void MenuPrincipal(){
  277. Sleep(3000);
  278. system("cls");
  279. main();
  280. }
  281.  
  282. void MenuInicioSesion(){
  283. Sleep(3000);
  284. system("cls");
  285. MostrarMenu_InicioSesion();
  286. }
  287.  
  288. void FinalizarPrograma(){
  289. system("cls");
  290.    printf("\n\t ===================================================");
  291. printf("\n\t| LA Billetera Virtual CERRARA en Cualquier Momento |");
  292. printf("\n\t ===================================================\n\n");
  293. Sleep(3000);
  294.    exit(0);
  295. }
7  Programación / Programación C/C++ / Ayuda con este programa en C en: 22 Julio 2018, 15:26 pm
Quiero comparar si una fecha es mayor que la otra en este programa si alguien me puede dar una idea de como hacerlo que no sea con if()

Código
  1. /* Escribe un programa para calcular el numero de dias
  2.    que hay entre dos fechas; declarar fecha como una
  3.    estructura */
  4.  
  5. #include<stdio.h>
  6.  
  7. struct fecha{
  8. unsigned int dia, mes, año;
  9. };
  10.  
  11. int main(int argc, char *argv[]){
  12. struct fecha f[3];
  13. int i, dia, mes, año;
  14.  
  15. for(i=0; i<2; i++){
  16. printf("Introduzca fecha %d: ", i+1);
  17. scanf("%d %d %d", &f[i].dia, &f[i].mes, &f[i].año);
  18. }
  19.  
  20. dia = f[0].dia - f[1].dia;
  21. mes = f[0].mes - f[1].mes;
  22. año = f[0].año - f[1].año;
  23.  
  24. año = año * 360;
  25. mes = mes * 30;
  26. f[2].dia = año + (mes) + (dia);
  27.  
  28. printf("\n\n\nDias Trascurridos %d", f[2].dia);
  29. return 0;
  30. }
  31.  
8  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.  
9  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. }
10  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]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines