Está en la página 1de 7

Universidad de las Fuerzas Armadas ESPE

Departamento de Ciencias de la Computacin


Ingeniera en Sistemas e Informtica
NOMBRE:
Jonathan Lema
FECHA:
16-12-2015
PERIODO:
Octubre 2015 Febrero 2016
NRC:
1010
ASIGNATURA: Estructuras de Datos
Deber 12

Realizar la correccin de la prueba de segundo parcial:


Archivo de encabezado Auto.h:
//Archivo de cabecera Auto.h que contiene la clase Auto
#include <string.h>
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;
//Clase Auto
class Auto
{
//Atributos de la clase Auto
private:
char placa[10];
char propietario[50];
char marca[50];
Auto *siguiente;
//Construcor por defecto de la clase Auto
public:
Auto()
{
strcpy(placa,"");
strcpy(propietario,"");
strcpy(marca,"");
siguiente=NULL;
}
//Mtodos de usuario de la clase Auto
void ingreso(Auto *cabeza, char placa[], char propietario[], char marca[])
{
Auto *aux, *nuevo;
//ingresa los nuevos nodos
aux=cabeza;
nuevo=new Auto();
nuevo->setPlaca(placa);
nuevo->setPropietario(propietario);
nuevo->setMarca(marca);

nuevo->ingresarArchivo(nuevo);
while(aux->getSiguiente()!=NULL)
{
aux=aux->getSiguiente();
}
aux->setSiguiente(nuevo);
}//Fin ingreso()
//Funcion imprimir
void imprimir(Auto *cabeza)
{
Auto *imprimir;
imprimir=cabeza;
while(imprimir!=NULL)
{
printf("%s\t%s\t%s\n",imprimir->getPlaca(),imprimir>getPropietario(),imprimir->getMarca());
imprimir=imprimir->getSiguiente();
}
}

//Funcion crearArchivo()
void crearArchivo()
{
ofstream archivo("Correccion de la Prueba 1 Segundo
Parcial.txt",ios::_Noreplace);
}
//Creacion de txt
void ingresarArchivo(Auto *nuevo)
{
ofstream archivo("Correccion de la Prueba 1 Segundo
Parcial.txt",ios::app);
archivo<<nuevo->getPlaca()<<"\t"<<nuevo>getPropietario()<<"\t"<<nuevo->getMarca()<<endl;
}
//Funcion modificarArchivo()
void modificarArchivo(Auto *cabeza)
{
Auto *aux;
aux=cabeza;
ofstream archivo("Correccion de la Prueba 1 Segundo
Parcial.txt",ios::trunc);
aux->crearArchivo();

while(aux!=NULL)
{
aux->ingresarArchivo(aux);
aux=aux->getSiguiente();
}

//Funcin leerArchivo()
char leerArchivo(Auto *cabeza)
{
Auto *aux,*nuevo;
char placa[10],propietario[50],marca[50],slash;

ifstream archivo("Correccion de la Prueba 1 Segundo


Parcial.txt",ios::app);
while(archivo>>placa>>slash>>propietario>>slash>>marca)
{
aux=cabeza;
nuevo=new Auto();
nuevo->setPlaca(placa);
nuevo->setPropietario(propietario);
nuevo->setMarca(marca);
while(aux->getSiguiente()!=NULL)
{
aux=aux->getSiguiente();
}
}

aux->setSiguiente(nuevo);

return *placa;
}

//Setters
//Funcion setPlaca()
void setPlaca(char placa[])
{
strcpy(this->placa,placa);
}
//Funcion setPropietario()
void setPropietario(char propietario[])
{
strcpy(this->propietario,propietario);
}
//Funcion setMarca()
void setMarca(char marca[])
{
strcpy(this->marca,marca);
}
//Funcin setSiguiente()
void setSiguiente(Auto *siguiente)
{
this->siguiente=siguiente;
}
//Getters
//Funcion getPlaca()
char *getPlaca()
{
return placa;
}
//Funcion getPropietario()
char *getPropietario()
{
return propietario;
}
//Funcion getMarca()
char *getMarca()
{
return marca;

}
//Funcipon *getSiguiente()
Auto *getSiguiente()
{
return siguiente;
}
};

Archivo Correccion_Prueba.cpp:
/*

Universidad de las Fuerzas Armadas "ESPE"


Departamento de Ciencias de la Computacin
Ingeniera en Sistemas e Informtica

Nombre: Jonathan Lema


Fecha: 16-12-2015
Materia: Estructuras de Datos
Enunciado: Realizar la correccin de la prueba.
*/
//Librerias
#include "Auto.h" //Llamo a mi archivo de cabecera .h Auto.h
//Funcin principal main()
void main()
{
//Declaracin de variables locales de la funcin main
Auto *cabeza;
cabeza=new Auto();
char op2, placa[10],propietario[50],marca[50];
int flag=0,op;
cabeza->crearArchivo();
*placa=cabeza->leerArchivo(cabeza);
do
{

system("cls");
printf("MENU");
printf("\n1.-Ver Registros");
printf("\n2.-Ingreso de Registro");
printf("\n3.-Salir");
printf("\nEscoja una opcion: ");
do{
op=getch();
}while(op!='1' && op!='2' && op!='3');
op=op-48;
switch(op)
{
case 1: //Ver registros
if(flag==1)
{

system("cls");
printf("Placa\tPropietario\tMarca\n");
cabeza->imprimir(cabeza);
getch();

break;
}else
{

system("cls");
printf("Primero debe ingresar un dato");
getch();

break;
}

case 2: //Ingreso de registros


do{
system("cls");
flag++;
printf("Ingrese la placa del auto: ");
fflush(stdin);
gets(marca);
printf("\nIngrese el propietario del auto: ");
fflush(stdin);
gets(propietario);
printf("\nIngrese la marca del auto: ");
fflush(stdin);
gets(marca);
cabeza->ingreso(cabeza,marca,propietario,marca);
printf("\nDesea ingresar otro(s/n): ");
fflush(stdin);
scanf("%c",&op2);
}while(op2=='s');
flag=1;
break;
case 3: //Salir
system("cls");
printf("Salir . . .");
getch();
break;
}//Fin switch()
}

}while(op!=3);

Corrida del programa:

Men:

Archivo Plano Correcion de la Prueba 1 Segundo Parcial.txt: