Advertisement
salla

GerenciamentoLocadoraVideoStore

Jan 27th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 12.32 KB | None | 0 0
  1. //-std=c99
  2. //-lconio
  3.  
  4. /***************************************************************************************************************
  5.  *
  6.  * Autor: Sallatiel Fernandes Freire Cardoso
  7.  * Ultima atualização: 26/02/2015
  8.  * Introdução à Programação (2014.2): Projeto "Gerenciamento de matrícula"
  9.  * Descrição: Esse programa foi compilado no windows 8.1, a IDE ultilizada foi o Code::Blocks
  10.  *            com o compilador GNU GCC compiler do paconte mingw. Foi ultilizado uma biblioteca
  11.  *            "cônio2.1" (disponível em: http://1drv.ms/1yWlnoH) para mais opção de cores no programa.
  12.  * Objetivo:
  13.  *
  14.  *
  15.  *
  16.  ***************************************************************************************************************/
  17.  
  18. //Inclusão de bibliotecas usadas
  19. #include <windows.h>
  20. #include <stdio.h>
  21. #include <stdlib.h>
  22. #include <conio.h>
  23.  
  24. //definição de macros
  25. #define ACIMA 72
  26. #define ABAIXO 80
  27. #define ESQUERDA 75
  28. #define DIREITA 77
  29. #define ENTER 13
  30.  
  31. //Funções do programa
  32. void posXY(int x,int y); //Posiciona curso na tela (desenho)
  33. void moveXY(int x, int y, char t[10]); //move a seleção do menu de usuário
  34. void bordaTela(int x, int y, int comp, int alt, int cor); //desenha borda das "páginas"
  35. void botaoBorda(int x1, int y1, int c1, int a1); //Desenha a borda de todos os botôes
  36. void apagaBorda(int x1, int y1, int comp, int alt); //Apaga bordas não selecionada
  37.  
  38. void telaInicial(); //aprensenta o programa;
  39. void selecaoUsuario(); //Menu de seleção de usuários com opções: Funcionário, Cliente e sair
  40. void menuFuncionario(); //Função que entra no ambiente "Funcionário"
  41. void menuCliente(); //Função que esntra no ambiente "Cliente"
  42.  
  43.  
  44. //Função principal
  45. int main(void){
  46.  
  47.     system("color 0f"); //determina fundo preto e letras brancas para o terminal
  48.     telaInicial(); //exibe a tela de apresentação do programa
  49.     selecaoUsuario();
  50.  
  51.     return 0;
  52. }
  53.  
  54. /******************************************************************************************************
  55.     Função: posXY
  56.         Essa função ultiliza a biblioteca windows.h e posiciona o curso em uma
  57.     determinada coordernada bidimensional, os parâmetros são:
  58.         int x e y -> [Entrada] Coordenadas para posicionamento do objeto
  59. ******************************************************************************************************/
  60. void posXY(int x,int y){
  61.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x,y});
  62. }
  63.  
  64. /******************************************************************************************************
  65.     Função: moveXY
  66.         Essa função posiciona o curso em uma determinada posição da tela e escreve
  67.     um estring determinada externament:
  68.         int x e y -> [Entrada] Coordenadas para posicionamento do objeto
  69.         char t[20] -> [Entrada] String A ser escrita na posição determinada anteriormente
  70. ******************************************************************************************************/
  71. void moveXY(int x, int y, char t[20]){
  72.     HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  73.     COORD position = { x , y };
  74.     SetConsoleCursorPosition(hStdout,position);
  75.     printf("%s", t);
  76.  
  77. }
  78.  
  79. /******************************************************************************************************
  80.     Função: bordaTela
  81.         Essa função desenha uma borda na página em questão, recebe cinco parâmetros, são eles:
  82.         int x e y -> [Entrada] Coordenadas para posicionamento do objeto
  83.         int comp e alt -> [Entrada] Comprimento e altura respectivamente do quadrado
  84.         int cor -> [Entrada] Usa conio.h (conio2.1), recebe valor da cor que está nessa biblioteca
  85.                     para colorir a borda
  86. ******************************************************************************************************/
  87. void bordaTela(int x, int y, int comp, int alt, int cor){
  88.  
  89.     textcolor(cor); //muda a cor do texto para "cinza-claro"
  90.  
  91.     posXY(x, y); printf("\311");
  92.     int x1=x+comp;
  93.     for(x;x<x1;x++){ posXY(x+1,y); printf("\315");}
  94.     posXY(x1,y); printf("\273");
  95.     int y1 = y + alt;
  96.     for(y;y<y1;y++){ posXY(x,y+1); printf("\272");}
  97.     posXY(x,y1); printf("\274");
  98.     int x2 = x1 - comp;
  99.     for(x1;x1>x2;x1--){ posXY(x1-1,y1); printf("\315");}
  100.     posXY(x1,y); printf("\310");
  101.     int y2 = y1 - (alt-1);
  102.     for(y1;y1>y2;y1--){ posXY(x1,y1-1); printf("\272");}
  103.  
  104. }
  105.  
  106. /******************************************************************************************************
  107.     Função: botaoBorda
  108.         Essa função constroi as bordas dos botões, as funções
  109.     dos quatro parâmetros são:
  110.         int x1 e y1 -> [Entrada] Coordenadas para início do desenho (superior esquerdo);
  111.         int c1 e a1 -> [Entrada] Respectivamente comprimento e altura do botão
  112. ******************************************************************************************************/
  113. void botaoBorda(int x1, int y1, int c1, int a1){
  114.  
  115.     textcolor(10);
  116.     posXY(x1, y1); printf("\332");
  117.     int x2=x1+c1;
  118.     for(x1;x1<x2;x1++){ posXY(x1+1,y1); printf("\304");}
  119.     posXY(x2,y1); printf("\277");
  120.     int y2 = y1 + a1;
  121.     for(y1;y1<y2;y1++){ posXY(x1,y1+1); printf("\263");}
  122.     posXY(x1,y2); printf("\331");
  123.     int x3 = x2 - c1;
  124.     for(x2;x2>x3;x2--){ posXY(x2-1,y2); printf("\304");}
  125.     posXY(x2,y1); printf("\300");
  126.     int y3 = y2 - (a1-1);
  127.     for(y2;y2>y3;y2--){ posXY(x2,y2-1); printf("\263");}
  128.  
  129.  
  130. }
  131.  
  132. /******************************************************************************************************
  133.     Função: apagaBorda
  134.         Essa função apaga os botões que não estã selecionados no menu sobreescrevendo-a com
  135.     uma uma borda preta, os parâmetros são:
  136.         int x1 e y1 -> [Entrada] Coordenadas para início do desenho (superior esquerdo);
  137.         int comp e alt -> [Entrada] comprimento e altura do botão a ser apagado
  138. ******************************************************************************************************/
  139. void apagaBorda(int x1, int y1, int comp, int alt){
  140.     textcolor(0);
  141.     posXY(x1, y1); printf("\260");
  142.     int x2=x1+comp;
  143.     for(x1;x1<x2;x1++){ posXY(x1+1,y1); printf("\260");}
  144.     posXY(x2,y1); printf("\260");
  145.     int y2 = y1 + alt;
  146.     for(y1;y1<y2;y1++){ posXY(x1,y1+1); printf("\260");}
  147.     posXY(x1,y2); printf("\260");
  148.     int x3 = x2 - comp;
  149.     for(x2;x2>x3;x2--){ posXY(x2-1,y2); printf("\260");}
  150.     posXY(x2,y1); printf("\260");
  151.     int y3 = y2 - (alt-1);
  152.     for(y2;y2>y3;y2--){ posXY(x2,y2-1); printf("\260");}
  153. }
  154.  
  155. //Função que exibe a apresentação do programa
  156. void telaInicial(){
  157.  
  158.     bordaTela(38, 5, 41, 25, 8);
  159.  
  160.     textcolor(10); //muda a cor do texto para "verde-claro"
  161.     posXY(50,10); printf("\376");posXY(51,10); printf("\376");posXY(52,10); printf("\376");posXY(61,10); printf("\376");posXY(63,10); printf("\376"); //
  162.     posXY(51,11); printf("\376");posXY(52,11); printf("\376");posXY(53,11); printf("\376");posXY(60,11); printf("\376");posXY(62,11); printf("\376"); //
  163.     posXY(52,12); printf("\376");posXY(53,12); printf("\376");posXY(54,12); printf("\376");posXY(59,12); printf("\376");posXY(61,12); printf("\376"); //  Desenho da
  164.     posXY(53,13); printf("\376");posXY(54,13); printf("\376");posXY(55,13); printf("\376");posXY(60,13); printf("\376");posXY(62,13); printf("\376"); //  Logomarca da
  165.     posXY(54,14); printf("\376");posXY(55,14); printf("\376");posXY(56,14); printf("\376");posXY(61,14); printf("\376");posXY(63,14); printf("\376"); //  empresa locadora
  166.     posXY(55,15); printf("\376");posXY(56,15); printf("\376");posXY(57,15); printf("\376");posXY(62,15); printf("\376");posXY(64,15); printf("\376"); //  de DVD´s
  167.     posXY(56,16); printf("\376");posXY(57,16); printf("\376");posXY(58,16); printf("\376");posXY(61,16); printf("\376");posXY(63,16); printf("\376"); //
  168.     posXY(57,17); printf("\376");posXY(58,17); printf("\376");posXY(59,17); printf("\376");posXY(60,17); printf("\376");posXY(62,17); printf("\376"); //
  169.     posXY(58,18); printf("\376");posXY(59,18); printf("\376");posXY(60,18); printf("\376"); posXY(61,18); printf("\376");                             //
  170.  
  171.     textcolor(15); //muda a cor do texto para "branco"
  172.     posXY(48,23); printf("LOCADORA VIDEO STORE"); //nome da loja
  173.     posXY(47,24); printf("www.videostorenet.com.br");  //site da loja
  174.  
  175.     for(int x = 49; x < 67; x++){
  176.         textcolor(2); //muda a cor do texto para "verde"
  177.         if(x<54){ Sleep(300); posXY(x,27); printf(".");}      //
  178.         else if(x<57){ Sleep(700); posXY(x,27); printf(".");} // Barra de carregamento
  179.         else if(x<63){ Sleep(500); posXY(x,27); printf(".");} //
  180.         else{ Sleep(200); posXY(x,27); printf(".");}          //
  181.     }
  182.  
  183.     system("cls");
  184. }
  185.  
  186. //Seleção de tipo de usuário
  187. void selecaoUsuario(){
  188.     bordaTela(2,1,115,38,8);
  189.  
  190.     int comprimentoBotao = 20;
  191.     int alturaBotao = 4;
  192.  
  193.     char a;
  194.     short posX=25,posY=10;
  195.  
  196.     do{
  197.         botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao); // Desenha a borda antes de receber opção das setas
  198.         textcolor(15); // muda a cor do texto novamente para branco
  199.         moveXY(posX, 13, "Funcionario"); //
  200.         moveXY(posX, 17, "Cliente");     // Imprimi as opções
  201.         moveXY(posX, 21, "Sair");        //
  202.  
  203.         a = toupper(getch()); // captura acionamento das setas
  204.  
  205.         switch(a){
  206.  
  207.             case ACIMA:
  208.                 if(posY>10){ // Se NÃO estiver na primeira opção
  209.                     posY-=4;
  210.                     apagaBorda(posX-5,posY+5, comprimentoBotao, alturaBotao);
  211.                     botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
  212.                 }else{
  213.                     apagaBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
  214.                     posY=18;
  215.                 }
  216.                 break;
  217.  
  218.             case ABAIXO:
  219.                 if(posY<18){
  220.                     posY+=4;
  221.                     apagaBorda(posX-5,posY-3, comprimentoBotao, alturaBotao);
  222.                     botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
  223.                 }else{
  224.                     apagaBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
  225.                     posY=10;
  226.  
  227.                 }
  228.                 break;
  229.  
  230.             case ENTER:
  231.                 if(posY==10) menuFuncionario();
  232.                 if(posY==14) menuCliente();
  233.                 if(posY==18) return 0;
  234.  
  235.                 break;
  236.         }
  237.     }while(1);
  238. }
  239.  
  240. //Menu do funcionário
  241. void menuFuncionario(){
  242.     //bordaTela(0,0,0,0,0);
  243.  
  244.     system("cls");
  245.  
  246.     int comprimentoBotao = 15;
  247.     int alturaBotao = 2;
  248.  
  249.     char a;
  250.     short posX=10,posY=10;
  251.  
  252.     do{
  253.         botaoBorda(posX-3,posY-1, comprimentoBotao, alturaBotao); // Desenha a borda antes de receber opção das setas
  254.         textcolor(15); // muda a cor do texto novamente para branco
  255.         moveXY(posX, posY, "\21 Voltar");
  256.         moveXY(25, posY, "Adicionar DVD");  //
  257.         moveXY(50, posY, "Listar DVD");     // Imprimi as opções
  258.         moveXY(75, posY, "Atualizar DVD");  //
  259.         moveXY(100, posY, "Apagar DVD");
  260.  
  261.  
  262.         a = toupper(getch()); // captura acionamento das setas
  263.  
  264.         switch(a){
  265.             case DIREITA:
  266.                 if(posX<80){ // Se NÃO estiver na primeira opção
  267.                     posX+=20;
  268.                     apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao);////
  269.                     botaoBorda(posX+10,posY-2, comprimentoBotao, alturaBotao);
  270.                 }else{
  271.                     apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao);////
  272.                     posX=25;
  273.                 }
  274.                 break;
  275.  
  276.             case ESQUERDA:
  277.                 if(posY<18){
  278.                     posY+=4;
  279.                     apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao);////
  280.                     botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
  281.                 }else{
  282.                     apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao); /////
  283.                     posX=25,posY=10;
  284.                 }
  285.                 break;
  286.  
  287.             case ENTER:
  288.                 if(posY==10) menuFuncionario();
  289.                 if(posY==14) menuCliente();
  290.                 if(posY==18) return 0;
  291.  
  292.                 break;
  293.         }
  294.  }while(1);
  295.  
  296. }
  297.  
  298. //Menu do Cliente
  299. void menuCliente(){
  300.     system("cls");
  301.     printf("::::::::::::::: Cliente ::::::::::::::::::::\n\n");
  302.     getch();
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement