Tenho um problema, tenho uma Struct e os dados estão sendo registrados certos, mas quando eu tento editar os mesmos não consigo, tentei usar ponteiros mas não consegui, será que alguém tem uma idéia de como posso fazer isso???
Obs: Não quero apenas substituir o registro e sim visualizar o mesmo e escolher a parte que quero editar!!!
Segue código!!
#include<stdio.h>
#include<conio.h>
#define lim 40
#include<ctype.h>
#include<string.h>
void altera(void);
void cadCD(void);
void mostra(void);
void novocd(void);
void pesquisa(void);
struct cadastro_cd{
char titulo[41];
char autor[41];
char produtora[10];
char tipo;
int ano;
int preço;
};
struct cadastro_cd tab_cadastro[lim];
int reg_cd = 0;
int i,pesq,opcao;
void main (void)
{
char op;
while(1)
{
textbackground(0);
clrscr();
textcolor(7);
gotoxy(26,1);
cprintf ("CONTROLE DE ESTOQUE DE CD's SOUND");
gotoxy (30,5);
textcolor(3);
cprintf ("ESCOLHA SUA OPۂO:");
gotoxy(30,8);
textcolor(7);
cprintf ("1. Cadastro de CD");
gotoxy(30,10);
cprintf ("2. Registros cadastrados");
gotoxy(30,12);
cprintf ("3. Pesquisar");
gotoxy(30,14);
cprintf ("4. Sair");
gotoxy(35,18);
cprintf("OPۂO: ");
textcolor(3); /* Para dar destaque a primeira letra do menu e iniciar o programa ao aciona-la */
gotoxy(33,8); /* Posiciona o cursor em cima do caracter e re-imprime o mesmo */
cprintf("C");
gotoxy(33,10);
cprintf("R");
gotoxy(33,12);
cprintf("P");
gotoxy(33,14);
cprintf("S");
textcolor(7);
do {
gotoxy (42,18);
op=toupper(getche());
} while (!strchr("CRPS1234",op));
switch (op) /* substitui uma sequencia de "ifs" */
Pergunta
Programadorr
Boa tarde!!!
Tenho um problema, tenho uma Struct e os dados estão sendo registrados certos, mas quando eu tento editar os mesmos não consigo, tentei usar ponteiros mas não consegui, será que alguém tem uma idéia de como posso fazer isso???
Obs: Não quero apenas substituir o registro e sim visualizar o mesmo e escolher a parte que quero editar!!!
Segue código!!
#include<stdio.h>
#include<conio.h>
#define lim 40
#include<ctype.h>
#include<string.h>
void altera(void);
void cadCD(void);
void mostra(void);
void novocd(void);
void pesquisa(void);
struct cadastro_cd{
char titulo[41];
char autor[41];
char produtora[10];
char tipo;
int ano;
int preço;
};
struct cadastro_cd tab_cadastro[lim];
int reg_cd = 0;
int i,pesq,opcao;
void main (void)
{
char op;
while(1)
{
textbackground(0);
clrscr();
textcolor(7);
gotoxy(26,1);
cprintf ("CONTROLE DE ESTOQUE DE CD's SOUND");
gotoxy (30,5);
textcolor(3);
cprintf ("ESCOLHA SUA OPۂO:");
gotoxy(30,8);
textcolor(7);
cprintf ("1. Cadastro de CD");
gotoxy(30,10);
cprintf ("2. Registros cadastrados");
gotoxy(30,12);
cprintf ("3. Pesquisar");
gotoxy(30,14);
cprintf ("4. Sair");
gotoxy(35,18);
cprintf("OPۂO: ");
textcolor(3); /* Para dar destaque a primeira letra do menu e iniciar o programa ao aciona-la */
gotoxy(33,8); /* Posiciona o cursor em cima do caracter e re-imprime o mesmo */
cprintf("C");
gotoxy(33,10);
cprintf("R");
gotoxy(33,12);
cprintf("P");
gotoxy(33,14);
cprintf("S");
textcolor(7);
do {
gotoxy (42,18);
op=toupper(getche());
} while (!strchr("CRPS1234",op));
switch (op) /* substitui uma sequencia de "ifs" */
{
case 'C':
case '1':
cadCD();
novocd();
break;
case 'R':
case '2':
mostra();
break;
case 'P':
case '3': pesquisa();
altera();
break;
/*TERMINA O PROGRAMA "RETURN" */
case 'S':
case '4': return;
}
} /*FIM DO while (1)*/
} /* FIM DO MAIN()*/
/******************* AQUI COMECA MINHAS FUNCOES ************************/
void cadCD(void)
{
clrscr();
gotoxy(30,2);
cprintf("CADASTRO DE CD's");
textcolor(15);
gotoxy(4,5);
cprintf("TITULO DO CD:");
gotoxy(4,6);
cprintf("NOME DO CANTOR:");
gotoxy(50,7);
cprintf("PRODUTORA:");
gotoxy(4,7);
cprintf("ANO:");
gotoxy(4,8);
cprintf("TIPO:");
gotoxy(50,8);
cprintf("PRE€O:");
gotoxy(4,9);
cprintf("(1)NACIONAL");
gotoxy(4,10);
cprintf("(2)INTERNACIONAL");
}
void novocd(void)
{
textcolor(15);
gotoxy(18,5);
gets(tab_cadastro[reg_cd].titulo);
gotoxy(20,6);
gets(tab_cadastro[reg_cd].autor);
gotoxy(9,7);
scanf("%d",&tab_cadastro[reg_cd].ano);
gotoxy(10,8);
fflush(stdin);
scanf("%c",&tab_cadastro[reg_cd].tipo);
gotoxy(61,7);
fflush(stdin);
gets(tab_cadastro[reg_cd].produtora);
/*gotoxy(57,8);
scanf("%d",&tab_cadastro[reg_cd].preço);*/
reg_cd++;
}
void mostra(void)
{
clrscr();
gotoxy(25,2);
textcolor(15);
cprintf("REGISTROS DE CD's CADASTRADOS\n\n\r");
for(i=0;i<reg_cd;i++)
{
printf("TITULO DO CD: %s\n",tab_cadastro.titulo);
printf("NOME DO CANTOR: %s\n",tab_cadastro.autor);
printf("ANO: %d\n",tab_cadastro.ano);
printf("TIPO: %c\n",tab_cadastro.tipo);
printf("PRODUTORA: %s\n\n",tab_cadastro.produtora);
/*gotoxy(57,8);
scanf("%d",&tab_cadastro[reg_cd].preço);*/
}
getch();
}
void pesquisa(void)
{
clrscr();
gotoxy(35,2);
textcolor(15);
cprintf("PESQUISA\n\n\r");
do
{
printf("Digite a posi‡ao: ");
scanf("%d",&pesq);
}while(pesq<0 || pesq>lim);
printf("\nTITULO DO CD: %s\n",tab_cadastro[pesq].titulo);
printf("NOME DO CANTOR: %s\n",tab_cadastro[pesq].autor);
printf("ANO: %d\n",tab_cadastro[pesq].ano);
printf("TIPO: %c\n",tab_cadastro[pesq].tipo);
printf("PRODUTORA: %s\n\n",tab_cadastro[pesq].produtora);
/*gotoxy(57,8);
scanf("%d",&tab_cadastro[reg_cd].preço);*/
getch();
}
void altera(void)
{
gotoxy(15,12);
textcolor(15);
cprintf("1. Alterar Registro\n");
gotoxy(15,13);
cprintf("2. Voltar");
gotoxy(18,15);
cprintf("OPCAO: ");
opcao=getch();
switch (opcao)
{
case '1': clrscr();
printf("TITULO DO CD: %s\n",tab_cadastro[pesq].titulo);
printf("NOME DO CANTOR: %s\n",tab_cadastro[pesq].autor);
printf("ANO: %d\n",tab_cadastro[pesq].ano);
printf("TIPO: %c\n",tab_cadastro[pesq].tipo);
printf("PRODUTORA: %s\n\n",tab_cadastro[pesq].produtora);
gotoxy(18,1);
gets(tab_cadastro[pesq].titulo);
gotoxy(20,2);
gets(tab_cadastro[pesq].autor);
gotoxy(9,3);
scanf("%d",&tab_cadastro[pesq].ano);
gotoxy(11,4);
scanf("%c",&tab_cadastro[pesq].tipo);
gotoxy(15,5);
gets(tab_cadastro[pesq].produtora);
/*gotoxy(57,8);
scanf("%d",&tab_cadastro[reg_cd].preço);*/
getch();
break;
case '2': return;
}
}
Link para o comentário
Compartilhar em outros sites
1 resposta 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.