Bom.. Eu fiz uma agenda de compromissos.. e to tendo problemas na hora de editar o compromisso! o codigo esta com algum erro plz respondam! /** == Includes ================================================================================== **/
#include <iostream> //Agenda de compromissos
#include <fstream>
#include <string>
#include <conio.h>
#include <stdio.h>
/** == Defines e Variaveis Globais =============================================================== **/
#define MaxReg 200
int controledecampo;
using namespace std;
/** == Structs =================================================================================== **/
struct Data
{ //structs para serem lidos no arquivo principal
int dia;
int mes;
int ano;
};
struct Horario
{
int hora;
int min;
};
struct Compromisso
{
char descricao[200];
char prioridade[6];
};
struct Exibecompromisso
{
Data data;
Horario horario;
Compromisso compromisso;
};
/** == Declarando Funções ======================================================================== **/
void inserircompromisso(Exibecompromisso exibecompromisso[MaxReg], int i); //protótipo das funções
void pesquisarcompromisso(Exibecompromisso exibecompromisso[MaxReg], int i);
void mostratudo(Exibecompromisso exibecompromisso[MaxReg], int i);
void menueditar();
void editar(Exibecompromisso exibecompromisso[MaxReg], int i);
/** == Main ====================================================================================== **/
int main()
{
int opcao;
controledecampo = 0;
struct Exibecompromisso exibecompromisso[MaxReg];
do
{
system("cls");
cout<<"*****Agenda de compromissos*****"<<endl<<endl;
cout<<"Menu de opcoes: - Registros: "<< controledecampo <<endl<<endl;
cout<<"(0) Inserir novo compromisso"<<endl ;
cout<<"(1) Pesquisar compromisso"<<endl;
cout<<"(2) Sair"<<endl<<endl;
cout<<"Digite a opcao desejada:"<<endl;
cin>>opcao;
switch(opcao)
{
case 0:
inserircompromisso(exibecompromisso,controledecampo);
break;
case 1:
pesquisarcompromisso(exibecompromisso,controledecampo);
break;
default:
cerr<<"Opcao invalida"<<endl<<endl;
}
} while(opcao!=2);
}
/** == Funções =================================================================================== **/
void mostratudo(Exibecompromisso exibecompromisso[MaxReg], int i)
{
char a;
char decide;
cout<<"Os compromissos são:"<<endl;
system("pause");
cout<<"\nData:"<<endl;
cout<<exibecompromisso[i].data.dia<<"/";
cout<<exibecompromisso[i].data.mes<<"/";
cout<<exibecompromisso[i].data.ano<<endl;
system("pause");
cout<<"\nHorario:"<<endl;
cout<<exibecompromisso[i].horario.hora<<":";
cout<<exibecompromisso[i].horario.min<<" h"<<endl;
system("pause");
cout<<"\nDescricao:"<<endl;
cout<<exibecompromisso[i].compromisso.descricao<<"."<<endl;
system("pause");
cout<<"\nPrioridade:"<<"\n";
cout<<exibecompromisso[i].compromisso.prioridade<<"."<<endl;
cout<<"Deseja Editar/Remover/Continuar?E/R/C"<<endl;
cin>>decide;
if(decide=='E' || decide=='e')
{
editar(exibecompromisso,i);
}
if(decide=='R' || decide=='r')
{
exibecompromisso[i]=exibecompromisso[--controledecampo];
exibecompromisso[i].data.dia=0;
exibecompromisso[i].data.mes=0;
exibecompromisso[i].data.ano=0;
exibecompromisso[i].horario.hora=0;
exibecompromisso[i].horario.min=0;
cout<<"\n Este compromisso foi removido"<<endl;
system("pause");
}
} // fecha a funcao mostratudo
void inserircompromisso(Exibecompromisso exibecompromisso[MaxReg],int iRegistro)
{
int i;
bool bVerify;
ofstream escritor;
escritor.open("agenda.txt",ios::app);
if(escritor.is_open())
{
i = iRegistro;
bVerify = true;
while(bVerify)
{
cout<<"Digite o dia do compromisso(entre 1 e 31)"<<endl;
cin>>exibecompromisso[i].data.dia;
if(exibecompromisso[i].data.dia>31 || exibecompromisso[i].data.dia<0){
cerr<<"Dia invalido!\n"<<endl;
} else {
escritor<<exibecompromisso[i].data.dia<<"/";
bVerify = false;
}
}
bVerify = true;
while(bVerify)
{
cout<<"Digite o mes do compromisso(entre 1 e 12)"<<endl;
cin>>exibecompromisso[i].data.mes;
if(exibecompromisso[i].data.mes>12 || exibecompromisso[i].data.mes<0){
cerr<<"Mes invalido!\n"<<endl;
} else {
escritor<<exibecompromisso[i].data.mes<<"/";
bVerify = false;
}
}
bVerify = true;
cout<<"Digite o ano do compromisso"<<endl;
cin>>exibecompromisso[i].data.ano;
escritor<<exibecompromisso[i].data.ano<<endl;
while(bVerify)
{
cout<<"Digite a hora do compromisso"<<endl;
cin>>exibecompromisso[i].horario.hora;
if(exibecompromisso[i].horario.hora>23 || exibecompromisso[i].horario.hora<0){
cerr<<"Hora invalida!\n"<<endl;
} else {
escritor<<exibecompromisso[i].horario.hora<<":";
bVerify = false;
}
}
bVerify = true;
while(bVerify)
{
cout<<"Digite os minutos do compromisso"<<endl;
cin>>exibecompromisso[i].horario.min;
if(exibecompromisso[i].horario.min>59 || exibecompromisso[i].horario.min<0)
{
cerr<<"Minutos Invalidos!\n"<<endl;
} else {
escritor<<exibecompromisso[i].horario.min<<endl;
bVerify = false;
}
}
bVerify = true;
cout<<"Descreva o compromisso(usando_nos espacos em branco)"<<endl;
cin>>exibecompromisso[i].compromisso.descricao;
escritor<<exibecompromisso[i].compromisso.descricao<<endl;
while(bVerify)
{
cout<<"Informe a prioridade do compromisso: alta, media ou baixa?"<<endl;
cin>>exibecompromisso[i].compromisso.prioridade;
if ( strcmp(exibecompromisso[i].compromisso.prioridade, "alta") != 0
&& strcmp(exibecompromisso[i].compromisso.prioridade, "media") != 0
&& strcmp(exibecompromisso[i].compromisso.prioridade, "baixa") != 0
)
{
cerr<<"Prioridade Invalida!\n"<<endl;
} else {
escritor<<exibecompromisso[i].compromisso.prioridade<<endl;
bVerify = false;
}
}
bVerify = true;
cout<<"\n\n Compromisso salvo com sucesso"<<endl;
escritor.close();
controledecampo++;
} else {
cerr<<"Erro ao abrir o arquivo"<<endl;
}
system("pause");
}
void pesquisarcompromisso(Exibecompromisso exibecompromisso[MaxReg], int i)
{
ifstream leitor;
char a,b,c[100],d[5];
leitor.open("agenda.txt");
if(! leitor.is_open())
{
cerr<<"Erro ao abrir o arquivo"<<endl;
system("pause");
}
leitor>>controledecampo;
while(controledecampo>0)
{
Exibecompromisso registro;
leitor>>a;
leitor>>b;
leitor>>c;
leitor>>d;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
system("pause");
controledecampo--;
}
leitor.close();
}
void menueditar(){
cout << "\n\tVoce deseja editar:\n\n";
cout << "\n\n\t \xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n";
cout << "\t \xBA \t\t\t1) Dia.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t2) Mes.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t3) Ano.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t4) Horas.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t5) Minutos.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t6) Descricao.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t7) Prioridade.\t\t\t\t\xBA\n";
cout << "\t \xBA \t\t\t8) Sair.\t\t\t\t\xBA\n";
cout << "\t \xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n";
}// fecha a funcao menueditar
void editar(Exibecompromisso exibecompromisso[MaxReg], int i)
{
system("cls");
int opcao,valor;
char vetor[200];
menueditar();
while(opcao !=8)
{
cout << "\n\t Codigo: ";
cin>>opcao;
switch(opcao)
{
case 1:
cout << "\n\n\tDia: ";
cin>>valor;
if(valor==exibecompromisso[i].data.dia)
{
exibecompromisso[i].data.dia=valor;
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
case 2:
cout << "\n\n\tMes: ";
cin>>valor;
if(exibecompromisso[i].data.mes == valor)
{
valor = exibecompromisso[i].data.mes;
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
case 3:
cout << "\n\nAno\t: ";
cin>>valor;
if(exibecompromisso[i].data.ano == valor)
{
valor = exibecompromisso[i].data.ano;
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
case 4:
cout << "\n\nHoras\t: ";
cin>>valor;
if(exibecompromisso[i].horario.hora == valor)
{
valor = exibecompromisso[i].horario.hora;
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
case 5 :
cout << "\n\nMinutos\t: ";
cin>>valor;
if(exibecompromisso[i].horario.min == valor)
{
valor = exibecompromisso[i].horario.min;
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
case 6 :
cout << "\n\nDescricao\t: ";
cin>>vetor;
if(exibecompromisso[i].compromisso.descricao == vetor)
{
strcpy(exibecompromisso[i].compromisso.descricao, vetor);
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
case 7 :
cout << "\n\nPrioridade\t: ";
cin>>vetor;
if(exibecompromisso[i].compromisso.prioridade == vetor)
{
strcpy(exibecompromisso[i].compromisso.prioridade, vetor);
} else {
getch();
system ("cls");
mostratudo( exibecompromisso, i);
menueditar();
}
break;
default:
cerr<<"Codigo invalido"<<endl;
}//fecha switch
}//fecha while
}//fecha função editar vlw