[ Foro de C++ ]

Restaurante en C++

08-Aug-2020 01:03
Invitado (chefcurry)
1 Respuestas

Tengo el siguiente código de un restaurante, pero no me ejecuta la función pago y me marca error.


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

using namespace std;

void separador (char ch );
void saludo ();
int menu ();
void entradas();
void platof();
void postres();
void bebidas();
void volver();
void pago(float cuenta);


int main(){
    saludo () ;
    menu() ;
    return 0;
}

void separador ( char ch ){
    int x ;
    for ( x = 1 ; x <= 35 ; x++ ){
        cout << ch ;
    }
}
void saludo (){
    separador ('=') ;
    cout << endl << " === Toulouse Restaurant ===" << endl ;
    separador ('=') ;
    cout << endl << endl ;
}
int menu(){
    char opcion ;

    printf("Estos son nuestros tiempos: \n\n");

    cout << "         1. Entradas                " << endl ;
    cout << "         2. Plato Fuerte            " << endl ;
    cout << "         3. Postres                 " << endl ;
    cout << "         4. Bebidas                 " << endl ;

    cout << endl << "Cual desea observar? " ;
    cin >> opcion ;

    switch (opcion){
    case '1':
        system("cls");
        entradas();
    break;
    case '2':
        system("cls");
        platof();
    break;
    case '3':
        system("cls");
        postres();
    break;
    case'4':
        system("cls");
        bebidas();
    break;
    default:
        cout << endl << "Valor incorrecto, intente de nuevo " << endl ;
    }
    volver();

     return opcion ;
    }
    void entradas(){

            int op1, orden;
            float cuenta = 0;

            cout << endl << "################### ENTRADAS #####################" << endl << endl ;

            cout << "1. Ensalada de Nopalitos                      $40   " << endl ;
            cout << "2. Crema de Aguacate al Tequila               $50 " << endl ;
            cout << "3. Tostaditas de Queso de Cabra y Tomate      $40" << endl ;
            cout << "4. Frijoles Rancheros                         $35   "<< endl ;

            cout << endl << "¿Que entrada desea? " ;
            cin >> op1 ;

            cout << endl << "Cuantas ordenes desea? " ;
            cin >> orden ;

            switch(op1){
            case 1:
                cuenta = 40 * orden ;
                cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            case 2:

                cuenta = 50 * orden ;
                cout << endl << "    Subtotal: $" << cuenta << endl;

            break;
            case 3:

              cuenta = 40 * orden ;
              cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            case 4:
                cuenta = 35 * orden ;
                cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            default:
            cout << endl << "Valor incorrecto, intente de nuevo " << endl ;
            }
    }
    void platof (){

        int op2, enchiladas, cochinita, kilos, orden ;
        float cuenta = 0;

    cout << endl << "################ PLATO FUERTE ##################" << endl << endl ;

    cout << "1. Cerdo en Salsa Verde                       $80              " << endl ;
    cout << "2. Enchiladas (Suizas, verdes, Rojas)         $120/$95/$95     " << endl ;
    cout << "3. Cochinita Pibil (Orden de Tacos/Kilos)     $75/$300         " << endl ;
    cout << "4. Mole Poblano                               $80              "<< endl ;
    cout << "5. Pozole (Rojo, Blanco, Verde                $90              "<< endl ;
    cout << "6. Chiles Rellenos                            $80              "<< endl ;
    cout << endl << "¿Que platillo desea? " ;
    cin >> op2 ;

        switch(op2){
            case 1:
        cout << endl << "Cuantas ordenes desea? " ;
        cin >> orden ;
        cuenta = 80 * orden ;
        cout << endl << "    Subtotal: $" << cuenta << endl;
        break;
            case 2:
        cout << endl << "De cuales enchiladas desea?" << endl ;

        cout << "1. Suizas    $120   " << endl ;
        cout << "2. Rojas     $95    " << endl ;
        cout << "3. Verdes    $95    " << endl ;
        cin >> enchiladas ;

        cout << "Cuantas ordenes desea? " << endl ;
        cin >> orden ;

        switch(enchiladas){
            case 1:
            cuenta = 120 * orden ;
            cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            case 2:
                cuenta = 95 * orden ;
                cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            case 3:
                cuenta = 95 * orden ;
                cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            default:
                cout << endl << "Valor incorrecto, intente de nuevo " << endl ;
        }
        break;
            case 3:
            cout << "Que desea? "<< endl ;

            cout << "1. Orden de Tacos (4/orden)   $75  " << endl ;
            cout << "2. Por Kilo                   $300 " << endl ;
            cin >> cochinita ;

            switch(cochinita){
            case 1:
                cuenta = 75 * orden ;
                cout << endl << "    Subtotal: $" << cuenta << endl;
            break;
            case 2:
                cout << "Cuantos kilos desea? (Ingresar valor en kg) " << endl ;
                cin >> kilos ;

                cuenta = 300 * kilos ;
                cout << endl << "    Subtotal: $" << cuenta << endl;
                break;
            default:
                cout << endl << "Valor incorrecto, intente de nuevo " << endl;
            }
        case 4:
             cout << endl << "Cuantas ordenes desea? " ;
            cin >> orden ;
            cuenta = 80 * orden ;
            cout << endl << "    Subtotal: $" << cuenta << endl;
        break;
        case 5:
            cout << endl << "Cuantas ordenes desea? " ;
            cin >> orden ;
            cuenta = 90 * orden ;
            cout << endl << "    Subtotal: $" << cuenta << endl;
        break;
        case 6:
            cout << endl << "Cuantas ordenes desea? " ;
            cin >> orden ;
            cuenta = 80 * orden ;
            cout << endl << "    Subtotal: $" << cuenta << endl;
        break;
        default:
            cout << endl << "Valor incorrecto, intente de nuevo " << endl ;
        }
    }
    void postres(){
        int op3, orden;
        float cuenta = 0;

    cout << endl << "################ POSTRES ####################" << endl << endl ;

    cout << "1. Pastel                              $35              " << endl ;
    cout << "2. Brownies con Helado                 $15    " << endl ;
    cout << "3. Flan Napolitano                     $35         " << endl ;
    cout << "4. Gelatina de Mosaico                 $25              "<< endl ;

    cout << endl << "¿Que postre desea? " ;
    cin >> op3 ;

    cout << endl << "Cuantas ordenes desea? " ;
    cin >> orden ;

    switch(op3){
    case 1:
        cuenta = 35 * orden ;
        cout << endl << "    Subtotal: $" << cuenta << endl;
    break;
    case 2:
        cuenta = 15 * orden ;
        cout << endl << "    Subtotal: $" << cuenta << endl;
    break;
    case 3:
        cuenta = 35 * orden ;
        cout << endl << "    Subtotal: $" << cuenta << endl;
    break;
    case 4:
        cuenta = 25 * orden ;
        cout << endl << "    Subtotal: $" << cuenta << endl;
    break;
    default:
            cout << endl << "Valor incorrecto, intente de nuevo " << endl ;
    }
    }
    void bebidas(){

            int op4, orden;
            float cuenta = 0;

    cout << endl << "################ BEBIDAS ####################" << endl << endl ;

    cout << "1. Refresco                   $20              " << endl ;
    cout << "2. Agua Fresca                $25    " << endl ;

    cout << endl << "¿Que bebida desea? " ;
    cin >> op4 ;

    cout << endl << "Cuantas desea? " ;
    cin >> orden ;

            switch(op4){
                cin >> cuenta;
        case 1:
            cuenta = 20 * orden ;
            cout << endl << "    Subtotal: $" << cuenta << endl;
        break;
        case 2:
            cuenta = 25 * orden ;
            cout << endl << "    Subtotal: $" << cuenta << endl;
        break;
        default:
            cout << endl << "Valor incorrecto, intente de nuevo " << endl ;
        }
    }
    void volver(){
    int volver;
    cout << endl << "Desea seguir ordenando?" << endl;
    cout << "1. Si " << endl ;
    cout << "2. No " << endl ;
    cin >> volver ;

        if (volver == 1){
        system("cls");
        void separador( char ch);
        saludo();
        menu();
        }
        if (volver == 2){
        pago(cuenta);
        }
    }
    void pago(float cuenta){
    float subtotal = 0, total = 0, IVA;

    system("cls");
    subtotal += cuenta;
    IVA = (16 * subtotal) / 100 ;
    total = subtotal + IVA ;

    cout << endl << "   IVA (16%): $" << IVA ;
    cout << endl << "    Subtotal: $" << subtotal ;
    cout << endl << "       Total: $" << total ;
    }


 


08-Aug-2020 10:02
Nacho Cabanes (+65)

Para empezar, no dices qué compilador y qué sistema operativo empleas, pero estás usando características no estándar, como "conio.h", que es de los antiguos compiladores de Borland para MS-DOS.

Para seguir, los mensajes de error son tus amigos: si comento la línea, de "conio.h", el error que yo obtengo es:

main.cpp:294:14: error: use of undeclared identifier 'cuenta'
       pago(cuenta);

Y es un mensaje de error muy claro. En la línea 294, dentro de la función "volver", tienes un "pago(cuenta)", pero no existe esa variable "cuenta".  Lo esperable será algo como un "pago(100)" , para llamar a la función "pago" pero indicándole ciertos valores (sean valores directos o sean variables).

Pero tienes más errores. Unas pocas líneas antes tienes un "void separador( char ch);" dentro de una función, que tampoco sé qué pinta ahí.






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...