Daniel Lapa – Blog de Programação

Abril 29, 2008

Agenda – C++

Arquivado em: programação — daniellapa @ 10:22 am

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;
}


Sem comentários ainda »

Ainda sem comentários.

Feed RSS para comentários a este post. TrackBack URI

Publicar um comentário

Blog em WordPress.com.