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

Editar Registros Da Memória


Programadorr

Pergunta

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.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...