All pastes #796326 Raw Edit

Cadastro de Clientes(Turismo)

public c v1 · immutable
#796326 ·published 2007-11-24 23:53 UTC
rendered paste body
#include <stdio.h>#include <conio2.h>#include <ctype.h> #include <windows.h>#include <time.h>#include "My_Library.c"typedef struct{ int cod, idade, pac, quarto, pol;                char nome[20];                float valor;              }Tclientes;              Tclientes clienteaux, clientenulo; //registros auxiliaresint op, la, qcn, qcs, posicao, ql, l, qt, pos, tecla;FILE *pn, *ps; //ponteiros para os ônibus de Natal e Salvadorchar resp[1], nomelido[80]; //ler a resposta e transforma para maiusculovoid 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 Natalint 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 Salvadorint 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 registrosint 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 registrosint 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 de Natal na telavoid 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 (clienteaux.quarto==1)      printf("Standard");   else      printf("Luxo");    gotoxy(66,15);   printf("%8d",clienteaux.pol);   textcolor(WHITE);}//Compra de pacotes de Natal ou Salvador(Inserção de clientes)void inserir(){ int teste;  char numl[10];  do{ tela("Compra de pacote");      gotoxy(7,9);      aprintf("Código do cliente...............: ");      gotoxy(7,11);      printf("Nome do cliente..................: ");      gotoxy(7,13);      printf("Idade:...........................: ");      gotoxy(7,15);      printf("Pacote(1-Salvador/2-Natal........: ");      gotoxy(7,17);      printf("Quarto(1-Standard/2-Luxo.........: ");      gotoxy(7,19);      printf("Poltrona.........................: ");            // leitura e validacao do código      do{ limpalinha(43,9);          textcolor(YELLOW);          gotoxy(43,9);                fflush(stdin);          gets(numl);          teste=1;          if (strlen(numl)!=0)          {  teste=testeint(numl);             if (teste==0)                clienteaux.cod = atoi(numl);             else             {  mensagem("\aA código é um campo numérico!",LIGHTRED);                 limpa();             }          }                   } while (teste==1);                      gotoxy(43,11);            fflush(stdin);// leitura e validacao do nome      gets(nomelido);      testenome();      // leitura e validacao da idade      do{ limpalinha(43,13);          textcolor(YELLOW);          gotoxy(43,13);                fflush(stdin);          gets(numl);          teste=1;          if (strlen(numl)!=0)          {  teste=testeint(numl);             if (teste==0)                clienteaux.idade = atoi(numl);             else             {  mensagem("\aA idade é um campo numérico!",LIGHTRED);                 limpa();             }          }                   } while (teste==1);                      //leitura e validacao do pacote      do{ limpalinha(43,15);          textcolor(YELLOW);          gotoxy(43,15);                fflush(stdin);          gets(numl);          teste=1;          if (strlen(numl)!=0)          {  teste=testeint(numl);             if (teste==0)              {  clienteaux.pac = atoi(numl);                 if ((clienteaux.pac<0) || (clienteaux.pac>2))                 {   mensagem("\aA opção de pacote é 1 ou 2 - valor fora do limite!",LIGHTRED);                      limpa();                     teste=1;                 }              }              else              {  mensagem("\aO pacote é um campo numérico!",LIGHTRED);                  limpa();              }          }                   } while (teste==1);                //leitura e validacao do quarto      do{ limpalinha(43,17);          textcolor(YELLOW);          gotoxy(43,17);                fflush(stdin);          gets(numl);          teste=1;          if (strlen(numl)!=0)          {  teste=testeint(numl);             if (teste==0)              {  clienteaux.quarto = atoi(numl);                 if ((clienteaux.quarto<0) || (clienteaux.quarto>2))                 {   mensagem("\aA opção de quarto é 1 ou 2 - valor fora do limite!",LIGHTRED);                      limpa();                     teste=1;                 }              }              else              {  mensagem("\aO pacote é um campo numérico!",LIGHTRED);                  limpa();              }          }                   } while (teste==1);                //leitura e validacao da poltrona      do{ limpalinha(43,19);          textcolor(YELLOW);          gotoxy(43,19);               fflush(stdin);          gets(numl);          if (teste==0)          {   clienteaux.pol = atoi(numl);              if ((clienteaux.pol<0) || (clienteaux.pol>40))              {   mensagem("\aA poltrona varia de 0 a 40 - valor fora do limite!",LIGHTRED);                   limpa();                  teste=1;              }          }          else          {  mensagem("\aA poltrona é um campo numérico!",LIGHTRED);              limpa();          }                   } while (teste==1);               fseek(pn,0,SEEK_END);      fwrite(&clienteaux,sizeof(Tclientes),1,pn);      qcn++;      fseek(ps,0,SEEK_END);      fwrite(&clienteaux,sizeof(Tclientes),1,ps);      qcs++;      mensagem(MSG_INS_OK,CYAN);      limpa();      aprintf("Inserir outro cliente(S-sim/N-não)? ");      textcolor(YELLOW);      resposta();      textcolor(WHITE);   }while (resp[0] == 'S');}