Esta agenda foi feita em c++, e suporta no máximo 20 registos,e incluí as seguintes funções: inserir, eliminar, modificar, listar, procurar, terminar. Quando sair do programa todos os dados serão apagados.
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
#define R 20
struct contacto{
int indice; // 0=vazio 1=cheio
string nome;
string tele;
string nasci;
} registo[20];
//funções
void terminar();
void limpar_tudo();
int leropcao();
int menu2();
void procuraregisto();
void procurarnome();
void procurartele();
void procurarnasci();
int menu();
void eliminar();
void inserir();
void procurar();
void listar();
void inserir2();
void modificar();
void eliminar_tudo();
int main(){
int opcao;
limpar_tudo();
do{
cout<<"****************************************************"<<endl;
cout<<" AGENDA "<<endl;
cout<<"****************************************************"<<endl;
opcao=menu();
switch(opcao){
case 1: inserir();break;
case 2: eliminar();break;
case 3: eliminar_tudo();break;
case 4: procurar();break;
case 5: listar();break;
case 6: modificar();break;
case 7: terminar();break;
default: cout<<endl<<"Escolha outra opção"<<endl<<"-----------------------------------------"<<endl;
}
}while(opcao!=7);
}
int menu(){
cout<<"Prima 1 para Inserir."<<endl;
cout<<"Prima 2 para Eliminar."<<endl;
cout<<"Prima 3 para Eliminar Tudo."<<endl;
cout<<"Prima 4 para Procurar."<<endl;
cout<<"Prima 5 para Listar."<<endl;
cout<<"Prima 6 para Modificar."<<endl;
cout<<"Prima 7 para Terminar."<<endl;
return leropcao();
}
void inserir(){
int pos=0;
cout<<"Função inserir"<<endl;
while(registo[pos].indice==1){
pos++;}
if(pos==20)
cout<<"Agenda cheia"<<endl;
else{
cout<<"O nome do contacto: ";
cin>>registo[pos].nome;
cout<<"O numero de telefone: ";
cin>>registo[pos].tele;
cout<<"A data de nascimento: ";
cin>>registo[pos].nasci;
registo[pos].indice=1;
}
}
void eliminar(){
int i;
char certeza;
int total=0;
cout<<"Função Eliminar"<<endl;
for (i=0;i<R;i++)
if (registo[i].indice!=0){
cout<<"Registo "<<i<<endl;
cout<<"Nome: "<<registo[i].nome<<endl;
cout<<"Telefone: "<<registo[i].tele<<endl;
cout<<"Data de nascimento: "<<registo[i].nasci<<endl;
cout<<"----------------------------------------------"<<endl<<endl;
total++;
}
if(total==0)
cout<<"Não existe registos"<<endl;
else{
cout<<"Em que posição está o contacto a eliminar de 0 a 19 ? ";cin>>i;
cout<<"Tem a certeza?(s/n)... ";cin>>certeza;
if (certeza=='s')
registo[i].indice=0;
}
}
void eliminar_tudo(){
int total=0;
cout<<"Função eliminar tudo"<<endl;
int i;
char certeza;
for (i=0;i<R;i++)
if (registo[i].indice!=0){
total++;
cout<<"Tem a certeza que quer eliminar todos os registos da agenda?(s/n)... ";cin>>certeza;
if(certeza=='s')
for(i=0;i<R;i++)
registo[i].indice=0;
}
if(total==0)
cout<<"Não existe registos"<<endl;
}
void modificar(){
int i;
int total=0;
for (i=0;i<R;i++)
if (registo[i].indice!=0){
cout<<"Função modificar."<<endl;
cout<<"Escolha o registo que pretende modificar de 0 a 19:";cin>>i;
cout<<"registo "<<i<<endl;
cout<<"Nome: ";cin>>registo[i].nome;
cout<<"Telefone: ";cin>>registo[i].tele;
cout<<"Data de nascimento: ";cin>>registo[i].nasci;
total++;
}
if(total==0)
cout<<"Não existe registos"<<endl;
}
void procurar(){
int i;
int opcao;
int total=0;
string nome;
string n;
string t;
cout<<"Função procurar"<<endl;
for(i=0;i<R;i++){
if(registo[i].indice!=0)
while(opcao!=5){
opcao=menu2();
switch(opcao){
case 1: procuraregisto();break;
case 2: procurarnome();break;
case 3: procurarnasci();break;
case 4: procurartele();break;
case 5: terminar();break;
default: cout<<endl<<"Escolha outra opção"<<endl<<"-----------------------------------------"<<endl;
}
total++;
}
}
if(total==0)
cout<<"Não existe registos"<<endl;
}
void listar(){
int total=0;
int i;
cout<<"Função listar "<<endl<<endl;
cout<<"Registo: Nome: Telefone: Data de nascimento:"<<endl;
for(i=0;i<R;i++)
if(registo[i].indice!=0){
cout<<setw(5)<<i;
cout<<setw(19)<<registo[i].nome;
cout<<setw(16)<<registo[i].tele;
cout<<setw(18)<<registo[i].nasci<<endl;
total++;
}
if(total==0)
cout<<endl<<" ***NÃO EXISTE REGISTOS***"<<endl<<endl;
}
int menu2(){
cout<<endl;
cout<<"Prima 1 para procurar por registo."<<endl;
cout<<"Prima 2 para procurar por nome."<<endl;
cout<<"Prima 3 para procurar por data de nascimento."<<endl;
cout<<"Prima 4 para procurar por telefone."<<endl;
cout<<"Prima 5 para sair."<<endl;
return leropcao();
}
void procuraregisto(){
int i;
cout<<"Escolha o registo que pretende procurar de 0 a 19: ";cin>>i;
cout<<"registo"<<i<<endl;
cout<<"Nome: "<<registo[i].nome<<endl;
cout<<"Telefone: "<<registo[i].tele<<endl;
cout<<"Data de nascimento: "<<registo[i].nasci<<endl;
cout<<"----------------------------------------------------"<<endl;
}
void procurarnome(){
string nome;
string n;
int i;
cout<<"Escolha o nome que pretende procurar: ";cin>>n;
for(i=0;i<R;i++){
if(registo[i].indice!=0)
if(registo[i].nome==n){
cout<<"registo "<<i<<endl;
cout<<"Nome: "<<registo[i].nome<<endl;
cout<<"Telefone: "<<registo[i].tele<<endl;
cout<<"Data de nascimento: "<<registo[i].nasci<<endl;
cout<<"----------------------------------------------------"<<endl;
}
}
}
void procurartele(){
string tele;
string t;
int i;
cout<<"Escolha o telefone que pretende procurar: ";cin>>t;
for(i=0;i<R;i++){
if(registo[i].indice!=0)
if(registo[i].tele==t){
cout<<"registo "<<i<<endl;
cout<<"Nome: "<<registo[i].nome<<endl;
cout<<"Telefone: "<<registo[i].tele<<endl;
cout<<"Data de nascimento: "<<registo[i].nasci<<endl;
cout<<"----------------------------------------------------"<<endl;
}
}
}
void procurarnasci(){
string nasci;
string na;
int i;
cout<<"Escolha a data de nascimento que pretende procurar: ";cin>>na;
for(i=0;i<R;i++){
if(registo[i].indice!=0)
if(registo[i].nasci==na){
cout<<"registo "<<i<<endl;
cout<<"Nome: "<<registo[i].nome<<endl;
cout<<"Telefone: "<<registo[i].tele<<endl;
cout<<"Data de nascimento: "<<registo[i].nasci<<endl;
cout<<"----------------------------------------------------"<<endl;
}
}
}
void terminar(){
cout<<"Função terminar"<<endl;
}
void limpar_tudo(){
int i;
for(i=0;i<R;i++)
registo[i].indice=0;
}
int leropcao(){
int op;
cout<<"A sua opção: ";
cin>>op;
return op;
}