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

joao_n

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

9 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ::)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora