Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
joao_n

Codigo em c++ que me da a volta ao miolo - agenda

Recommended Posts

joao_n

:wallbash:

Muito boa noite.

Tenho o seguinte codigo, e tenho um problema..

por exemplo.. se fizer remover contacto ele entra em paranoia.. ou seja fica maluco..

e quando faço consultar ele fica com um espaço enorme ate ao inidice principal e preenche coisas que eu nao quero..

corram o codigo e vejam do que falo sff..

vejam o consultar na parte dos eventos.

e o apagar nos contactos.. pois assim entendem melhor

obrigado e abraço

#include <iostream>
#include <stdlib.h>
#include <string>

using namespace std;

int main()
{
int opc, i, j, count = 0;
string nome[100], apelido[100], morada[50], email[10], telefone[10], aniversario[20];
char n[10];
bool achou=false;
string dia[31], mes[12], evento[100];

cout<<"\t\t\t Agenda Electronica Ano - 2009\n\n";
cout<<"................................................................................";
cout<<endl;

do{
	cout<<"\t\t\t\t - Menu Principal -\n\n";
	cout<<endl;
	cout<<"\t\t\t Escolha uma opcao";
	cout<<endl;
	cout<<"1 - Adicionar um novo contacto\n";
	cout<<"2 - Remover contacto\n";
	cout<<"3 - Consultar lista de contactos\n";
	cout<<"4 - Introduzir novo evento \n";
	cout<<"5 - Consultar os eventos existentes \n";
	cout<<"6 - Apagar eventos \n";
	cout<<"0 - Sair da agenda electronica 2009\n";
	cout<<endl;
	cout<<endl;
	cout<<endl;
	cout<<" Joao Nascimento  -  20234  -  Programacao computadores I \n\n";
	cin>>opc;

	switch(opc){
	case 1: 
		cout<<"Insira o primeiro nome do contacto:\n";
		cin>>nome[count];
		cout<<"Insira o apelido:\n";
		cin>>apelido[count]; 
		cout<<"Insira a morada:\n";
		cin>>morada [count];
		cout<<"Insira a data de aniversario:\n";
		cin>>aniversario [count];
		cout<<"Insira o email:\n";
		cin>>email[count];
		cout<<"Insira o telefone:\n";
		cin>>telefone[count];
		count++;
		cout<<"Gravado com sucesso. \n";
		break;

	case 2:
		cout<<"Introduza o nome de deseja excluir.";
		cin>>n[10];
		for(i=0; i<10; i++){
			if(n==nome[i], n==aniversario[i], n==morada[i], n==email[i], n==telefone[i], n==apelido[i]){
				achou=true;
			}

			if(achou==true){
				for(j=i; j<count; j++){
					nome[j] = nome[j+1];
					email[j] = email[j+1];
					telefone[j] = telefone[j+1];
					aniversario[j] = aniversario[j+1];
					morada[j] = morada[j+1];

				}
				count--;

				cout<<"Excluido com sucesso.\n";
			}
		}
		break;

	case 3: cout<<"Introduza o nome, aniversario, telefone, morada ou email que deseja consultar:\n";
		cin>>n;
		for(i=0; i<10; i++){
			if(n==nome[i], n==aniversario[i], n==morada[i], n==email[i], n==telefone[i], n==apelido[i]);

			{
				achou=true;
			}

			if(achou==true){
				cout<<nome[i];
				cout<<endl;
				cout<<apelido[i];
				cout<<endl;
				cout<<aniversario[i];
				cout<<endl;
				cout<<email[i];
				cout<<endl;
				cout<<telefone[i];
				cout<<endl;
				cout<<morada[i];
			}
		}
		break;

	case 4: 
		cout<<"Introduza o dia do evento: \n";
		cin>>dia[count];
		cout<<"Introduza o mes do evento: \n";
		cin>> mes[count];
		cout<<"Introduza o tipo de evento (Medico, Aniversario, Reuniao ou Outro): \n";
		cin>>evento[count];
		count++;
		cout<<"Gravado com sucesso.";
		break;

	case 5:
		cout<<"Consulta de eventos:\n\n";
		cout<<"Introduza o mes, dia ou tipo de evento: \n\n";
		cin>>n;
		for(i=0; i<10; i++){
			if(n==dia[i], n==mes[i], n==evento[i]);

			{
				achou=true;
			}

			if(achou==true){
				cout<<"Dia:"<<dia[i] <<"\n";
				cout<<endl;
				cout<<"Mes:"<<mes[i]<<"\n";
				cout<<endl;
				cout<<"Evento:"<<evento[i]<<"\n";
			}
		}
		break;


	case 0: cout<<"Obrigado por utilizar a Agenda Electronica \n"; 
		system("PAUSE");
		return 0;
		break;
	}
}while(opc!=0);
system("PAUSE");
return 0;
}

Share this post


Link to post
Share on other sites
TheDark

Porque é que não declaraste n como string em vez de array de char, como fizeste para o resto das variáveis de texto? Se alterares isso alguns problemas vão desaparecer.

Ainda não olhei bem para o resto do código, mas já deu para reparar em mais alguns problemas. Não te vou ajudar agora (porque não estou em condições :P ), mas amanhã alguém te ajudará, ou eu ou outro que chegue primeiro ::)


Desaparecido.

Share this post


Link to post
Share on other sites
joao_n

entao se eu mudar o n nas variaveis, vao desaparecer problemas?? mas qual a diferença entre o uso de um ou de outro??

:S

Share this post


Link to post
Share on other sites
skin

joao_n recomendo-te vivamente que leias as regras do fórum: http://www.portugal-a-programar.pt/guidelines/

2.1) Criar títulos relacionados com a própria dúvida do utilizador e nunca com frases do género "Please help meeeee...." ou "duvida urgentíssima". Tópicos com este tipo de títulos estão sujeitos a serem bloqueados e o autor do mesmo avisado sobre o mesmo.

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
TheDark

Primeiro que tudo, lê o post do skin :P

O problema não é teres lá o n, é serem arrays de char e não strings. Lê isto e isto para perceberes algumas diferenças entre arrays de char e C++ strings, respectivamente.


Desaparecido.

Share this post


Link to post
Share on other sites
pedrosorio

Não te vou ajudar agora (porque não estou em condições :confused: )

Isso foi o quê? Um exame que correu especialmente bem? XD


Não respondo a dúvidas por mensagem.

Share this post


Link to post
Share on other sites
joao_n

ja resolvi quase todos os problemas..

mas ainda falta um unico..

é assim eu a fazer o print para o ecra, ele faz, ok tudo bem, mas depois ele continua a fazer mas sem aparecer os dados.  aqui fica o codigo  e um print screen

case 3: cout<<"Introduza o nome, aniversario, telefone, morada ou email que deseja consultar:\n\n";
cin>>n;
for(i=0; i<10; i++){
if(n==nome[i]||n==aniversario[i]||n==morada[i]||n==email[i]||n==telefone[i]||n==apelido[i]);

{
achou=true;
}

if(achou==true){
cout<<"Nome:"<<nome[i]<<"\n\n";
cout<<"Apelido:"<<apelido[i]<<"\n\n";
cout<<"Aniversario:"<<aniversario[i]<<"\n\n";
cout<<"E-mail:"<<email[i]<<"\n\n";
cout<<"Telefone:"<<telefone[i]<<"\n\n";
cout<<"Morada:"<<morada[i]<<"\n\n";
}
}
break;

98vqck.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.