Ayuda con c++ vectores

Iniciado por andru23, 22 Abril 2015, 23:54 PM

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

andru23

Hola Buen Dia.

Tengo un pequeño inconveniente necesito almacenar datos en vectores, inicialmente los estaba almacenando en un .txt ya que se me hizo mucho mas facil de aprender, pero ahora me piden que esos datos que se almacenaban en .txt se almacenen en vectores, para lograr que el programa trabaje con una cantidad N de productos, que sea indicada por el usuario y   para producir las consultas e informes solicitados se utilizarán los métodos de ordenación y búsqueda y me muestre los mismos resultados con el menú de opciones.

no he logrado entender muy bien este tema.

espero me puedan ayudar con este codigo.

#include<cstdlib>
#include<iostream>
#include<fstream>
#include<string.h>
#include<conio.h>

using namespace std;
void autor();
void registrar();
void datos();
void consultar();
void modificar();
void salir();
void menu();

//Variables-Globales

char nombre[30],codigo[10],existencia[10],color[10],resp[1];
int costo=0, venta=0;
bool encontrado=false;
char buscod[10];
int main(){
    menu();
    return 0;
    system("PAUSE");
}
void menu(){
    int opcion=0;
    do{
       cout<<"\n\n\t\t******************************"<<endl;
        cout<<"\t\t  ..MENU DE OPCIONES.."<<endl;
        cout<<"\t\t******************************"<<endl;
        cout<<"1. Informacion del Autor "<<endl;
        cout<<"2. Registrar Productos "<<endl;
        cout<<"3. Listado de Datos"<<endl;
        cout<<"4. Consultar Registros"<<endl;
        cout<<"5. Salir"<<endl;
        cout<<"...Seleccione Una Opcion... ";
        cin>>opcion;

        switch(opcion){
            case 1:
                autor();
            break;

            case 2:
                registrar();
            break;

            case 3:
                datos();
            break;

            case 4:
                consultar();
            break;

            case 5:
                salir();
            break;
           
            default:
                cout<<"¡Opcion Incorrecta! selecione nuevamente"<<endl;
        }
    }while(opcion!=5);
}
void autor(){
       cout<<"\n\n\t\t\tINFORMACION DEL AUTOR"<<endl;;
       cout<<"\nAndru rodriguez"<<endl;;
       cout<<"Cod.1234567890"<<endl;;
       cout<<"Estudiante "<<endl;;
       cout<<"xxxxxxxxxxxx@xxxx.xxx"<<endl;;
}
      
void registrar(){
    ofstream archivo;
    archivo.open("productos.txt",ios::out|ios::app);
    if(archivo.is_open()){
        cout<<"\t\tDigite el Nombre del Producto: ";
        cin>>nombre;
        cout<<"\t\tIngresa el Codigo del producto: ";
        cin>>codigo;
        cout<<"\t\tIngresa la Existencia actual del  Producto: ";
        cin>>existencia;
        cout<<"\t\tIngresa el Color del Producto: ";
        cin>>color;
        cout<<"\t\tIngresa el Costo de compra del Producto: ";
        cin>>costo;
        cout<<"\t\tIngresa el Valor para la Venta del Producto: ";
        cin>>venta;
        archivo<<nombre<<" "<<codigo<<" "<<existencia<<" "<<color<<" "<<costo<<" "<<venta<<endl;
    }else{
        cout<<"Error, el Archivo No se Pudo Abrir"<<endl;
    }
    archivo.close();
}

void datos(){
    ifstream lectura;
    lectura.open("productos.txt",ios::out|ios::in);
    if(lectura.is_open()){
        cout<<"\n\n\t\t\tREGISTROS DEL PRODUCTO INGRESADO"<<endl;
        cout<<"**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.**"<<endl;
        lectura>>nombre;
        while(!lectura.eof()){
            lectura>>codigo;
            lectura>>existencia;
            lectura>>color;
            lectura>>costo;
            lectura>>venta;
            cout<<"Nombre: "<<nombre<<endl;
            cout<<"Codigo: "<<codigo<<endl;
            cout<<"Existencia: "<<existencia<<endl;
            cout<<"Color Disp: "<<color<<endl;
            cout<<"Costo Compra: "<<costo<<endl;
            cout<<"Valor para Venta: "<<venta<<endl;
            lectura>>nombre;
            cout<<"**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.**"<<endl;
        }
    }else{
        cout<<"Error, el Archivo No se Pudo Abrir, No ha sido creado"<<endl;
    }
    lectura.close();
}

void consultar(){
    ifstream lectura;//variable de tipo lectura
    lectura.open("productos.txt",ios::out|ios::in);//Abrir archivo.txt
   
    if(lectura.is_open()){
        cout<<"Digitar el Codigo del Producto que desea Buscar: ";
        cin>>buscod;
        lectura>>nombre;
        encontrado=false;
        while(!lectura.eof()){
            lectura>>codigo>>existencia>>color>>costo>>venta;
           
            if(strcmp(buscod,codigo)==0){
               cout<<"\n\t\t\tCONSULTA DE PRODUCTOS INGRASADOS"<<endl;
                cout<<"**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*..*.*.**"<<endl;
                cout<<"Nombre: "<<nombre<<endl;
                cout<<"Codigo: "<<codigo<<endl;
                cout<<"Existencia: "<<existencia<<endl;
                cout<<"Color Disp: "<<color<<endl;
                cout<<"Costo Compra: "<<costo<<endl;
                cout<<"Valor para Venta: "<<venta<<endl;
                cout<<"**.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*..*.*.**"<<endl;
                encontrado=true;
            }
            lectura>>nombre;
        }
        if(encontrado==false){
            cout<<"No hay registros con el codigo ingresado "<<buscod<<endl;
        }
    }else{
        cout<<"No se pudoAbrir el Archivo, aun no ha sido Creado"<<endl;
    }
    lectura.close();
}

void salir(){
   cout<<"\n\n\t\t****                         ****"<<endl;
   cout<<"\n\n\t\t\tPrograma Finalizado"<<endl;
    cout<<"\n\n\t\t\t  Hasta Pronto"<<endl;
    cout<<"\n\n\t\t****                         ****"<<endl;
}

eferion

Lo primero. El código tiene que ir "decorado" con la etiqueta del lenguaje correspondiente. Básicamente para que sea legible y porque lo dicen las normas. Puedes encontrar estas etiquetas en el desplegable que dice "GeSHi" en el editor de mensajes.

C++, como has visto, es un lenguaje en el que se pueden usar objetos. Además, el lenguaje dispone de una librería estándar que, si bien no te va a permitir realizar una aplicación gráfica, dispone al menos de una serie de clases muy útiles para tus programas. Los contenedores son un ejemplo de estas clases. Un contenedor te permite almacenar un número indeterminado de elementos. Esto último supone una gran ventaja sobre los arreglos típicos de C (int numeros[30] no puede almacenar más de 30 números).

Lo que te piden es que almacenes los datos en contenedores en vez de usar un archivo.

Orubatosu

Exacto, quizás deberías mirar la clase vector

http://www.cplusplus.com/reference/vector/

Claro que, habría que aclarar si estás usando la palabra "vector" como "concepto" o hacemos referencia al objeto definido por la clase Vector, que es un contenedor de la STL estandar de C++
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998