Codigo de una lista simple con funciones basicas
Enviado por Francisco Cristiano Castellanos • 12 de Noviembre de 2015 • Tareas • 2.482 Palabras (10 Páginas) • 178 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
...