bien quiero informar que se que aqui no se hacen tareas pero cuando la persona que solicita ayuda por lo menos ya a adelantado parte de su proyecto entonces se hace la ecepcion y se ayuda en algo a la persona y yo soy uno de esas personas, estoy haciendo un codigo y bueno e realizado parte de el pero estoy algo trancado y solicito de su ayuda colegas programadores
aqui el enunciado (algo largo)
Código
La empresa disquera "TEMPTATIONS" desea obtener información rápida de sus CD´s e Intérpretes, es decir; que por el titulo de un CD desea conocer el interprete y, dado un intérprete conocer todos los CD´s que él posee. Se sabe que están disponibles las siguientes estructuras de listas, almacenadas en forma dinámica: LISTAS DE INTÉRPRETES: Sus nodos contienen la siguiente información: - Nombre del intérprete, - Apuntador al principio de la lista de CD´s que posee el interprete, - Apuntador al final de la lista de CD´s que posee ese interprete, - Apuntador al sucesor de la lista del intérprete. LISTAS DE CD´s: Sus nodos contienen la siguiente información: - Nombre del CD, - Apuntador al sucesor de la lista de CD´s de ese interprete. LISTA DE DISQUERAS: - Nombre de la Disquera, - Apuntador al sucesor de la lista de Disquera de ese CD. Nota: Suponga que un CD consta de un único interprete y de una sola disquera, y un intérprete puede tener uno o más CD´s y haber grabado con una o más disqueras. Basado en la información anterior: Diseñe un algoritmo y un programa en C, muestre un menú cuya primera opción sea para agregar los elementos de la lista, la segunda opción debe mostrar el nombre de los intérpretes y todos sus CD´s y estos a su vez la disquera, si este existe o envíe un mensaje de error en caso contrario, la opción de eliminar elementos de la lista y la última opción de salir.
y aqui mi code
Código
#include <stdio.h> #include <conio.h> #include <stdlib.h> using namespace std; typedef struct TEMPTATIONS { char interprete[20]; char CDs[15]; TEMPTATIONS *siguiente; } TEMPTATIONS; void mostrar_menu(); void agregar_elemento(); void mostrar_lista(); void eliminar(); TEMPTATIONS *primero, *ultimo; int main() { char opcion; primero=(TEMPTATIONS *)NULL; ultimo=(TEMPTATIONS *)NULL; do { mostrar_menu(); opcion=getche(); switch(opcion) { case '1': agregar_elemento(); break; case '2': mostrar_lista(); break; case '3': eliminar(); break; break; } }while(opcion!='4'); } void mostrar_menu() { } void agregar_elemento() { TEMPTATIONS *nuevo; if(nuevo==NULL) else { nuevo->siguiente=NULL; if(primero==NULL) { primero=nuevo; ultimo=nuevo; } else { ultimo->siguiente=nuevo; ultimo=nuevo; } } } void mostrar_lista() { TEMPTATIONS *auxiliar; int i; i=0; auxiliar=primero; while(auxiliar!=NULL){ auxiliar= auxiliar->siguiente; i++; } if(i==0){ } } void eliminar() { TEMPTATIONS *aux2, *aux1, *auxiliar1; int j, borralo; auxiliar1=primero; j=1; if(auxiliar1==NULL) { } else { while(auxiliar1!=NULL) { auxiliar1=auxiliar1->siguiente; j++; } aux2=primero; for(j=1;j<borralo-1;j++) { aux2=aux2->siguiente; } if(borralo==1) { primero=aux2->siguiente; aux2->siguiente=NULL; } else { aux1=aux2; aux2=aux2->siguiente; aux1->siguiente=aux2->siguiente; aux2->siguiente=NULL; } } }