Escolar Documentos
Profissional Documentos
Cultura Documentos
h> using namespace std; // typedef Ela permite criar novos nomes de tipos de dados definidos // INTEIRO a, b
typedef struct restaurante { char nome[20]; char tel[15]; char tip[20]; }tab_restaurante; tab_restaurante Res[50]; int j; int aux=0;
typedef struct restaurante1 { char nome1[20]; char tel1[15]; char tip1[20]; }tab_restaurante1; tab_restaurante1 Res1[50];
void AtualizarNome(); void incluir(); // feito void alterar(); void consultar(); // feito void relatorios(); //feito void consultar_nome(); void consultar_telefone(); void listar_todos(); //feito void listar_um_Tipo(); //feito int main(); void troca1(); void alterar_todos(); void alterar_nome(); void alterar_telefone(); void alterar_tipo(); void atualizar();
FILE *fp;
int main (){ int opcao; cout<<"\n\n\n\n\n"; cout<<" ******************************************* \n\n"; cout<<" Resistros Restaurante \n\n";
cout<<" ******************************************* \n\n"; cout<<" Francisco Joarlan dos Santo Martins - 201101312645 \n\n"; cout<<" \n\n"; cout<<" ******************************************* \n\n"; cout<<" ******************************************* \n\n"; cout<<" 1 INCLUIR \n\n"; cout<<" 2 CONSULTAR \n\n"; cout<<" 3 RELATORIOS\n\n"; cout<<" 9 SAIR\n\n"; cout<<" ******************************************* \n\n"; cin>>opcao; switch(opcao) { case 1: incluir(); break;
case 9: break;
void incluir(){ char op; int add = 0, escrita; fp = fopen("restaurante.bin","a"); if (fp == NULL) { cout<<"Erro! Arquivo no pode ser aberto!\n"; cout<<"Faltam dados!\n"; main(); }
cout<<"Digite o nome....: "<<endl; fflush(stdin); gets(Res[add].nome); cout<<"Digite o Telefone: "<<endl; gets(Res[add].tel); cout<<"Digite o Tipo: "<<endl;
/* int fread (void* p, int tam, int num, FILE *fp); void* p ? o endereo de memria que contm a informao a ser gravada int tam ? o tamanho em bytes de cada elemento int num ? o nmero de elementos FILE *fp ? o ponteiro para o arquivo */ cout<<"\n" ;
if (escrita == 1) { cout<<" \n Salvo com sucesso! "<<endl; } add++; break; } fclose (fp); system("pause"); main(); }
void alterar(){ cout<<" 1 Alterar nome \n\n"; cout<<" 2 Alterar telefone\n\n"; cout<<" 3 Alterar tipo \n\n"; cout<<" 4 Alterao completa\n\n"; cout<<" 9 SAIR\n\n"; cout<<" ******************************************* \n\n"; int opcao; cin>>opcao; switch(opcao) { case 1: troca1(); alterar_nome(); break;
system("pause"); main(); }
void relatorios(){ int opcao1; cout<<"* -----: Menu ----- * :"<<endl; cout<<"1 - Listar Todos"<<endl; cout<<"2 - Listar restaurante do Tipo"<<endl;
leitura = fread(&Res[indice], sizeof(struct restaurante), 1, fp); // fread l e retorna a quantidade de itens ...
while ( leitura == 1) { cout<<"\n Nome ......:"<< Res[indice].nome<<endl; cout<<"\n Telefone ..:"<< Res[indice].tel<<endl; cout<<"\n Tipo ......:"<< Res[indice].tip<<endl; cout<<"\n"; indice++; leitura = fread(&Res[indice], sizeof(struct restaurante), 1, fp); } cout<<" \n\n Total: "<< indice<<endl<<endl; fclose(fp); system("pause"); main(); }
void listar_um_Tipo(){ int indice = 0, leitura = 1, cont = 0; char nome[20]; if ((fp = fopen("restaurante.bin", "r")) == NULL) {
cout<<"Digite o tipo: "<<endl; fflush(stdin); gets(nome); leitura = fread(&Res[indice], sizeof(struct restaurante), 1, fp);
cout<<"\n Nome ......:"<< Res[indice].nome<<endl; cout<<"\n Telefone ..:"<< Res[indice].tel<<endl; cout<<"\n Tipo ......:"<< Res[indice].tip<<endl; cout<<"\n";
//adiciona ao contador cont++; } indice++;//incrementa indice leitura = fread(&Res[indice], sizeof(struct restaurante), 1, fp); //le novamento com um novo indice } //caso o contador seja Zero, retorna que no houve resultados. if(cont == 0){ cout<<"Nao a restaurantes desse tipo!\n";
void consultar(){ int opcao1; cout<<"* -----: Menu ----- * :"<<endl; cout<<"1 - consultar por nome"<<endl; cout<<"2 - consultar por telefone"<<endl; cout<<"9 - ENCERRAR"<<endl; cin>>opcao1; switch(opcao1) { case 1: consultar_nome(); break;
case 2: consultar_telefone();
break;
void consultar_nome(){ int indice = 0, leitura = 1, cont = 0; char nome[20]; if ((fp = fopen("restaurante.bin", "rb")) == NULL){ cout<<" O arquivo da lista no pode ser aberto!\n"; } cout<<"Digite o nome: "<<endl; fflush(stdin); gets(nome);
cout<<"\n Nome ......:"<< Res[indice].nome<<endl; cout<<"\n Telefone ..:"<< Res[indice].tel<<endl; cout<<"\n Tipo ......:"<< Res[indice].tip<<endl; cout<<"\n"; j=indice; //adiciona ao contador cont++; } indice++;//incrementa indice
leitura = fread(&Res[indice], sizeof(struct restaurante), 1, fp); //le novamento com um novo indice } //caso o contador seja Zero, retorna que no houve resultados. if(cont == 0){ cout<<"Nao restaurantes com este nome!\n"; }
fclose(fp); alterar();
void consultar_telefone(){ int indice = 0, leitura = 1, cont = 0; char telefone[15]; if ((fp = fopen("restaurante.bin", "rb")) == NULL){ cout<<" O arquivo da lista no pode ser aberto!\n"; main(); } cout<<"Digite o telefone para busca: "<<endl; fflush(stdin); gets(telefone);
cout<<"\n Nome ......:"<< Res[indice].nome<<endl; cout<<"\n Telefone ..:"<< Res[indice].tel<<endl; cout<<"\n Tipo ......:"<< Res[indice].tip<<endl; cout<<"\n";
//adiciona ao contador cont++; } indice++; leitura = fread(&Res[indice], sizeof(struct restaurante), 1, fp); //le novamento com um novo indice } //caso o contador seja Zero, retorna que no houve resultados. if(cont == 0){ cout<<"Nao a crestaurante com este telefone!\n"; }
if ((fp = fopen("restaurante.bin", "rb")) == NULL){ cout<<" O arquivo da lista no pode ser aberto!\n"; main(); } leitura = fread(&Res[aux], sizeof(struct restaurante), 1, fp);
strcpy(Res1[aux].nome1, Res[aux].nome); strcpy(Res1[aux].tel1, Res[aux].tel); strcpy(Res1[aux].tip1, Res[aux].tip); cout<<"restaurante :"<<Res1[aux].nome1<<"posicao :"<<aux<<endl; cout<<"telefone :"<<Res1[aux].tel1<<"posicao :"<<aux<<endl; cout<<"tipo :"<<Res1[aux].tip1<<"posicao :"<<aux<<endl;
void alterar_nome(){ cout<<"Digite o nome do restaurante a ser atualizado "<<endl; fflush(stdin); cout<<"posicao :"<<j<<endl; gets(Res1[j].nome1); cout<<"nome :"<<Res1[j].nome1<<endl; system("pause");
void alterar_telefone(){
void alterar_tipo(){ cout<<"Digite o tipo do restaurante a ser atualizado "<<endl; fflush(stdin); cin>>Res1[j].tel1; }
for(int i=0;i<aux;i++){ escrita = fwrite (&Res1[i], sizeof(struct restaurante1) ,1,fp); if (escrita!= 1) { // Pode ocorrer erro caso no haja permisso de leitura cout<<"Erro !\n"; } } cout<<"saiu no atualizar !\n"; }