UNAD Curso 301304 – Introducción a la Programación Docente: Mirian Benavides R. UBICACIÓN DE DATOS EN PANTALLA Para una mejor ubicación de los datos en pantalla, se ha diseñado una función que se ha denominado gotoxy(). Al incluir esta función en un programa se puede controlar el espacio en que se imprimen los datos. Como se puede observar en el ejemplo siguiente, la función utiliza 2 parámetros de tipo entero, el primero corresponde a la fila y el segundo a la columna (se toma como referencia que la pantalla tiene 24 filas y 80 columnas). Una vez incluida en un programa la función gotoxy(), puede ser utilizada en cualquier parte de la codificación. #include <iostream> #include <stdlib.h> #include <windows.h> /*Libreria para utilizar funciones necesarias para construir la función gotoxy()*/ using namespace std; //Declaración de variables globales y llenar datos en tiempo de diseño int ident[4]={1,2,3,4}; char nombre[4][30]={"Maria Gonzalez","Jose Perez","Adolfo Velez","Ana Solarte"}; int edad[4]={20,40,5,15}; int area[4]={3,3,1,2}; //Declaración de funciones void gotoxy(int x, int y); int menu(); void imprimirDatos(); void ordenarDatosPorEdad(); //Función principal main() int main() { int op; do { op=menu(); switch(op) { case 1: imprimirDatos(); break; case 2: ordenarDatosPorEdad(); break; case 3: system("cls"); cout<<"\n\n\nPROGRAMA FINALIZADO"; cout<<endl<<endl; system("pause"); break; } } while (op!=3); return 0; } UNAD Curso 301304 – Introducción a la Programación Docente: Mirian Benavides R. /*Función para ubicar el cursor la función gotoxy ubica el cursor en una posición específica el primer parámetro indica el número de la columna el segundo parámetro indica el número de la fila */ void gotoxy(int x, int y) { HANDLE hCon; hCon = GetStdHandle(STD_OUTPUT_HANDLE); COORD dwPos; dwPos.X=x; dwPos.Y=y; SetConsoleCursorPosition(hCon,dwPos); } //Función Menú int menu() { int op; system("cls"); cout<<endl<<" EJEMPLO DE PRESENTACION DE DATOS ALMACENADOS EN VARIOS ARREGLOS"; cout<<endl<<endl<<"1- Imprimir datos"; cout<<endl<<endl<<"2- Imprimir datos ordenados por edad"; cout<<endl<<endl<<"3- Salir"; cout<<"\n\n\tDigite opcion : "; cin>>op; while(op<1 or op>3) { cout<<"\n\n\tOpcion incorrecta"; cout<<"\nDigite opcion : "; cin>>op; } return(op); } //Función para imprimir datos, ubicando los datos en pantalla utilizando gotoxy() void imprimirDatos() { int i; system("cls"); gotoxy(15,2); cout<<"DATOS REGISTRADOS"; gotoxy(1,4); cout<<"IDENT"; gotoxy(10,4); cout<<"NOMBRE"; gotoxy(40,4); cout<<"EDAD"; gotoxy(45,4); cout<<"AREA"; for(i=0;i<4;i++) { gotoxy(1,6+i); cout<<ident[i]; gotoxy(10,6+i); cout<<nombre[i]; gotoxy(40,6+i); cout<<edad[i]; if(area[i]==1) { gotoxy(45,6+i); cout<<"INFANTIL"; } if(area[i]==2) { gotoxy(45,6+i); cout<<"ADOLECENTE"; } if(area[i]==3) { gotoxy(45,6+i); cout<<"ADULTO"; } } cout<<endl<<endl; system("pause"); } UNAD Curso 301304 – Introducción a la Programación Docente: Mirian Benavides R. //Función para ordenar datos de varios arreglos void ordenarDatosPorEdad() { int i,j; // Contadores int tempIdent,tempEdad,tempArea; char tempNombre[30]; // Variable para intercambio de contenidos for (i=0;i<4-1;i++) { for (j=0;j<4-1;j++) { if (edad[j]>edad[j+1]) { tempEdad=edad[j]; tempIdent=ident[j]; tempArea=area[j]; strcpy(tempNombre,nombre[j]); edad[j]=edad[j+1]; ident[j]=ident[j+1]; area[j]=area[j+1]; strcpy(nombre[j],nombre[j+1]); edad[j+1]=tempEdad; ident[j+1]=tempIdent; area[j+1]=tempArea; strcpy(nombre[j+1],tempNombre); } } } imprimirDatos(); }