Ir para conteúdo
Fórum Script Brasil
  • 0

meu programa não roda


augusto cezar

Pergunta

Por favor me ajudem !!!

tenho ate ad 20h pra entregar esse trabalho

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

typedef struct

{

int dia;

int mes;

int ano;

}tdata;

typedef struct

{

char nome[80],titulo[80],gene_mp3[80];

tdata dt_lanca;

}tcd;

int menu();

int preenche_cd(tcd cd[],int qt);

int carrega_cd (tcd v_cd[], int qtd);

void busca_nome_exibe_tit(tcd pcd[],int qtd);

void busca_genero_quant(tcd pcd[],int qtd);

void busca_relacao_nome_titulo(tcd pcd[],int qtd);

void busca_ano (tcd pcd[],int qtd);

void exibe_cd(tcd pcd);

void ordena_nome(tcd vet[], int qtpos);

int salva_cd (tcd v_cd[],int qt);

int main(void)

{

tcd *cd;

int op,qtd;

printf("Quantos cds voce quer ter na sua tabela?");

scanf("%d",&qtd);

preenche_cd(cd,qtd);

carrega_cd(cd,qtd);

while(op=menu()!=5)

{

switch(op)

{

case 1:

busca_nome_exibe_tit(cd,qtd);

break;

case 2:

busca_genero_quant(cd,qtd);

break;

case 3:

busca_relacao_nome_titulo(cd,qtd);

break;

case 4:

busca_ano (cd,qtd) ;

break;

case 5:

ordena_nome(cd,qtd);

break;

}

return 1;

}

free(cd);

}

int preenche_cd(tcd cd[],int qt)

{

tcd *vt_cd;

int i;

vt_cd=(tcd*)malloc(sizeof(tcd)*qt);

if(vt_cd==NULL)

{

puts("Não tem área de memmoria");

return 1;

}

for(i=0;i<qt;i++)

{

cd=vt_cd;

}

}

int carrega_cd (tcd v_cd[],int qt)

{

int i;

FILE*arq;

if ((arq=fopen("localcd.dat","rb"))==NULL)

{

printf("Erro na abertura do arquivo");

return;

}

fread(v_cd,sizeof(tcd),qt,arq);

fclose(arq);

}

void busca_nome_exibe_tit(tcd pcd[],int qtd)

{

fflush(stdin);

int i,qtdval;

qtdval=0;

char proc_nome[80];

printf("Digite o nome a ser procurado");

gets(proc_nome);

for(i=0;i<qtd;i++)

{

if((strcmpi(pcd.nome,proc_nome))==0)

{

printf("Titulo do cd relacionado ao Nome do cantor");

puts(pcd.titulo);

qtdval++;

}

}

if(qtdval==0)

printf("não existe titulo relaciodo ao nome %c",proc_nome);

}

int menu (void)

{

int opt;

puts("1 - Buscar pelo nome e os titulos serao mostrados ");

puts("2 - Buscar pelo genero mostra a quantidade de cds");

puts("3 - Buscar pelo nome e um titulo mostrar se existe ou não");

puts("4 - Busca pelo ano sera mostrado toda as informacoes do cd neste ano");

puts("5 - Ordena tabela de cd por nome");

puts("Digite qual o tipo de busca que deseja:");

scanf("%d", &opt);

return opt;

}

void busca_genero_quant(tcd pcd[],int qtd)

{

int i,qtdval;

char proc_gene[80];

qtdval=0;

fflush(stdin);

printf("Digite o genero a ser procurado");

gets(proc_gene);

for(i=0;i<qtd;i++)

{

if((strcmpi(pcd.gene_mp3,proc_gene))==0)

qtdval++;

}

if(qtdval==0)

printf("não existe titulo relaciodo ao nome %c",proc_gene);

else printf("São %d cds relacionados com o genero %c",qtdval,proc_gene);

}

void busca_relacao_nome_titulo(tcd pcd[],int qtd)

{

int i,qtdval=0;

char proc_nome[80],proc_titulo[80];

fflush(stdin);

printf("Digite o nome a ser procurado");

gets(proc_nome);

printf("Digite o titulo a ser procurado");

gets(proc_titulo);

for(i=0;i<qtd;i++)

{

if((strcmpi(pcd.nome,proc_nome))==0)

if((strcmpi(pcd.titulo,proc_titulo))==0)

qtdval++;

}

if(qtdval==0)

printf("não existe cd relaciodo ao nome %c e ao titulo %c",proc_nome,proc_titulo);

else printf("São %d cds relacionados com o genero %c",qtdval,proc_nome);

}

void busca_ano (tcd pcd[],int qtd)

{

int i,qtdval=0,anocd;

fflush(stdin);

printf("Digite o ano do carro");

scanf("%d",&anocd);

for(i=0;i<qtd;i++)

{

if(pcd.dt_lanca.ano==anocd)

{

exibe_cd(pcd);

qtdval++;

}

}

if(qtdval==0)

printf("não existe cd relaciodo ao ano %d",anocd);

}

void exibe_cd(tcd pcd)

{

fflush(stdin);

puts(pcd.nome);

puts(pcd.titulo);

puts(pcd.gene_mp3);

printf("pcd.data.dia");

printf("pcd.data.mes");

printf("pcd.data.ano");

}

void ordena_nome(tcd vet[], int qtpos)

{

int ultroca,fimdesord,i;

tcd aux;

fflush(stdin);

for(fimdesord=qtpos-1;fimdesord>0;fimdesord=ultroca)

{

ultroca=0;

for(i=0;i<fimdesord;i++)

{

if((strcmpi(vet.nome,vet[i+1].nome))>0)

{

aux=vet;

vet=vet[i+1];

vet[i+1]=aux;

ultroca=i;

}

}

}

int salva_cd (tcd v_cd[],int qt)

{

int i,test=0;

FILE*arq;

if ((arq=fopen("localcd.dat","wb"))==NULL)

{

printf("Erro na abertura do arquivo");

return;

}

test=fwrite(v_cd,sizeof(tcd),qt, arq);

if(test!=qt)

{

printf("Erro ao salvar o arquivo");

fclose(arq);

return;

}

fclose(arq);

}

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...