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

Helder Rosa


Helder Bellintani Rosa

Pergunta

Pessoal estou estudando linguagem C, naturalmente estou passando por algumas dificuldades... não estou conseguindo criar o método para alterar os contatos minha cabeça travou e a lógica não esta saindo... segue o código... ME AJUDEM PRECISO ENTREGAR AINDA HOJE :(

#include <stdio.h>

#include <stdlib.h>

#define TAM 10

struct dados {

char nome[50];

char email[50];

int fone;

};

struct dados agenda[TAM];

int i, cont, opc;

void inserir()

{

if (i<TAM-1) {

i++;

printf("\n Digite o nome:");

scanf("%s", &agenda.nome);

printf("\n Digite o email:");

scanf("%s", &agenda.email);

printf("\nDigite o telefone: ");

scanf("%d", &agenda.fone);

}

else

printf("\n Agenda esta cheia.");

}

void excluir()

{

int quantidade, x;

int poscontato;

if (i!=-1)

{

printf("\n Digite o numero do contato que deseja excluir:");

scanf("%d", &cont);

poscontato = cont-1;

quantidade = i+1;

if (cont > quantidade)

printf("\n Numero de contatos inferior a posicao desejada para excluir.");

else

{

if ( (i==0) || (poscontato==i) )

i--;

else

{

for (x=cont; x<=i; x++)

{

agenda[x-1] = agenda[x];

}

i--;

quantidade--;

}

}

system("PAUSE");

}

else

printf("\n Agenda esta vazia.");

}

void exibir()

{

if (i!=-1)

{

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

{

printf("\n Nome do contato %d => %s" , cont+1, agenda[cont].nome);

printf("\n Email do contato %d => %s" , cont+1, agenda[cont].email);

printf("\n Fone do contato %d => %d" , cont+1, agenda[cont].fone);

printf("\n");

}

system("PAUSE");

}

else

printf("\n Agenda esta vazia.");

}

void alterar()

{

****************

}

void exibir_menu()

{

printf("\n Menu de Opcoes da Agenda:");

printf("\n\n1 - Inserir");

printf("\n2 - Alterar");

printf("\n3 - Excluir");

printf("\n4 - Exibir Todos");

printf("\n5 - Sair");

printf("\n\nOpcao escolhida => ");

}

void processa_menu()

{

switch (opc) {

case 1:

inserir();

break;

case 2:

alterar();

break;

case 3:

excluir();

break;

case 4:

exibir();

break;

case 5:

// sair

break;

default:

printf("\nDigite apenas valores entre 1 e 5.");

system("PAUSE");

break;

}

}

int main(int argc, char *argv[])

{

i = -1;

opc = 6;

cont = 0;

while (opc != 5)

{

system("CLS");

exibir_menu();

scanf("%d", &opc);

processa_menu();

}

system("PAUSE");

return 0;

}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Por favor... estou tentando fazer, mais não sei se a lógica está certa.

void alterar()

{

int numerocontato;

int cont, quant;

if (i!=-1) {

printf("\n Digite o numero do contato que deseja alterar");

scanf("%d", & cont);

numerocontato = cont - 1;

quant = i+1;

if (cont > quant){

printf("\n Numero de contatos inferior a posicao desejada para alterar.");

}

else {

printf("\n Nome:", cont+1, agenda[cont].nome);

}

}

}

Link para o comentário
Compartilhar em outros sites

  • 0

Vlw pela ajuda... mais não consegui... achei um código mais ou menos como o que eu quero mais não consigo alterar para minha função altera estou errando a lógica...

void alterar (char nomes[10][50], char tels[10][14])//FUNCAO PARA ALTERAR DADOS GRAVADOS

{

int posicao;

char confirma;

do

{

cout<<"Informe a posicao (1 a 10) para alterar:\n";

cin>>posicao;

}

while (posicao<1||posicao>10);//caso o usuario insira um valor fora do intervalo de 1 a 10 ser-lhe-á requisitado digitar novamente

posicao--;

if (nomes[posicao][0]='{FONTE}')// condicao para quando o usuario escolher uma posicao vazia

{

cout<<"\a\n Posicao vazia.\n";

}

else

{

cout<<"Nome:"<<nomes[posicao]<<endl;

cout<<"Deseja altera o nome?(s):";

cin>>confirma;

if (confirma =='s')

{

cout<<"Nome: ";

cin>>nomes[posicao];

cout<<"Suuuuuucessoooooooo!!!\n\n";

}

cout<<"Telefone: "<<tels[posicao];

cout<<"Deseja alterar o telefone?(s):";

cin>>confirma;

if (confirma =='s')

{

cout<<"Telefone(99)9999-9999:\n";

cin>>tels[posicao];

cout<<"Telefone alterado com sucesso!\a\a\n";

}

}

}

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal consegui fazer, vou postar o código para quem estiver com a mesma dificuldade.

void menu_alterar()

{

switch (opc) {

case 1:

printf("\nDigite o nome que deseja alterar: ");

scanf("%s",&agenda[cont-1].nome);

printf("\nNome alterado para %s: ", agenda[cont-1].nome);

break;

case 2:

printf("\nDigite o email que deseja alterar: ");

scanf("%s",&agenda[cont-1].email);

printf("\nEmail alterado para %s: ", agenda[cont-1].email);

break;

case 3:

printf("\nDigite o fone que dseja alterar: ");

scanf("%d",&agenda[cont-1].fone);

printf("\nFone alterado para %d: ", agenda[cont-1].fone);

break;

case 4:

break;

default:

printf("\nDigite apenas valores entre 1 e 5.");

system("PAUSE");

break;

}

}

void alterar(){

if (i!=-1){

printf("\nDigite o numero do contato que deseja alterar =>");

scanf("%d", &cont);

printf("\nNome do contato %d => %s" , cont, agenda[cont-1].nome);

printf("\nEmail do contato %d => %s" , cont, agenda[cont-1].email);

printf("\nFone do contato %d => %d" , cont, agenda[cont-1].fone);

printf("\n");

printf("\no que deseja alterar:\n1 - Nome:\n2 - Email\n3 - Fone:\n4 - Cancelar");

printf("\n\nOpcao escolhida => ");

scanf("%d",&opc);

menu_alterar();

printf("\n");

}

else printf("Agenda Vazia");

system("PAUSE");

}

Obrigado por que tentou ajudar :)

Link para o comentário
Compartilhar em outros sites

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...