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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con codigo  (Leído 1,420 veces)
Jay

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Ayuda con codigo
« en: 3 Mayo 2019, 22:58 pm »

ayudenme con mi codigo no se que estoy haciendo mal se supone que al validar la fecha si introduces una fecha mal ya no deberia funcionar pero al parecer solo valida el mes ayuda, tambien necesito ayuda para apuntar a un elemento del arreglo
char claveHabitacion [10][10] = {"ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7", "ST8", "ST9", "ST10"}; no se como hacerlo.

#include<stdio.h>
#include<stdlib.h>
#include <stdbool.h>


struct fechaEntrada
{

    int dia, mes, año;


}f1;


struct fechaSalida
{

    int dia, mes, año;

}f2;

struct tarjeta{

    int  cVc, tipo, formaPago;
    char nombreTitular[50];
    int mes, año;


}t1;



bool entrada(int dia, int mes, int año)
{
    bool verdero=1, falso=0;

            printf("\nIntroduzca la fecha de entrada: ");
            printf( "\n   Introduzca dia: ");
            scanf( "%d", &f1.dia );
            printf( "\n   Introduzca mes: " );
            scanf( "%d", &f1.mes );
            printf( "\n   Introduzca año: ");
            scanf( "%d", &f1.año );

    if ( f1.mes >= 1 && f1.mes <= 12 )
    {
        switch ( f1.mes )
        {
                    case  1 :
                    case  3 :
                    case  5 :
                    case  7 :
                    case  8 :
                    case 10 :
                    case 12 : if ( f1.dia >= 1 && f1.dia <= 31 )
                                {
                                     printf( "\n   FECHA CORRECTA \n" , verdero);
                                    return verdero;

                                } else
                                        printf( "\n   FECHA INCORRECTA \n", falso);
                                        return falso;
                      break;

                    case  4 :
                    case  6 :
                    case  9 :
                    case 11 : if ( f1.dia >= 1 && f1.dia <= 30 )
                                {
                                    printf( "\n   FECHA CORRECTA \n", verdero );
                                    return verdero;
                                }else
                                        printf( "\n   FECHA INCORRECTA \n", falso);
                                        return falso;
                      break;

                    case  2 : if( f1.año % 4 == 0 && f1.año % 100 != 0 || f1.año % 400 == 0 ){

                                    if ( f1.dia >= 1 && f1.dia <= 29 )
                                    {
                                        printf( "\n   FECHA CORRECTA \n", verdero);
                                            return verdero;
                                    }else
                                            printf( "\n   FECHA INCORRECTA \n", falso);
                                                return falso;
                            }else
                                if ( f1.dia >= 1 && f1.dia <= 28 )
                                {
                                      printf( "\n   FECHA CORRECTA \n", verdero);
                                            return verdero;
                                }else
                                    printf( "\n   FECHA INCORRECTA \n", falso);
                                            return falso;
        }
    }
    else
        printf( "\n   FECHA INCORRECTA \n", falso);





}


bool salida(int dia, int mes, int año)
{

  bool verdero=1, falso=0;

            printf("\nIntroduzca la fecha de salida: ");
            printf( "\n   Introduzca dia: ");
            scanf( "%d", &f2.dia );
            printf( "\n   Introduzca mes: " );
            scanf( "%d", &f2.mes );
            printf( "\n   Introduzca año: ");
            scanf( "%d", &f2.año );

    if ( f2.mes >= 1 && f2.mes <= 12 )
    {
        switch ( f2.mes )
        {
                    case  1 :
                    case  3 :
                    case  5 :
                    case  7 :
                    case  8 :
                    case 10 :
                    case 12 : if ( f2.dia >= 1 && f2.dia <= 31 )
                                {
                                     printf( "\n   FECHA CORRECTA \n" , verdero);
                                    return verdero;

                                } else
                                        printf( "\n   FECHA INCORRECTA \n", falso);
                                        return falso;
                      break;

                    case  4 :
                    case  6 :
                    case  9 :
                    case 11 : if ( f2.dia >= 1 && f2.dia <= 30 )
                                {
                                    printf( "\n   FECHA CORRECTA \n", verdero );
                                    return verdero;
                                }else
                                        printf( "\n   FECHA INCORRECTA \n", falso);
                                        return falso;
                      break;

                    case  2 : if( f2.año % 4 == 0 && f2.año % 100 != 0 || f2.año % 400 == 0 ){

                                    if ( f2.dia >= 1 && f2.dia <= 29 )
                                    {
                                        printf( "\n   FECHA CORRECTA \n", verdero);
                                            return verdero;
                                    }else
                                            printf( "\n   FECHA INCORRECTA \n", falso);
                                                return falso;
                            }else
                                if ( f2.dia >= 1 && f2.dia <= 28 )
                                {
                                      printf( "\n   FECHA CORRECTA \n", verdero);
                                            return verdero;
                                }else
                                    printf( "\n   FECHA INCORRECTA \n", falso);
                                            return falso;
        }


    }
    else
        printf( "\n   FECHA INCORRECTA \n", falso);

        return falso;

}

void reservacionStandard()
{
    int i=0, x=0;
    long long numeroTarjeta=9999999999999999;
    char claveHabitacion [10][10] = {"ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7", "ST8", "ST9", "ST10"};

                printf("\n Introduce tu forma de pago \n 1.-Tarjeta \n 2.-Efectivo \n");
                scanf("%d", &t1.formaPago);


                    printf("\n Introduce el numero de tarjeta: \n");
                    scanf("%d", &numeroTarjeta);
                        while(numeroTarjeta > 0)
                        {
                            numeroTarjeta = numeroTarjeta / 10;
                            i++;

                        }

                    //printf("%d", i);


                    if( i == 16)
                    {

                        printf("\nIntroduce el nombre del titular de la tarjeta: \n");
                        scanf("%s", &t1.nombreTitular);

                        printf("\nIntroduce el mes de vencimiento: \n ");
                        scanf("%d", &t1.mes);
                        printf("\nIntroduce el año de vencimiento: \n ");
                        scanf("%d", &t1.año);

                           if( t1.mes >= 1 && t1.mes <= 12 )
                            {

                                if(t1.año >= 2019 && t1.año <= 2026)
                                {

                                    printf("\n Introduce el CVC: \n");
                                    scanf("%d", &t1.cVc);

                                    while(t1.cVc > 0)
                                    {
                                        t1.cVc = t1.cVc / 10;
                                        x++;

                                    }

                                        if(x == 3)
                                        {
                                            printf("\n Estas son las habitaciones disponibles: \n");

                                                    for(i=0; i < 10 ; i++)
                                                    {
                                                        for(int j=0; j < 10; j++)
                                                            {
                                                                printf("%c", claveHabitacion[j]);
                                                            }

                                                        printf("\n");
                                                    }





                                        }else
                                            printf("\n El CVC no es correcto  \n");




                            } else
                                printf("\n año incorrecto intenta de nuevo \n");
                         }
                            else
                                printf("\n mes incorrecto intenta de nuevo \n");

                } else
                    printf("\nTarjeta No valida \n");



}





int main(){

        int op, o1, dia1, mes1, anio1, eleccion, cantidadPersonas, cantidadNoches, costo;


    do
    {
        printf("Hotel h&h");
        printf("\n1.-Reservaciones \n 2.-Cancelaciones \n 3.-Reportes \n 4.-Terminar \n");
        scanf("%d", &op);


        switch(op)
        {

            case 1:
                if(entrada(dia1, mes1, anio1) == 1)
                    {

                        if(salida(dia1, mes1, anio1) == 1)
                        {
                            cantidadNoches= ((f2.año-f1.año)*12 +(f2.mes-f1.mes))*30 + f2.dia- f1.dia;
                            costo = cantidadNoches*1250;
                            printf("\nLa cantidad de noches es: %d", cantidadNoches);
                             printf(" \nElige el tipo de habitacion : \n 1.-ST \n 2.-OB \n 3.-TB \n 4.-SU \n");
                            scanf("%d", &eleccion);
                            printf("\nEl costo total es: $%d \n", costo);

                            switch(eleccion)
                            {
                                case 1: printf("\nIntroduce cuantas personas ocuparan la habitacion: ");
                                        scanf("%d", &cantidadPersonas);

                                        if(cantidadPersonas <=2 )
                                        {
                                            reservacionStandard(costo);

                                        }


                            }


                        }


                    }
            break;

            case 2:
            break;

            case 3:

                do
                {
                    printf("Hotel h&h");
                    printf("\n1.-Reporte de reservaciones \n 2.- Reporte de habitaciones disponibles \n 3.-Regresar \n");
                    scanf("%d", &o1);

                    switch(o1)
                    {

                        case 1:
                        break;

                        case 2:
                        break;
                    }

                }while(o1 < 3);

                break;
            }

        }while(op < 4);


return 0;

}




En línea

codX

Desconectado Desconectado

Mensajes: 65


Es más complejo de lo que crees...


Ver Perfil
Re: Ayuda con codigo
« Respuesta #1 en: 4 Mayo 2019, 01:42 am »

Hola una de las formas de cotejar el dia seria  asi por ejemplo
Código
  1. #include <stdio.h>
  2. int cotejar_dia(int, int, int[7]);
  3.  
  4. int main()
  5. {
  6. int dia, mes;
  7. int mes_31[7]={1, 3, 5, 7, 8, 10, 12};
  8. long año[2999];
  9.  
  10. printf("introduce el dia y el mes");
  11. scanf("%i %i", &dia, &mes);
  12.  
  13. if(cotejar_dia(dia, mes, mes_31))
  14. printf("correcto");
  15. else
  16. printf("Incorrecto");
  17. printf("\n");
  18. return 0;
  19. }
  20.  
  21. int cotejar_dia(int dia, int mes, int mes_31[7])
  22. {
  23. int i;
  24. int low = 1;
  25. int high = 31;
  26.  
  27. for(i = 0; i < 7; i++)
  28. {
  29. if(dia >=low && dia <=high && mes == mes_31[i])
  30. return 1;
  31. }
  32. return 0;
  33.  
  34. }

int i;
para apuntar al elemento de un arreglo seria *(elemento + i)


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda con codigo
« Respuesta #2 en: 4 Mayo 2019, 03:39 am »

Dejo por aquí otra función que permite validar una fecha :-X
Código
  1. bool validarFecha(int day, int month, int year){
  2.    int dias_mes[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
  3.    if(month < 1 or month > 12)
  4.        return false;
  5.    if(month == 2 and esBisiesto(year))
  6.        dias_mes[1] = 29;
  7.    return day <= dias_mes[month-1];
  8. }
  9.  
  10. bool esBisiesto(int year){
  11.    return (year % 4 == 0 && (!(year % 100 == 0) || (year % 400 == 0)))
  12. }
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con codigo en C (no me ejecuta un for y necesito ayuda) « 1 2 3 »
Programación C/C++
Søra 22 11,550 Último mensaje 22 Mayo 2010, 00:22 am
por Littlehorse
¿Cuál es la diferencia entre código objeto, código máquina y código binario?
Programación General
Aikanáro Anário 9 28,965 Último mensaje 23 Diciembre 2010, 15:19 pm
por pucheto
ayuda codigo
Programación C/C++
kunai 3 2,490 Último mensaje 1 Junio 2011, 12:56 pm
por Akai
ayuda!! necesito ayuda con este pequeño codigo en c++
Programación C/C++
giraffe 1 4,707 Último mensaje 27 Mayo 2015, 06:25 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines