por axel_val el Mar Nov 23, 2004 11:56 pm
Te envío el código fuente pero cuidado todavía no implemto archivos lo pudes hacer pasando las estructuras de datos con fprint si tienes tiempo te lo puedo enviar completo pero no se cuando podré terminarlo ya que ultimamente estoy ocupado
# include <iostream.h>
# include <string>
void main ()
{
struct nodo
{
char nombre[20];
char apellido[20];
double nota1;
double nota2;
double nota3;
double def;
struct nodo *sig;
};
nodo *cab,*p,*q;
char op,nom2[20],ap[20];
int opcion,aux;
cab=NULL;
do
{
system("cls");
system("color a");
cout<<"\t\t ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n";
cout<<"\t\t º º\n";
cout<<"\t\t º Menu de opciones º\n";
cout<<"\t\t º º\n";
cout<<"\t\t º 1. Crear y adicionar estudiante º\n";
cout<<"\t\t º º\n";
cout<<"\t\t º 2. Mostrar la lista º\n";
cout<<"\t\t º º\n";
cout<<"\t\t º 3. Buscar estudiante º\n";
cout<<"\t\t º º\n";
cout<<"\t\t º 4. Borrar estudiante º\n";
cout<<"\t\t º º\n";
cout<<"\t\t º 5. SALIR º\n";
cout<<"\t\t º º\n";
cout<<"\t\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
cout<<"\t\t\t Elija su opcion ";
cin>>opcion;
cout<<"\n";
switch(opcion)
{
case 1:
do
{
system("cls");
system("color 9");
cout<<"\n\t\t\t ÉÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
cout<<"\n\t\t\t º CREAR LISTA º";
cout<<"\n\t\t\t ÈÍÍÍÍÍÍÍÍÍÍÍÍͼ";
q=new nodo;
cout<<"\n Diga el nombre ";
cin>>q->nombre;
cout<<"\n Diga el apellido ";
cin>>q->apellido;
cout<<"\n Digite la primera nota ";
cin>>q->nota1;
cout<<"\n Digite la segunda nota ";
cin>>q->nota2;
cout<<"\n Digite la tercera nota ";
cin>>q->nota3;
q->def=(q->nota1*0.3)+(q->nota2*0.3)+(q->nota3*0.4);
q->sig=NULL;
cout<<"\n La nota definitiva es "<<q->def<<endl;
if (cab==NULL)
cab=q;
else
{
p=cab;
while (p->sig != NULL)
p=p->sig;
p->sig=q;
}
cout<<"\n desea continuar con esta opcion s/n ";
cin>>op;
}
while ((op == 's')||(op == 'S'));
cout<<"\n";
break;
case 2:
do
{
system("cls");
system("color c");
cout<<"\n\t ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
cout<<"\n\t º Mostrar lista º";
cout<<"\n\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
//p=cab;
if (/*p->sig*/cab == NULL)
cout<<"\n lista vacia";
else
{
p=cab;
while (p != NULL)
{
cout<<"\n\n\a";
system("color d");
cout<<"\t\a Nombre: "<<p->nombre<<"\n";
cout<<"\t\a Apellido: "<<p->apellido<<"\n";
cout<<"\t\a Not 1 ->"<<p->nota1<<"\n";
cout<<"\t\a Not 2 ->"<<p->nota2<<"\n";
cout<<"\t\a Not 3 ->"<<p->nota3<<"\n";
cout<<"\t\a Definitiva -> "<<p->def<<"\n";
p=p->sig;
cout<<endl;
}
}
cout<<"\n desea continuar con esta opcion s/n ";
cin>>op;
}
while ((op == 's')||(op =='S'));
cout<<"\n";
break;
case 3:
do{
system("cls");
system("color e");
{
if (cab == NULL)
cout<<"\t\t LA LISTA ESTA VACIA \n\n\n\n\n";
else
{
cout<<"\n\t ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
cout<<"\n\t º Opcion buscar por nombre,apellido º";
cout<<"\n\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
q = cab;
cout<<"\n\t Digite el nombre del estudiante ";
cin>>nom2;
cout<<"\n\t Digite el apellido ";
cin>>ap;
aux = 0;
while ((q != NULL)&&(aux == 0))
{
if ((strcmp(nom2,q->nombre) == 0)&&(strcmp(ap,q->apellido)==0))
{
cout<<"\n ** Lo encontro ** \n";
cout<<" Nombre -> "<<q->nombre<<"\n";
cout<<" Apellido -> "<<q->apellido<<"\n";
cout<<" Not 1 -> "<<q->nota1<<"\n";
cout<<" Not 2 -> "<<q->nota2<<"\n";
cout<<" Not 3 -> "<<q->nota3<<"\n";
cout<<" Definitiva ->"<<q->def<<"\n";
aux=1;
}
else
q=q->sig;
}
if (aux == 0)
cout<<"\n\n\tEL ESTUDIANTE "<<nom2<<ap<<" NO ESTA EN LA LISTA \n";
cout<<"\n\n\n\t desea continuar con esta opcion s/n ";
cin>>op;
}
}
}while ((op == 's')||(op == 'S'));
cout<<"\n";
break;
case 4:
do
{
system("cls");
system("color f");
if (cab == NULL)
cout<<"\t\t LA LISTA ESTA VACIA \n\n\n ";
else{
cout<<"\n\t ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
cout<<"\n\t º BORRAR ESTUDIANTE º";
cout<<"\n\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
q=cab;
cout<<"\n\t Digite el nombre a ELIMINAR ";
cin>>nom2;
cout<<"\n\t Digite el apellido a ELIMINAR ";
cin>>ap;
aux=0;
while ((q != NULL)&&(aux==0))
{
if ((strcmp(nom2,q->nombre)==0)&&(strcmp(ap,q->apellido)==0))
{
p=q;
aux=1;
}
q=q->sig;
}
if (aux == 1)
{
cout<<" Nombre -> "<<p->nombre<<endl;
cout<<" Apellido ->"<<p->apellido<<endl;
cout<<" Definitiva ->"<<p->def<<endl<<endl;
if (p == cab)
cab=cab->sig;
else
{
q=cab;
while (q->sig != p)
q=q->sig;
q->sig=p->sig;
}
p->sig=NULL;
free(p);
}
else
cout<<" EL ESTUDIANTE NO ESTA EN LA LISTA ";
}
cout<<"\n\n\t\n desea continuar con esta opcion s/n ";
cin>>op;
}
while ((op=='s')||(op=='S'));
cout<<"\n";
break;
case 5:
do
{
system("cls");
//system("color 5");
//system("date");
//system("time");
cout<<"\n\n\n";
//system("pause");
}
while (op=='n');
cout<<"\n";
break;
}
}
while (opcion != 5);
cout<<"\n\t\t\t";
}
[/b]