Na aula de ontem introduzimos o conceito de estruturas e vetores de estruturas, bem como alguns comandos de leitura/escrita e manipulação de estruturas em C/C++.
Agora apresentamos uma agenda telefônica completa que usa struct para armazenar as informações de nome e telefone. De quebra, você ainda verá como pode ser feito um menu simples para uma aplicação em C/C++.
SUGESTÃO
Tente alterar a agenda acrescentando mais informações para serem armazenadas, como endereço, cidade, estado, cep, e-mail etc.
LEMBRETE
Esta agenda só funciona enquanto o programa está em execução (tudo está na memória e quando você sair do programa, tudo se perderá, portanto, não se empolgue em cadastrar todos os seus amigos).
#include <cstdlib>
#include <iostream>
using namespace std;
struct agenda {
int cod;
char nome[30];
int tel;
int vazio; //VAZIO = 0 e DISPONIVEL = 1.
} registros[100];
void cadastrar(int cod, int pos);
void consultar();
int verifica_pos();
void zerar();
int verifica_cod(int cod);
void excluir();
int main(int argc, char *argv[]) {
zerar();
int op=0,retorno,codaux,posicao;
while(op!=4){
printf("\n\n\t\t\t\t** AGENDA **\n\n\nMENU\n\n1 - Cadastrar\n2 - Consultar\n3 - Excluir\n4 - Sair\n\nOpcao: ");
scanf("%d",&op);
fflush(stdin);
switch(op) {
case 1: { // CADASTRAR
posicao=verifica_pos();
if (posicao!=-1) {
printf("\nEntre com o codigo desejado\n");
scanf("%d",&codaux);fflush(stdin);
retorno=verifica_cod(codaux);
if (retorno==1)
cadastrar(codaux,posicao);
else
printf("\nCodigo ja existente\n");
}
else
printf("\nA agenda esta cheia\n");
break;
}
case 2: { // CONSULTAR
consultar();
break;
}
case 3: {
excluir();
break;
}
case 4: {
printf("\n\nTchau\n\n");
break;
}
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
void cadastrar(int cod, int pos) {
pos=verifica_pos();
registros[pos].cod=cod;
printf("\nNome:\n");
gets(registros[pos].nome);
printf("\nTelefone\n");
scanf("%d",®istros[pos].tel);
registros[pos].vazio=1;
printf("\nCadastro Realizado com Sucesso!\n\n");
}
void consultar() {
int cont=0, cod;
printf("\nEntre com o codigo\n");
scanf("%d",&cod);
while(cont<=100) {
if (registros[cont].cod==cod) {
if (registros[cont].vazio==1) {
printf("\nNome: %s",registros[cont].nome);
printf("\nTelefone: %d",registros[cont].tel);
break;
}
}
cont++;
if (cont>100)
printf("\nCodigo nao encontrado\n");
}
}
int verifica_pos() {
int cont=0;
while (cont<=100) {
if (registros[cont].vazio==0)
return(cont);
cont++;
}
return(-1);
}
void zerar() {
int cont;
for (cont=0;cont<=100;cont++)
registros[cont].vazio=0;
}
int verifica_cod(int cod) {
int cont=0;
while (cont<=100) {
if (registros[cont].cod==cod)
return(0);
cont++;
}
return(1);
}
void excluir() {
int cod, cont=0;
printf("\nEntre com o codigo do registro que deseja excluir\n");
scanf("%d",&cod);
while (cont<=100) {
if (registros[cont].cod==cod)
if (registros[cont].vazio==1) {
registros[cont].vazio=0;
printf("\nExclusao feita com sucesso\n");
break;
}
cont++;
if (cont>100)
printf("\nCodigo nao encontrado\n");
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.