augusto cezar Postado Setembro 22, 2008 Denunciar Share Postado Setembro 22, 2008 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); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
augusto cezar
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
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.