Professional Documents
Culture Documents
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Estructura de Datos B
PRACTICA 1
Estructuras de Datos Básicas & Hoja de Calculo
DESCRIPCION GENERAL
Se requiere que el estudiante desarrolle una aplicación de consola utilizando el lenguaje de
programación C/C++, en la cual se realizara la manipulación de distintas estructuras de datos,
así como sus representaciones mediante imágenes generadas por el mismo estudiante, y se
realizara la creación de una sencilla hoja de cálculo, en la cual se podrán ejecutar acciones
sobre las distintas posiciones de la hoja.
MENU PRINCIPAL
El menú principal desplegara una interfaz ordenada y amigable, donde se pueda visualizar la
sección del curso y el carnet del estudiante, así como las siguientes opciones en la cual se
podrá elegir las configuraciones de los distintos subsistemas
ESTRUCTURAS DE DATOS
Esta opción permitirá desplegar un nuevo menú en el cual se mostraran las siguientes
estructuras como opciones:
Pila
Cola
Lista Doblemente Enlazada (Ordenada)
Lista Circular Simplemente Enlazada (Ordenada)
Insertar
Ver
Editar
Eliminar
Graficar
NODO
Cada estructura mencionada en esta sección poseerá además de sus respectivos apuntadores
la siguiente información:
INSERTAR
Esta opción requerirá dos entradas por parte del usuario, las cuales serán un id, y un valor
respectivamente, los cuales servirán para la creación de un nuevo nodo que será insertado en
la estructura seleccionada previamente.
Id
Valor
Direcciones de memoria de los apuntadores que posea el nodo, así como el id
correspondiente a esos apuntadores
EDITAR
Esta opción solicitara al usuario un único id, por medio del cual realizara una búsqueda dentro
de la estructura y devolverá el nodo solicitado, en el cual se podrá editar únicamente el valor
del nodo, NO el id
ELIMINAR
Esta opción solicitara al usuario un único id, por medio del cual realizara una búsqueda dentro
de la estructura y eliminara el nodo de su respectiva estructura
La grafica deberá de mostrar de una manera ordenada y adecuada la información en cada uno
de sus nodos, así como sus relaciones, y se debe de hacer una clara distinción de los nodos
cabecera o iniciales y los nodos finales, topes, fondos, etc.
X = Numero de columnas
Y = Numero de Filas
La cual constara de listas simplemente enlazadas vacías al inicio, las cuales simularan una
matriz; cada una de estas listas consistirá en una lista para filas y otra para columnas, donde
los tamaños X y Y serán parámetros ingresados por el usuario y serán enteros positivos, en
esta se mostrara un menú con las siguientes opciones:
CREAR HOJA
Si se elige esta opción y existe previamente una hoja existente esta se deberá eliminar y crear
una nueva
INSERTAR VALOR
Esta opción nos permitirá agregar un valor adentro de una casilla dentro de la hoja de cálculo,
para lo cual se solicitara al usuario:
GRAFICAR
Esta opción permitirá visualizar la hoja de cálculo a través de las
herramientas del sistema operativo, dicha grafica será generada
mediante la herramienta ‘Graphviz’, y será mostrada de manera
independiente a la aplicación creada por el estudiante, y deberá de
mostrar los valores dentro de la matriz en el momento actual
Suma
Resta
Multiplicación
En las cuales se deberá de solicitar para cada operación los siguientes parámetros
Columna Destino
Fila Destino
Columna valor 1
Fila valor 1
Columna valor 2
Fila valor 2
NOTA:
Se debe poder visualizar las gráficas de ambos menús ‘Estructuras de Datos’ y ‘Hoja de Cálculo’
en cualquier momento, si no existen elementos en alguna posición de la estructura o no existe
la estructura debe de mostrarse algo significativo en la imagen para representar que no
existen elementos
OBSERVACIONES
Lenguaje a utilizar: C/C++
Está permitido el uso de cualquier framework o IDE de desarrollo (Recomendado:
QtCreator)
Está permitido el uso de cualquier sistema operativo
Queda terminantemente prohibido el uso de librerías para estructuras propias del
lenguaje, uso de arreglos, vectores, etc. de detectarse el uso de estas se anulara la
practica
Las estructuras deben ser implementadas mediante el uso de struct y punteros
NO se deben de utilizar clases, ya sea para crear las estructuras, ni para almacenar
punteros hacia ellas
La aplicación será compilada y ejecutada en el momento de la calificación con el
compilador elegido por el estudiante
Se debe de utilizar una herramienta para generar las imágenes que contendrán las
gráficas de las estructuras (Recomendado: Graphviz)
Las imágenes mostradas en este enunciado son fines explicativos, el estudiante puede
diseñarlas a su criterio
PENALIZACIONES
Si existe un “null pointer exception”, o “segmentation fault(core dumped)”, se
penalizara, a criterio del auxiliar
Si la aplicación se cierra repentinamente existirá una penalización a criterio del auxiliar
Si no se visualiza de manera correcta las gráficas de las estructuras, no se tendrá el
punteo completo asociadas a esta
REQUERIMIENTOS MINIMOS
Subir los entregables vía Dropbox, de lo contrario NO se calificara.
*Copias totales, parciales, y/o de internet, tendrán nota de 0 puntos, y serán reportadas al
catedrático y a la Escuela de Ciencias y Sistemas FI-USAC