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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Porque ocurre esto en mi codigo en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Porque ocurre esto en mi codigo en c  (Leído 2,567 veces)
JulioHacker

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Porque ocurre esto en mi codigo en c
« en: 23 Marzo 2022, 04:25 am »

Hola buenos dias, tardes o noches, les pido que me ayuden con esto por favor, estoy realizando un programa en c que emula el sistema de reservacion de vuelos, el programa que realice compila y ejecuta bien, pero dentro del programa no puedo utilizar 2 veces la opción 1 que se muestra en pantalla, solo puedo utilizarlo 1 ves y después no deja que pueda reservar otro vuelo, me gustaría que me ayudaran con esto:


Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5. #define  N 50
  6. /*
  7.  
  8. 3. Una compañía dedicada al transporte de pasajeros por vía aérea, desea contratar sus servicios con el fin de automatizar
  9.  el proceso de reservación de sus vuelos.
  10.  Para ello Ud. deberá definir una estructura de datos en Lenguaje C que permita almacenar dicha información.
  11.  Además se solicita que realice un programa que permita:
  12. a. Reservar un asiento en un vuelo.
  13. b. Cancelar una reservación.
  14. c. Confirmar una reservación.
  15.  
  16.  
  17. */
  18. typedef struct{
  19.  
  20. char ciudad[N];
  21. char destino[N];
  22. char fecha[N];
  23. char regreso[N];
  24.  
  25. int lleno;
  26.  
  27. }vuelo;
  28. vuelo r[N];
  29. void reservar();
  30.  
  31. void cancelar();
  32.  
  33. void confirmar();
  34. void cambio (char palabra[N]);
  35.  
  36. void menu();
  37. int i,aux,cont=0;
  38. int cancel,close;
  39.  
  40. int main(){
  41.  
  42. menu();
  43. getch();
  44. return 0;
  45. }
  46. void reservar(){
  47.  
  48. printf("Sistema de reservacion de vuelos de aerolineas Julio\n\n");
  49.  
  50.  
  51. for(i=0;i<N && aux == 0;i++){
  52.  
  53.    if(r[i].lleno==0){
  54.  
  55.  
  56. printf("Ciudad de origen? : ");
  57. fflush(stdin);
  58. fgets(r[i].ciudad,N,stdin);
  59.  
  60. printf("Ciudad de destino? : ");
  61.    fflush(stdin);
  62.    fgets(r[i].destino,N,stdin);
  63.  
  64.    printf("Fecha de ida : ");
  65.    fflush(stdin);
  66.    fgets(r[i].fecha,N,stdin);
  67.  
  68.    printf("Fecha de regreso : ");
  69.    fflush(stdin);
  70.    fgets(r[i].regreso,N,stdin);
  71.  
  72.  
  73.    cont++;
  74.    r[i].lleno=1;
  75.    aux=1;
  76.  
  77. }
  78.  
  79.  
  80. printf("Vuelo reservado con exito!! :D ");
  81. printf("\n\n");
  82.  
  83. }
  84.  
  85. }
  86.  
  87. void cancelar(){
  88. if(cont==0){
  89. printf("No tiene vuelos reservados\n");
  90. printf("Por favor reserve un vuelo \n");
  91.  
  92. getch();
  93. system("cls");
  94. }else{
  95. printf("Sistema de cancelacion de vuelo \n\n");
  96.  
  97. int cancel,close;
  98.  
  99. printf("Actualmente tiene %i reservados ",cont);
  100.  
  101. printf("Cuantos vuelos desea cancelar? : ");
  102. scanf("%i",&cancel);
  103.  
  104.  
  105. close = cancel-cont;
  106.  
  107. printf("Cancelacion realizada!!\n\n");
  108.  
  109.  
  110. printf("Quedan %i vuelos disponibles \n\n ",close);
  111.  
  112. printf("\n\n\n");
  113. }
  114.  
  115.  
  116. }
  117.  
  118. void confirmar(){
  119.  
  120. if(cont==0){
  121.  
  122. printf("No tiene vuelos reservados\n");
  123. printf("Por favor reserve un vuelo \n");
  124.  
  125. getch();
  126. system("cls");
  127. }else{
  128.  
  129. printf("Actualmente hay %i vuelos confirmados \n\n",cont);
  130.  
  131.  
  132. system("cls");
  133.  
  134. }
  135. }
  136.  
  137.  
  138. void menu(){
  139.  
  140. int op;
  141.  
  142.  
  143.  
  144. printf("Aerolineas Julio, Volamos contigo!!\n\n\n");
  145.  
  146.  
  147. while(op!=4){
  148.  
  149. printf("Que desea hacer? : \n\n");
  150. printf("1) Reservar un asiento \n");
  151. printf("2) Cancelar una reservacion \n");
  152. printf("3) Confirmar una reservacion \n");
  153. printf("4) Salir");
  154. printf("\n");
  155. scanf("%i",&op);
  156.  
  157. system("cls");
  158.  
  159. switch(op){
  160.  
  161. case 1:
  162.  
  163. reservar();
  164. break;
  165.  
  166. case 2:
  167. cancelar();
  168. break;
  169.  
  170. case 3:
  171. confirmar();
  172. break;
  173.  
  174.  
  175. }}}
  176.  







« Última modificación: 23 Marzo 2022, 07:43 am por fary » En línea

fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: Porque ocurre esto en mi codigo en c
« Respuesta #1 en: 23 Marzo 2022, 20:14 pm »

Tienes que hacer un planteamiento de programa antes de empezar... solo tienes las letras  :-\

Te e escrito un poquito de código para que veas mas o menos, a ver que te parece.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX 50
  5. #define MAXPasajeros 60 // El máximo de pasageros por avión
  6. #define MAXDestinos 5   // El máximo de destinos
  7.  
  8. const char * Destinos[MAXDestinos] = {"Madrid", "Barcelona","Sevilla","Valencia", "Badajoz"}; // Destinos de los vuelos.
  9.  
  10. struct Vuelo  // Nuestra estructura.
  11. {
  12.    char Origen[MAX];
  13.    char Destino[MAX];
  14.    char FechaIda[MAX];
  15.    char FechaVuelta[MAX];
  16.  
  17.    int NumeroPasajeros;
  18. };
  19.  
  20. struct Vuelo _Vuelo[MAXDestinos]; // Declaro el array de la estructura que contendrá los datos.
  21.  
  22. void Inicializar() // Inicializo las estructuras
  23. {
  24.    int i;
  25.  
  26.    for (i=0; i<5; i++)
  27.    {
  28.        strcpy(_Vuelo[i].Destino, Destinos[i]);
  29.        _Vuelo[i].NumeroPasajeros = 0;
  30.    }
  31. }
  32.  
  33. int Reservar()
  34. {
  35.    int i;
  36.    int NumeroVuelo;
  37.  
  38.    for (i=0; i < MAXDestinos; i++)
  39.    {
  40.        printf("%i - ", i);
  41.        printf("%s\n",_Vuelo[i].Destino);
  42.    }
  43.  
  44.    printf("Seleccione el número e vuelo que desea: ");
  45.    scanf("%i",&NumeroVuelo);
  46.  
  47.    if (_Vuelo[NumeroVuelo].NumeroPasajeros > 59) // Si el vuelo esta lleno, informamos y salimos
  48.    {
  49.        printf("Lo sentimos, el vuelo esta lleno...\n");
  50.        return 0;
  51.    }
  52.  
  53.    printf("Fecha de ida: ");
  54.    scanf("%s",_Vuelo[NumeroVuelo].FechaIda);
  55.  
  56.    printf("Fecha de la vuelta: ");
  57.    scanf("%s",_Vuelo[NumeroVuelo].FechaVuelta);
  58.  
  59.    printf("Ciudad de origen: ");
  60.    scanf("%s", _Vuelo[NumeroVuelo].Origen);
  61.  
  62.    _Vuelo[NumeroVuelo].NumeroPasajeros++;
  63.    printf("Vuelo reservado, total reservas: %i\n",_Vuelo[NumeroVuelo].NumeroPasajeros);
  64.    return 0;
  65. }
  66.  
  67. int main()
  68. {
  69.    Inicializar();
  70.  
  71.    int Operacion;
  72.    while (1)
  73.    {
  74.        Operacion = 0;
  75.  
  76.        printf("Seleccione la operación que desea realizar: \n");
  77.        printf("1- Reservar un asiento\n");
  78.        printf("2- Cancelar reserva\n");
  79.        printf("3- Salir\n");
  80.  
  81.        scanf("%i",&Operacion);        
  82.  
  83.        switch(Operacion)
  84.        {
  85.            case 1:
  86.                Reservar();
  87.                break;
  88.            case 2:
  89.  
  90.                break;
  91.            case 3:
  92.                return 0;
  93.        }
  94.    }
  95.  
  96.    return 0;
  97. }

Si quieres hacer algo como esto bien tienes que contar con más cosas como por ejemplo para reservar billete y contar como va el avión de lleno no pueden tener fechas diferentes... con lo cual se complica más la cosa.

Tambień puedes identar bien el código, fijate que diferencia entre el tuyo (Practicamente ilegible, se te quitan las ganas) con el mio, a simple vista ves donde empiezan y comienzan los bucles, las funciones, etc.


En línea

Un byte a la izquierda.
JulioHacker

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Porque ocurre esto en mi codigo en c
« Respuesta #2 en: 24 Marzo 2022, 04:07 am »

Ya, con ese código  logre comprender mejor  ::), y si ,tienes razón con las recomendaciones, me servirá para mejorar y terminar el ejercicio que tengo planteado , muchas gracias  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
esto por que ocurre??? « 1 2 »
Sugerencias y dudas sobre el Foro
Division-x 10 4,669 Último mensaje 19 Julio 2006, 13:48 pm
por Division-x
porq ocurre esto?
Ingeniería Inversa
<housedir> 1 2,580 Último mensaje 10 Noviembre 2009, 21:33 pm
por MCKSys Argentina
Por que me ocurre esto?
Hacking Wireless
metrillo 3 2,932 Último mensaje 6 Noviembre 2010, 22:36 pm
por zydas
Esto es lo que ocurre si intentas escanear un billete de 10 euros
Noticias
wolfbcn 1 1,646 Último mensaje 15 Mayo 2014, 06:19 am
por Randomize
Esto es lo que ocurre al soltar un robot por la 'deep web' con cien dólares ....
Noticias
wolfbcn 0 2,591 Último mensaje 10 Enero 2015, 01:47 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines