/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Almacenar y recuperar lista de ficheros

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
rafalfaro_18



Registrado: 28 Nov 2011
Mensajes: 2

MensajePublicado: 02/12/2011 1:45 am
Título: Almacenar y recuperar lista de ficheros

ESTE ES EL CODIGO QUE TENGO, ME URGE MODIFICARLO PARA QUE LA LISTA SEA GUARDAD EN UN FICHERO Y TAMBIEN LEIDA DEL MISMO, QUE PUEDA TAMBIEN MODIFICAR, ELIMINAR Y LISTAR DEL FICHERO.

clentes.cpp
Código:
#include "clientes.h"


Clientes::Clientes()
{

    NombClient=new string();
    Direccion=new string();
    Telefono=new string();
    Id=new string();
    TotalEnvios=new int;
    Monto=new float;


}

Clientes::Clientes(string *NombClient,string *Direccion,string *Telefono, string *Id, int *TotalEnvios, float *Monto)
{


    this->NombClient=NombClient;
    this->Direccion=Direccion;
    this->Telefono=Telefono;
    this->Id=Id;
    this->TotalEnvios=TotalEnvios;
    this->Monto=Monto;


}


string Clientes::getNombClient()
{
    return(*NombClient);
}

void Clientes::setNombClient(string *NombClient)
{
    this->NombClient=NombClient;
}
string Clientes::getDireccion()
{
    return(*Direccion);
}

void Clientes::setDireccion(string *Direccion)
{
    this->Direccion=Direccion;
}

string Clientes::getTelefono()
{
    return(*Telefono);
}

void Clientes::setTelefono(string *Telefono)
{
    this->Telefono=Telefono;
}


int Clientes::getTotalEnvios()
{
    return(*TotalEnvios);
}
void Clientes::setTotalEnvios(int *TotalEnvios)
{
    this->TotalEnvios=TotalEnvios;
}

float Clientes::getMonto()
{
    return(*Monto);
}
void Clientes::setMonto(float *Monto)
{
    this->Monto=Monto;
}




void Clientes::setId( string *Id){
this->Id=Id;

}
string Clientes::getId( ){
return(*Id);

}

string Clientes::Tostring(){
std::stringstream s;
s<<" -Nombre Cliente: "<<*NombClient<<endl;
s<<" -Direccion: "<<*Direccion<<endl;
s<<" -Telefono: "<<*Telefono<<endl;
s<<" -Id: "<<*Id<<endl;
s<<" -Total de Envios: "<<*TotalEnvios<<endl;
s<<" -Monto: "<<*Monto<<endl;


return s.str();
}

Clientes::~Clientes()
{
    //dtor
}


clientes.h
Código:
#ifndef CLIENTES_H
#define CLIENTES_H

#include <iostream>
#include <string>
#include "sstream"
#include <stdio.h>
#include <stdlib.h>

using namespace std;


class Clientes
{
    public:
        Clientes();
        Clientes(string *NombClient,string *Direccion,string *Telefono, string *Id, int *TotalEnvios, float *Monto);
        virtual ~Clientes();


        string Tostring();

        string getNombClient();
        void setNombClient(string *NombClient);

        string getDireccion();
        void setDireccion(string *Direccion);

        string getTelefono();
        void setTelefono(string *Telefono);

        string getId();
        void setId(string *Id);

        int getTotalEnvios();
        void setTotalEnvios(int *TotalEnvios);

       float getMonto();
        void setMonto(float *Monto);



    private:
    string *NombClient;
    string *Direccion;
    string *Telefono;
    string *Id;
    int *TotalEnvios;
  float*Monto;




};

#endif // CLIENTES_H



ListaC.cpp
Código:
#include "ListaC.h"

ListaC::ListaC()
{
cabeza=actual=NULL;    //ctor
}

ListaC::~ListaC()
{
      while(cabeza!=NULL){
        this->actual=cabeza;
        cabeza=cabeza->getNext();
        delete actual;
    }
  //dtor
}

bool ListaC::IsEmpty(){
    return cabeza==NULL;
}


string ListaC::consultar(string *Id){
    actual=cabeza;
    if(IsEmpty()){
        return "0";
    }
    else{
        bool n=true;
        while(actual != NULL && n==true){
                if(actual->getDato()->getNombClient()==*Id){
                   n=false;
                   return actual->getDato()->Tostring();
                }
                actual = actual->getNext();
        }
        if(actual == NULL)
            return "-1";
    }
    return 0;
}


string ListaC::Listar(){
    string cadena="";
    actual=cabeza;
    if(IsEmpty()){
        return "0";
    }
    else{
        string cadena="";
        while(actual!=NULL){
            cadena=cadena + actual->getDato()-> Tostring() + "\n";
            actual=actual->getNext();
        }
        return cadena;
    }
}

void ListaC::insertar(Clientes* d){
    Nodo * aux=new Nodo(d);
    if(IsEmpty()){
        cabeza=aux;
    }
    else{
        actual=cabeza;
        while(actual->getNext()!=NULL){
            actual=actual->getNext();
        }
        actual->setNext(aux);
    }
}

string ListaC::modificar(string *Id, Clientes*Cl){
    actual=cabeza;
    if(IsEmpty()){
        return "0";
    }
    else{
        bool n = true;
        while(actual!=NULL && n==true){
            if(actual->getDato()->getId()==*Id){
                n=false;
                actual->setDato(Cl);
            }
            actual=actual->getNext();
        }if(actual==NULL){
            return "-1";
        }
        else{
        return "1";
        }

 }

}

string ListaC::eliminar(string *Id){
    menu:
    if(IsEmpty()){
        return "0";
    }
    else{
        actual=cabeza;
        Nodo * aux=cabeza;
        if(cabeza->getDato()->getNombClient()==*Id){
            cabeza=cabeza->getNext();
            goto menu;
        }
        else{
            bool band=true;
            while(actual->getNext()!=NULL){
                if(actual->getNext()->getDato()->getNombClient() == *Id){
                    aux=actual->getNext();
                    actual->setNext(aux->getNext());
                    band=false;
                }
                else{
                actual=actual->getNext();
                }
            }
            if(band==false){
                return "-1";
            }
            else{
                return "1";
            }
        }
        delete aux;
    }
}


string ListaC::insertar_x_posicion(int v, Clientes * d){
    int cont=1;
    Nodo * aux=new Nodo(d);
    if(IsEmpty()){
        cabeza=aux;
        return "1";
    }
    if(v>contar() || v<1){
         return "-1";
    }
    else{
         actual=cabeza;
         while(cont!=v && actual!=NULL){
            cont++;
            actual=actual->getNext();
         }
        aux->setNext(actual->getNext());
         actual->setNext(aux);
        return "1";
        }
    }

int ListaC::contar(){
actual = cabeza;
int cont=0;
while(actual !=NULL){
    actual=actual->getNext();
    cont++;
}
return cont;
}




ListaC.h
Código:
#ifndef LISTAC_H
#define LISTAC_H
#include"Nodo.h"

using namespace std;
class ListaC
{
    public:
        ListaC();
        void insertar(Clientes*);
        string eliminar(string * Id);
        string insertar_x_posicion(int, Clientes*);
        int contar();
        bool IsEmpty();
        string modificar(string*Id, Clientes*);
        string consultar(string*Id);
        string Listar();
        bool ordenar();

        virtual ~ListaC();
    protected:
    private:
    Nodo * cabeza;
    Nodo * actual;
};

#endif // LISTAC_H





Nodo.cpp
Código:
#include "Nodo.h"

Nodo::Nodo()
{
    //ctor
}
Nodo::Nodo(Clientes * h){
    this->setDato(h);
    this->next=NULL;
}

Nodo::~Nodo()
{
    //dtor
}



Nodo.h
Código:
#ifndef NODO_H
#define NODO_H
#include"clientes.h"

class Nodo
{
    public:
        Nodo();
        Clientes * dato;
        Nodo * next;
      Nodo(Clientes*);
        void setDato(Clientes*h){this->dato=h;};
        Clientes *getDato(){return this->dato;};
        void setNext(Nodo * sig){this->next=sig;};
        Nodo *getNext(){return this->next;}
        virtual ~Nodo();
    protected:
    private:
};

#endif // NODO_H


Main.cpp

Código:
#include <iostream>
#include <string.h>
#include "clientes.h"
#include "Ruta.h"
#include "Envio.h"
#include "Empresa.h"
#include "Area.h"
#include"paquete.h"
#include"depadministrativo.h"
#include"depfinanciero.h"
#include"ListaC.h"




using namespace std;

int main()
{
        string *Ciudad=new string();
        string *Pais=new string();
        Area *elArea=new Area();
        DepFinanciero *fin1=new DepFinanciero();
        float *CostoEnvio=new float;
        float *Peso=new float;
        string *Destino=new string();
        Paquete *paq=new Paquete();
       string *IdEnvio=new string();
       string *DescripEnvio=new string();
        string *NivelSeguridad=new string();
        Envio *En=new Envio();
        string *Id=new string();
        string *NombClient=new string();
        string *Telefono=new string();
        string *Direccion=new string();
        int *TotalEnvios=new int;
        float *Monto=new float;
        Clientes *Cl=new Clientes();
        string Descripcion;
        int Conteo;
        int MedioTransp;
        float Kilometraje;
        float CostoKg;
        int TiempoDuracion;
        float CostoAso;
        string ux;
        Ruta *rut=new Ruta();

        ListaC*Lis=new ListaC();
   cout << "------------------------------------------------" << endl;
    cout << "PROYECTO PROGRAMACION 1" << endl;
    cout << "------------------------------------------------" << endl;
    cout<<"              Plataforma                     "<<endl;
   cout << "------------------------------------------------" << endl;
   cout << " -----Empresa-----------------THL-------" << endl;
   cout << "------------------------------------------------" << endl;

   int opc=0;

cout<<">*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<"<<endl;
  cout<<endl;
  cout<<":-----BIENVENIDO AL SISTEMA----:"<<endl;
  cout<<endl;
  cout<<">*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<>*<"<<endl;
  cout<<endl;
  cout<<"* Digite la opcion a la que le desea "<<endl;
  cout<<"realizar un mantenimiento...."<<endl;

  cout<<endl;

  cout<<"-1. Clientes"<<endl;
  cout<<"-2. Paquetes"<<endl;
  cout<<"-3. Rutas"<<endl;
  cout<<"-4. Envios"<<endl;
  cout<<"-5. Areas"<<endl;
  cout<<"-6.Empresa"<<endl;
  cout<<"-7.   Salir   "<<endl;


  cout<<endl;
  cin>>opc;

for(;;){
    system("cls");

    switch(opc){
      case 1:{
          int opcm = 0;
          cout<<"********MANTENIMIENTO **********"<<endl;
          cout<<"     ********CLIENTE **********"<<endl;
          cout<<"Seleccione entre las siguientes opciones"<<endl;
          cout<<"-1. Insertar"<<endl;
          cout<<"-2. Modificar"<<endl;
          cout<<"-3. Elimnar"<<endl;
          cout<<"-4. Consultar"<<endl;
          cout<<"-5. Listar"<<endl;
          cout<<"-6. Salir"<<endl;
          cout<<endl;
          cin>>opcm;


          int st=0;
          while(st==0){
          switch(opcm){
case 1:{
         string *Id=new string();
        string *NombClient=new string();
        string *Telefono=new string();
        string *Direccion=new string();
        int *TotalEnvios=new int;
        float *Monto=new float;
         cout<<"----DATOS PERSONALES----"<<endl;
         cout<<"Digite el Nombre----->";
         cin>>*NombClient;
         Cl->setNombClient(NombClient);
         cout<<endl;
         fflush(stdin);
cout<<"Digite su Direccion----->";
         cin>>*Direccion;

         Cl->setDireccion(Direccion);
         cout<<endl;
         fflush(stdin);
           cout<<"Digite su Telefono----->";
         cin>>*Telefono;

         Cl->setTelefono(Telefono);
         cout<<endl;
         fflush(stdin);
         cout<<"Digite su identificacion----->";
         cin>>*Id;
         Cl->setId(Id);
         cout<<endl;
         fflush(stdin);

      cout<<"Digite el Total de Envios----->";
         cin>>*TotalEnvios;
         Cl->setTotalEnvios(TotalEnvios);
         cout<<"Digite el Monto por concepto de envios----->";
         cin>>*Monto;
         Cl->setMonto(Monto);
          Cl=new Clientes(NombClient,Direccion, Telefono, Id, TotalEnvios, Monto);
                            Lis->insertar(Cl);
                            getchar();

    cout<<"Desea continuar en el menu"<<endl;
   cout<<"-0. Seguir"<<endl;
   cout<<"-1. Salir"<<endl;
   cin>>st;//para salir al while
break;
}
case 2: {

if(Lis->modificar(Id, Cl)=="0"){
                                cout << "No hay clientes registrados" << endl;
                            }
                            else{
                                cout << "Digite la cedula del Cliente que desea  modificar" << endl;
                                cin>>*Id;
                                if(Lis->consultar(Id)=="-1"){
                                    cout << "ERROR, No existe un cliente con ese ID" <<endl;
                                }
                                else{
        cout<<"Digite el Nombre----->";
         cin>>*NombClient;
         Cl->setNombClient(NombClient);
         cout<<endl;
         fflush(stdin);
cout<<"Digite su Direccion----->";
         cin>>*Direccion;

         Cl->setDireccion(Direccion);
         cout<<endl;
         fflush(stdin);
           cout<<"Digite su Telefono----->";
         cin>>*Telefono;

         Cl->setTelefono(Telefono);
         cout<<endl;
         fflush(stdin);
         cout<<"Digite su identificacion----->";
         cin>>*Id;
         Cl->setId(Id);
         cout<<endl;
         fflush(stdin);

      cout<<"Digite el Total de Envios----->";
         cin>>*TotalEnvios;
         Cl->setTotalEnvios(TotalEnvios);
         cout<<"Digite el Monto por concepto de envios----->";
         cin>>*Monto;
         Cl->setMonto(Monto);
                     Cl=new Clientes(NombClient,Direccion, Telefono, Id, TotalEnvios, Monto);
                            Lis->modificar(Id,Cl) ;
                                }
                            }
                            getchar();
                            getchar();

cout<<"Desea continuar en el menu"<<endl;
   cout<<"-0. Seguir"<<endl;
   cout<<"-1. Salir"<<endl;
   cin>>st;//para salir al while
                            break;

}
case 3:{

cout << "Digite el ID del cliente(s) a eliminar" << endl;
                            cin>>*Id;
                            ux=Lis->eliminar(Id);
                            if(ux=="0"){
                                cout << "No hay Clientes  en la lista" << endl;
                            }
                            else{

                                if(ux=="-1"){
                                    cout << "Error no existe  este Cliente" << endl;
                                }
                                else{
                                    cout << "El Cliente se ha eliminado correctamente" << endl;
                                }
                            }
                            getchar();
                            getchar();
    cout<<"Desea continuar en el menu"<<endl;
   cout<<"-0. Seguir"<<endl;
   cout<<"-1. Salir"<<endl;
   cin>>st;//para salir al while
                            break;

}
case 4:{

cout << "Digite la cedula del Cliente a consultar" << endl;
                            cin>>*Id;
                            ux=Lis->consultar(Id);
                            if(ux=="0"){
                                cout << "No hay clientes registrados con ese ID" << endl;
                            }
                            else{
                                if(ux=="-1"){
                                    cout << "Error no existe dicho empleado" << endl;
                                }
                                else{
                                    cout << Lis->consultar(Id) << "\n";
                                }
                            }
                            getchar();
                            getchar();

    cout<<"Desea continuar en el menu"<<endl;
   cout<<"-0. Seguir"<<endl;
   cout<<"-1. Salir"<<endl;
   cin>>st;//para salir al while
                            break;
}
case 5:{


ux=Lis->Listar();
if(ux=="0"){
cout << "No hay Clientes Inscritos" << endl;
    }
else{
cout << ux << "\n";
}
getchar();

Clientes *Cl=new Clientes();
    cout<<"Desea continuar en el menu"<<endl;
   cout<<"-0. Seguir"<<endl;
   cout<<"-1. Salir"<<endl;
   cin>>st;//para salir al while
break;
}
          }
          }
          break;
      }
      default:{
       exit(0);
      }
    }

}










    return 0;
}
[/quote]
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 6586
Ubicación: Mexico

MensajePublicado: 02/12/2011 9:41 am
Título:

Por favor evita títulos con palabras como "¡¡¡AUXILIO!!!", eso mas que llamar la atención quita las ganas de leer los mensajes (Esa es la razón por la que edite tu mensaje).

Nada en el programa trata con archivos, ¿Que avances llevas en esa parte? Publicalos y tal vez alguien pueda ayudarte.

Un saludo
_________________
Memory never recaptures reality. Memory reconstructs. All reconstructions change the original, becoming external frames of reference that inevitably fall short.
--
Mentat Handbook
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com