#include #include #include #include #include #include #include #include //definicões das mensagens de êxito e erro: #define MSG_INS_OK "Cliente inserido com sucesso! Tecle enter..." #define MSG_REM_OK "Cliente removido com sucesso! Tecle enter..." #define MSG_REM_CAN "\aRemoção cancelada! Tecle enter..." #define MSG_OP_ERRO "\aOpção inválida! Tecle enter..." #define MSG_COD_REP "\aEste código já existe! Tecle enter..." #define MSG_COD_INE "\aCódigo de cliente inexistente! Tecle enter..." #define MSG_CONS_nomeoucod "\aCliente não encontrado! Tecle enter..." #define MSG_Trans_CAN "\aTransferência cancelada! Tecle enter..." #define MSG_POL_Ocup "\aEsta poltrona já está ocupada! Tecle enter..." //imprimir um texto com acento void aprintf(char texto[80]) { char text[80]; CharToOem(texto,text); printf("%s",text); } // centraliza o texto em uma linha void centraliza(char texto[80], int linha) { int tam, c; tam =strlen(texto); c = (80-tam)/2; gotoxy(c,linha); aprintf(texto); } //cria uma moldura na tela void moldura() { int j, al; //linha 1 gotoxy(1,1); for(j=1;j<=80;j++) printf("%c",205); //linha 2 gotoxy(1,4); for(j=1;j<=80;j++) printf("%c",205); //linha 3 gotoxy(1,22); for(j=1;j<=80;j++) printf("%c",205); //linha 4 gotoxy(1,24); for(j=1;j<=80;j++) printf("%c",205); //linha vertical esquerda e direita for (j=2; j<=23; j++) { gotoxy(1,j); printf("%c",186); gotoxy(80,j); printf("%c",186); } //cantoneira 1 - cima-esquerda gotoxy(1,1); printf("%c",201); //cantoneira 2 - cima-direita gotoxy(80,1); printf("%c",187); //cantoneira 3 - baixo-esquerda gotoxy(1,24); printf("%c",200); //cantoneira 4 - baixo-direita gotoxy(80,24); printf("%c",188); //cantoneira 5 - linha 4-esquerda gotoxy(1,4); printf("%c",204); //cantoneira 6 - linha 4-direita gotoxy(80,4); printf("%c",185); //cantoneira 7 - linha 22-esquerda gotoxy(1,22); printf("%c",204); //cantoneira 8 - linha 22-direita gotoxy(80,22); printf("%c",185); } //passa linha vertical numa tabela com duas divisoes // li -> linha onde inicia o traco vertical // lf -> linha onde finaliza o traco vertical // c -> coluna onde a linha vertical sera desenhada // divisoria -> linha onde passa a segunda linha void vertical(int li, int lf, int c, int divisoria) { int j; gotoxy(c,li); printf("%c",203); for (j=li+1; j<=lf; j++) { gotoxy(c, j); printf("%c",186); } gotoxy(c,lf); printf("%c",202); gotoxy(c,divisoria); printf("%c",206); } //monta moldura com duas divisoes // xin -> coluna onde inicia a moldura, yin -> linha onde inicia a moldura // xfim -> coluna onde finaliza a moldura, yfim -> linha onde finaliza a moldura // linhadiv -> linha que divide a moldura void moldura2(int xin, int yin, int xfim, int yfim, int linhadiv) { int j, al; gotoxy(xin,yin); printf("%c",201); for(j=xin+1;jtm_mday,hoje->tm_mon+1,hoje->tm_year+1900); gotoxy(74,6); printf("%02d:%02d\n",hoje->tm_hour,hoje->tm_min); } //monta a tela de menu void menu() { textbackground(BLACK); textcolor(WHITE); clrscr(); tela("Controle de pacotes"); dh(); gotoxy(7,6); aprintf("Opções:"); gotoxy(13,7); printf("1 - Compra de pacote"); gotoxy(13,9); aprintf("2 - Desistência de pacote"); gotoxy(13,11); aprintf("3 - Mudança de pacote"); gotoxy(13,13); aprintf("4 - Consultar cliente por código"); gotoxy(13,15); printf("5 - Consultar cliente por nome"); gotoxy(13,17); aprintf("6 - Calcular preço de pacote"); gotoxy(13,19); aprintf("7 - Listagem de ocupação do ônibus"); gotoxy(13,21); printf("0 - Sair do Programa"); gotoxy(3,23); aprintf("Informe a opção desejada: "); gotoxy(29,23); } //funcao para verificar se foi digitado um numero inteiro // retorna um se der erro e zero se ok int testeint(char numint[10]) { int t, v, i; t= strlen(numint); v=0; for(i=0;i