Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2011, 12:02
anyelyb88
 
Fecha de Ingreso: marzo-2011
Ubicación: Duaca
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta sobre programacion c++, con respecto a los txt..

buenas, mi nombre es anyely, pero me dicen anyi, estoy nueva aqui en el Foro, y he buscado más o menos la informacion que necesito pero son muchos los foros anteriores prefiero preguntar.

tengo una clase Tipo_examen.h donde se encuentra lo atributos publicos y privado y los metodos, alli #include "Tipo_examen.cpp" donde desarrollare los metodos, lo que llama el profe encapsulamiento, debo leer los datos de un txt, si deseo registrar otro examen este debe guardarse en el txt, yo use la libreria ftream, pero me dan unos errores. aaahh estoy usando lista simplemente enlazada, SOY NUEVA PROGRAMANDO En C++, he hecho lo que puedo--.. por favor si alguien me ayuda... por fa..!

aqui va el codigo:

#ifndef TIPO_EXAMEN_H
#define TIPO_EXAMEN_H

#include <string>
using namespace std;

class Tipo_examen
{
private:
string cod_examen;
string descripcion;
float costo_unitario;
string unidad_medida;
float valor_minimo;
float valor_maximo;
public:
Tipo_examen();
Tipo_examen(string exa, string des, float cu, string umed, float vmin, float vmax);
void setcod_examen(string exa);
void setdescripcion(string des);
void setcosto_unitario(float cu);
void setunidad_medida(string umed);
void setvalor_minimo(float vmin);
void setvalor_maximo(float vmax);
string getcod_examen();
string getdescripcion();
float getcosto_unitario();
string getunidad_medida();
float getvalor_minimo();
float getvalor_maximo();
};


#include "Tipo_examen.cpp"
#endif

Tipo_examen::Tipo_examen(){}
/////////////////////////////////////////////
Tipo_examen::Tipo_examen(string exa, string des, float cu,string umed, float vmin, float vmax)
{
cod_examen=exa;
descripcion=des;
costo_unitario=cu;
unidad_medida=umed;
valor_minimo=vmin;
valor_maximo=vmax;
}
//////////////////////////////////////////////////////////////////
void Tipo_examen::setcod_examen(string exa)
{cod_examen=exa;}
//////////////////////////////////////////////////////////////////////
void Tipo_examen::setdescripcion(string des)
{descripcion=des;}
/////////////////////////////////////////////////////////////////////
void Tipo_examen::setcosto_unitario(float cu)
{costo_unitario=cu;}
////////////////////////////////////////////////////////////////////
void Tipo_examen::setunidad_medida( string umed)
{ unidad_medida=umed;}
////////////////////////////////////////////////////////////////////
void Tipo_examen::setvalor_minimo(float vmin)
{valor_minimo=vmin;}
/////////////////////////////////////////////////////////////////
void Tipo_examen::setvalor_maximo(float vmax)
{valor_maximo=vmax;}
//////////////////////////////////////////////////////////////////////
string Tipo_examen::getcod_examen()
{return exa;}
////////////////////////////////////////////////////////////////
string Tipo_examen::getdescripcion()
{return des;}
////////////////////////////////////////////////////////////////////
float Tipo_examen::getcosto_unitario()
{return cu;}
///////////////////////////////////////////////////////////////////////
string Tipo_examen::getunidad_medida()
{ return umed;}
////////////////////////////////////////////////////////////////////////////
float Tipo_examen::getvalor_minimo()
{return vmin;}
///////////////////////////////////////////////////////////////////////////
float Tipo_examen::getvalor_maximo()
{return vmax;}

// este el el main ..el PRINCIPAL
#include <cstdlib>
#include <iostream>
#include"Lista.h"
#include "Tipo_examen.h"
using namespace std;

int main()
{
Lista<Tipo_examen>l;
Cargar_exa(l);
Imprimir_exa(l);
system("PAUSE");
return 0;
}

void Cargar_exa(Lista<Tipo_examen> &lis)
{


nodo<Tipo_examen> *ap;

string codigo;
string descrip,unimed;
float costou,valormax,valormin;
Tipo_examen t;

ifstream Leer("tipoexamen.txt");


if(!Leer){cout<<" Error al Abrir el Fichero "<<endl;}
else
{
while(!Leer.eof())
{
Leer>>codigo;
Leer>>descrip;
Leer>>costou;
Leer>>unimed;
Leer>>valormin;
Leer>>valormax;
t = Tipo_examen(codigo,descrip,costou,unimed,valormin, valormax);
if(lis.Vacia())
{
lis.InsComienzo(t);
ap = lis.ObtPrimero();
}
else
{
lis.InsDespues(ap,t);
ap = lis.ObtProx(ap);

}

};

}
}
void Imprimir_exa (Lista<Tipo_examen> &l)
{
nodo<Tipo_examen> *ap;
Tipo_examen tipe;
ap = l.ObtPrimero();
cout<<"**Codigo de Examen****Descripción del Examen***Costo Unitario***Unidad de Medida****Valor Minimo de Referencia****Valor Maximo de Referencia** "<<endl;

while(ap != NULL)
{
tipe = l.ObtInfo(ap);
cout<<tipe.getcod_examen()<<" "<<tipe.getdescripcion() <<" "<<tipe.getcosto_unitario()<<" "<<tipe.getunidad_medida()<<" "<<tipe.getvalor_minimo()<<" "<<tipe. getvalor_maximo()<<endl;
ap = l.ObtProx(ap);
};

};
// Y LA LISTA ES ESTA:

#ifndef Lista_H
#define Lista_H

template <class Tipo>
class Lista;

template <class Tipo>
class nodo
{
Tipo info;
nodo<Tipo>* prox;
friend class Lista<Tipo>; //La clase Lista puede acceder a sus atributos privados
};
template <class Tipo>
class Lista
{
typedef nodo<Tipo>* Apuntador;
private:
nodo<Tipo>* Primero;
public:
Lista();
nodo<Tipo>* ObtPrimero();
void AsigPrimero(nodo<Tipo>* p);
bool Vacia();
bool Llena();
bool InsComienzo(Tipo Valor);
bool EliComienzo(Tipo &Valor);
bool InsDespues(Apuntador p,Tipo Valor);
bool EliDespues(Apuntador p,Tipo &Valor);
~Lista();
nodo<Tipo>* ObtProx(Apuntador p);
void AsigProx(Apuntador p,Apuntador q);
Tipo ObtInfo(Apuntador p);
void AsigInfo(Apuntador p,Tipo Valor);
};
#include "Lista.cpp"
#endif

//IMPLEMENTACION
#include <iostream>
#include <string>
using namespace std;

template <class Tipo>
nodo<Tipo>*Lista<Tipo>::ObtPrimero()
{
return Primero;
}

template <class Tipo>
void Lista<Tipo>::AsigPrimero(nodo<Tipo>* p)
{
Primero=p;
}

template <class Tipo>
Lista<Tipo>::Lista()
{
Primero=NULL;
}

template <class Tipo>
bool Lista<Tipo>::Vacia()
{
return Primero == NULL;
}

template <class Tipo>
bool Lista<Tipo>::Llena()
{
nodo<Tipo> *p;
p=new nodo<Tipo>;
if (p==NULL)
return true;
else
{
delete p;
return false;
}
}
template <class Tipo>
bool Lista<Tipo>::InsComienzo(Tipo Valor)
{
Apuntador nuevo;
if (!Llena())
{
nuevo=new nodo<Tipo>;
nuevo->info=Valor;
nuevo->prox=Primero;
Primero=nuevo;
return true;
}
else
return false;
}

template <class Tipo>
bool Lista<Tipo>::EliComienzo(Tipo &Valor)
{
Apuntador viejo;
if (!Vacia())
{
viejo=Primero;
Valor=viejo->info;
Primero=Primero->prox;
delete viejo;
return true;
}
else
return false;
}

template <class Tipo>
bool Lista<Tipo>::InsDespues(Apuntador p,Tipo Valor)
{
Apuntador nuevo;
if (!Llena())
if (p==NULL)
return false;
else
{
nuevo=new nodo<Tipo>;
nuevo->info=Valor;
nuevo->prox=p->prox;
p->prox=nuevo;
return true;
}
else
return false;
}

template <class Tipo>
bool Lista<Tipo>::EliDespues(Apuntador p,Tipo &Valor)
{
Apuntador viejo;
if (p==NULL)
return false;
else
if (p->prox==NULL)
return false;
else
{
viejo=p->prox;
Valor=viejo->info;
p->prox=viejo->prox;
delete viejo;
return true;
}
}

template <class Tipo>
nodo<Tipo>* Lista<Tipo>::ObtProx(Apuntador p)
{
return p->prox;
}

template <class Tipo>
void Lista<Tipo>::AsigProx(Apuntador p,Apuntador q)
{
p->prox=q;
}

template <class Tipo>
Tipo Lista<Tipo>::ObtInfo(Apuntador p)
{
return p->info;
}

template <class Tipo>
void Lista<Tipo>::AsigInfo(Apuntador p,Tipo Valor)
{
p->info=Valor;
}

template <class Tipo>
Lista<Tipo>::~Lista()
{
nodo<Tipo> *p;
while (!Vacia())
{
p=Primero->prox;
delete Primero;
Primero=p;
}
}






LISTO...!! ESO ES LO QUE TENGO Y ME SALE ERROR DE COMPILACION CON LAS VARIABLES , EXA,VMIN,VMAX,.....
Y SI NO CORRIJO ESO NO PUEDO VER SI ME FUNCIONAN LAS FUNCIONES VOID QUE HICE...
GRACIAS
Y DISCULPEN LO LARGOOOO!! JEJEJEEJE