Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal...estou fazendo um programa com duas estruturas, uma é de Album de Musicas e outra estrutura com Musicas.
precisa ter algumas funções:
AlocaNoAlbum();
AlocaNoMusicas();
LiberaNoAlbum(stAlbum *p);
LiberaNoAMusicas(stMusicas *p);
InsertAlbum();
InsertMusicas();
ApagaAlbum();
ApagaMusucas();
ExibirAlbum();
Estou com problemas na função InsertMusicas dentro de Insert Album.
gostaria que voces olhassem o que fiz até agora, e me dessem uma luz...obrigado!
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define TAM_LISTA 500
/*********************************ESTRUTURAS**/
typedef struct musicas
{
char nomeMusica [30];
float tempo;
struct musicas *ponteiroProximoSTmusicas;
}stMusicas;
typedef struct Album
{
int codigo;
char nomeAlbum [30];
char conjunto [20];
int qtdMusicas;
float preco;
int ano;
struct Album *ponteiroProximoSTalbum;
struct musicas *ponteiroProximoSTmusicas;
}stAlbum;
stAlbum *ponteiroAlbum=NULL;
int nCodigo;stAlbum *AlocaNoAlbum();
stMusicas *AlocaNoMusicas();
void LiberaNoAlbum(stAlbum *p);
void LiberaNoAMusicas(stMusicas *p);
void InsertAlbum();
void InsertMusicas();
void ExibirAlbum();
/*********************************função aloca no album***/
stAlbum *AlocaNoAlbum()
{ return (stAlbum*) calloc (1,sizeof(stAlbum)); }
/*********************************função libera no album**/
void LiberaNoAlbum(stAlbum *p)
{ free(p); }
/*********************************função aloca no musicas*/
stMusicas *AlocaNoMusicas()
{ return (stMusicas*) calloc (1,sizeof(stMusicas)); }
/*********************************função libera no musicas/
void LiberaNoAMusicas(stMusicas *p)
{ free(p); }
/*********************************função insert album*****/
void InsertAlbum()
{
stAlbum *ponteiroTEMPalbum = AlocaNoAlbum(), *p;
printf("CADASTRAR CD\n\n");
printf("Digite o codigo: ");
fflush(stdin);
scanf("%d", &ponteiroTEMPalbum->codigo);
printf("Digite o nome: ");
fflush(stdin);
gets(ponteiroTEMPalbum->nomeAlbum);
printf("informe Nome do Conjunto: ");
fflush(stdin);
gets(ponteiroTEMPalbum->conjunto);
printf("informe Quantidade de Musicas: ");
fflush(stdin);
scanf("%d", &ponteiroTEMPalbum->qtdMusicas);
printf("informe Preco: ");
fflush(stdin);
scanf("%f", &ponteiroTEMPalbum->preco);
printf("informe Ano: ");
fflush(stdin);
scanf("%d", &ponteiroTEMPalbum->ano);
if (ponteiroAlbum == NULL)
ponteiroAlbum = ponteiroTEMPalbum;
else
{
for (p = ponteiroAlbum; p->ponteiroProximoSTalbum; p=p->ponteiroProximoSTalbum);
p->ponteiroProximoSTalbum = ponteiroTEMPalbum;
}
printf("CADASTRO ALBUM REALIZADO COM SUCESSO");
fflush(stdin);
getchar();
} stMusicas *ponteiroTEMPmusicas, *p;
ponteiroTEMPmusicas = AlocaNoMusicas();
stAlbum *ponteiro2;
int nCodigo;
nCodigo= *ponteiroNCodigo;
ponteiroNCodigo=nCodigo;
printf("Informe Código Album para incluir musicas");
scanf("%d", &nCodigo->ponteiro2.codigo);
if (! ponteiroNCodigo-> ponteiroTEMPmusicas.codigo)
{
printf("Crie primeiro um Album!");
}
else ( ponteiroNCodigo == ponteiro2.codigo)
{
printf("Digite o nome da Musica");
scanf("%s",&ponteiroTEMPmusicas->nomeMusica);
printf("Digite o tempo da musica (em segundos)");
scanf("%f",&ponteiroTEMPmusicas->tempo);
for (ponteiro2=ponteiroAlbum;ponteiro2->ponteiroProximoSTalbum!=NULL;ponteiro2=ponteiro2->ponteiroProximoSTalbum);
if (ponteiro2->ponteiroProximoSTmusicas == NULL)
ponteiro2->ponteiroProximoSTmusicas=temp;
else
{
for (p=ponteiro2->ponteiroProximoSTmusicas; p->ponteiroProximoSTmusicas; p=p->ponteiroProximoSTmusicas)addend;
p->ponteiroProximoSTmusicas=ponteiroTEMPmusicas;
}
}
/*********************************função exibir album**/
void Exibir()
{
stAlbum *p=ponteiroAlbum;
stMusicas *p2;
nCodigo *ponteiroNcodigo;
printf("informe Codigo Album para pesquisar");
scanf("%d", &nCodigo);
if (p == NULL)else
{
while(p != NULL) {
printf("\nNome CD: %s",p->nomeAlbum);
printf("\nNome Conjunto: %s",p->conjunto);
printf("\nQuantidade Musicas: %d",p->qtMusicas);
printf("\bPreco: %.2f",p->preço);
printf("\nAno: %d",p->ano);
printf("Nome Musicas: %s", p->nomeMusica);
printf("Tempo da Faixa: %s", p->tempo);
p=p->ponteiroProximoSTalbum;
}
/*********************************FUNÇÃO PRINCIPAL**/
int main ()
{
void InsertAlbum();
void InsertMusicas();
void ExibirAlbum();
fflush(stdin);
getchar();
}Carregando comentários...