Codigo de una lista simple con funciones basicas
Enviado por Francisco Cristiano Castellanos • 12 de Noviembre de 2015 • Tarea • 2.482 Palabras (10 Páginas) • 212 Visitas
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
using namespace std;
class Estudiante
{
long int identificacion;
long int codigo;
long int telefono;
char nombre[20];
char carrera[25];
char direccion[20];
char asignatura[20];
short int dn;
short int mn;
short int an;
unsigned int dia;
unsigned int mes;
unsigned int anio;
float parcial1;
float taller1;
float parcial2;
float taller2;
float examen;
float definitiva;
Estudiante *sig;
public:
void crearCabeza(Estudiante *&,long int nip,long int cod,long int tel,char n[20],char c[25],char di[20],char a[20],short int dn1,short int mn1, short int an1,unsigned int d,unsigned int m,unsigned int an,float p1,float t1,float p2,float t2,float ex,float def);
void agregarNodo(Estudiante *&,long int nip,long int cod,long int tel,char n[20],char c[25],char di[20],char a[20],short int dn1,short int mn1, short int an1,unsigned int d,unsigned int m,unsigned int an,float p1,float t1,float p2,float t2,float ex,float def);
void crearLista(Estudiante *&);
void borrar(Estudiante *&);
void buscar(Estudiante *&);
void edad(Estudiante*&);
void pruebaA(Estudiante *&);
void aprobarA(Estudiante *&);
void mostrar(Estudiante *);
int comprobarI(Estudiante *&,unsigned int x);
int comprobarC(Estudiante *&,unsigned int x);
};
void Estudiante::crearCabeza(Estudiante *&cab,long int nip,long int cod,long int tel,char n[20],char c[25],char di[20],char a[20],short int dn1,short int mn1,short int an1,unsigned int d,unsigned int m,unsigned int an,float p1,float t1,float p2,float t2,float ex,float def)
{
cab=new Estudiante;
cab->identificacion=nip;
cab->codigo=cod;
cab->telefono=tel;
strcpy(cab->nombre,n);
strcpy(cab->carrera,c);
strcpy(cab->direccion,di);
strcpy(cab->asignatura,a);
cab->dn=dn1;
cab->mn=mn1;
cab->an=an1;
cab->dia=d;
cab->mes=m;
cab->anio=an;
cab->parcial1=p1;
cab->taller1=t1;
cab->parcial2=p2;
cab->taller2=t2;
cab->examen=ex;
cab->definitiva=((cab->parcial1*0.20)+(cab->taller1*0.15)+(cab->parcial2*0.20)+(cab->taller2*0.15)+(cab->examen*0.30));
cab->sig=NULL;
}
void Estudiante::agregarNodo(Estudiante *&cab,long int nip,long int cod,long int tel,char n[20],char c[25],char di[20],char a[20],short int dn1,short int mn1,short int an1,unsigned int d,unsigned int m,unsigned int an,float p1,float t1,float p2,float t2,float ex,float def)
{
Estudiante *aux=cab,*nvo;
while (aux->sig!=NULL)
aux=aux->sig;
nvo=new Estudiante;
aux->sig=nvo;
nvo->identificacion=nip;
nvo->codigo=cod;
nvo->telefono=tel;
strcpy(nvo->nombre,n);
strcpy(nvo->carrera,c);
strcpy(nvo->direccion,di);
strcpy(nvo->asignatura,a);
nvo->dn=dn1;
nvo->mn=mn1;
nvo->an=an1;
nvo->dia=d;
nvo->mes=m;
nvo->anio=an;
nvo->parcial1=p1;
nvo->taller1=t1;
nvo->parcial2=p2;
nvo->taller2=t2;
nvo->examen=ex;
nvo->definitiva=((nvo->parcial1*0.20)+(nvo->taller1*0.15)+(nvo->parcial2*0.20)+(nvo->taller2*0.15)+(nvo->examen*0.30));
nvo->sig=NULL;
}
void Estudiante::crearLista(Estudiante *&cab)
{
system("COLOR 4F");
long int nip;
long int cod;
long int tel;
short int dn1;
short int mn1;
short int an1;
unsigned int d;
unsigned int m;
unsigned int an;
float p1;
float t1;
float p2;
float t2;
float ex;
float def;
int x=0,y=0,z=0;
char n[20],c[25],di[20],a[20];
cout<<"Ingrese Identificacion: ";
cin>>nip;
z=comprobarI(*&cab,nip);
if(z==0)
{
cout<<"Ingrese Codigo: ";
cin>>cod;
y=comprobarC(*&cab,cod);
if(y==0)
{
cout<<"Ingrese Nombre: ";
gets(n);
gets(n);
cout<<"Ingrese Telefono: ";
cin>>tel;
cout<<"Ingrese Carrera: ";
gets(c);
gets(c);
cout<<"Ingrese Direccion: ";
gets(di);
cout<<"Ingrese Asignatura: ";
gets(a);
cout<<"Ingrese Fecha de Nacimiento: (D/M/A) "<<endl;
cin>>dn1;
cin>>mn1;
cin>>an1;
cout<<"Ingrese La Fecha de Hoy: (D/M/A) "<<endl;
cin>>d;
cin>>m;
cin>>an;
parcial1:
cout<<"Ingrese Parcial 1: ";
cin>>p1;
cout<<"Ingrese Taller 1: ";
cin>>t1;
cout<<"Ingrese Parcial 2: ";
cin>>p2;
cout<<"Ingrese Taller 2: ";
cin>>t2;
cout<<"Ingrese Examen: ";
cin>>ex;
if(cab==NULL)
{
crearCabeza(*&cab,nip,cod,tel,n,c,di,a,dn1,mn1,an1,d,m,an,p1,t1,p2,t2,ex,def);
}else{
agregarNodo(*&cab,nip,cod,tel,n,c,di,a,dn1,mn1,an1,d,m,an,p1,t1,p2,t2,ex,def);
}
...