Programa de médias - boa pratica [RESOLVIDO]

1. Programa de médias - boa pratica [RESOLVIDO]

Washington Bernardo
washingtonBCS

(usa Arch Linux)

Enviado em 31/05/2018 - 10:47h

Bom dia pessoal, vocês poderiam me ajudar a terminar o programa que eu to escrevendo?
é um teste simples para notas da faculdade, eu não sei programar e esse é o primeiro programa que eu to tentando escrever!
O que poderia ter sido feito melhor? tipo boas praticas ou etc...

poderiam me ajudar?


#include <iostream>
#include <conio.h>
#include <locale.h>
using namespace std;
int main()
{

int RESP;
float NP1, NP2, SS, MF, MS, Ex;

do
{
setlocale(LC_ALL, "Portuguese");
system("cls"); system("title Calcular notas e média"); system("color 2b");
do
{
cout << "Digite a nota da NP1: ";
cin >> NP1;
if (NP1 > 10 || NP1 < 0)
cout << "Nota inválida. \n";
}while (NP1 > 10 || NP1 < 0);

do
{
cout << "Digite a nota da NP2: ";
cin >> NP2;
if (NP2 > 10 || NP2 < 0)
cout << "Nota inválida. \n";
}while (NP2 > 10 || NP2 < 0);

MS = (NP1+NP2) / 2.0;

cout << "\nSua média no semestre foi: " << MS;

if (MS >= 6.7)
{
cout << "\nParabéns você foi aprovado. \nBOAS FERIAS! \n\n";
cout << "você gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}

else
{
SS = ((MS - 10)*-1)-0.5;
cout << "\nVocê precisa fazer exame para ser aprovado, e tirar no mínimo " << SS << " no exame. \n";
cout << "\n\nVocê já tem a nota do exame? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;

if (RESP == 1)
{
do
{
cout << "\nDigite a nota do exame: ";
cin >> Ex;
if (Ex > 10 || Ex < 0)
cout << "\nNota inválida. \n";
}while (Ex > 10 || Ex < 0);

MF = (Ex + MS)/2;

if (MF >= 4.75)
{
cout << "\nparabéns você teve a média final de " << MF << " e foi aprovado.\nBOAS FERIAS! \n";
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}

else
{
cout << "\nQue pena sua média final foi " << MF << " você precisa fazer novamente essa matéria!. \n\n";
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}

}

else
{
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}

}

}while (RESP == 1);

getch();

return 0;

}



  


2. Re: Programa de médias - boa pratica [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 01/06/2018 - 00:25h

washingtonBCS escreveu:

Bom dia pessoal, vocês poderiam me ajudar a terminar o programa que eu to escrevendo?
é um teste simples para notas da faculdade, eu não sei programar e esse é o primeiro programa que eu to tentando escrever!
O que poderia ter sido feito melhor? tipo boas praticas ou etc...


Boa prática: evitar todas as chamadas a system(), pois elas são lentas, inseguras, e amarram o seu programa a um sistema específico.

Fora isso, poderia ser interessante deslocar a declaração de algumas variáveis, tais como MF e SS para próximo ao lugar onde elas serão usadas.

Pelo lado do estilo, talvez umas linhas em branco para separar blocos do programa com diferentes funções (por exemplo, cabeçalhos, diretivas using, declarações e implementações) poderia ser interessante.


3. Re: Programa de médias - boa pratica [RESOLVIDO]

Washington Bernardo
washingtonBCS

(usa Arch Linux)

Enviado em 01/06/2018 - 08:56h

paulo1205 escreveu:

washingtonBCS escreveu:

Bom dia pessoal, vocês poderiam me ajudar a terminar o programa que eu to escrevendo?
é um teste simples para notas da faculdade, eu não sei programar e esse é o primeiro programa que eu to tentando escrever!
O que poderia ter sido feito melhor? tipo boas praticas ou etc...


Boa prática: evitar todas as chamadas a system(), pois elas são lentas, inseguras, e amarram o seu programa a um sistema específico.

Fora isso, poderia ser interessante deslocar a declaração de algumas variáveis, tais como MF e SS para próximo ao lugar onde elas serão usadas.

Pelo lado do estilo, talvez umas linhas em branco para separar blocos do programa com diferentes funções (por exemplo, cabeçalhos, diretivas using, declarações e implementações) poderia ser interessante.


Muito obrigado por responder!
Vou melhorar! Sobre as chamadas system eu não sei como fazer sem, acho que não existe comando nativo para limpar a tela.


4. Re: Programa de médias - boa pratica

Paulo
paulo1205

(usa Ubuntu)

Enviado em 01/06/2018 - 15:03h

washingtonBCS escreveu:

Muito obrigado por responder!
Vou melhorar! Sobre as chamadas system eu não sei como fazer sem, acho que não existe comando nativo para limpar a tela.


O C e o C++ são intencionalmente definidas para um computador genérico, que não necessariamente possui um dispositivo específico, tal como a tela. Desse modo, realmente não existe um comando para limpá-la. E as bibliotecas padronizadas das duas linguagens seguem mais ou menos na mesma linha, mesmo quando falam em entidades como arquivos ou em invocar o sistema (este último é o caso de system()), fazem-no sem se remeter a dispositivos específicos (tais como disco, fita ou rede, por exemplo) ou detalhes de implementação (tais como limitações sobre os nomes de arquivos, como eles dispostos em disco, ou quais são os comandos externos que podem ser invocados e como isso se fará).

E, de fato, quando você aborda computadores específicos, como os nossos PCs, mesmo um tipo específico de dispositivo pode ser tratado de modo distinto por diferentes sistemas. Você e eu temos na nossa frente uma tela, mas você, com Windows, procede de um jeito diferente para mandá-lo limpar a tela do que eu tenho de proceder ao usar Linux. E não apenas o comando passado à função system() é diferente (no Windows, é CLS, no Linux, é clear), mas os passos que o comando toma internamente são diferentes.

Mas chamar comandos externos é especialmente ruim porque tal operação é geralmente lenta e insegura. Lenta porque, tanto no Windows como no Linux, ela envolve criar um processo novo, invocar um programa separado nesse processo novo para interpretar o comando (no Windows, é o CMD.EXE, no DOS, é o COMMAND.COM, no POSIX, que inclui vários UNIXes e o Linux, é o /bin/sh), nos custos da execução do comando, depois de interpretado (que podem, inclusive, implicar criar novos processos e invocar outros programas externos), e depois tratar os término da execução dos programas externos e subprocessos. E insegura porque frequentemente dependem de entidades que não estão sobre controle total do seu programa, tais como o tipo e a versão do sistema operacional, variáveis de ambiente, e a própria presença e disponibilidade dos comandos que terão de ser executados.

Se você precisa mesmo de funções particulares, que excedem aquilo que o computador genérico da linguagem nativa ou de sua biblioteca padrão é poderia fazer, é melhor, na medida do possível, trazer para dentro do seu programa o que quer que você quisesse inicialmente fazer através de um programa externo, por meio de uma invocação a system(). Fazendo isso, você eliminará alguns riscos de desempenho e de segurança mencionados acima, e poderá ficar um pouco menos dependente de condições externas.

Ao fazer isso, você pode ainda escolher entre abordagens mais particulares, que funcionem na sua máquina e em máquinas mais ou menos semelhantes à sua, ou mais genéricas, que podem funcionar em máquinas mais distintas. Por exemplo, você poderia usar funções da Win32 API para manipulação de console do Windows, que lhe permitem limpar a tela, manipular cores do texto e atributos de ambiente do console. Alternativamente, você poderia instalar e usar uma biblioteca de compatibilidade que coloca uma camada fina antes das funções nativas da Win32 API, permitindo usar funções com a mesma forma daquelas disponíveis outros sistemas operacionais, permitindo que seu programa funcione em outras plataformas. Um exemplo de biblioteca assim é a PDCurses, que é compatível com a biblioteca Curses, que é amplamente utilizada em sistemas POSIX, e outro é a ConIO/ConIO2, que é compatível com a ConIO disponível em compiladores do velho MS-DOS.

Análogos do que vai acima poderia ser feito no mundo UNIX/Linux: dá para embutir comandos de terminal no meio das strings para eles enviadas, mas também dá para subir um pouquinho de nível e mandar comandos que levem em consideração tipos de terminais diferentes (biblioteca Termcap/Terminfo). Subindo mais um pouco de nível, pode-se usar a biblioteca Curses, que oferece recursos de mais alto nível, tais como molduras, menus, painéis etc.

No que diz respeito às diferentes interfaces nativas, a Win32 API me parece de muito mais baixo nível que as APIs do POSIX (mesmo em nível de Termcap/Terminfo — veja, por exemplo, o código que está na postagem número 12 do seguinte tópico: https://www.vivaolinux.com.br/topico/C-C++/Preciso-fazer-um-programa-em-C-para-cadastra-alunos-consu...). Por esse motivo, eu entendo que você ganharia produtividade (a um custo de desempenho que me parece muito pequeno) colocando uma versão de Curses (que inclui Termcap/Terminfo) no Windows do que eventualmente tentando colocar um clone da parte de console da Win32 API no Linux. Quanto a clonar a ConIO no Linux, acho que não vale o esforço, porque a mesmo a Termcap/Terminfo é muito mais rica.


5. Re: Programa de médias - boa pratica [RESOLVIDO]

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 01/06/2018 - 15:42h

Washington,

Segue uma nova versão do ser programa de médias, sem utilizar o system().

Coloquei cores nos textos do terminal, limpei a tela, etc.

#include <iostream>
#include <conio.h>
#include <locale.h>
#include <windows.h>

using namespace std;

// Função que limpa a tela no terminal do Windows
void cls( HANDLE hConsole )
{
COORD coordScreen = { 0, 0 }; // home for the cursor
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;

if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;

if( !FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
dwConSize, coordScreen, &cCharsWritten ))
return;

if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;

if( !FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten ))
return;

SetConsoleCursorPosition( hConsole, coordScreen );
}

// Função principal do sistema
int main()
{
int RESP;
float NP1, NP2, SS, MF, MS, Ex;

do
{
setlocale(LC_ALL, "Portuguese");

// Limpando o terminal
HANDLE hStdout;
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
cls(hStdout);

// Alterando o título da janela
SetConsoleTitle("Calcular a media do aluno");

// Texto do terminal Azul e Intensificado
// Outras cores: https://docs.microsoft.com/en-us/windows/console/console-screen-buffers#_win32_font_attributes
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);

do
{
cout << "Digite a nota da NP1: ";
cin >> NP1;
if (NP1 > 10 || NP1 < 0)
cout << "Nota inválida. \n";
} while (NP1 > 10 || NP1 < 0);

do
{
cout << "Digite a nota da NP2: ";
cin >> NP2;
if (NP2 > 10 || NP2 < 0)
cout << "Nota inválida. \n";
} while (NP2 > 10 || NP2 < 0);

MS = (NP1+NP2) / 2.0;

cout << "\nSua média no semestre foi: " << MS;

if (MS >= 6.7)
{
// Texto do terminal Verde e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << "\n\nParabéns você foi aprovado. \nBOAS FERIAS! \n\n";

// Texto do terminal Azul e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "você gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
else
{
SS = ((MS - 10)*-1)-0.5;
// Texto do terminal Vermelho e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout << "\n\nVocê precisa fazer exame para ser aprovado, e tirar no mínimo " << SS << " no exame.";

// Texto do terminal Azul e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "\n\nVocê já tem a nota do exame? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;

if (RESP == 1)
{
do
{
cout << "\nDigite a nota do exame: ";
cin >> Ex;
if (Ex > 10 || Ex < 0)
cout << "\nNota inválida. \n";
} while (Ex > 10 || Ex < 0);

MF = (Ex + MS)/2;

if (MF >= 4.75)
{
cout << "\nParabéns você teve a média final de " << MF << " e foi aprovado!\nBOAS FERIAS! \n";
cout << "\nVocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
else
{
// Texto do terminal Vermelho e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout << "\nQue pena sua média final foi " << MF << " você precisa fazer novamente essa matéria!\n";

// Texto do terminal Azul e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
}

else
{
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
}
// Texto do terminal Branco
SetConsoleTextAttribute(hStdout, 15);

} while (RESP == 1);

getch();
return 0;
}


Abraço,
Diego M. Rodrigues


6. Re: Programa de médias - boa pratica [RESOLVIDO]

Washington Bernardo
washingtonBCS

(usa Arch Linux)

Enviado em 01/06/2018 - 20:47h

paulo1205 escreveu:

washingtonBCS escreveu:

Muito obrigado por responder!
Vou melhorar! Sobre as chamadas system eu não sei como fazer sem, acho que não existe comando nativo para limpar a tela.


O C e o C++ são intencionalmente definidas para um computador genérico, que não necessariamente possui um dispositivo específico, tal como a tela. Desse modo, realmente não existe um comando para limpá-la. E as bibliotecas padronizadas das duas linguagens seguem mais ou menos na mesma linha, mesmo quando falam em entidades como arquivos ou em invocar o sistema (este último é o caso de system()), fazem-no sem se remeter a dispositivos específicos (tais como disco, fita ou rede, por exemplo) ou detalhes de implementação (tais como limitações sobre os nomes de arquivos, como eles dispostos em disco, ou quais são os comandos externos que podem ser invocados e como isso se fará).

E, de fato, quando você aborda computadores específicos, como os nossos PCs, mesmo um tipo específico de dispositivo pode ser tratado de modo distinto por diferentes sistemas. Você e eu temos na nossa frente uma tela, mas você, com Windows, procede de um jeito diferente para mandá-lo limpar a tela do que eu tenho de proceder ao usar Linux. E não apenas o comando passado à função system() é diferente (no Windows, é CLS, no Linux, é clear), mas os passos que o comando toma internamente são diferentes.

Mas chamar comandos externos é especialmente ruim porque tal operação é geralmente lenta e insegura. Lenta porque, tanto no Windows como no Linux, ela envolve criar um processo novo, invocar um programa separado nesse processo novo para interpretar o comando (no Windows, é o CMD.EXE, no DOS, é o COMMAND.COM, no POSIX, que inclui vários UNIXes e o Linux, é o /bin/sh), nos custos da execução do comando, depois de interpretado (que podem, inclusive, implicar criar novos processos e invocar outros programas externos), e depois tratar os término da execução dos programas externos e subprocessos. E insegura porque frequentemente dependem de entidades que não estão sobre controle total do seu programa, tais como o tipo e a versão do sistema operacional, variáveis de ambiente, e a própria presença e disponibilidade dos comandos que terão de ser executados.

Se você precisa mesmo de funções particulares, que excedem aquilo que o computador genérico da linguagem nativa ou de sua biblioteca padrão é poderia fazer, é melhor, na medida do possível, trazer para dentro do seu programa o que quer que você quisesse inicialmente fazer através de um programa externo, por meio de uma invocação a system(). Fazendo isso, você eliminará alguns riscos de desempenho e de segurança mencionados acima, e poderá ficar um pouco menos dependente de condições externas.

Ao fazer isso, você pode ainda escolher entre abordagens mais particulares, que funcionem na sua máquina e em máquinas mais ou menos semelhantes à sua, ou mais genéricas, que podem funcionar em máquinas mais distintas. Por exemplo, você poderia usar funções da Win32 API para manipulação de console do Windows, que lhe permitem limpar a tela, manipular cores do texto e atributos de ambiente do console. Alternativamente, você poderia instalar e usar uma biblioteca de compatibilidade que coloca uma camada fina antes das funções nativas da Win32 API, permitindo usar funções com a mesma forma daquelas disponíveis outros sistemas operacionais, permitindo que seu programa funcione em outras plataformas. Um exemplo de biblioteca assim é a PDCurses, que é compatível com a biblioteca Curses, que é amplamente utilizada em sistemas POSIX, e outro é a ConIO/ConIO2, que é compatível com a ConIO disponível em compiladores do velho MS-DOS.

Análogos do que vai acima poderia ser feito no mundo UNIX/Linux: dá para embutir comandos de terminal no meio das strings para eles enviadas, mas também dá para subir um pouquinho de nível e mandar comandos que levem em consideração tipos de terminais diferentes (biblioteca Termcap/Terminfo). Subindo mais um pouco de nível, pode-se usar a biblioteca Curses, que oferece recursos de mais alto nível, tais como molduras, menus, painéis etc.

No que diz respeito às diferentes interfaces nativas, a Win32 API me parece de muito mais baixo nível que as APIs do POSIX (mesmo em nível de Termcap/Terminfo — veja, por exemplo, o código que está na postagem número 12 do seguinte tópico: https://www.vivaolinux.com.br/topico/C-C++/Preciso-fazer-um-programa-em-C-para-cadastra-alunos-consu...). Por esse motivo, eu entendo que você ganharia produtividade (a um custo de desempenho que me parece muito pequeno) colocando uma versão de Curses (que inclui Termcap/Terminfo) no Windows do que eventualmente tentando colocar um clone da parte de console da Win32 API no Linux. Quanto a clonar a ConIO no Linux, acho que não vale o esforço, porque a mesmo a Termcap/Terminfo é muito mais rica.


Muito obrigado! quantas palavras, parabéns mesmo por ser tão prestativo!




7. Re: Programa de médias - boa pratica [RESOLVIDO]

Washington Bernardo
washingtonBCS

(usa Arch Linux)

Enviado em 01/06/2018 - 20:54h

diegomrodrigues escreveu:

Washington,

Segue uma nova versão do ser programa de médias, sem utilizar o system().

Coloquei cores nos textos do terminal, limpei a tela, etc.

#include <iostream>
#include <conio.h>
#include <locale.h>
#include <windows.h>

using namespace std;

// Função que limpa a tela no terminal do Windows
void cls( HANDLE hConsole )
{
COORD coordScreen = { 0, 0 }; // home for the cursor
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;

if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;

if( !FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
dwConSize, coordScreen, &cCharsWritten ))
return;

if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;

if( !FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten ))
return;

SetConsoleCursorPosition( hConsole, coordScreen );
}

// Função principal do sistema
int main()
{
int RESP;
float NP1, NP2, SS, MF, MS, Ex;

do
{
setlocale(LC_ALL, "Portuguese");

// Limpando o terminal
HANDLE hStdout;
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
cls(hStdout);

// Alterando o título da janela
SetConsoleTitle("Calcular a media do aluno");

// Texto do terminal Azul e Intensificado
// Outras cores: https://docs.microsoft.com/en-us/windows/console/console-screen-buffers#_win32_font_attributes
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);

do
{
cout << "Digite a nota da NP1: ";
cin >> NP1;
if (NP1 > 10 || NP1 < 0)
cout << "Nota inválida. \n";
} while (NP1 > 10 || NP1 < 0);

do
{
cout << "Digite a nota da NP2: ";
cin >> NP2;
if (NP2 > 10 || NP2 < 0)
cout << "Nota inválida. \n";
} while (NP2 > 10 || NP2 < 0);

MS = (NP1+NP2) / 2.0;

cout << "\nSua média no semestre foi: " << MS;

if (MS >= 6.7)
{
// Texto do terminal Verde e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << "\n\nParabéns você foi aprovado. \nBOAS FERIAS! \n\n";

// Texto do terminal Azul e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "você gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
else
{
SS = ((MS - 10)*-1)-0.5;
// Texto do terminal Vermelho e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout << "\n\nVocê precisa fazer exame para ser aprovado, e tirar no mínimo " << SS << " no exame.";

// Texto do terminal Azul e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "\n\nVocê já tem a nota do exame? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;

if (RESP == 1)
{
do
{
cout << "\nDigite a nota do exame: ";
cin >> Ex;
if (Ex > 10 || Ex < 0)
cout << "\nNota inválida. \n";
} while (Ex > 10 || Ex < 0);

MF = (Ex + MS)/2;

if (MF >= 4.75)
{
cout << "\nParabéns você teve a média final de " << MF << " e foi aprovado!\nBOAS FERIAS! \n";
cout << "\nVocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
else
{
// Texto do terminal Vermelho e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout << "\nQue pena sua média final foi " << MF << " você precisa fazer novamente essa matéria!\n";

// Texto do terminal Azul e Intensificado
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
}

else
{
cout << "\nvocê gostaria de fazer uma nova simulação? \n(Sim = 1 ou Nao = 2): ";
cin >> RESP;
}
}
// Texto do terminal Branco
SetConsoleTextAttribute(hStdout, 15);

} while (RESP == 1);

getch();
return 0;
}


Abraço,
Diego M. Rodrigues



Muito obrigado por ter alterado o código, compilei e ficou muito bom o resultado! ótima ideia ir trocando as cores para aprovado e reprovado!





  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts