Primeira vez postando aqui, estou pra fazer um exercicio pra faculdade, porem cai em um erro que não vejo saida.
O programa é simples, como se fosse um formulario, onde o usuario coloca o remetente (seu nome e email), logo ele adiciona um assunto e o corpo do email, tambem é possivel criar uma lista de contatos que seria o destinatario, onde há meu erro!Quando eu adiciono um destinatario esta tudo bem, porem quando eu adiciono outro ele parece que grava por cima do primeiro digitado, porem não sei se o erro é no mostrar todos os destinatarios quando solicitado, ou se o erro esta no array para gravar os destinatario.Estou colocando o codigo logo em seguida.
MAIN
#include "Contato.h"
#include "Mensagem.h"
#include <iostream>
using namespace std;
int main(){
Contato remetente;
Contato destinatario[10];
Mensagem msg;
int opcao,i;
opcao =0;
i=0;
while(opcao!=6){
cout << "\n";
cout << "Digite uma opcao: \n1 - Inserir Remetente \n2 - Escrever Email \n3 - Ver Email \n4 - Inserir Lista de Contatos \n5 - Mostrar Lista de Contatos \n6 - Sair " << endl;
cin >> opcao;
if(opcao==1){
cout << "Digite um nome para o remetente:" << endl;
char nome[30];
cin >> nome;
remetente.SetNome(nome);
cout << "Digite o email do remetente:" << endl;
char email[50];
cin >> email;
remetente.SetEmail(email);
cout << "\n";
cout << "Remetente:" << endl;
cout << remetente.GetNome() << " - " << remetente.GetEmail() << endl;
}
if(opcao==2){
cout << "\n";
cout << "Digite um assunto:" << endl;
char assunto[60];
cin >> assunto;
msg.setAssunto(assunto);
cout << "Digite o corpo do email:" << endl;
char corpo[100];
cin >> corpo;
msg.setCorpo(corpo);
}
if(opcao==3){
cout << "-----------------------------------------------------------";
msg.setRemetente(remetente);
cout << "\n";
Contato c = msg.getRemetente();
cout << "Remetente:" << endl;
cout << "Nome:" << c.GetNome() << endl;
cout << "Email:" << c.GetEmail() << endl;
cout <<"\n";
cout << "Formulario:" << endl;
cout << "Assunto:" << msg.getAssunto() << endl;
cout << "Mensagem:" << msg.getCorpo() << endl;
cout << "-------------------------------------------------------------";
}
if(opcao==4){
cout << "Digite um nome para o destinatario:" << endl;
char nomed[30];
cin >> nomed;
destinatario[i].SetNome(nomed);
cout << "Digite um email para o destinatario:" << endl;
char emaild[60];
cin >> emaild;
destinatario[i].SetEmail(emaild);
msg.setDestinatario(i,destinatario[i]);
i++;
}
if(opcao==5){
int p;
for(p=0;p<i;p++){
Contato d = msg.getDestinatario(i);
cout << "Nome:" << d.GetNome() << endl;
cout << "Email:" << d.GetEmail() << endl;
cout << "\n";
}
}
if(opcao==6){
system("pause");
}
}
return 0;
}
Pergunta
Diego_BM
Ola galera!
Primeira vez postando aqui, estou pra fazer um exercicio pra faculdade, porem cai em um erro que não vejo saida.
O programa é simples, como se fosse um formulario, onde o usuario coloca o remetente (seu nome e email), logo ele adiciona um assunto e o corpo do email, tambem é possivel criar uma lista de contatos que seria o destinatario, onde há meu erro!Quando eu adiciono um destinatario esta tudo bem, porem quando eu adiciono outro ele parece que grava por cima do primeiro digitado, porem não sei se o erro é no mostrar todos os destinatarios quando solicitado, ou se o erro esta no array para gravar os destinatario.Estou colocando o codigo logo em seguida.
MAIN
#include "Contato.h" #include "Mensagem.h" #include <iostream> using namespace std; int main(){ Contato remetente; Contato destinatario[10]; Mensagem msg; int opcao,i; opcao =0; i=0; while(opcao!=6){ cout << "\n"; cout << "Digite uma opcao: \n1 - Inserir Remetente \n2 - Escrever Email \n3 - Ver Email \n4 - Inserir Lista de Contatos \n5 - Mostrar Lista de Contatos \n6 - Sair " << endl; cin >> opcao; if(opcao==1){ cout << "Digite um nome para o remetente:" << endl; char nome[30]; cin >> nome; remetente.SetNome(nome); cout << "Digite o email do remetente:" << endl; char email[50]; cin >> email; remetente.SetEmail(email); cout << "\n"; cout << "Remetente:" << endl; cout << remetente.GetNome() << " - " << remetente.GetEmail() << endl; } if(opcao==2){ cout << "\n"; cout << "Digite um assunto:" << endl; char assunto[60]; cin >> assunto; msg.setAssunto(assunto); cout << "Digite o corpo do email:" << endl; char corpo[100]; cin >> corpo; msg.setCorpo(corpo); } if(opcao==3){ cout << "-----------------------------------------------------------"; msg.setRemetente(remetente); cout << "\n"; Contato c = msg.getRemetente(); cout << "Remetente:" << endl; cout << "Nome:" << c.GetNome() << endl; cout << "Email:" << c.GetEmail() << endl; cout <<"\n"; cout << "Formulario:" << endl; cout << "Assunto:" << msg.getAssunto() << endl; cout << "Mensagem:" << msg.getCorpo() << endl; cout << "-------------------------------------------------------------"; } if(opcao==4){ cout << "Digite um nome para o destinatario:" << endl; char nomed[30]; cin >> nomed; destinatario[i].SetNome(nomed); cout << "Digite um email para o destinatario:" << endl; char emaild[60]; cin >> emaild; destinatario[i].SetEmail(emaild); msg.setDestinatario(i,destinatario[i]); i++; } if(opcao==5){ int p; for(p=0;p<i;p++){ Contato d = msg.getDestinatario(i); cout << "Nome:" << d.GetNome() << endl; cout << "Email:" << d.GetEmail() << endl; cout << "\n"; } } if(opcao==6){ system("pause"); } } return 0; }Classe Contato e CPP da Classe#pragma once class Contato { public: Contato(void); ~Contato(void); char* GetNome(); char* GetEmail(); void SetNome(char* n); void SetEmail(char* e); private: char* nome; char* email; };#include "Contato.h" Contato::Contato(void) { } Contato::~Contato(void) { } void Contato::SetNome(char *n){ nome=n; } char* Contato::GetNome(){ return nome; } void Contato::SetEmail(char *e){ email =e; } char* Contato::GetEmail(){ return email; }Classe Mensagem e CPP da Classe#pragma once #include "Contato.h" class Mensagem { public: Mensagem(void); ~Mensagem(void); void setCorpo(char *c); char* getCorpo(); void setAssunto(char *a); char* getAssunto(); Contato getRemetente(); void setRemetente(Contato r); Contato getDestinatario(int indice); void setDestinatario(int indice,Contato dest); private: char* assunto; char* corpo; Contato remetente; Contato destinatario[10]; int ultimo; int j; };#include "Mensagem.h" Mensagem::Mensagem(void) { } Mensagem::~Mensagem(void) { } void Mensagem::setRemetente(Contato r){ remetente=r; } Contato Mensagem::getRemetente(){ return remetente; } void Mensagem::setCorpo(char *c){ corpo=c; } char* Mensagem::getCorpo(){ return corpo; } void Mensagem::setAssunto(char *a){ assunto=a; } char* Mensagem::getAssunto(){ return assunto; } void Mensagem::setDestinatario(int indice,Contato dest){ j = indice; destinatario[j]=dest; } Contato Mensagem::getDestinatario(int indice){ ultimo = 0; ultimo = indice; for(indice=0;indice<ultimo;indice++){ j = indice; return destinatario[j]; } }Editado por Diego_BMLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.