Вы находитесь на странице: 1из 14

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.

cpp

sbado, 03 de noviembre de 2012 16:14

/*============================================================================================ ====================== Nombre : Gestion de Alumnos - Trabajo Grupal Materia : Programacin 1 Profesor : Miguel Canali Grupo : Margot Lopez, Patricia Perillo, Paulo Macchianich Ao : 1 Profesorado Informtica ============================================================================================== ==================== ==================================================== Definicin Librerias ======================================== Las Librerias que usaremos son #include <iostream.h> #include <conio.h> #include <stdio.h> #include <fstream.h> #include <iomanip.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <windows.h> ============================================================================================== ====================*/ /*La estructura de memoria contas de una estructura nodo de nombre "Alumno", este nodo consta con los siguientes datos "grupo" el cual contendra el nombre del grupo, "cant" cantidad de alumnos que contendra ese nodo y "curso" nombre de curso al cual pertenecer a dicho grupo ACLARACION - El Nodo Alumno -Representa a un grupo, con su nombre,su curso, cantidad de alumnos y datos. La Estructura datosalumnos es de tipo vector la cual contiene la estructura datos de tipo registro, y se encuentra dentro del nodo ALumnos */ registro alumno{//====================================== Definicion estructura de datos ============================== char grupo[5]; entero cant; char curso[20]; registro datos{ entero cedula; entero telefono; char nombre[20]; char apellido[20]; char direccion[20]; } datosalumnos[30]; alumno *sig; }; /* definimos los punteros pini,paux,pfin para la creacin de los nodos encadenados*/ registro alumno *pini, *paux, *pfin;//================== Definicin de punteros ==============================

-1-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

/* este procedimeinto guarda el nombre del grupo ,la cantidad de alumnos y el nombre del curso en un archivo de tipo texto el cual estara el la carpeta donde se encuentra el programa principal el nombre de este archivo ser dado al llamar este procedimiento*/ procedimiento Guardar_Dato_Grupos(char path[], char grp[],char cur[], entero cant,char tipo []){//GUARDA TODO LOS DATOS DE GRUPOS defino como archivo *archivo; //definimos variable de tipo archivo archivo=abroarchivo (path , tipo) //abrimos el archivo,el parametro Tipo(lectura,escritura,edicin) Si (archivo <> NULL) hacer{ //preguntamos si no es el final del archivo guardarenarchivo(archivo,"%s\n",grp); //guardamos el nombre del grupo en el archivo guardarenarchivo(archivo,"%s\n",cur); guardarenarchivo(archivo,"%d\n",cant); }Fin si cierro(archivo); }

/*este procedimiento se encarga de guardar los datos del alumno, nombre de grupo al cual pertenece, nombre del alumno, nombre apellido, direccin, cedula y telefon*/ procedimiento Guardar_Dato_Alumnos(char path[],char grupo[], char nom_alu[],char ape_alu[], char dir_alu[],entero tel_alu, entero ced_alu,char tipo[]){//GUARDA TODO LOS DATOS DE GRUPOS defino como archivo *archivo; //definimos variable de tipo archivo archivo=abroarchivo(path,tipo); //abrimos el archivo,el parametro Tipo(lectura,escritura,edicin) Si (archivo <> NULL){ //preguntamos si no es el final del archivo guardarenarchivo(archivo,"%s\n",grupo); //guardamos el nombre del grupo en el archivo guardarenarchivo(archivo,"%s\n",nom_alu); guardarenarchivo(archivo,"%s\n",ape_alu); guardarenarchivo(archivo,"%s\n",dir_alu); guardarenarchivo(archivo,"%d\n",ced_alu); guardarenarchivo(archivo,"%d\n",tel_alu); }o cierro(archivo);// cierra archivo } /* este procedimiento se encarga de llamar al procedimiento Guardar_Dato_Grupos y pasar los parametros parar asi guardarlos en el archivo a medida que va recorriendo la lista de grupos(Nodos ALumnos), este procedimeinto tiene un control el cual se encarga de que cuando es el primer dato a guardar sobreescribe el archivo existente, cuando continua con los siguientes datos abre el archivo en forma de edicin LOS DATOS SON GUARDADOS CADA VEZ QUE SE SALE DEL PROGRAMA*/ procedimiento Consolidar_Datos_Grupos(){//GUARDAR DATOS EN ARCHIVO GRUPOS entero contador; paux=pini; contador=0; Mientras (paux <> NULL){//Recorre la lista hasta el final Si (contador=0){ Guardar_Dato_Grupos("DatosGrupos.txt", paux^grupo,paux^curso,paux^cant,"w"); //"w" abrimos en modo de
-2-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

contador=1; sobreescritura

//

} sino{ Guardar_Dato_Grupos("DatosGrupos.txt", paux^grupo,paux^curso,paux^cant,"a"); //"a" abrimos en modo de } // edicin paux=paux^sig; } }

/*este procedimiento se encarga de llamar al procedimiento Guardar_Dato_Alumnos y pasar los parametros parar asi guardarlos en el archivo a medida que va recorriendo la lista de grupos(Nodos ALumnos) y a su ves la estructura vector datosalumnos que contiene los registros de los alumnos, este procedimeinto tiene un control el cual se encarga de que cuando es el primer dato(el primer alumno) a guardar sobreescribe el archivo existente, cuando continua con los siguientes datos abre el archivo en forma de edicin LOS DATOS SON GUARDADOS CADA VEZ QUE SE SALE DEL PROGRAMA*/ procedimiento Consolidar_Datos_Alumnos(){//GUARDAR DATOS EN ARCHIVO ALUMNOS entero contador,ced,tel,i; char nomb[20],ape[20],dir[20],grupo[3]; paux=pini; contador=0; Mientras (paux <> NULL){//Recorre la lista hasta el final Si (contador=0){ Si (paux^cant>0){ grupo=paux^grupo; Para i=0 hasta i<paux^cant{//INGRESO DE DATOS ALUMNOS ced=paux^datosalumnos[i].cedula //pasamos a la varible CED el contenido de datosalumnos.ced nomb=paux^datosalumnos[i].nombre); ape=paux^datosalumnos[i].apellido); dir=paux^datosalumnos[i].direccion); tel=paux^datosalumnos[i].telefono; Guardar_Dato_Alumnos("DatosAlumnos.txt",grupo,nomb,ape,dir,tel,ced,"w"); // el archivo se abre en }i=i+1 //modo sobreescritura "w" } contador=1; } sino{ Si (paux^cant>0){ grupo=paux^grupo; Para i=0 hasta i<paux^cant{//INGRESO DE DATOS ALUMNOS ced=paux^datosalumnos[i].cedula; nomb=paux^datosalumnos[i].nombre); ape=paux^datosalumnos[i].apellido); dir=paux^datosalumnos[i].direccion); tel=paux^datosalumnos[i].telefono; Guardar_Dato_Alumnos("DatosAlumnos.txt",grupo,nomb,ape,dir,tel,ced,"a"); //abre el archivo en modo de edicin }i=i+1
-3-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

} } paux=paux^sig; } } }

//"a"

/*El procedimiento Reconsolidar_Dato_grupos, se ejecuta cuando inicia el programa, la funcion que cumple es de recuperar los datos guardados por lo procedimientos anteriores a partir de los datos obtenidos del archvio arma nuevamente la Lista de Nodos de Tipo alumnos lo cual tendra los datos de Nombre del grupo, nombre de curso y cantidad de alumnos que tendra ese grupo y as susesivamente nodo por nodo.*/ procedimiento ReConsolidar_Dato_Grupos(char path[],char tipo[]){//CARGO DATOS DE ARCHIVO definio archivo como *archivo; //define una variable de tipo archivo char grupo[3]; char curso[20]; entero cantidad; archivo=abroarchivo(path,tipo); //abro archivo, el "path" es igual a la ruta de acceso Si (archivo <> NULL){ // y el "tipo" es igual a r - read - lectura Mientras (no sea fin de archivo(archivo)){ //leo el archivo y cargo en listas leo(archivo,grupo); leo(archivo,curso); leo(archivo,cantidad); Si (pini==NULL){ //si no existe ningun nodo pini=new(alumno); pini^grupo=grupo); pini^curso=curso); pini^cant=cantidad; pfin=pini; } sino{ //si existe nodos paux=new(alumno); pfin^sig=paux; paux^grupo=grupo); paux^curso=curso); paux^cant=cantidad; pfin=paux; } pfin^sig=NULL; } } cierroarchivo(archivo); } /*El procedimiento reconsolidar_dato_alumnos, se ejecuta inmediatamente cuando termina el procesos de reconsoidacin de dato_grupos, una ves armados los grupos, se pasa a insertar los datos de los alumnos guardados tambien en un archivo, ingrsando los datos de los alumnos uno por uno.*/ procedimiento Reconsolidar_Dato_Alumnos(char path[], char tipo[]){//======= Ingreso de
-4-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

Alumno en Grupo Existente ======================== defino como archivo *archivo; entero i,temp,ced,tel; char nomb[20], ape[20], dir[20], grupo[3]; paux=pini; i=0; archivo=abroarchivo(path,tipo); Si (archivo <> NULL){ Mientras (paux <> NULL){ la lista Mientras (nosea fin de archivo(archivo)){ archivo (archivo,grupo); leo(archivo,nomb); variables leo(archivo,ape); de un renglon del leo(archivo,dir); leo(archivo,ced); leo(archivo,tel); temp= comparo (paux^grupo= grupo); que devuelve un numero Si (temp = 0){ devuelve un "0" paux^datosalumnos[i].cedula=ced; alumno en el grupo que le paux^datosalumnos[i].nombre=nomb; paux^datosalumnos[i].apellido=ape; paux^datosalumnos[i].direccion=dir; paux^datosalumnos[i].telefono=tel; i++; paux^cant=i; }fin si } paux=paux^sig; } } cierro archivo(archivo); }

//esto se cumple si el archivo existe //se realiza mientras no sea el final de //con esta estructura recorremos el

//cargamos los datos del archivo a //esto es una funcion que pasa los datos //archivo a una variable

//esta comparacin es una funcin //si los dos valores son iguales //esto es para poder ingresar el //corresponde

/*este procedimiento nos permite crear un grupo e ingresarle los alumnos este procedimiento es llamado del procedimiento ingreso_grupo en donde le pasamos el parametro del nombre de grupo el curso y la cantidad de alumnos que vamos a ingresar*/ procedimiento insertar(char grp[], entero cantidad, char curs[]){//================== Insertar gnodo en Lista ================== entero ced, tel,i,s,j,temp char nomb[20]; char ape[20]; char dir[20]; Si (pini=NULL){//========== Si el puntero apunta null -- (lista sin nodo) pini=creonodo(alumno); //==== C r e o n u e v o N o d o ==================== pini^grupo=grp); pini^curso=curs); pini^cant=cantidad; Para i=0 hasta i<cantidad{
-5-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

imprimir("Ingrese Cedula Alumno leo(ced) pini^datosalumnos[i].cedula=ced;

: ")

imprimir("Ingrese Nombre Alumno leo(nomb) pini^datosalumnos[i].nombre= nomb

: ")

imprimir("Ingrese Apellido Alumno leo (ape) pini^datosalumnos[i].apellido= ape; imprimir("Ingrese Direccin Alumno leo(dir) pini^datosalumnos[i].direccion= dir; imprimir("Ingrese Telefono Alumno leo(tel) pini^datosalumnos[i].telefono=tel; } pfin=pini;

: ")

: ")

: ")

Para s = 1 hasta s < cantidad{//metodo de ordenamiento alfabtico Para j =0 hasta j < cantidad-1{ temp=comparo(pini^datosalumnos[j].apellido= pini^datosalumnos[j+1].apellido) Si(temp > 0){ //Gruadamos datos en variables auxiliares ced = pini^datosalumnos[j].cedula; nomb=pini^datosalumnos[j].nombr; ape=pini^datosalumnos[j].apellido; dir=pini^datosalumnos[j].direccion; tel=pini^datosalumnos[j].telefono; //Traspasamos datos de la estructura de una posicion a otra pini^datosalumnos[j].cedula=pini^datosalumnos[j+1].cedula; pini^datosalumnos[j].nombre=pini^datosalumnos[j+1].nombre; pini^datosalumnos[j].apellido=pini^datosalumnos[j+1].apellido; pini^datosalumnos[j].direccion=pini^datosalumnos[j+1].direccion; pini^datosalumnos[j].telefono=pini^datosalumnos[j+1].telefono; //Traspasamos variables auxiliares a la estructura de la posicion anterior pini^datosalumnos[j+1].cedula=ced; pini^datosalumnos[j+1].nombre= nomb; pini^datosalumnos[j+1].apellido= ape; pini^datosalumnos[j+1].direccion=dir; pini^datosalumnos[j+1].telefono=tel; } } } } sino{//CREACION DE GRUPO si existen nodos anteriores paux=nuevonodo(alumno); pfin^sig=paux; paux^grupo=grp);
-6-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

paux^curso= curs); paux^cant=cantidad; Para (i=0 hasta i<cantidad){//INGRESO DATOS ALUMNOS imprimir("Ingrese Cedula Alumno : "); leo(ced); paux^datosalumnos[i].cedula=ced; imprimir("Ingrese Nombre Alumno leo(nomb); paux^datosalumnos[i].nombre= nomb; imprimir("Ingrese Apellido Alumno leo(ape); paux^datosalumnos[i].apellido= ape); imprimir("Ingrese Direccin Alumno leo(dir); paux^datosalumnos[i].direccion= dir; imprimir("Ingrese Telefono Alumno leo(tel); paux^datosalumnos[i].telefono=tel; : ");

: ");

: ");

: ");

} pfin=paux; Para (s = 1 hasta s < cantidad) {//METODO ORDENAMIENTO ALFABETICO Para (j =0 hasta j < cantidad-1){ temp=comparo(paux^datosalumnos[j].apellido= paux^datosalumnos[j+1].apellido) Si(temp > 0){ //Gruadamos datos en variables auxiliares ced = paux^datosalumnos[j].cedula; nomb=paux^datosalumnos[j].nombre; ape=paux^datosalumnos[j].apellido; dir=paux^datosalumnos[j].direccion; tel=paux^datosalumnos[j].telefono; //Traspasamos datos de la registro de una posicion a otra paux^datosalumnos[j].cedula=paux^datosalumnos[j+1].cedula; paux^datosalumnos[j].nombre=paux^datosalumnos[j+1].nombre; paux^datosalumnos[j].apellido=paux^datosalumnos[j+1].apellido; paux^datosalumnos[j].direccion=paux^datosalumnos[j+1].direccion; paux^datosalumnos[j].telefono=paux^datosalumnos[j+1].telefono; //Traspasamos variables auxiliares a la eregistroura de la posicion anterior paux^datosalumnos[j+1].cedula=ced; paux^datosalumnos[j+1].nombre= nomb); paux^datosalumnos[j+1].apellido= ape); paux^datosalumnos[j+1].direccion= dir); paux^datosalumnos[j+1].telefono=tel; }fin si }j=j+1 }s=s+1 } pfin^sig=NULL; } /*en este procedimiento hacemos un listado en pantalla de todos los alumnos*/
-7-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

procedimiento mostrar(){//===================================== Mostrar Contenido de una Lista=============================== paux=pini; imprimir("LISTADO TOTAL DE ALUMNOS"); Mientras (paux <> NULL){//Recorre la lista hasta el final canti=paux^cant; Para (i=0 hasta i<canti){//Recorro el vector que contiene los alumnos de ese grupo imprimir(paux^datosalumnos[i].cedula); imprimir(paux^datosalumnos[i].nombre); imprimir(paux^datosalumnos[i].apellido); imprimir(paux^datosalumnos[i].direccion); imprimir(paux^datosalumnos[i].telefono); imprimir(paux^grupo); }i=i+1 paux=paux^sig; } } /*en este procedimiento recibiremos el parametro grupo del procedimiento mostrar_alumnos con este parametro listaremos todos los alumnos perteneciente a un grupo*/ procedimiento listar_alumno(char grupo1[]){//================== LISTA ALUMNOS POR GRUPO====================================== paux=pini; entero i,canti,temp; Mientras (paux <> NULL){ temp=comparo(paux^grupo=grupo1) //corremos la funcion de comparacin si son iguales obtenemos un "0" Si (temp = 0){ imprimir("Curso :",paux^curso); imprimir("Grupo :",paux^grupo); imprimir("Cantidad Alumnos :",paux^cant); canti=paux^cant; Para (i=0 hasta i<canti){//Recorro el vector que contiene los alumnos de ese grupo imprimir(paux^datosalumnos[i].cedula); imprimir(paux^datosalumnos[i].nombre); imprimir(paux^datosalumnos[i].apellido); imprimir(paux^datosalumnos[i].direccion); imprimir(paux^datosalumnos[i].telefono); } i=i+1 }fin si paux=paux^sig; } } /*este procedimiento es llamado desde el procedimiento listar_grupos abajo descrito es desde ahi que recibimos el parametro que contendra el nombre del curso segun este parametro listaremos solo los grupos que pertenescan al curso especificado*/ procedimiento listar_grupos(char cur[]){//===================== LISTA GRUPOS POR CURSO======================================= paux=pini; entero i,canti,temp; Mientras (paux <> NULL){ //recorremos toda la lista temp=comparo(paux^curso=cur); //hacemos la pregunta para filtar el curso Si (temp = 0){ imprimir("Curso :",paux^curso); imprimir("Grupo :",paux^grupo); //se imprimen los datos
-8-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

imprimir("Cantidad Alumnos :",paux^cant); } paux=paux^sig; } } /*este procedimiento nos permite ingresar un nuevo grupo llamando a la funcion insertar, pasando los parametros de nombre de grupo, el nombre del curso y la cantidad de alumnos que queremos ingresar en ese moment tiene tambien incorporado un control de cantidad de alumnos para no superar la cantidad maxima de 30 alumnos por grupo*/ procedimiento ingreso_grupo(){//=============================== Ingreso de Alumnos=========================================== entero opcion,num char grup[5]; char cur[20]; opcion=1;

Mientras (opcion <>0){ Imprimir("Ingrese Nombre Curso : "); leo(cur); Imprimir("Ingrese Nombre Grupo : "); leo(grup); Imprimir("Ingrese Cantidad de Alumnos (Hasta 30 Maximo) : "); leo(num); Si (num<=30){ //control de cantidad de alumnos insertar(grup,num,cur); //llama a la funcion insertar y pasa parametros } sino{ //si pasa los 30 alumnos muchosalumnos; // mensaje de error ingreso_grupo(); //se llama a si mismo denuevo } "Ingresa otro Grupo? / 1-Si opcion; } } //este procedimiento se define ms abajo procedimiento encontrar_grupo();//============================= Hace Referencia al Procedimiento encontrar Grupo ============ /*este procedimiento recibe los parametros grupo y cantidad de el procedimiento encontrar_grupo e ingresa la cantidad de alumnos indicado en el grupo indicado*/ procedimiento ingreso_alumnos(char grup[], entero canti){//======= Ingreso de Alumno en Grupo Existente ======================== paux=pini; entero i,temp,ced,tel,s,j; char nomb[20], ape[20], dir[20]; Mientras (paux <> NULL){ //mientras no sea el fin de la lista hacemos temp=comparo (paux^grupo= grupo) //utilizamos el parametro grupo para ingresar los alumnos en el grupo
-9-

0-No : ";

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

Si (temp = 0){ nos devuelve "0" Si (30-paux^cant >= canti){ ingresar hasta 30 alumno

//deseado esta funcion si los nombres son iguales // este control no asegura de que solo podamos // e indicarle que si se supera los 30 alumnos hay que crear otro grupo i<canti+paux^cant){//INGRESO DE DATOS ALUMNOS

Para (i=paux^cant hasta

//==============ubico el mensaje en pantall //pedimos los datos y los ingresamos a una variable imprimir("Ingrese Cedula Alumno : "); leo(ced); paux^datosalumnos[i].cedula=ced;

imprimir("Ingrese Nombre Alumno leo(nomb): paux^datosalumnos[i].nombre=nomb;

: ");

imprimir("Ingrese Apellido Alumno leo(ape); paux^datosalumnos[i].apellido=ape; imprimir("Ingrese Direccin Alumno paux^datosalumnos[i].direccion, dir); leo(dir); imprimir("Ingrese Telefono Alumno leo(tel); paux^datosalumnos[i].telefono=tel;

: ");

: ");

: ");

} paux^cant=paux^cant+canti; Para (s = 1 hasta s < paux^cant ) {//METODO DE ORDENAMIENTO ALFABETICO==================== Para (j =0; j < paux^cant-1){ //la funcion comparo nos devuelve un valor cero si son iguales, dicho valor es //asignado a la variable temp asi podemos compara cual de los nombres es el //mayor o el menor de ellos temp=comparo(paux^datosalumnos[j].apellido=paux^datosalumnos[j+1]. apellido) Si(temp > 0){//metodo de ordenamiento en forma alfabetica //Gruadamos datos en variables auxiliares ced = paux^datosalumnos[j].cedula; nomb=paux^datosalumnos[j].nombre; ape=paux^datosalumnos[j].apellido; dir=paux^datosalumnos[j].direccion; tel=paux^datosalumnos[j].telefono; //Traspasamos datos de la registros de una posicion a otra paux^datosalumnos[j].cedula=paux^datosalumnos[j+1].cedula; paux^datosalumnos[j].nombre=paux^datosalumnos[j+1].nombre; paux^datosalumnos[j].apellido=paux^datosalumnos[j+1].apellido; paux^datosalumnos[j].direccion=paux^datosalumnos[j+1].direccion; paux^datosalumnos[j].telefono=paux^datosalumnos[j+1].telefono;
-10-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

//Traspasamos variables auxiliares a los registros de la posicion anterior paux^datosalumnos[j+1].cedula=ced; paux^datosalumnos[j+1].nombre= nomb; paux^datosalumnos[j+1].apellido=ape; paux^datosalumnos[j+1].direccion=dir; paux^datosalumnos[j+1].telefono=tel; }fin si }j=j+1 }s=s+1 } sino{ muchosalumnos permitido //break; encontrar_grupo(); } } paux=paux^sig; } } /*este procedimiento llama al procedimiento Lista_alumno pasandole el parametro grupo, el resultado es un listado de los alumnos correspondiente al grupo que le pasemos como parametro*/ procedimiento mostrar_alumnos(){//============================= LISTADO DE ALUMNOS ========================================== imprimir("LISTADO DE ALUMNOS POR GRUPO"); char grupo1[5]; imprimir("Ingrese Nombre Grupo a Listar : "); //pedimmos el grupo grupo1; listar_alumno(grupo1); //pasamos el grupo por funcion } //Este procedimiento se encargar de llamar al procedimiento listar_grupo ordenandolo por curso procedimiento mostrar_grupos(){//============================== LISTADO DE ALUMNOS ========================================== imprimir("LISTADO DE GRUPOS POR CURSO"); char curso1[20]; imprimir("Ingrese Nombre de Curso a Listar : "); curso1; //pedimos el grupo para pasarselo por paramatro al procedimiento listar_grupos(curso1); } /* Este procedimiento nos permite llamar al procedimiento ingreso_alumnos, pasandole los parametros de grupo al que correspondera los o el alumno ingresado y la cantidad de alumnos a ingresar*/ procedimiento encontrar_grupo(){//============================= INGRESO DE ALUMNOS ========================================== imprimir("INGRESO DE ALUMNOS POR GRUPO EXISTENTE"); char grupo1[5]; entero num; imprimir("Nombre Grupo Donde Ingresara el Alumno : "); grupo1; imprimir("Cantidad de alumnos a ingresar ?: ");
-11-

//desplega mensaje de que el numero de alumnos // fue exedido //llamamos al procedimiento encontrar grupo nuevamente

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

num; ingreso_alumnos(grupo1,num);//llamamos a el procedimiento de ingreso pasando como parametro el grupo y la cantidad de //alumnos a ingresar } //este procedimiento nos permite buscar a un alumno por su apellido procedimiento Buscar_Alumnos(){// ============================= Busqueda de alumnos ========================================= paux=pini; imprimir("BUSQUEDA DE ALUMNOS"); char apelli[20]; imprimir("Ingrese Apellido de Alumno : "); apelli; imprimir("RESULTADOS BUSQUEDA DE ALUMNOS"); Mientras (paux <> NULL){//Recorre la lista hasta el final canti=paux^cant; //pasamos a la variable canti la cantidad real de alumnos que tiene el grupo Para (i=0 hasta i<canti){//Recorro el vector que contiene los alumnos de ese grupo temp= compara (paux^datosalumnos[i].apellido=apelli) Si (temp=0){ paux^datosalumnos[i].cedula; paux^datosalumnos[i].nombre; paux^datosalumnos[i].apellido; paux^datosalumnos[i].direccion; paux^datosalumnos[i].telefono; paux^grupo; }fin si }i=i+1 paux=paux^sig; } } /*este procedimiento se encarga de listar la totalidad de los grupos, el nombre,el curso al cual pertenece el grupo, y la cantidad de alumnos que tiene ese grupo*/ procedimiento Listado_Total_GRupo(){ paux=pini; Mientras (paux <> NULL) hacer{ imprimir("Curso :",paux^curso); imprimir("Grupo :",paux^grupo); imprimir("Cantidad Alumnos :",paux^cant); paux=paux^sig; } }

//este procedimiento se encarga de desplegar el texto del menu con sus diferentes opciones procedimiento menu(){//======================================== Menu Principal ============================================== imprimir("GESTOR DE ALUMNOS Y GRUPOS"); imprimir(" 1.)... CREAR GRUPOS & INGRESO DE ALUMNOS"); imprimir(" 2.)... LISTADO TOTAL ALUMNOS Y GRUPOS"); imprimir(" 3.)... INGRESAR ALUMNOS EN GRUPO EXISTENTE"); imprimir(" 4.)... LISTADO DE ALUMNOS POR GRUPO"); imprimir(" 5.)... LISTADO DE GRUPOS POR CURSO");
-12-

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

imprimir(" imprimir(" imprimir(" imprimir(" }

6.)... BUSCAR ALUMNOS"); 7.)... LISTADO TOTAL DE GRUPOS"); 8.)... SALIR"); Ingrese Numero de Opcion : ");

/* Programa principal lo primero a inicial el programa aparte de la definicin de variables locales para el uso de menu corremos los procedimientos de ReConsolidar_Dato_Grupos y Alumnos pra recuperar los datos guardados en los archivos luego mediante un miestras controlado por la variable "opcion" controlaremos el menu*/ main (){ //=========================================== PROGRAMA PRINCIPAL ========================================== entero opcion; // variables locales entero palabras; ReConsolidar_Dato_Grupos("DatosGrupos.txt","r"); //llamamos el procedimiento y abrimos el archivo como lectura Reconsolidar_Dato_Alumnos("DatosAlumnos.txt","r"); Mientras ( opcion<>8 ){ menu(); //llamamos al procedimiento menu opcion; En caso que opcion es { 1: ingreso_grupo(); 2: mostrar(); 3: encontrar_grupo(); 4: mostrar_alumnos(); 5: mostrar_grupos(); 6: Buscar_Alumnos(); 7: Listado_Total_GRupo(); 8: Consolidar_Datos_Grupos(); datos para guardar los Consolidar_Datos_Alumnos(); sino
-13-

//llamamos al procedimiento

//llamamos al procedimiento

//llamamos al procedimiento

//llamamos al procedimiento

//llamamos al procedimiento

//llamamos al procedimiento

//llamamos al procedimiento

//llamamos al procedimiento consolidar //datos de alumnos y grupos

C:\Users\Paulo\Dropbox\entrega parcial\Seudocdigo5ultimo.cpp

sbado, 03 de noviembre de 2012 16:14

error; } } } }

-14-

Вам также может понравиться