Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - DonCuervo

#1
Programación C/C++ / Structs anidados en Union
13 Septiembre 2017, 17:31 PM
Buenos días, me encuentro realizando una actividad de estructura de datos, donde necesito anidar 3 estructuras dentro de una union pero a la hora de querer ingresar datos me tira un error.
#include <iostream>

using namespace std;

const int n=50;

struct autos
    {
        string nom;
        string dir;
        float mon;
        float men;
        float ded;
        int lic;
        string edo;
        string mod;
        int año;
        ///Constructor
        autos(){
            nom="0";
            dir="0",
            mon=0;
            men=0;
            ded=0;
            lic=0;
            edo="0";
            mod="0";
            año=0;
            }
    };
struct casa
    {
        string nom;
        string dir;
        float mon;
        float men;
        float ded;
        int ant;
        bool seg;
        ///Constructor
        casa(){
            nom="0";
            dir="0";
            mon=0;
            men=0;
            ded=0;
            ant=0;
            seg=false;
        }
    };
struct vida
    {
        string nom;
        string dir;
        float mon;
        float men;
        ///Constructor
        vida(){
            nom="0";
            dir="0";
            mon=0;
            men=0;
        }
    };

union polizas
{
    struct autos;
    struct casa;
    struct vida;

};
polizas pol[n];

int insertar(int tipo,int ind);

int main()
{
    int ind=0;
    ind=insertar(1,ind);

}

int insertar(int tipo,int ind)
{
    if(tipo==1){
        cout<<"Seguro de auto"<<endl;
        cout<<"Ingrese su nombre"<<endl;
           pol[ind].autos.autos(ind);
    }
    ind++;
    return ind;
}

Como tendría que manejar la union en este caso?
#2
Buen dia compañeros, me encuentro con el problema de querer llamar a la funcion menu, pero como aun no se declara no es posible, que acomodo tendria que darle o que solucion seria la mas eficaz?

Aca el codigo:

Código (cpp) [Seleccionar]

#include <iostream>
#include <stdlib.h>
#include <windows.h>

using namespace std;

int guardar(int tam, string arr[]){
cout << "Al guardar se perderan los datos anteriores, desea continuar s/n" << endl;
           char res;
           cin>>res;
           if(res=='s'){
           for(int i=0;i<tam; i++){
               if(arr[i]==""){
               cout<<"Ingrese valor para la posicion " << i << " del arreglo"<< endl;
               cin>>arr[i];
           }
           }
           }
           system("cls");
           menu(tam,arr);
}
int ver(int tam, string arr[]){
for(int i=0; i<tam;i++){
               if(arr[i]!=""){
                   cout<<i<<" "<< arr[i] << endl;
               }else{
               cout<<i<<" vacio"<<endl;
               }
           }
           menu(tam,arr);
}
int borrar(int tam,string arr[]){
cout << "Que numero de entrada desea borrar"<< endl;
       for(int i=0;i<tam;i++){
           cout<<i<<" "<<arr[i]<<endl;
       }
           int del;
           cin>>del;
           if(arr[del]==""){
           cout<<"Registro vacio"<<endl;
           }else{
           arr[del]="";
           cout<<"Registro Borrado"<<endl;
           }
           menu(tam,arr);

}
int buscar(int tam,string arr[]){
cout<<"Introduzca el codigo a buscar"<<endl;
string bus;
cin>>bus;
int inc=0;
do{
inc++;
}
while(arr[inc]==bus);
menu(tam,arr);
}
int menu(int tam, string arr[]){
cout << "Eliga la accion que quiera realizar:" << endl << "A.- Guardar" << endl << "B.- Ver" << endl << "C.- Buscar" << endl << "D.- Borrar" << endl << "E.- Salir" << endl;
   char ent;
   cin >> ent;
   if(ent=='a'||ent=='A'||ent=='b'||ent=='B'||ent=='c'||ent=='C'||ent=='D'||ent=='e'||ent=='E'){
       if(ent=='a'||ent=='A'){
           system("cls");
           guardar(tam,arr);
       }
       if(ent=='b'||ent=='B'){
           system("cls");
           ver(tam,arr);
       }
       if(ent=='c'||ent=='C'){
           system("cls");
           buscar(tam,arr);
       }
       if(ent=='d'||ent=='D'){
           system("cls");
           borrar(tam,arr);
           }
       if(ent== 'e' || 'E'){
           exit(0);
       }
   }else{
   cout << "Entrada no valida" << endl << "Intente de nuevo" << endl;
   Sleep(2000);
   system("cls");
   menu(tam,arr);
   }
}
int main(){
   int tam=15;
   string arr[tam];
   menu(tam,arr);
}