Me pareceu uma boa opção criar um relógio digital em java.
Sábado frio e nada mais importante pra fazer...
Na verdade comecei a criar este relógio digital
há alguns dias na minha cabeça, juntando as lógicas
suficientes principalmente para as entradas de dados.
Como seria desagradável receber um caractere na entrada
e ver o programa ser finalizado só por isto,
ou se na entrada for inserido um número que não corresponda
o que se pede no momento, que terrível.
Então abri meu eclipse por aqui e comecei a programar,
que bela IDE, quantas sugestões certeiras,
quanta ajuda para quem programa em qualquer nível.
Pra ser sincero o código não é complicado, só se exige
bons conhecimentos em lógica de programação
e um bom nível em estruturas de dados, coisas que tiro de letra
fácil, pelos mais de 4 anos programando em C.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa
Sábado frio e nada mais importante pra fazer...
Na verdade comecei a criar este relógio digital
há alguns dias na minha cabeça, juntando as lógicas
suficientes principalmente para as entradas de dados.
Como seria desagradável receber um caractere na entrada
e ver o programa ser finalizado só por isto,
ou se na entrada for inserido um número que não corresponda
o que se pede no momento, que terrível.
Então abri meu eclipse por aqui e comecei a programar,
que bela IDE, quantas sugestões certeiras,
quanta ajuda para quem programa em qualquer nível.
Pra ser sincero o código não é complicado, só se exige
bons conhecimentos em lógica de programação
e um bom nível em estruturas de dados, coisas que tiro de letra
fácil, pelos mais de 4 anos programando em C.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa
import java.awt.Toolkit;
import java.util.Scanner;
public class PROJETO {
public static void Inform ( ) {
J jht = new J ( );
//
//////////////////////////////////////////////////////////////////
// Parâmetros da função printfx
// Coord x, Coord y, String, cor de frente,
cor de fundo,
// Comprimento, Tempo, frequência, duração.
jht.printfx ( 22, 18, "Por: ", 12, 15, 5, 0, 0, 0 );
jht.printfx ( 27, 18, "Samuel
Lima", 9, 15, 11, 0, 0, 0 );
jht.printfx ( 22, 19, "sa_sp10@hotmail.com", 0, 15, 20, 0, 0, 0 );
jht.printfx ( 33, 22, "MUITO
OBRIGADO", 12, 15, 15, 0, 0, 0 );
}
/////////////////////////////////////////////////////////////////////////
// Esta função não permite a entrada de
caracteres
public static int relogio ( char c ) {
int i;
for ( i = 0; i < ( c ); i++ ) {
if ( c < '0' || c > '9' )
return 0;
}
return 1;
}
/////////////////////////////////////////////////////////////////////////
static String str_1;
static String str_2;
static String str_3;
static int hora, min, seg, hr = 0, mn = 0, sg = 0;
/////////////////////////////////////////////////////////////////////////
public static boolean acerta_hora ( ) {
if ( hora > 23 ) {
return true;
}
return false;
}
public static boolean acerta_min ( ) {
if ( min > 59 ) {
return true;
}
return false;
}
public static boolean acerta_seg ( ) {
if ( seg > 59 ) {
return true;
}
return false;
}
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) throws Exception {
J jht = new J ( );
jht.Moldura ( 1, 24, 2, 78, 15 );
//Este laço repetidor
força a repetição
//em caso de erros nas entradas de dados
do{
jht.cls ( );
jht.poscolor ( 20, 2, 12, 15 );
System.out.println ( "RELÓGIO
DIGITAL EM JAVA" );
///////////////////////////////////////////////
jht.poscolor ( 20, 4, 9, 15 );
System.out.print ( "Hora atual
=> " );
jht.textcolor ( 12 );
Scanner hms = new Scanner ( System.in );
str_1 = hms.nextLine ( );
if ( relogio ( str_1.charAt ( 0 ) ) == 0 ) {
Toolkit.getDefaultToolkit ( ).beep ( );
//Apaga o caractere
digitado
jht.Apaga ( 4, 5, 34, 40, 15 );
continue;
}
//Conversão de String para inteiro
hora = Integer.parseInt ( str_1 );
if ( acerta_hora ( ) ) {
Toolkit.getDefaultToolkit ( ).beep ( );
//Apaga o número inválido
digitado
jht.Apaga ( 4, 5, 34, 40, 15 );
continue;
}
///////////////////////////////////////////////
jht.poscolor ( 20, 5, 9, 15 );
System.out.print ( "Minutos => " );
jht.textcolor ( 12 );
str_2 = hms.nextLine ( );
jht.textcolor ( 12 );
if ( relogio ( str_2.charAt ( 0 ) ) == 0 ) {
Toolkit.getDefaultToolkit ( ).beep ( );
continue;
}
//Conversão de String para inteiro
min = Integer.parseInt ( str_2 );
if ( acerta_min ( ) ) {;
Toolkit.getDefaultToolkit ( ).beep ( );
continue;
}
////////////////////////////////////////////////
jht.poscolor ( 20, 6, 9, 15 );
System.out.print ( "Segundos
=> " );
jht.textcolor ( 12 );
str_3 = hms.nextLine ( );
jht.textcolor ( 12 );
if ( relogio ( str_3.charAt ( 0 ) ) == 0 ) {
Toolkit.getDefaultToolkit ( ).beep ( );
continue;
}
//Conversão de String para inteiro
seg = Integer.parseInt ( str_3 );
if ( acerta_seg ( ) ) {
Toolkit.getDefaultToolkit ( ).beep ( );
continue;
}
///////////////////////////////////////////////
hr = hora;
mn = min;
sg = seg;
/*
Este
laço repetidor funciona como contador
Vai
incrementando até que atinge o número máximo
em
cada operação.
*/
while ( true ) {
jht.Sleep ( 1000 );
sg++;
if ( sg > 59 ) {
sg = 0;
mn++;
}
if ( mn > 59 ) {
mn = 0;
hr++;
}
if ( hr > 23 ) {
hr = 0;
}
jht.cls ( );
jht.poscolor ( 20, 2, 12, 15 );
System.out.println ( "RELÓGIO
DIGITAL EM JAVA" );
jht.poscolor ( 20, 4, 9, 15 );
System.out.print ( "Horas,
minutos e segundos" );
jht.poscolor ( 20, 6, 9, 15 );
System.out.printf ( "H M
S");
jht.poscolor ( 19, 8, 12, 15 );
System.out.printf ( " %d %d %d
", hr, mn, sg );
Inform ( );
}
}while ( true );
/////////////////////////////////////////////////////////////////////////
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.