AurélioG Postado Julho 10, 2009 Denunciar Share Postado Julho 10, 2009 Bom.. Eu fiz uma agenda de compromissos..e to tendo problemas na hora de editar o compromisso!o codigo esta com algum erroplz 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 editarvlw Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sil.Miranda Postado Julho 10, 2009 Denunciar Share Postado Julho 10, 2009 Eu to com um problema tamem sabe , é tipo alguma coisa que eu não sei falar.-.-'Fala qual é o problema , se é uma variavel ou coisa assim , ae evita ter que ler o código todo .Outra coisa , pelo amor de deus NÃO USA O SYSTEM("PAUSE") , isso não segue os padrões , use scanf("%*s");E me fala , seu código é em C ou C++ ?iostream é C++stdio é CCONIO.H É uma biblioteca MUITO ANTIGA , e NÃO deve ser usada Nunca.misturar códigos C com C++ não segue os padrões.Melhora seu código que eu animo olhar ele.E outra coisa , pensa um pouco no que ta fazendo antes de começar , prefira escrever a lógica do programa , e depois partir pra escrita dele.ExemploIniciar -> Chamar o Menu -> Valor digitado { Opção 1 : Funcao1(); Opção 2 : OutraFuncao(); Opção 3 : Sair() }Funcao1() {Inserir dados na estrutura XXX;...Perguntar se quer continuar s/ncaso s : Menu(); do contrario Sair();Pode tambem ser usado a linguagem UML para diagramação das funções e variaveis o que torna seu código muito mais eficiente e te ajuda na criação. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
AurélioG
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!
vlw
Link para o comentário
Compartilhar em outros sites
1 resposta 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.