ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Leccion Evaluativa


Enviado por   •  3 de Noviembre de 2012  •  1.314 Palabras (6 Páginas)  •  561 Visitas

Página 1 de 6

3. Aplicación de la Memoria Dinámica con 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 tres 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 cada línea y la captura de pantalla de las imágenes de la salida en pantalla de cada opción.

1. #include <stdio.h> //Se incluyen la librería stdio.h para el buen funcionamiento del programa y soportar la sintaxis del lenguaje

2. #include <conio.h> //Se incluyen la librería conio.h para el buen funcionamiento del programa y soportar la sintaxis del lenguaje

3. #include <stdlib.h> //Se incluyen la librería stdlib.h para el buen funcionamiento del programa y soportar la sintaxis del lenguaje

4. #include <iostream.h> //Se incluyen la librería iostream.h para el buen funcionamiento del programa y soportar la sintaxis del lenguaje

5. struct nodo { // Definimos la estructura de almacenamiento

6. char codigo_curso[20]; //Se declara la variable codigo_curso tipo char

7. char nombre_curso[30]; //Se declara la variable nombre_curso tipo char

8. char creditos_curso[2]; //Se declara la variable creditos_curso tipo char

9. struct nodo *sig; //Apunta al nodo siguiente

10. }curso_academico; //Tipo de dato curso_academico que es de tipo estructura nodo

11. struct nodo *cab, *ult, *nuevo; //Declaramos los apuntadores *cab(para identificar el inicio de la estructura), *ult(para identificar cual es el último elemento de la estructura), *nuevo(para identificar cual es el nuevo elemento de la estructura)

12. void encadenar() //Se declara la función encadenar que no va retornar ningún valor

13. { //Se abre la llave indicando que inician las instrucciones de la función encadenar

14. if (cab == NULL) //Se verifica si la estructura se encuentra vacía

15. { cab = nuevo; //El apuntador cab apunta nuevo

16. ult = nuevo; //El apuntador ult apunta nuevo

17. } //Se cierra la llave finalizando el condicional si

18. else { ult -> sig = nuevo; //Si la estructura no esta vacia el último nodo de la estructura se está conectando al nuevo nodo

19. ult = nuevo; //El apuntador ult apunta a nuevo

20. } //Se cierra la llave finalizando el condicional entonces

21. } //Se cierra la llave finalizando la funcion encadenar

22. void insertar() //Se declara la función insertar que no va retornar ningún valor

23. { //Se abre la llave indicando que inician las instrucciones de la función insertar

24. int i; //Se declara la variable i tipo entero

25. if(cab == NULL) //Se verifica si la estructura se encuentra vacía

26. ult=NULL; //Si la estructura está vacía, al apuntador ult apunta a NULL (nada)

27. nuevo =(struct nodo*) malloc (sizeof(curso_academico)); //Se crea un nuevo nodo con los campos de la estructura curso_academico

28. cout << "\n REGISTRO DE DATOS \n\n"; //Se despliega un mensaje en pantalla

29. for(i=1;i<=3;i++) //Ciclo for usado para el ingreso de los cursos

30. { //Se abre la llave indicando que inician las instrucciones del ciclo for

31. cout << "Digite el codigo del curso No. “<< i <<" : "; //Se despliega un mensaje en pantalla

32. cin >> nuevo[i].codigo_curso; //Asigna el valor digitado al campo codigo_curso del nodo apuntado por nuevo[i]

33. cout << "Digite el nombre del curso No. "<< i <<" : "; //Se despliega un mensaje en pantalla

34. cin >> nuevo[i].nombre_curso; //Asigna el valor digitado al campo nombre_curso del nodo apuntado por nuevo[i]

35. cout << "Digite los creditos del curso No. "<< i <<" : "; //Se despliega un mensaje en pantalla

36. cin >> nuevo[i].creditos_curso; //Asigna el valor digitado al campo creditos_curso del nodo apuntado por nuevo[i]

37. cout<<"\n\n "; //Se realiza un salto de línea

38. } //Se cierra la llave finalizando el condicional for

39. cout << "\n----- FIN INGRESO -----\ "; //Se despliega un mensaje en pantalla

40. getch(); //La función getch() que hace la ejecución del programa termine solo cuando se presione una tecla

41. encadenar(); //Se llama la función encadenar que es donde se integra el nuevo nodo a la estructura

42. } //Se cierra la llave indicando que termina la función insertar

43. void listar() //Se declara la función listar que no va retornar ningún valor

44. { //Se abre la llave indicando que inician las instrucciones de la función listar

45. int i; //Se declara la variable i tipo int

46. clrscr(); //Se limpia pantalla por medio de la función clrscr() para que las salidas en pantalla de anteriores ejecuciones sigan mostrándose

47. if (cab==NULL) //Se verifica si la estructura se encuentra vacía

48. cout << "\nNO HAY CURSOS REGISTRADOS\n\n"; //Se despliega

...

Descargar como (para miembros actualizados) txt (10 Kb)
Leer 5 páginas más »
Disponible sólo en Clubensayos.com