edyguilherme / CPlusPlus

0 stars 0 forks source link

Criando bibliotecas para usar no c++ #12

Open edyguilherme opened 5 years ago

edyguilherme commented 5 years ago

// ECRA.H // Arquivo de cabecalho para controle do video modo // windows.h

// Constantes para as cores de texto e fundo

define black 0 // Preto

define blue 1 // Azul

define green 2 // Verde

define cyan 3 // Ciano

define red 4 // Vermelho

define magenta 5 // Magenta

define brown 6 // Marrom

define lgray 7 // Cinza claro

define dgray 8 // Cinza escuro

define lblue 9 // Azul claro

define lgreen 10 // Verde claro

define lcyan 11 // Ciano claro

define lred 12 // Vermelho claro

define lmagenta 13 // Magenta claro

define yellow 14 // Amarelo

define white 15 // Branco

void clear(void); void position(int LINHA, int COLUNA); void clearline(void); void color(int COR_FUNDO, int COR_TEXTO);

///salvar com o nome ECRA.H

edyguilherme commented 5 years ago

///criar este arquivo apos criar o ecra.h

// Arquivo com codigo das funcoes da biblioteca ECRA.h

include

include

// Limpar tela

void clear(void) { HANDLE TELA; DWORD ESCRITA = 0; COORD POS; TELA = GetStdHandle(STD_OUTPUT_HANDLE); POS.X = 0; POS.Y = 0; FillConsoleOutputCharacter(TELA, 32, 80 * 25, POS, &ESCRITA); SetConsoleCursorPosition(TELA, POS); return; }

// Posicionar cursor

void position(int LINHA, int COLUNA) { HANDLE TELA; COORD POS; TELA = GetStdHandle(STD_OUTPUT_HANDLE); POS.X = COLUNA - 1; /// COLUNA 0 POS.Y = LINHA - 1; /// LINHA 0 SetConsoleCursorPosition(TELA, POS); return; }

// Limpar linha

void clearline(void) { HANDLE TELA; COORD POS; CONSOLE_SCREEN_BUFFER_INFO VIDEO; DWORD ESCRITA = 0; TELA = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(TELA, &VIDEO); POS.Y = VIDEO.dwCursorPosition.Y; POS.X = VIDEO.dwCursorPosition.X; FillConsoleOutputCharacter(TELA, 32, 80 - POS.X , POS, &ESCRITA); return; }

// Cor de texto e fundo

void color(int COR_FUNDO, int COR_TEXTO) { HANDLE TELA; int COR; TELA = GetStdHandle(STD_OUTPUT_HANDLE);

if (COR_FUNDO<0 and COR_FUNDO>15 and COR_TEXTO<0 and COR_TEXTO>15) COR = 15; else COR = COR_TEXTO + COR_FUNDO * 16; SetConsoleTextAttribute(TELA, COR); return; }

///salvar como BIBLIO_ECRA.CPP

edyguilherme commented 5 years ago

///agora o programa calculadora

// Programa Calculadora

include

include

include ///entre <> é porque é uma biblioteca padrao da linguagem

include "ecra.h" ///aqui que eu chamo a biblioteca que eu criei ///o "ecra.h" diz que é um programa externo.

using namespace std;

float R, A, B;

void rotadicao(void); void rotsubtracao(void); void rotmultiplicacao(void); void rotdivisao(void); void entrada(void); void saida(void); void pausa(void);

int main(void) { int OPCAO = 0; while (OPCAO != 5) { cout << setprecision(2); cout << setiosflags(ios::right); cout << setiosflags(ios::fixed); clear(); position( 1, 1); cout << "--------------------"; position( 2, 1); cout << "Programa Calculadora"; position( 3, 1); cout << " Menu Principal "; position( 4, 1); cout << "--------------------"; position( 6, 1); cout << "[1] - Adicao"; position( 7, 1); cout << "[2] - Subtracao"; position( 8, 1); cout << "[3] - Multiplicacao"; position( 9, 1); cout << "[4] - Divisao"; position(10, 1); cout << "[5] - Fim de Programa"; position(12, 1); cout << "Escolha uma opcao: "; cin >> OPCAO; cin.ignore(80, '\n'); if (OPCAO != 5) { switch (OPCAO) { case 1: rotadicao(); break; case 2: rotsubtracao(); break; case 3: rotmultiplicacao(); break; case 4: rotdivisao(); break; } } } return 0; }

void entrada(void) { position( 5, 1); cout << "Entre um valor para a variavel [A]: "; cin >> A; cin.ignore(80, '\n'); position( 6, 1); cout << "Entre um valor para a variavel [B]: "; cin >> B; cin.ignore(80, '\n'); return; }

void saida(void) { position( 9, 1); cout << "O resultado entre A e B = "; cout << setw(8); cout << R << endl; position(11, 1); pausa(); return; }

void rotadicao(void) { clear(); position( 1, 1); cout << "Rotina de Adicao"; position( 2, 1); cout << "----------------"; entrada(); R = A + B; saida(); return; }

void rotsubtracao(void) { clear(); position( 1, 1); cout << "Rotina de Subtracao"; position( 2, 1); cout << "-------------------"; entrada(); R = A - B; saida(); return; }

void rotmultiplicacao(void) { clear(); position( 1, 1); cout << "Rotina de Multiplicacao"; position( 2, 1); cout << "-----------------------"; entrada(); R = A * B; saida(); return; }

void rotdivisao(void) { clear(); position( 1, 1); cout << "Rotina de Divisao"; position( 2, 1); cout << "-----------------"; entrada(); if (B == 0) { position( 9, 1); cout << "Erro de divisao"; position(11, 1); pausa(); } else { R = A / B; saida(); } return; }

void pausa(void) { cout << "Tecle para encerrar... "; cin.get(); return; }

///salvar como programa.cpp

edyguilherme commented 5 years ago

Com todos os arquivos salvos no mesmo diretorio, agora abrir o CMD no diretorio dos arquivos e usar o comando g++ -std=c++17 PROGRAMA.CPP BIBLIO_ECRA.CPP -o PROGRAMA

/// apos isto sera gerado o programa.exe