Está en la página 1de 6

AUTOMOVIL CCP

#include "automovil.h"

automovil::automovil(void)

anio=0;

kms=0;

automovil::~automovil(void)

void automovil::ingreso()

cout<<"Anio: ";

cin>>anio;

cout<<"Marca: ";

cin>>marca;

cout<<"Modelo: ";

cin>>modelo;

cout<<"Placa: ";

cin>>numero;

cout<<"Color: ";

cin>>color;

cout<<"KMS: ";
cin>>kms;

void automovil::imprimir()

cout<<"Anio: ";

cout<<anio;

cout<<"Marca: ";

cout<<marca;

cout<<"Modelo: ";

cout<<modelo;

cout<<"Placa: ";

cout<<numero;

cout<<"Color: ";

cout<<color;

cout<<"KMS: ";

cout<<kms;

SOURCE CCP
#include <iostream>
#include <string>
#include <stdio.h>
#include <fstream>//manejo de archivos
#include <iomanip>
#include <cstdlib>
#include <cstring>

#include "automovil.h"

using namespace std;

// Clase Datos, almacena y trata los datos.


class Datos :public fstream {
public:
Datos() : fstream("archivoA.dat", ios::in | ios::out | ios::binary) {
if(!good()) {
open("archivoA.dat", ios::in | ios::out | ios::trunc |
ios::binary);
cout << "Archivo creado" << endl;
cin.get();
}
}

~Datos() {}
void Guardar(automovil &reg);
bool Leer(long n, automovil &reg);
//void Borrar(long n);
};

bool Datos::Leer(long n, automovil &reg) {

clear();
seekg(n*sizeof(automovil), ios::beg);
read(reinterpret_cast<char *> (&reg), sizeof(automovil));
return gcount() > 0;
}

void Datos::Guardar(automovil &reg) {


// Insertar al final:
clear();
seekg(0, ios::end); //guarda secuencial
//seekg(n*sizeof(automovil), ios::beg); //guarda posicional
write(reinterpret_cast<char *> (&reg), sizeof(automovil));
cout <<"se guardo: "<< endl;
cin.get();
}

class Nodo
{
public:
Nodo();
~Nodo();
automovil Auto;
Nodo *sig;
private:

};

Nodo::Nodo()
{
sig=NULL;
}

Nodo::~Nodo()
{
}

void Agregar(Nodo *&T)


{
if (T==NULL)
{
Nodo *N=new Nodo();
N->Auto.ingreso();
T=N;
}else{
Agregar(T->sig);
}
}

void Imprimir(Nodo *T)


{
if (T!=NULL)
{
T->Auto.imprimir();
Imprimir(T->sig);
}
}

void Guarda(Nodo *T,Datos &tD)


{

if (T!=NULL)
{
tD.Guardar(T->Auto);
Guarda(T->sig,tD);
}
}
void Recupera(Nodo *&T,Datos &tD, long pos)
{
automovil tAuto;
tD.Leer(pos,T->tAuto);
if (tAuto.sihay())
{
Nodo *T=new Nodo(); // esto crea un nodo vacio.
T->Auto=tAuto;
Recupera(T->sig,tD,pos+1);
}
}
if (T!=NULL)
{
tD.Leer(pos,T->Auto);
Recupera(T->sig,tD,pos+1);
}
}
void main()
{
Nodo *A=NULL;
Datos D;
int ii=0;
int r=0;
do {
cout<<"1- Ingresar Vehiculos"<<endl;
cout<<"2- Imprimir"<<endl;
cout<<"3- Guardar Vehiculos"<<endl;
cout<<"4- Leer Vehiculos"<<endl;

cin>>r;
switch (r)
{
case 1:
Agregar(A);
break;
case 2:
Imprimir(A);

break;
case 3:
Guarda(A,D);
break;
case 4:
Recupera(A,D,0);
break;

default:
break;
}

}while (r!=0);

AUTOMOVIL H
#pragma once
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;

class automovil
{
public:
automovil(void);
~automovil(void);
void ingreso();
void imprimir();
private:
string numero;
string modelo;
string marca;
int anio;
int kms;
string color;

};

También podría gustarte