Agenda com struct
Nas aulas teóricas 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");
}
}
Assinar:
Postar comentários (Atom)
Quem sou eu
NOSSO OBJETIVO
OBJETIVO
Este blog será usado para divulgação de minhas ideias, notícias sobre tecnologia, disponibilização de links para download de materiais diversos (incluindo materiais didáticos -- que poderão ser usados em minhas aulas e/ou cursos). Gostaria de DEIXAR BEM CLARO que quaisquer materiais disponibilizados através deste blog são, tão somente, para acompanhamento de aulas e/ou cursos, e não constituem de modo algum, aulas na modalidade "ensino à distância" (EAD). Alunos têm total acesso aos materiais disponíveis, mas somente como tutoriais passo a passo. Apostilas disponibilizadas através deste blog não são materiais obrigatórios em disciplinas cursadas ou cursos ministrados.RESPONSABILIDADE
O autor deste blog não é responsável pelo mau uso, intencional ou não, de qualquer código de programa disponibilizado aqui. Os códigos de programas disponíveis neste blog para download é e serão sempre, e tão somente, para uso didático durante o aprendizado. Seja bem-vindo.
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.