Buenas Tareas

10
TRABAJO COLABORATIVO 1 ESTRUCTURA DE DATOS UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA. YOPAL 2013 2. Aplicación de las estructuras.

Transcript of Buenas Tareas

Page 1: Buenas Tareas

TRABAJO COLABORATIVO 1

ESTRUCTURA DE DATOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA.

YOPAL

2013

2. Aplicación de las estructuras.

Las estructuras son colecciones de elementos, los cuales pueden ser de diferente

tipo. Una estructura es un tipo de dato compuesto que permite almacenar un

conjunto de datos que pueden ser de diferente tipo. Los datos que contiene una

Page 2: Buenas Tareas

estructura pueden ser de tipo simple (caracteres, números enteros o de coma

flotante etc.) o a su vez de tipo compuesto (vectores, estructuras, listas, etc.). A

cada uno de los datos o elementos almacenados dentro de una estructura se les

denomina miembros de esa estructura y éstos pertenecerán a un tipo de dato

determinado.UNIVERSIDAD NACIONAL ABIERTA Y ADISTANCIA UNAD

Escuela de Ciencias Básicas Tecnología E Ingeniería

Curso: 301305-ESTRUCTURA DE DATOS

Ing. Hermes Mosquera Angulo

De acuerdo a la definición conceptual de las estructuras, se requiere implementar

un programa como aplicación, que permita almacenar en una estructura llamada

estudiante el código del estudiante, el nombre y el teléfono de contacto. El

programa debe permitir insertar los datos del estudiante y posteriormente

visualizarlos. Se tiene plena libertad para escoger la implementación que

considere de solución al requerimiento. Como resultado se espera el código fuente

debidamente documentado y la captura de pantalla de las imágenes de la salida

en pantalla de cada opción.

Recuerde: Para este punto no se pide hacer uso de funciones u operadores para

la gestión dinámica de memoria.

3. Aplicación de las estructuras de datos y gestión dinámica de memoria

con las funciones Malloc() y Free().

Se requiere implementar un programa codificado en C++ que haga uso de la

gestión dinámica de memoria con las funciones malloc() y free(), que por medio de

un menú de opciones permita insertar y visualizar la información de cursos

académicos en una estructura llamada Cursos que almacenará el código del

curso, el nombre del curso y el número de créditos del curso. Como resultado se

espera el código fuente debidamente documentado y la captura de pantalla de las

imágenes de la salida en pantalla de cada opción.

Page 3: Buenas Tareas

4. Aplicación de las estructuras y gestión dinámica de memoria con los

operadores New y Delete.

Implemente un programa en C++ que haga uso de la gestión dinámica de

memoria a través de los operadores New y Delete, que permita insertar y

visualizar los datos básicos de programas académicos de la UNAD, haciendo uso

de una estructura llamada Programas que almacenará el código del programa, el

nombre del programa. Como resultado se espera el código fuente debidamente

documentado y la captura de pantalla de las imágenes de la salida en pantalla de

cada opción.

Procedimiento

A través del foro habilitado para el desarrollo del trabajo colaborativo, cada

integrante del grupo hará sus aportes correspondientes que contribuirán a la

consolidación del trabajo final, debe evidenciarse los aportes individuales ya que

estos serán tenidos en cuenta para la valoración del trabajo y para diligenciar la

tabla No.1 de la coevaluación que harpa el líder del grupo. Es importante que UNIVERSIDAD NACIONAL ABIERTA Y ADISTANCIA UNAD

Escuela de Ciencias Básicas Tecnología E Ingeniería

Curso: 301305-ESTRUCTURA DE DATOS

Ing. Hermes Mosquera Angulo

desde el inicio de la actividad el grupo plantee una estrategia de participación

individual de tal manera que antes de los últimos tres días previos a finalizar la

actividad en consenso con todos los integrantes del grupo se seleccionen los

mejores programas para presentarlos como producto final después de la

consolidación.

ACTIVIDAD 4. APLICACIÓN DE LAS ESTRUCTURAS Y GESTIÓN DINÁMICA DE MEMORIA CON LOS OPERADORES NEW Y DELETE.

#include <cstdlib>

#include <iostream>

Page 4: Buenas Tareas

using namespace std;

struct programa{

int codigo;

char nombre[20];

};

int menu(); // Funcion con menu Textual de opciones.

void agregarPrograma(programa *p,int indice); // Funcion para agregar un nuevo programa, se pasa como parametro un puntero con la posicion actual del indice en el arreglo.

void mostrarPrograma(programa *p, int indice); // Funcion para mostrar desde el primer programa, hasta por donde valla el indice dentro del arreglo de cursos.

void msjErrorMenu(); // Funcion con mensaje de error en caso de que el usuario introduzca un numero de opcion no permitido.

void msjErrorBuffer(); // Funcion con mensaje de error para comunicar al usuario que se llego al limite del arreglo.

void cerrarFuncion(); // Esta funcion ayuda con el perfomance del programa.

void msjSalida(); // Funcion que muestra un mensaje de despedida al cerrar el programa.

int main(int argc, char *argv[])

{

int indice=0; // Esta variable es utilizada como indice para conocer la posicion dentro del arreglo de la estructura.

programa *p; // Se declara puntero a la estructura

p = (programa*) malloc(20*sizeof(programa)); // se asigna un arreglo de 20 posiciones al puntero.

int opcionMenu; // Esta variable es utilizada para recoger la opcin digitada por el usuario.

Page 5: Buenas Tareas

do{

opcionMenu=menu(); // Se recoge el numero de opcion selecionado por el usuario.

system("cls");

cout << endl;

switch(opcionMenu){ // Se analizan las opcines del usuario.

case 1: // Opcion Agregar usuario.

if(indice>=20){ // Condicional para no sobrepasar el limite de longitud del arreglo.

msjErrorBuffer(); // Funcion con mensaje de error para comunicar al usuario que se llego al limite del arreglo.

break;

}

else{ // Si no se ha sobre pasado dicho limite, se procede a agregar el curso.

agregarPrograma(p,indice); // funcion para agregar curso

indice++; // Se incrementa el indice

break;

}

case 2:

mostrarPrograma(p,indice); // se muestras todos los cursos introducidos hasta el momento.

cerrarFuncion();

break;

case 9:

Page 6: Buenas Tareas

delete p; // Se libera la memoria.

msjSalida(); // Se muestra un mensaje de despedida.

break;

default:

msjErrorMenu(); // En caso de que el usuario introduzca un numero de opcion no permitido.

break;

}

}while(opcionMenu!=9);

system("pause");

return 0;

}

int menu(){ // Funcion con menu Textual de opciones.

int resp;

cout << "***Menu***" << endl << endl;

cout << "Selecione la opciones: " << endl;

cout << "1. Agregar Programa" << endl;

cout << "2. Mostrar Programas" << endl;

cout << "9. Salir del Programa" << endl;

cout << endl << " Selecione la opcion numero: ";

cin >> resp;

cerrarFuncion();

return resp; // Devuelve el numero de opcion selecionado por el usuario.

}

Page 7: Buenas Tareas

void agregarPrograma(programa *p,int indice){ // Funcion para agregar un nuevo curso, se pasa como parametro un puntero con la posicion actual del indice en el arreglo.

cout << "Introduzca el codigo del programa: ";

cin >> p[indice].codigo;

cout << "Introduzca el nombre del programa: ";

cin >> p[indice].nombre;

cerrarFuncion();

}

void mostrarPrograma(programa *p,int indice){ // Se muetra desde el primer programa, hasta por donde valla el indice dentro del arreglo de programas.

for(int i=0;i<indice;i++){

cout << endl << "******" << endl;

cout << endl << "El codigo del programa es: " << p[i].codigo;

cout << endl << "El nombre del programa es: " << p[i].nombre;

}

cerrarFuncion();

}

void msjErrorMenu(){ // Funcion con mensaje de error en caso de que el usuario introduzca un numero de opcion no permitido.

system("cls");

cout << "El numero de opcion introducido no es valido, por favor selecione las opciones 1,2 o 9. Muchas Gracias." << endl;

cerrarFuncion();

}

Page 8: Buenas Tareas

void msjErrorBuffer(){ // Funcion con mensaje de error para comunicar al usuario que se llego al limite del arreglo.

system("cls");

cout << "Imposible crear programa. Se ha superado el límite de crear programas." << endl;

cerrarFuncion();

}

void cerrarFuncion(){ // Esta funpion ayuda pon el perfomanpe del programa.

cout << endl << endl;

system("pause");

system("cls");

}

void msjSalida(){ // Funpion que muestra un mensaje de despedida al perrar el programa.

cout << "Muphas Grapias por utilizar pe programa." << endl << endl;

cout << "*** Chao! ***" << endl << endl;

cerrarFuncion();

}