Exemplo de Menu
Publicado por fabio 09/02/2006
[ Hits: 15.219 ]
Exemplo de Menu
(Windows)
---------------------------
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <math.h>
#include <stdlib.h>
#include <desenhos.h>
#define UP 72
#define DOWN 80
#define ENTER 13
char cmenu[5][15]={"> CALCULAR <", "> AJUDA <", "> AUTOR <",
"> SAIR Esc<",""};
int imenu, linha, estado, tecla;
void menu()
{
clrscr();
textbackground(4);
for(linha=1;linha<=4;linha++)
{
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
}
linha=0;
textbackground(1);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
textbackground(0);
}
int main()
{
double linf, lsup, np, fr, cnt, dpf, *pf;
int menu1, menu2;
pf=&dpf;
textcolor(14);
menu();
do
{
np=0;
tecla=getch();
if(tecla==DOWN&&linha<4)
{
textbackground(4);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
linha++;
textbackground(1);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
}
if(tecla==UP&&linha>-1)
{
textbackground(4);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
linha--;
textbackground(1);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
}
if(tecla==DOWN&&linha==4)
{
textbackground(4);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
linha=0;
textbackground(1);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
}
if(tecla==UP&&linha==-1)
{
textbackground(4);
gotoxy(30,linha+7); cprintf("%s", cmenu[linha+1]);
linha=3;
textbackground(1);
gotoxy(30,linha+6); cprintf("%s", cmenu[linha]);
}
/* Fun‡äes do menu */
if(tecla==ENTER&&linha==0)
{
textbackground(0);
clrscr();
printf("Entre com o intervalo de n£meros naturais.\n");
printf("De: ");
scanf("%lf", &linf);
printf("at‚: ");
scanf("%lf", &lsup);
for(cnt=linf;cnt<=lsup;cnt++)
{
if(cnt==2||cnt==3||cnt==5||cnt==7)
{
np++;
}
if((modf(cnt/2,pf)!=0)&&(modf(cnt/3,pf)!=0)&&(cnt!=1))
{
if((modf(cnt/5,pf)!=0)&&(modf(cnt/7,pf)!=0))
{
np++;
}
}
}
printf("\nH %.1lf n£meros primos", np);
getch();
menu();
}
if(tecla==ENTER&&linha==1)
{
textbackground(0);
clrscr();
puts("Ajuda do NPRIMOS v.0.1\n");
puts("Este programa calcula a quantidade de n£meros primos existente
no");
puts("intervalo de n£meros naturais definido pelo usu rio.");
puts("Exemplo:");
puts("Selecione 'calcular', depois no campo 'De' insira o limite
inferior");
puts("do intervalo, no campo 'at‚' insira o limite superior do
intervalo.");
puts("Ser mostrado a quantidade de n£meros primos.");
getch();
menu();
}
if(tecla==ENTER&&linha==2)
{
textbackground(0);
clrscr();
waner();
puts("\nNPRIMOS v.0.1");
puts("Desenvolvido por Waner Wodson.");
puts("email: wwagsilva@terra.com.br");
getch();
menu();
}
if(tecla==ENTER&&linha==3)
{
textbackground(0);
clrscr();
gotoxy(40-strlen("NPRIMOS v.0.1")/2, 12); printf("NPRIMOS
v.0.1\n\n");
exit(0);
}
}
while(tecla!=27);
return 0;
}
Manipulando argumentos com getopt_long
Simulador do Sorteio da Mega Sena
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
archlinux resolução abaixou após atualização (18)
Conky não mostra temperaturas da CPU no notebook (7)
Estou com um problema no meu desktop do ubuntu (2)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (0)









