Ayuda para hacer un subprogama

Iniciado por Juleen26, 11 Junio 2016, 20:37 PM

0 Miembros y 1 Visitante están viendo este tema.

Juleen26

Quiero hace un subprograma de un restaurante que marca los menús del día. He creado todas las estructuras y todo bien, el problema lo tengo cuando quiero poner la opción de que si el chef quiere añadir un plato nuevo pueda hacerlo y que este plato se guarde en la fichero de los platos correctamente, también esta el añadido de los ingredientes que si el plato que añade el chef no lo tenia en el almacén (stock.txt) se tiene que añadir y si elige un ingrediente existente tiene que aumentar esa cantidad para que no se agote, toda esta información guardarla en los ficheros. >:D

Juleen26

Soy nuevo aqui, si me explican como lo hago subo los ficheros y los tipos de structs que he hecho

AlbertoBSD

Agrega el codigo que llevas hasta el momento.

Cual es tu duda Guardar la estrucuctura en el archvio?

Mira el siguiente video tal vez te sirva.

[youtube=640,360]https://www.youtube.com/watch?v=DOqtEMW1Nqk[/youtube]

Saludos.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Juleen26

Estas son las estructuras:
const int maxIngredient = 100;
const int maxPlato = 100;

struct Tingrediente
{
    string nombre;
    float cantidad;
};
struct Tstock
{
    int totalIng;
    Tingrediente stock[maxIngredient];
};
struct resta
{
    string nomIngredient;
    float gasto;

};
struct Tplato
{
    string nombre;
    int n_ingredientes; //n elem
    int n_comensales;
    resta consumo[maxIngredient];
};

struct Total
{
    int n_platos;
    Tplato nPlato[maxPlato];
} ;



AQUI TODOS LOS PLATOS QUE HAY EN EL RESTAURANTE JUNTO A LA CANTIDAD DE INGREDIENTES NECESARIA PARA REALIZAR EL PLATO
16

Espaguettis_bolognesa
Espaguetti 100
Carne_picada 150
Cebolla 0.25
Tomate 1


Canelones
Carne_Picada 150
Cebolla 0.25
Tomate 1
Bechamel 150
Mantequilla


Pure_de_patatas:
Patata 150
Bechamel 75
Mantequilla


Pollo_con_patatas
Pollo 0.25
Patata 75


Croquetas_de_pollo
Pollo 0.25
Cebolla 0.25
Bechamel 50


Merluza_plancha
Patata 75
Filete merzluza 2


Gazpacho
Tomate 3
Pimiento 1
Cebolla 0.5
Pepino 0.5
Pan


Risotto_setas
Arroz 100
Cebolla 0.5
Pollo 0.25
Gambas 10
Setas 200
Queso 50


Fodue_queso:
Queso 200
Pan


Entrecot_salsa_setas
Setas 100
Cebolla 0.5
Bechamel 50
Entrecot 1


Paella
Arroz 200
Cebolla 0.25
Gamba 5
Pollo 0.25


Gambas_ajillo
Gamba 10
Ajo 2


Yogurt 1


Fruta_del_tiempo 1


Helado 1


Pastel 1


Y AQUI ESTA EL STOCK QUE ES LA CANTIDAD DE TODOS LOS PRODUCTOS QUE HAY EN EL RESTAURANTE

Spaguettis: 5.000g

Carne picada: 7.000g

Cebollas: 40 cebollas

Tomates: 70 tomates

Bechamel: 2.500g

Mantequilla: ilimitada

Patatas: 3.000g

Pollo: 50 pollos

Merluza: 20 filetes

Yogur: 20 yogures

Pepino: 15 pepinos

Pan: ilimitado

Arroz: 3.500g

Gambas: 200 gambas

Setas: 2.500g

Entrecot: 25 entrecots

Pastel: 2 pasteles (partido en 10 cada pastel)

Fruta del tiempo:

Helado: 20 helados


Esto es lo que tengo hasta el momento pero no me funciona

void anyadirPlato (Total& listaPlat, Tstock& Stock)
{
    int pos, i,x,lloc;
    bool trobat;
    string resposta;

    //system("cls");
    cout << "----------------------- NUEVO PLATO --------------------------" << endl << endl;

    if (listaPlat.n_platos < maxPlato)  //el nuevo plato aun cabe en la lista
    {
        pos = listaPlat.n_platos;
        cout << "Para guardar un nuevo plato en el archivo culinario, deberas rellenar: " << endl << "Nombre del nuevo plato : ";
        cin >> listaPlat.nPlato[pos].nombre;
        cout<<endl<< " Introduce el numero minimo de comensales para consumir este plato :";
        cin>> listaPlat.nPlato[pos].n_comensales;
        cout<<endl<< " Introduce el numero de ingredientes que tendra el nuevo plato :";
        cin>> listaPlat.nPlato[pos].n_ingredientes;
        cout<<endl<< " Ahora contesta sobre los ingredientes del nuevo plato ."<<endl;

        for (i=0; i<=listaPlat.nPlato[pos].n_ingredientes; i++)
        {
            cout<<endl<< " Deberas decirme :"<<endl;
            cout<< " Ingrediente "<<i+1<< " :"<<endl;
            cout<< "Nombre del ingrediente ?";
            cin>> listaPlat.nPlato[pos].consumo.nomIngredient;

            for(x=0; !trobat && x <=Stock.totalIng;x++)
            {
                trobat = false;

                if(listaPlat.nPlato[pos].consumo.nomIngredient == Stock.stock
  • .nombre)
                    {
                        trobat= true;
                        cout<< "Bien, este ingrediente ya lo tenemos registrado ";
                        cout<<"Y actualmente disponemos de " <<Stock.stock
  • .cantidad<< " de este ingrediente en stock"<<endl;
                        cout<< " Desea encargar mas ? ";
                        cin>> resposta;
                        if (resposta == "si")
                        {
                            cout<< " Que cantidad total de este alimento necesitamos ?"<<endl;
                            cin>> Stock.stock
  • .cantidad;
                        }
                    }
                    else
                    {
                        cout<< " Este ingrediente no lo tenemos registrado..... "<<endl;

                        if (Stock.totalIng <= maxIngredient)
                        {
                            cout<< " Pero no hay problema porque lo registramos en un momento."<<endl;

                            lloc = Stock.totalIng;
                            Stock.stock[lloc].nombre = listaPlat.nPlato[pos].consumo.nomIngredient;
                            cout<< "Introduce la cantidad en stock que quieres encargar del nuevo ingrediente :";
                            cin>> Stock.stock[lloc].cantidad;
                            cout<<endl<< " Cantidad necesaria para la elaboracion de un plato :";
                            cin>> listaPlat.nPlato[pos].consumo.gasto;
                            Stock.totalIng++;
                        }
                        else
                        {
                            cout<< " .... Pero es que ademas no queda sitio para registrarlo, LO       SIENTO.."<<endl;
                        }

                    }

                }
            }