#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
char inscripcion( FILE *abrir);
char consulta( FILE *abrir);
char modificar( FILE *abrir);
char eliminar( FILE *abrir);
void listado( FILE *abrir);
char borrar( FILE *abrir);
char menualumno();
int tvs = 0;
#define capacidad 300
struct alumnos
{
char carne[7];
char nombre[45];
char carrera[55];
char direccion[45];
char semestre[2];
char seccion[2];
char correo[20];
}; //fin struct alumnos
struct alumnos alu[capacidad];
struct alumnos alu2[capacidad];
struct alumnos alu3[capacidad];
struct alumnos alu4[capacidad]; //declaracion de 4 objetos alumnos
char main()
{
bool salir = false;
while (salir == false)
{
int opcion; int opconsulta=1;
FILE *abrir;
clrscr();
cout<<"ttttBIENVENIDOnn"<<endl;
cout<<"tttt OPCIONES ALUMNOSnnnn"<<endl;
cout<<"ttt1) INSCRIPCIONn "<<endl;
cout<<"ttt2) CONSULTASn"<<endl;
cout<<"ttt3) MODIFICARn"<<endl;
cout<<"ttt4) ELIMINARn"<<endl;
cout<<"ttt50) ELIMINAR BASE DE DATOSn"<<endl;
cout<<"ttt5) SALIRn"<<endl;
cin>> opcion;
switch(opcion)
{
case 1:
inscripcion(abrir);
break;
case 2: {
cout<<endl<<endl<<endl<<"1 ver alumnos individuales"<<endl;
cout<<"2 ver listado de todos los alumnos"<<endl<<endl;
cin>>opconsulta;
switch (opconsulta)
{
case 1: consulta(abrir);
break;
case 2: listado(abrir);
break;
default: cout<<"opcion incorrecta";
} //fin switch
}//fin case 2
break;
case 3: modificar(abrir);
break;
case 4: eliminar(abrir);
break;
case 5: salir = true;
break;
case 50: borrar(abrir);
break;
default: cout<<"OPCION NO VALIDA"<<endl;
} //fin del while
}//fin primer switch
}//fin main
char borrar(FILE *abrir)
{
remove("alumnos.txt");
remove("contador.txt");
}
char inscripcion(FILE *abrir)
{
char numero[7];
ifstream abr;
abr.open("contador.txt",ios::in);
abr>>tvs;
abr.close();
tvs++;
itoa(tvs,numero,10);
fseek(abrir, 0L, SEEK_END);
abrir=fopen("alumnos.txt","a+");
cout<<"ttINSCRIPCIONn"<<endl;
cout<<"CARNE No: "<<tvs<<endl;
cout<<"INGRESE LO SIGUIENTE"<<endl;
strcpy(alu[tvs].carne, numero); fflush(stdin);
cout<<" NOMBRE"<<endl;
gets(alu[tvs].nombre); fflush(stdin);
cout<<" DIRECCION"<<endl;
gets(alu[tvs].direccion); fflush(stdin);
cout<<" CORREO"<<endl;
gets(alu[tvs].correo); fflush(stdin);
cout<<"CARRERA"<<endl;
gets(alu[tvs].carrera);fflush(stdin);
cout<<"SEMESTRE"<<endl;
gets(alu[tvs].semestre);fflush(stdin);
cout<<" SECCION"<<endl;
gets(alu[tvs].seccion); fflush(stdin);
fwrite(&alu[tvs],sizeof(struct alumnos),1,abrir);
fseek(abrir, 0L, SEEK_SET);
fclose(abrir);
ofstream ab;
ab.open("contador.txt",ios::trunc);
ab<<tvs;
ab.close();
}
char consulta( FILE *abrir)
{
int num;
ifstream abr;
abr.open("contador.txt",ios::in);
abr>>tvs;
abr.close();
cout<<"INGRESE EL No. DE CARNE"<<endl;
cin>>num;
abrir = fopen("alumnos.txt", "r");
if(abrir == NULL)
{
cout<<"nALUMNOS NO EXISTE! nPOR FAVOR CREELO"<<endl;
}
else
{
num--;
fread(&alu2, sizeof(alumnos),tvs, abrir);
cout<<"CARNE: "<<alu2[num].carne<<endl;
cout<<"NOMBRES: "<<alu2[num].nombre<<endl;
cout<<"CARRERA: "<<alu2[num].carrera<<endl;
cout<<"DIRECCION: "<<alu2[num].direccion<<endl;
cout<<"SEMESTRE: "<<alu2[num].semestre<<endl;
cout<<"SECCION: "<<alu2[num].seccion<<endl;
cout<<"CORREO: "<<alu2[num].correo<<endl<<endl<<endl;
}
fclose(abrir);
getch();
}
char modificar( FILE *abrir)
{
int num;
abrir = fopen("alumnos.txt", "r+");
ifstream abr;
abr.open("contador.txt",ios::in);
abr>>tvs;
abr.close();
fread(&alu3, sizeof(alumnos),tvs, abrir);
fclose(abrir);
//listado(abrir);
cout<<"INGRESE EL No. DE CARNE"<<endl;
cin>>num;
if(abrir == NULL)
{
cout<<"nALUMNOS NO EXISTE! nPOR FAVOR CREELO"<<endl;
}
if (num > tvs)
{ cout<<endl<<"alumno no registrado"<<endl; getche();}
else
{
num--;
cout<<" NOMBRE"<<endl;
gets(alu3[num].nombre);
cout<<" DIRECCION"<<endl;
gets(alu3[num].direccion);
cout<<" CORREO"<<endl;
gets(alu3[num].correo);
cout<<"CARRERA"<<endl;
gets(alu3[num].carrera);
cout<<"SEMESTRE"<<endl;
gets(alu3[num].semestre);
cout<<" SECCION"<<endl;
gets(alu3[num].seccion);
cout<<"n";
abrir = fopen("alumnos.txt", "w+");
fwrite(&alu3,sizeof(struct alumnos),tvs,abrir);
fseek(abrir, 0L, SEEK_END);
fclose(abrir);
}
fclose(abrir);
}
char eliminar( FILE *abrir)
{
char decision = 'n';
int num;
abrir = fopen("alumnos.txt", "r+");
ifstream abr;
abr.open("contador.txt",ios::in);
abr>>tvs;
abr.close();
fread(&alu4, sizeof(alumnos),tvs, abrir);
fclose(abrir);
cout<<"ttELIMINARn"<<endl;
cout<<"INGRESE EL No. DE CARNE"<<endl;
cin>>num;
if (num>tvs)
{
cout<<"El registro que desea eliminar NO existe";
} // fin del if
else
{
num--;
cout<<"CARNE: "<<alu4[num].carne<<endl;
cout<<"NOMBRES: "<<alu4[num].nombre<<endl;
cout<<"CARRERA: "<<alu4[num].carrera<<endl;
cout<<"DIRECCION: "<<alu4[num].direccion<<endl;
cout<<"SEMESTRE: "<<alu4[num].semestre<<endl;
cout<<"SECCION: "<<alu4[num].seccion<<endl;
cout<<"CORREO: "<<alu4[num].correo<<endl<<endl<<endl;
cout<<endl<<endl<<"Desea eliminar este alumno? S/N"<<endl;
cin>>decision;
switch (decision)
{
case 'n': return 'n';
break;
case 's':
{
strcpy(alu4[num].nombre, "ELIMINADO");
strcpy(alu4[num].direccion, "ELIMINADO");
strcpy(alu4[num].correo, "ELIMINADO");
strcpy(alu4[num].carrera, "ELIMINADO");
strcpy(alu4[num].semestre, "0");
strcpy(alu4[num].seccion, "0");
abrir = fopen("alumnos.txt", "w+");
fwrite(&alu4,sizeof(struct alumnos),tvs,abrir);
fseek(abrir, 0L, SEEK_END);
fclose(abrir);
cout<<"EL CARNE No: "<<(num+1)<<" HA SIDO ELIMINADO"<<endl;
} //fin del case
}// fin del switch
getche();
} //fin del else
}
void listado(FILE *abrir)
{
abrir = fopen("alumnos.txt", "r+");
ifstream abr;
abr.open("contador.txt",ios::in);
abr>>tvs;
abr.close();
fread(&alu3, sizeof(alumnos),tvs, abrir);
fclose(abrir);
for (int i= 0; i<tvs; i++)
{
cout<<"CARNE: "<<alu3[i].carne<<endl;
cout<<"NOMBRES: "<<alu3[i].nombre<<endl;
cout<<"CARRERA: "<<alu3[i].carrera<<endl;
cout<<"DIRECCION: "<<alu3[i].direccion<<endl;
cout<<"SEMESTRE: "<<alu3[i].semestre<<endl;
cout<<"SECCION: "<<alu3[i].seccion<<endl;
cout<<"CORREO: "<<alu3[i].correo<<endl<<endl<<endl;
}
getche();
}