Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-std=c99
- //-lconio
- /***************************************************************************************************************
- *
- * Autor: Sallatiel Fernandes Freire Cardoso
- * Ultima atualização: 26/02/2015
- * Introdução à Programação (2014.2): Projeto "Gerenciamento de matrícula"
- * Descrição: Esse programa foi compilado no windows 8.1, a IDE ultilizada foi o Code::Blocks
- * com o compilador GNU GCC compiler do paconte mingw. Foi ultilizado uma biblioteca
- * "cônio2.1" (disponível em: http://1drv.ms/1yWlnoH) para mais opção de cores no programa.
- * Objetivo:
- *
- *
- *
- ***************************************************************************************************************/
- //Inclusão de bibliotecas usadas
- #include <windows.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- //definição de macros
- #define ACIMA 72
- #define ABAIXO 80
- #define ESQUERDA 75
- #define DIREITA 77
- #define ENTER 13
- //Funções do programa
- void posXY(int x,int y); //Posiciona curso na tela (desenho)
- void moveXY(int x, int y, char t[10]); //move a seleção do menu de usuário
- void bordaTela(int x, int y, int comp, int alt, int cor); //desenha borda das "páginas"
- void botaoBorda(int x1, int y1, int c1, int a1); //Desenha a borda de todos os botôes
- void apagaBorda(int x1, int y1, int comp, int alt); //Apaga bordas não selecionada
- void telaInicial(); //aprensenta o programa;
- void selecaoUsuario(); //Menu de seleção de usuários com opções: Funcionário, Cliente e sair
- void menuFuncionario(); //Função que entra no ambiente "Funcionário"
- void menuCliente(); //Função que esntra no ambiente "Cliente"
- //Função principal
- int main(void){
- system("color 0f"); //determina fundo preto e letras brancas para o terminal
- telaInicial(); //exibe a tela de apresentação do programa
- selecaoUsuario();
- return 0;
- }
- /******************************************************************************************************
- Função: posXY
- Essa função ultiliza a biblioteca windows.h e posiciona o curso em uma
- determinada coordernada bidimensional, os parâmetros são:
- int x e y -> [Entrada] Coordenadas para posicionamento do objeto
- ******************************************************************************************************/
- void posXY(int x,int y){
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x,y});
- }
- /******************************************************************************************************
- Função: moveXY
- Essa função posiciona o curso em uma determinada posição da tela e escreve
- um estring determinada externament:
- int x e y -> [Entrada] Coordenadas para posicionamento do objeto
- char t[20] -> [Entrada] String A ser escrita na posição determinada anteriormente
- ******************************************************************************************************/
- void moveXY(int x, int y, char t[20]){
- HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
- COORD position = { x , y };
- SetConsoleCursorPosition(hStdout,position);
- printf("%s", t);
- }
- /******************************************************************************************************
- Função: bordaTela
- Essa função desenha uma borda na página em questão, recebe cinco parâmetros, são eles:
- int x e y -> [Entrada] Coordenadas para posicionamento do objeto
- int comp e alt -> [Entrada] Comprimento e altura respectivamente do quadrado
- int cor -> [Entrada] Usa conio.h (conio2.1), recebe valor da cor que está nessa biblioteca
- para colorir a borda
- ******************************************************************************************************/
- void bordaTela(int x, int y, int comp, int alt, int cor){
- textcolor(cor); //muda a cor do texto para "cinza-claro"
- posXY(x, y); printf("\311");
- int x1=x+comp;
- for(x;x<x1;x++){ posXY(x+1,y); printf("\315");}
- posXY(x1,y); printf("\273");
- int y1 = y + alt;
- for(y;y<y1;y++){ posXY(x,y+1); printf("\272");}
- posXY(x,y1); printf("\274");
- int x2 = x1 - comp;
- for(x1;x1>x2;x1--){ posXY(x1-1,y1); printf("\315");}
- posXY(x1,y); printf("\310");
- int y2 = y1 - (alt-1);
- for(y1;y1>y2;y1--){ posXY(x1,y1-1); printf("\272");}
- }
- /******************************************************************************************************
- Função: botaoBorda
- Essa função constroi as bordas dos botões, as funções
- dos quatro parâmetros são:
- int x1 e y1 -> [Entrada] Coordenadas para início do desenho (superior esquerdo);
- int c1 e a1 -> [Entrada] Respectivamente comprimento e altura do botão
- ******************************************************************************************************/
- void botaoBorda(int x1, int y1, int c1, int a1){
- textcolor(10);
- posXY(x1, y1); printf("\332");
- int x2=x1+c1;
- for(x1;x1<x2;x1++){ posXY(x1+1,y1); printf("\304");}
- posXY(x2,y1); printf("\277");
- int y2 = y1 + a1;
- for(y1;y1<y2;y1++){ posXY(x1,y1+1); printf("\263");}
- posXY(x1,y2); printf("\331");
- int x3 = x2 - c1;
- for(x2;x2>x3;x2--){ posXY(x2-1,y2); printf("\304");}
- posXY(x2,y1); printf("\300");
- int y3 = y2 - (a1-1);
- for(y2;y2>y3;y2--){ posXY(x2,y2-1); printf("\263");}
- }
- /******************************************************************************************************
- Função: apagaBorda
- Essa função apaga os botões que não estã selecionados no menu sobreescrevendo-a com
- uma uma borda preta, os parâmetros são:
- int x1 e y1 -> [Entrada] Coordenadas para início do desenho (superior esquerdo);
- int comp e alt -> [Entrada] comprimento e altura do botão a ser apagado
- ******************************************************************************************************/
- void apagaBorda(int x1, int y1, int comp, int alt){
- textcolor(0);
- posXY(x1, y1); printf("\260");
- int x2=x1+comp;
- for(x1;x1<x2;x1++){ posXY(x1+1,y1); printf("\260");}
- posXY(x2,y1); printf("\260");
- int y2 = y1 + alt;
- for(y1;y1<y2;y1++){ posXY(x1,y1+1); printf("\260");}
- posXY(x1,y2); printf("\260");
- int x3 = x2 - comp;
- for(x2;x2>x3;x2--){ posXY(x2-1,y2); printf("\260");}
- posXY(x2,y1); printf("\260");
- int y3 = y2 - (alt-1);
- for(y2;y2>y3;y2--){ posXY(x2,y2-1); printf("\260");}
- }
- //Função que exibe a apresentação do programa
- void telaInicial(){
- bordaTela(38, 5, 41, 25, 8);
- textcolor(10); //muda a cor do texto para "verde-claro"
- 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"); //
- 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"); //
- 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
- 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
- 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
- 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
- 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"); //
- 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"); //
- posXY(58,18); printf("\376");posXY(59,18); printf("\376");posXY(60,18); printf("\376"); posXY(61,18); printf("\376"); //
- textcolor(15); //muda a cor do texto para "branco"
- posXY(48,23); printf("LOCADORA VIDEO STORE"); //nome da loja
- posXY(47,24); printf("www.videostorenet.com.br"); //site da loja
- for(int x = 49; x < 67; x++){
- textcolor(2); //muda a cor do texto para "verde"
- if(x<54){ Sleep(300); posXY(x,27); printf(".");} //
- else if(x<57){ Sleep(700); posXY(x,27); printf(".");} // Barra de carregamento
- else if(x<63){ Sleep(500); posXY(x,27); printf(".");} //
- else{ Sleep(200); posXY(x,27); printf(".");} //
- }
- system("cls");
- }
- //Seleção de tipo de usuário
- void selecaoUsuario(){
- bordaTela(2,1,115,38,8);
- int comprimentoBotao = 20;
- int alturaBotao = 4;
- char a;
- short posX=25,posY=10;
- do{
- botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao); // Desenha a borda antes de receber opção das setas
- textcolor(15); // muda a cor do texto novamente para branco
- moveXY(posX, 13, "Funcionario"); //
- moveXY(posX, 17, "Cliente"); // Imprimi as opções
- moveXY(posX, 21, "Sair"); //
- a = toupper(getch()); // captura acionamento das setas
- switch(a){
- case ACIMA:
- if(posY>10){ // Se NÃO estiver na primeira opção
- posY-=4;
- apagaBorda(posX-5,posY+5, comprimentoBotao, alturaBotao);
- botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
- }else{
- apagaBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
- posY=18;
- }
- break;
- case ABAIXO:
- if(posY<18){
- posY+=4;
- apagaBorda(posX-5,posY-3, comprimentoBotao, alturaBotao);
- botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
- }else{
- apagaBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
- posY=10;
- }
- break;
- case ENTER:
- if(posY==10) menuFuncionario();
- if(posY==14) menuCliente();
- if(posY==18) return 0;
- break;
- }
- }while(1);
- }
- //Menu do funcionário
- void menuFuncionario(){
- //bordaTela(0,0,0,0,0);
- system("cls");
- int comprimentoBotao = 15;
- int alturaBotao = 2;
- char a;
- short posX=10,posY=10;
- do{
- botaoBorda(posX-3,posY-1, comprimentoBotao, alturaBotao); // Desenha a borda antes de receber opção das setas
- textcolor(15); // muda a cor do texto novamente para branco
- moveXY(posX, posY, "\21 Voltar");
- moveXY(25, posY, "Adicionar DVD"); //
- moveXY(50, posY, "Listar DVD"); // Imprimi as opções
- moveXY(75, posY, "Atualizar DVD"); //
- moveXY(100, posY, "Apagar DVD");
- a = toupper(getch()); // captura acionamento das setas
- switch(a){
- case DIREITA:
- if(posX<80){ // Se NÃO estiver na primeira opção
- posX+=20;
- apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao);////
- botaoBorda(posX+10,posY-2, comprimentoBotao, alturaBotao);
- }else{
- apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao);////
- posX=25;
- }
- break;
- case ESQUERDA:
- if(posY<18){
- posY+=4;
- apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao);////
- botaoBorda(posX-5,posY+1, comprimentoBotao, alturaBotao);
- }else{
- apagaBorda(posX-11,posY-2, comprimentoBotao, alturaBotao); /////
- posX=25,posY=10;
- }
- break;
- case ENTER:
- if(posY==10) menuFuncionario();
- if(posY==14) menuCliente();
- if(posY==18) return 0;
- break;
- }
- }while(1);
- }
- //Menu do Cliente
- void menuCliente(){
- system("cls");
- printf("::::::::::::::: Cliente ::::::::::::::::::::\n\n");
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement