Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Programación Visual TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE LA LAGUNA Programación visual Edgar Daniel Alba González (19130736) 6º Semestre de Ing. Electrónica Practica #1 Profesor: Alejandro Enrique Dzul López Índice Introducción 3 Planteamiento del problema 4 Desarrollo 5 Resultados 6 Ejecución 13 Opción #1 Llenar libro 13 Opción #2 Ordenar los libros alfabéticamente. 15 Opción #3 Ordenar de mayor a menor los precios de los libros. 15 Opción #4 Ordenar por cantidad de libros en existencia. 16 Conclusión 17 Introducción Una estructura de datos es una forma particular de organizar datos en una computadora para que pueda ser utilizado de manera eficiente. Diferentes tipos de estructuras de datos son adecuados para diferentes tipos de aplicaciones, y algunos son altamente especializados para tareas específicas. Las estructuras de datos son un medio para manejar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos y servicios de indización de Internet. Por lo general, las estructuras de datos eficientes son la clave para diseñar algoritmos eficientes. Algunos métodos formales de diseño y lenguajes de programación destacan las estructuras de datos, en lugar de los algoritmos, como el factor clave de organización en el diseño de software. La mayoría de los lenguajes ensambladores y algunos lenguajes de bajo nivel carecen de soporte de estructuras de datos. En cambio, muchos lenguajes de alto nivel y algunos lenguajes ensambladores de alto nivel, tales como MASM, tienen algún tipo de soporte incorporado para ciertas estructuras de datos, tales como los registros y arreglos. Por ejemplo, el lenguaje C soporta variables simples estáticas, dinámicas y registros, respectivamente, además de arreglos y matrices multidimensionales. La mayoría de los lenguajes de programación disponen de algún tipo de biblioteca o mecanismo en el uso de estructuras de los programas. Los lenguajes modernos por lo general vienen con bibliotecas estándar que implementan las estructuras de datos más comunes. Planteamiento del problema Desarrollar un programa en lenguaje C/C++ y en modo consola que posea el siguiente menú repetitivo: MENU 1. Llenar la lista de libros 2. Ordenar alfabéticamente los nombres de los libros 3. Ordenar por precio los libros (mayor a menor) 4. Ordenar por cantidad de libros en existencia 5. Salir El programa deberá poseer la declaración de una Estructura de Datos llamada Libro. La cual contiene un Nombre (cadena de caracteres – máximo 40), un Precio (número real), una cantidad de libros disponibles (entero positivo). La cantidad de libros máxima es de 15, por lo que el usuario, al momento de llenar la lista de libros, deberá suministrar la cantidad de libros a dar de alta en la lista (de 1 a 15). El programador, puede añadir las funciones que desee, por ejemplo, una función para mostrar la lista de libros que puede ser utilizada después de haber ordenado (opciones 2-4). Desarrollo Primero se inició con la declaración de las librerías que se usaran a lo largo de la práctica, como las predeterminadas que son #include<iostream> y #include<conio.h>, así como las incluidas para desarrollar la práctica, que son: #include<stdlib.h> que es la que nos ayudara a guardar el control de procesos con una memoria dinámica y #include <string.h> que es la que nos servirá para manipular las cadenas que establecimos en el código, cambiando sus caracteres al introducir los datos que se solicitan. Después de declarar las variables, se definió una estructura llamada Libro, donde estarán registrados los datos que se requieren y que el usuario va a definir, que son el nombre del libro, su precio y la cantidad de copias del libro. También se introdujo una variable llamada “R1” que servirá para generar una pregunta al usuario donde él mismo quiera agregar más datos de otros libros. Hay otra variable que será llamada a lo largo de los procesos del menú, que se llama libcont. Las opciones del menú están establecidas en void, la cual establecí en cada una de las opciones del menú en forma de lista, donde se guardarán los datos ingresados por el usuario que vienen siendo el nombre, el precio y la cantidad de libros, así como también mostrar la lista. Resultados Código #include<iostream> #include<stdlib.h> #include <conio.h> #include <string.h> #define CA 9999 using namespace std; typedef struct { char Nombre[40]; int Cantidad; int Precio; }Libro; int Respuesta=0; int libcont=0; void llenar_libro(Libro []); void ordenar_lista_nombre(Libro []); void ordenar_lista_precio(Libro []); void ordenar_lista_cantidad(Libro []); void mostrar_lista(Libro []); void main(void) { Libro lista[CA]; int opc; do{ system("cls"); cout<<"MENU"<<endl<<endl; cout<<" 1. Llenar la lista de libros. "<<endl; cout<<" 2. Ordenar alfabeticamente los nombres de los libros. "<<endl; cout<<" 3. Ordenar por precio los libros (mayor a menor). "<<endl; cout<<" 4. Ordenar por cantidad de libros en existencia. "<<endl; cout<<" 5. Salir. "<<endl; cout<<endl<<endl<<" Por favor eleja una de las opciones: "<<endl<<endl; cin>>opc; switch(opc) { case 1: system("cls"); cout <<endl<<"1. Llenar la lista de libros. " <<endl; llenar_libro(lista); system("pause"); break; case 2: system("cls"); cout<<endl<<"2. Ordenar alfabeticamente los nombres de los libros. "<<endl; ordenar_lista_nombre(lista); mostrar_lista(lista); system("pause"); break; case 3: system("cls"); cout<<endl<<" 3. Ordenar por precio los libros (mayor a menor). "<<endl; ordenar_lista_precio(lista); mostrar_lista(lista); system("pause"); break; case 4: system("cls"); cout<<endl<<" 4. Ordenar por cantidad de libros en existencia. "<<endl; ordenar_lista_cantidad(lista); mostrar_lista(lista); system("pause"); default: break; } } while(opc!=5); cout<<endl<<endl; } void llenar_libro(Libro a[]) { for(int i=0;i<CA;i++) { system("cls"); cout<<"\nIngresar Informacion Del Libro "<<i+1; fflush(stdin); cout<<"\n\nDar el nombre del libro = "; cin.get(a[i].Nombre,40,'\n'); cout<<"\nDar La Cantidad = "; cin>>a[i].Cantidad; cout<<"\nDar El Precio = "; cin>>a[i].Precio; cout<<"\n¿Agregar otro libro? (1 = Si, 2 = No) "; cin>>Respuesta; if (Respuesta == 2) { i=10000; } libcont=libcont+1; } } void ordenar_lista_nombre(Libro a[]) { int i,j; Libro var_aux; for (i=1; i<libcont; i++) { for (j=0; j<libcont - 1; j++) { if (strcmp(a[j].Nombre,a[j+1].Nombre)>0) { var_aux = a[j]; a[j] = a[j+1]; a[j+1] = var_aux; } } } } void ordenar_lista_precio(Libro a[]) { int i,j; Libro var_aux; for(i=0;i<libcont-1;i++) { for(j=0;j<libcont-1;j++) { if(a[j].Precio < a[j+1].Precio) { var_aux = a[j]; a[j] = a[j+1]; a[j+1] = var_aux; } } } } void ordenar_lista_cantidad(Libro a[]) { int i,j; Libro var_aux; for(i=0;i<libcont-1;i++) { for(j=0;j<libcont-1;j++) { if(a[j].Cantidad < a[j+1].Cantidad) { var_aux = a[j]; a[j] = a[j+1]; a[j+1] = var_aux; } } } } void mostrar_lista(Libro a[]) { int q; for(q=0;q<libcont;q++) { cout<<"\n"<<a[q].Nombre<<""<<a[q].Precio<<" "<<a[q].Cantidad<<endl; } } Ejecución Opción #1 Llenar libro Opción #2 Ordenar los libros alfabéticamente. Opción #3 Ordenar de mayor a menor los precios de los libros. Opción #4 Ordenar por cantidad de libros en existencia. Conclusión Como conclusión, realizar esta práctica fue bastante complicado, más que nada al momento de acomodar los procesos que se necesitan para las opciones del menú, en lo personal este programa me ayudó un poco mejorando respecto a la aplicación de menús en programación y es algo que pienso mejorar en respecto a sus aplicaciones, ya que en semestres anteriores no había desarrollado un programa como éste, pero me las pude arreglar para que pudiera funcionar. Cabe destacar la manera en la que las clases nos hacen un poco más sencillo al momento de programar, además de que contiene una estructura con sus funciones respectivas para declaración de variables y funciones, esto hace que sean más prácticos de manejar en el desarrollo del código principal del problema planteado, también haciendo mención de los constructores lo cual nos ayuda a inicializar los valores de los datos que vayamos a ingresar evitando usar más comandos y por lo tanto ahorra líneas de código haciéndolo más fácil, corto y eficiente, además de amigable para el usuario. Página | 1
Compartir