Vous êtes sur la page 1sur 18

1.

Se desea implementar un sistema de gestin acadmica bsico para administrar docentes,


matrcula y notas para lo cual se desea implementar las siguientes estructuras: a. Docente: i.
Cdigo, Entero. ii. Nombre, String. iii. DNI, Entero. b. Alumno: i. Cdigo, Entero ii. Nombre,
String iii. Edad, Entero. c. Curso: i. Cdigo, Entero ii. Nombre, String. iii. Crditos, Entero d.
MatriculaxAlumno: i. Cdigo curso, Entero valor que pertenece a la tabla curso. ii. Cdigo
Alumno, Entero valor que pertenece a la tabla Alumno. e. Profesorxcurso: i. Cdigo curso,
Entero valor que pertenece a la tabla curso. ii. Cdigo profesor, Entero valor que pertenece a la
tabla profesor. Se solicita lo siguiente: Mantenimiento de las tabla, Docente, Alumno y Curso.
Los mantenimientos deben incluir las siguientes funciones: o Registro de Docentes, Alumno y
curso. o Modificacin de los siguientes datos: Para la tabla Docente, el cdigo es fijo se
modifican Nombre y DNI. Para la Tabla Alumno, el cdigo es fijo se modifican el nombre y la
edad Para la Tabla curso, el cdigo es fijo se modifican el nombre y los crditos. o Eliminar un
registro. o Imprimir las tablas en archivos de texto y visualizarlo. Registrar Matricula por
Alumno. Registrar Profesores por curso. Elaborar los siguientes reportes: o Alumnos
Matriculados en un curso especifico. o Cursos dictados por un profesor. o Alumnos por
profesor.
void registrar_matriculaxalumno(void){

FILE*lista_alumnos,*lista_matriculaxalumno,*lista_cursos;

int cod_alumno,cod_curso;

struct alumno a1;

struct curso c1;

struct matriculaxalumno mxa;

bool encontrado =false;

system("cls");

cout<<"\n\tINGRESE CODIGO DEL ALUMNO A MATRICULAR :";cin>>cod_alumno;

//verificamos si el alumno con ese codigo existe en la lista alumnos

lista_alumnos=fopen("Lista de alumnos.SEC","rb");

if(lista_alumnos==NULL){

cout<<"\n\n\n\tNo existe el archivo de alumnos !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_alumnos);

getch();

return;

fread(&a1,sizeof(alumno),1,lista_alumnos);

while(!feof(lista_alumnos)){

if(a1.codigo==cod_alumno){

encontrado=true;// verifica si el alumno con tal codigo existe

break;

fread(&a1,sizeof(alumno),1,lista_alumnos);

if(encontrado==false){
cout<<"\nCodigo no existe en registros de alumnos."<<endl;

fclose(lista_alumnos);

getch();

return;

//verificar si el codigo del curso existe

encontrado =false;

cout<<"\n\tINGRESE EL CODIGO DEL CURSO DONDE SE MATRICULARA :


";cin>>cod_curso;

lista_cursos=fopen("Lista de cursos.SEC","rb");

if(lista_cursos==NULL){

cout<<"\n\n\n\rNo existe el archivo de cursos !!!";

cout<<"\n\r<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_alumnos);

fclose(lista_cursos);

return;

}
fread(&c1,sizeof(curso),1,lista_cursos);

while(!feof(lista_cursos)){

if(c1.codigo==cod_curso){

encontrado=true;// verifica si el curso con tal codigo existe

break;

fread(&c1,sizeof(curso),1,lista_cursos);

if(encontrado==false){

cout<<"\nCodigo no existe en registros de cursos."<<endl;

fclose(lista_alumnos);

fclose(lista_cursos);

getch();

return;

//ahora busco si ya se encuentra en la base de datos matriculado al mismp curso

lista_matriculaxalumno=fopen("Lista de matricula por alumno.SEC","rb+");

if(lista_matriculaxalumno==NULL)

lista_matriculaxalumno=fopen("Lista de matricula por alumno.SEC","wb+");

fread(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

while(!feof(lista_matriculaxalumno)){

if(mxa.codigo_alumno==cod_alumno){

if(mxa.codigo_curso==cod_curso){
cout<<"\nEL ALUMNO YA SE ENCUENTRA MATRICULADO A ESTE
CURSO. "<<endl;

fclose(lista_alumnos);

fclose(lista_cursos);

fclose(lista_matriculaxalumno);

getch();

return;

fread(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

//si encuntra k el codigo ya esta matriculado pues termina con return si no lo encuentra es

//decir k todabia no se ha matriculado asi que puedo continuar

//a este punto llegara si el codigo de curso y alumno existen en la base de datos y si el
alumno aun no esta matriculado;

//matriculo

mxa.codigo_alumno=cod_alumno;

mxa.codigo_curso=cod_curso;

fwrite(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

fclose(lista_cursos);

cout<<"\n\n\n\tAlumno Matriculado !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();
return;

void regitrar_profesoresxcurso(void){

FILE*lista_docentes,*lista_cursos,*lista_profesorxcurso;

int cod_docente,cod_curso;

struct docente d1;

struct curso c1;

struct profesorxcurso pxc;

bool encontrado =false;

system("cls");

cout<<"\n\tINGRESE CODIGO DEL DOCENTE A ASIGNAR :";cin>>cod_docente;

lista_docentes=fopen("Lista de docentes.SEC","rb");

if(lista_docentes==NULL){

cout<<"\n\n\n\tNo existe el archivo de docentes !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_docentes);

return;

//verificar si el codigo del docente existe en

fread(&d1,sizeof(docente),1,lista_docentes);

while(!feof(lista_docentes)){

if(d1.codigo==cod_docente){

encontrado=true;// verifica si el docente con tal codigo existe

break;
}

fread(&d1,sizeof(docente),1,lista_docentes);

if(encontrado==false){

cout<<"\nCodigo no existe en registros de docentes."<<endl;

fclose(lista_docentes);

getch();

return;

//verificar si codigo de curso existe

encontrado =false;

cout<<"\n\tINGRESE EL CODIGO DEL CURSO QUE SE LE ASIGNARA : ";cin>>cod_curso;

lista_cursos=fopen("Lista de cursos.SEC","rb");

if(lista_cursos==NULL){

cout<<"\n\n\n\tNo existe el archivo de cursos !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_docentes);

fclose(lista_cursos);

return;

fread(&c1,sizeof(curso),1,lista_cursos);

while(!feof(lista_cursos)){

if(c1.codigo==cod_curso){

encontrado=true;// verifica si el curso con tal codigo existe

break;

fread(&c1,sizeof(curso),1,lista_cursos);
}

if(encontrado==false){

cout<<"\nCodigo no existe en registros de cursos."<<endl;

fclose(lista_docentes);

fclose(lista_cursos);

getch();

return;

//ver k no se repita el curso de un profesor

lista_profesorxcurso=fopen("Lista de Profesor por curso.SEC","rb+");

if(lista_profesorxcurso==NULL){

lista_profesorxcurso=fopen("Lista de Profesor por curso.SEC","wb+");

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);

while(!feof(lista_profesorxcurso)){

if(pxc.codigo_curso==cod_curso){

cout<<"\n EL CURSO YA FUE ASIGNADO A UN DOCENTE ANTERIORMENTE


"<<endl;

fclose(lista_docentes);

fclose(lista_cursos);

fclose(lista_profesorxcurso);

getch();

return;

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);
}

//verificar para k no tenga el curso de otro profesor

while(!feof(lista_profesorxcurso)){

if(pxc.codigo_curso==cod_curso){

cout<<"\n ESTE DOCENTE YA SE LE HABIA SIDO ASIGNADO ESE CURSO.


"<<endl;

fclose(lista_docentes);

fclose(lista_cursos);

fclose(lista_profesorxcurso);

getch();

return;

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);

//regitro

pxc.codigo_profesor=cod_docente;

pxc.codigo_curso=cod_curso;

fwrite(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_cursos);

fclose(lista_profesorxcurso);

cout<<"\n\n\n\tDocente asignado a curso!!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";


getch();

return;

void reporte_alumno_matriculados_enuncurso(void){

FILE*lista_alumnos,*lista_matriculaxalumno,*lista_cursos;

int cod_curso;

struct alumno a1;

struct curso c1;

struct matriculaxalumno mxa;

bool encontrado=false;

system("cls");

lista_matriculaxalumno=fopen("Lista de matricula por alumno.SEC","rb+");

lista_alumnos=fopen("Lista de alumnos.SEC","rb");

lista_cursos=fopen("Lista de cursos.SEC","rb");

if(lista_matriculaxalumno==NULL || lista_alumnos==NULL || lista_cursos==NULL ){

cout<<"\n\n\n\tNo existe unos de los archivos !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_matriculaxalumno);

fclose(lista_alumnos);

fclose(lista_cursos);

return;

cout<<"\n\nALUMNOS POR CURSO_"<<endl;

cout<<"\n\n\nINGRESE EL CODIGO DEL CURSO PARA VISUALIZAR LOS ALUMNOS :


";cin>>cod_curso;

//ver si el codigo existe


fread(&c1,sizeof(curso),1,lista_cursos);

while(!feof(lista_cursos)){

if(c1.codigo==cod_curso){

cout<<"\nLos alumnos del curso "<<c1.nombre<<" son los siguientes :"<<endl;

cout<<"\n\nCodigo Alumno Nombre Alumno" <<endl;

cout<<"------------------------------------------"<<endl;

encontrado=true;

break;

fread(&c1,sizeof(curso),1,lista_cursos);

if(encontrado==false){

cout<<"\nCodigo no existe en registros de cursos."<<endl;

fclose(lista_cursos);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

getch();

return;

encontrado=false;

fread(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

while(!feof(lista_matriculaxalumno)){

if(mxa.codigo_curso==cod_curso){

cout <<left<<setw(20)<<mxa.codigo_alumno;

fseek(lista_alumnos,0,SEEK_SET);

fread(&a1,sizeof(alumno),1,lista_alumnos);

while(!feof(lista_alumnos)){
if(mxa.codigo_alumno==a1.codigo)cout<<left<<setw(20)<<a1.nombre<<endl;

fread(&a1,sizeof(alumno),1,lista_alumnos);

encontrado=true;

fread(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

if(encontrado==false){

cout<<"\nEl curso no se ha sido asignado a ningun alumno."<<endl;

fclose(lista_cursos);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

getch();

return;

fclose(lista_cursos);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

getch();

return;

void reporte_cursos_por_profesor(void){

FILE*lista_docentes,*lista_cursos,*lista_profesorxcurso;

int cod_profesor;

struct docente d1;

struct curso c1;

struct profesorxcurso pxc;


bool encontrado=true;

system("cls");

lista_profesorxcurso=fopen("Lista de Profesor por curso.SEC","rb");

lista_docentes=fopen("Lista de docentes.SEC","rb");

lista_cursos=fopen("Lista de cursos.SEC","rb");

if(lista_profesorxcurso==NULL || lista_docentes==NULL || lista_cursos==NULL ){

cout<<"\n\n\n\tNo existe unos de los archivos !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_cursos);

return;

cout<<"\n\nCURSOS POR PROFESOR_"<<endl;

cout<<"\n\n\nINGRESE EL CODIGO DEL PROFESOR PARA VISUALIZAR LOS CURSOS


ASIGNADOS : ";cin>>cod_profesor;

fread(&d1,sizeof(docente),1,lista_docentes);

while(!feof(lista_docentes)){

if(d1.codigo==cod_profesor){

cout<<"\nLos cursos dictados por el docente "<<d1.nombre<<" son los


siguientes :"<<endl;

cout<<"\n\nCodigo Curso Nombre Curso" <<endl;

cout<<"------------------------------------------"<<endl;

encontrado=true;

break;

fread(&d1,sizeof(docente),1,lista_docentes);
}

if(encontrado==false){

cout<<"\nCodigo no existe en registros de docentes."<<endl;

fclose(lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_cursos);

getch();

return;

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);

while(!feof(lista_profesorxcurso)){

if(pxc.codigo_profesor==cod_profesor){

cout <<left<<setw(20)<<pxc.codigo_curso;

fseek(lista_cursos,0,SEEK_SET);

fread(&c1,sizeof(curso),1,lista_cursos);

while(!feof(lista_cursos)){

if(pxc.codigo_curso==c1.codigo)cout<<left<<setw(20)<<c1.nombre<<endl;

fread(&c1,sizeof(curso),1,lista_cursos);

encontrado=true;

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);

}
fclose(lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_cursos);

getch();

return;

void reporte_alumnos_por_propfesor(void){

FILE*lista_docentes,*lista_alumnos,*lista_cursos,*lista_profesorxcurso,*lista_matriculaxalumn
o;

int cod_docente,cod_alumno;

struct docente d1;

struct alumno a1;

struct curso c1;

struct profesorxcurso pxc;

struct matriculaxalumno mxa;

bool encontrado=false;

system("cls");

lista_profesorxcurso=fopen("Lista de Profesor por curso.SEC","rb");

lista_docentes=fopen("Lista de docentes.SEC","rb");

lista_alumnos=fopen("Lista de alumnos.SEC","rb");

lista_matriculaxalumno=fopen("Lista de matricula por alumno.SEC","rb");

lista_cursos=fopen("Lista de cursos.SEC","rb");

if(lista_profesorxcurso==NULL || lista_docentes==NULL || lista_alumnos==NULL ||


lista_matriculaxalumno==NULL){

cout<<"\n\n\n\tNo existe unos de los archivos !!!";

cout<<"\n\t<<< Oprima cualquier tecla para continuar >>>";

getch();

fclose(lista_profesorxcurso);

fclose(lista_docentes);
fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

return;

cout<<"\n\nALUMNOS POR PROFESOR_"<<endl;

cout<<"\n\n\nINGRESE EL CODIGO DEL PROFESOR PARA VISUALIZAR SUS ALUMNOS:


";cin>>cod_docente;

//VER SI CODIGO EXISTE EN BASE DE DATOS

fread(&d1,sizeof(docente),1,lista_docentes);

while(!feof(lista_docentes)){

if(d1.codigo==cod_docente){

cout<<"\nLos alumnos del profesor "<<d1.nombre<<" son los


siguientes :"<<endl;

encontrado=true;

break;

fread(&d1,sizeof(docente),1,lista_docentes);

if(encontrado==false){

cout<<"\nCodigo no existe en registros de docentes."<<endl;

fclose(lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

getch();

return;

//VER SI TIENE ASIGNADO UN CURSO

encontrado=false;

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);
while(!feof(lista_profesorxcurso)){

if(pxc.codigo_profesor==cod_docente){

fseek(lista_cursos,0,SEEK_SET);

fread(&c1,sizeof(curso),1,lista_cursos);

while(!feof(lista_cursos)){

if(pxc.codigo_curso==c1.codigo){

cout<<"\n\n\nSus alumnos del curso "<<c1.nombre<<" son :"<<endl;

cout<<"\nCodigo Alumno Nombre Alumno" <<endl;

cout<<"------------------------------------------"<<endl;

fread(&c1,sizeof(curso),1,lista_cursos);

fseek(lista_matriculaxalumno,0,SEEK_SET);

fread(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

while(!feof(lista_matriculaxalumno)){

if(pxc.codigo_curso==mxa.codigo_curso){

cout <<left<<setw(20)<<mxa.codigo_alumno;//codigo de un alumno

fseek(lista_alumnos,0,SEEK_SET);
fread(&a1,sizeof(alumno),1,lista_alumnos);

while(!feof(lista_alumnos)){

if(mxa.codigo_alumno==a1.codigo)cout<<left<<setw(20)<<a1.nombre<<endl;

fread(&a1,sizeof(alumno),1,lista_alumnos);

fread(&mxa,sizeof(matriculaxalumno),1,lista_matriculaxalumno);

encontrado=true;

fread(&pxc,sizeof(profesorxcurso),1,lista_profesorxcurso);

if(encontrado==false){

cout<<"\nEl profesor no ha sido asignado a ningun curso."<<endl;

fclose(lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

getch();

return;

fclose(lista_profesorxcurso);

fclose(lista_docentes);

fclose(lista_alumnos);

fclose(lista_matriculaxalumno);

getch();

return;

Vous aimerez peut-être aussi