#include #include #include #include #include #include "My_Library.c" typedef struct{ int cod, idade, pac, quarto, pol; char nome[20]; float valor; }Tclientes; Tclientes clienteaux, clientenulo; //registros auxiliares int op, la, qa, posicao, ql, l, qt, pos, tecla; FILE *pn, *ps; //ponteiros para os ônibus de Natal e Salvador char resp[1], nomelido[80]; //ler a resposta e transforma para maiusculo void resposta() { fflush(stdin); gets(resp); resp[0]=toupper(resp[0]); } void testenome() { int tn, i; tn = strlen(nomelido); if (tn>19) { strncpy(clienteaux.nome,nomelido,19); clienteaux.nome[19]='\0'; } else strcpy(clienteaux.nome,nomelido); } //verifica a quantidade de registros no arquivo de Natal int verquantn() { int qrn=0; fseek(pn,0, SEEK_SET); fread(&clienteaux, sizeof(Tclientes), 1, pn); while(!feof(pn)) { if (clienteaux.cod != 0) qrn++; fread(&clienteaux, sizeof(Tclientes), 1, pn); } return qrn; } //verifica a quantidade de registros no arquivo de Salvador int verquants() { int qrs=0; fseek(ps,0, SEEK_SET); fread(&clienteaux, sizeof(Tclientes), 1, ps); while(!feof(ps)) { if (clienteaux.cod != 0) qrs++; fread(&clienteaux, sizeof(Tclientes), 1, ps); } return qrs; } //Abre o arquivo de Natal e retorna a quantidade de registros int abre_arquivon() { int quantregn; if ((pn = fopen("arqnat.dat","r+b"))== NULL) pn = fopen("arqnat.dat","w+b"); // O arquivo de Natal não existe, precisa ser criado e inicializado quantregn = verquantn(); clientenulo.cod =0; clientenulo.idade =0; clientenulo.pac =0; clientenulo.quarto =0; clientenulo.pol =0; strcpy(clientenulo.nome," \0"); return quantregn; } //Abre o arquivo de Salvador e retorna a quantidade de registros int abre_arquivos() { int quantregs; if ((ps = fopen("arqsal.dat","r+b"))== NULL) ps = fopen("arqsal.dat","w+b"); // O arquivo de Salvador não existe, precisa ser criado e inicializado quantregs = verquants(); clientenulo.cod =0; clientenulo.idade =0; clientenulo.pac =0; clientenulo.quarto =0; clientenulo.pol =0; strcpy(clientenulo.nome," \0"); return quantregs; } int procura(int codp) { int p; p= 0; fseek(pn,0, SEEK_SET); fread(&clientenulo, sizeof(Tclientes), 1, pn); while ((!feof(pn)) && (clientenulo.cod!=codp)) { fread(&clientenulo, sizeof(Tclientes),1, pn); p++; } if (clientenulo.cod == codp) return p; else p=-1; if (p=-1) {p= 0; fseek(ps,0, SEEK_SET); fread(&clientenulo, sizeof(Tclientes), 1, ps); while ((!feof(ps)) && (clientenulo.cod!=codp)) { fread(&clientenulo, sizeof(Tclientes),1, ps); p++; } if (clientenulo.cod == codp) return p; else return -1; } // imprime os dados dos clientes na tela void mostre() { moldura2(3,12,78,16,14); vertical(12,16,12,14); vertical(12,16,34,14); vertical(12,16,42,14); vertical(12,16,53,14); vertical(12,16,64,14); gotoxy(5,13); aprintf("Código"); gotoxy(14,13); printf("Nome do Cliente"); gotoxy(36,13); printf("Idade"); gotoxy(44,13); printf("Pacote"); gotoxy(55,13); printf("Quarto"); gotoxy(66,13); printf("Poltrona"); textcolor(YELLOW); gotoxy(5,15); printf("%6d",clienteaux.cod); gotoxy(14,15); printf("%-20s",clienteaux.nome); gotoxy(36,15); printf("%5d",clienteaux.idade); gotoxy(44,15); if (clienteaux.pac==1) printf("Salvador"); else printf("Natal"); gotoxy(55,15); if (clienteauxn.quarto==1) printf("Standard"); else printf("Luxo"); gotoxy(66,15); printf("%8d",clienteaux.pol); textcolor(WHITE); }