|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CALCULATEUR.
Information sur la source
Description
Cet applet crée un calculateur qui fonctionne parfaitement dans une page web et avec tout browser. Je l'envoie comme document txt.
Source
- import java.util.*;
- import java.awt.*;
- import java.applet.*;
-
- /**
- * Calculadora sencilla
- */
- public class Calc extends Applet {
-
- Display display = new Display();
-
- /**
- * inicializa el applet Calc
- */
- public void init () {
-
- setLayout(new BorderLayout());
- Keypad keypad = new Keypad();
-
- add ("North", display);
- add ("Center", keypad);
- }
-
- /**
- * manipulador para las funciones de la calculadora.
- */
- public boolean action (Event ev, Object arg) {
-
- if (ev.target instanceof Button) {
-
- String label = (String)arg;
- if (label.equals("C")) {
- display.Clear ();
- return true;
- }
- else if (label.equals(".")) {
- display.Dot ();
- return true;
- }
- else if (label.equals("+")) {
- display.Plus ();
- return true;
- }
- else if (label.equals("-")) {
- display.Minus ();
- return true;
- }
- else if (label.equals("x")) {
- display.Mul ();
- return true;
- }
- else if (label.equals("/")) {
- display.Div ();
- return true;
- }
- else if (label.equals("+/-")) {
- display.Chs ();
- return true;
- }
- else if (label.equals("=")) {
- display.Equals ();
- return true;
- }
- else {
- display.Digit (label);
- return true;
- }
- }
- return false;
- }
-
-
- /**
- * Esto permite que la clase se use como applet o como aplicación independiente
- */
- public static void main (String args[]) {
-
- Frame f = new Frame ("Calculator");
- Calc calc = new Calc ();
-
- calc.init ();
-
- f.resize (210, 200);
- f.add ("Center", calc);
- f.show ();
- }
- }
-
- /* -------------------------------------------------- */
-
- /**
- * Keypad manipula la entrada de datos y la visualización de resultados
- */
- class Keypad extends Panel {
-
- /**
- * inicializa keypad, añade los botones, establece los colores, etc.
- */
- Keypad (){
-
- Button b = new Button();
- Font font = new Font ("Times", Font.BOLD, 14);
- Color functionColor = new Color (255, 255, 0);
- Color numberColor = new Color (0, 255, 255);
- Color equalsColor = new Color (0, 255, 0);
- setFont (font);
- b.setForeground (Color.black);
-
- add (b = new Button ("7"));
- b.setBackground (numberColor);
- add (b = new Button ("8"));
- b.setBackground (numberColor);
- add (b = new Button ("9"));
- b.setBackground (numberColor);
- add (b = new Button ("/"));
- b.setBackground (functionColor);
-
- add (b = new Button ("4"));
- b.setBackground (numberColor);
- add (b = new Button ("5"));
- b.setBackground (numberColor);
- add (b = new Button ("6"));
- b.setBackground (numberColor);
- add (b = new Button ("x"));
- b.setBackground (functionColor);
-
- add (b = new Button ("1"));
- b.setBackground (numberColor);
- add (b = new Button ("2"));
- b.setBackground (numberColor);
- add (b = new Button ("3"));
- b.setBackground (numberColor);
- add (b = new Button ("-"));
- b.setBackground (functionColor);
-
- add (b = new Button ("."));
- b.setBackground (functionColor);
- add (b = new Button ("0"));
- b.setBackground (numberColor);
- add (b = new Button ("+/-"));
- b.setBackground (functionColor);
- add (b = new Button ("+"));
- b.setBackground (functionColor);
-
- add (b = new Button ("C"));
- b.setBackground (functionColor);
- add (new Label (""));
- add (new Label (""));
- add (b = new Button ("="));
- b.setBackground (equalsColor);
-
- setLayout (new GridLayout (5, 4, 4, 4));
- }
-
- }
-
- /* -------------------------------------------------- */
-
- /**
- * la clase Display gestiona la visualización del resultado calculado y también
- * implementa las tecla de fucnión de la calculadora
- */
- class Display extends Panel{
-
- double last = 0;
- int op = 0;
- boolean equals = false;
- int maxlen = 10;
- String s;
- Label readout = new Label("");
-
- /**
- * Inicializa display
- */
- Display () {
-
- setLayout(new BorderLayout());
- setBackground (Color.red);
- setFont (new Font ("Courier", Font.BOLD + Font.ITALIC, 30));
- readout.setAlignment(1);
- add ("Center",readout);
- repaint();
- Clear ();
- }
-
- /**
- * manipulación del pulsado de un dígito
- */
- void Digit (String digit) {
- checkEquals ();
-
- /*
- * quita los ceros precedentes
- */
- if (s.length () == 1 && s.charAt (0) == '0' && digit.charAt (0) != '.')
- s = s.substring (1);
-
- if (s.length () < maxlen)
- s = s + digit;
- showacc ();
- }
-
- /**
- * manipulación del punto decimal
- */
- void Dot () {
- checkEquals ();
-
- /*
- * ya tiene un '.'
- */
- if (s.indexOf ('.') != -1)
- return;
-
- if (s.length () < maxlen)
- s = s + ".";
- showacc ();
- }
-
- /**
- * si el usuario pulsa = sin haber pulsado antes un operador
- * (+,-,x,/), pone cero en la visualización
- */
- private void checkEquals () {
- if (equals == true) {
- equals = false;
- s = "0";
- }
- }
-
- /**
- * operador suma para uso posterior.
- */
- void Plus () {
- op = 1;
- operation ();
- }
-
- /**
- * operador resta para uso posterior.
- */
- void Minus () {
- op = 2;
- operation ();
- }
-
- /**
- * operador multiplicación para uso posterior.
- */
- void Mul () {
- op = 3;
- operation ();
- }
-
- /**
- * operador división para uso posterior.
- */
- void Div () {
- op = 4;
- operation ();
- }
-
- /**
- * Interpreta el valor de la visualización como double y lo almacena
- * para uso posterior
- */
- private void operation () {
- if (s.length () == 0) return;
-
- Double xyz = Double.valueOf (s);
- last = xyz.doubleValue ();
-
- equals = false;
- s = "0";
- }
- /**
- * invalida el valor actual y revisualiza.
- */
- void Chs () {
- if (s.length () == 0) return;
-
- if (s.charAt (0) == '-') s = s.substring (1);
- else s = "-" + s;
-
- showacc ();
- }
-
- /**
- * termina el último cálculo y visualiza el resultado
- */
- void Equals () {
- double acc;
-
- if (s.length () == 0) return;
- Double xyz = Double.valueOf (s);
- switch (op) {
- case 1:
- acc = last + xyz.doubleValue ();
- break;
-
- case 2:
- acc = last - xyz.doubleValue ();
- break;
-
- case 3:
- acc = last * xyz.doubleValue ();
- break;
-
- case 4:
- acc = last / xyz.doubleValue ();
- break;
-
- default:
- acc = 0;
- break;
- }
-
- s = new Double (acc).toString ();
- showacc ();
- equals = true;
- last = 0;
- op = 0;
- }
-
- /**
- * limpia la visualización y el último valor interno
- */
- void Clear () {
- last = 0;
- op = 0;
- s = "0";
- equals = false;
- showacc ();
- }
-
- /**
- * pide que se repinte el resultado
- */
- private void showacc () {
- readout.setText(s);
- repaint ();
- }
- }
-
import java.util.*;
import java.awt.*;
import java.applet.*;
/**
* Calculadora sencilla
*/
public class Calc extends Applet {
Display display = new Display();
/**
* inicializa el applet Calc
*/
public void init () {
setLayout(new BorderLayout());
Keypad keypad = new Keypad();
add ("North", display);
add ("Center", keypad);
}
/**
* manipulador para las funciones de la calculadora.
*/
public boolean action (Event ev, Object arg) {
if (ev.target instanceof Button) {
String label = (String)arg;
if (label.equals("C")) {
display.Clear ();
return true;
}
else if (label.equals(".")) {
display.Dot ();
return true;
}
else if (label.equals("+")) {
display.Plus ();
return true;
}
else if (label.equals("-")) {
display.Minus ();
return true;
}
else if (label.equals("x")) {
display.Mul ();
return true;
}
else if (label.equals("/")) {
display.Div ();
return true;
}
else if (label.equals("+/-")) {
display.Chs ();
return true;
}
else if (label.equals("=")) {
display.Equals ();
return true;
}
else {
display.Digit (label);
return true;
}
}
return false;
}
/**
* Esto permite que la clase se use como applet o como aplicación independiente
*/
public static void main (String args[]) {
Frame f = new Frame ("Calculator");
Calc calc = new Calc ();
calc.init ();
f.resize (210, 200);
f.add ("Center", calc);
f.show ();
}
}
/* -------------------------------------------------- */
/**
* Keypad manipula la entrada de datos y la visualización de resultados
*/
class Keypad extends Panel {
/**
* inicializa keypad, añade los botones, establece los colores, etc.
*/
Keypad (){
Button b = new Button();
Font font = new Font ("Times", Font.BOLD, 14);
Color functionColor = new Color (255, 255, 0);
Color numberColor = new Color (0, 255, 255);
Color equalsColor = new Color (0, 255, 0);
setFont (font);
b.setForeground (Color.black);
add (b = new Button ("7"));
b.setBackground (numberColor);
add (b = new Button ("8"));
b.setBackground (numberColor);
add (b = new Button ("9"));
b.setBackground (numberColor);
add (b = new Button ("/"));
b.setBackground (functionColor);
add (b = new Button ("4"));
b.setBackground (numberColor);
add (b = new Button ("5"));
b.setBackground (numberColor);
add (b = new Button ("6"));
b.setBackground (numberColor);
add (b = new Button ("x"));
b.setBackground (functionColor);
add (b = new Button ("1"));
b.setBackground (numberColor);
add (b = new Button ("2"));
b.setBackground (numberColor);
add (b = new Button ("3"));
b.setBackground (numberColor);
add (b = new Button ("-"));
b.setBackground (functionColor);
add (b = new Button ("."));
b.setBackground (functionColor);
add (b = new Button ("0"));
b.setBackground (numberColor);
add (b = new Button ("+/-"));
b.setBackground (functionColor);
add (b = new Button ("+"));
b.setBackground (functionColor);
add (b = new Button ("C"));
b.setBackground (functionColor);
add (new Label (""));
add (new Label (""));
add (b = new Button ("="));
b.setBackground (equalsColor);
setLayout (new GridLayout (5, 4, 4, 4));
}
}
/* -------------------------------------------------- */
/**
* la clase Display gestiona la visualización del resultado calculado y también
* implementa las tecla de fucnión de la calculadora
*/
class Display extends Panel{
double last = 0;
int op = 0;
boolean equals = false;
int maxlen = 10;
String s;
Label readout = new Label("");
/**
* Inicializa display
*/
Display () {
setLayout(new BorderLayout());
setBackground (Color.red);
setFont (new Font ("Courier", Font.BOLD + Font.ITALIC, 30));
readout.setAlignment(1);
add ("Center",readout);
repaint();
Clear ();
}
/**
* manipulación del pulsado de un dígito
*/
void Digit (String digit) {
checkEquals ();
/*
* quita los ceros precedentes
*/
if (s.length () == 1 && s.charAt (0) == '0' && digit.charAt (0) != '.')
s = s.substring (1);
if (s.length () < maxlen)
s = s + digit;
showacc ();
}
/**
* manipulación del punto decimal
*/
void Dot () {
checkEquals ();
/*
* ya tiene un '.'
*/
if (s.indexOf ('.') != -1)
return;
if (s.length () < maxlen)
s = s + ".";
showacc ();
}
/**
* si el usuario pulsa = sin haber pulsado antes un operador
* (+,-,x,/), pone cero en la visualización
*/
private void checkEquals () {
if (equals == true) {
equals = false;
s = "0";
}
}
/**
* operador suma para uso posterior.
*/
void Plus () {
op = 1;
operation ();
}
/**
* operador resta para uso posterior.
*/
void Minus () {
op = 2;
operation ();
}
/**
* operador multiplicación para uso posterior.
*/
void Mul () {
op = 3;
operation ();
}
/**
* operador división para uso posterior.
*/
void Div () {
op = 4;
operation ();
}
/**
* Interpreta el valor de la visualización como double y lo almacena
* para uso posterior
*/
private void operation () {
if (s.length () == 0) return;
Double xyz = Double.valueOf (s);
last = xyz.doubleValue ();
equals = false;
s = "0";
}
/**
* invalida el valor actual y revisualiza.
*/
void Chs () {
if (s.length () == 0) return;
if (s.charAt (0) == '-') s = s.substring (1);
else s = "-" + s;
showacc ();
}
/**
* termina el último cálculo y visualiza el resultado
*/
void Equals () {
double acc;
if (s.length () == 0) return;
Double xyz = Double.valueOf (s);
switch (op) {
case 1:
acc = last + xyz.doubleValue ();
break;
case 2:
acc = last - xyz.doubleValue ();
break;
case 3:
acc = last * xyz.doubleValue ();
break;
case 4:
acc = last / xyz.doubleValue ();
break;
default:
acc = 0;
break;
}
s = new Double (acc).toString ();
showacc ();
equals = true;
last = 0;
op = 0;
}
/**
* limpia la visualización y el último valor interno
*/
void Clear () {
last = 0;
op = 0;
s = "0";
equals = false;
showacc ();
}
/**
* pide que se repinte el resultado
*/
private void showacc () {
readout.setText(s);
repaint ();
}
}
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
calcul des jours feriés [ par michel ]
Quelqu'un peut-il me dire si le calcul des jours feriés de l'année X existe en javascript ?
Calcul de DATE avec JavaScript [ par Dzeus ]
Salut, G besoin d'ecrire une fonction qui renvoie le nombre de jour exact écoulé entre deux dates ; exemple..20/02/2001 et 5/03/2001...ATTENTION : Il
Calcul Arithmétique en JS [ par webdev ]
Comment arrondir les valeurs numériques en JS.Deux valeurs sont récupérées dans 2 textbox, converties avec 'Eval' et on souhaite en calculer le rappor
Calcul dans u formulaire [ par grakel ]
Salut a tous, J'ai un piti probleme de javascript. Je souhaites faire un calcul dans un formulaire. schema type J'ai des champs texte puis un input="b
jeu de nim [ par matcheu ]
salu est ce que quelqun sait programmé le jeu de nim en perl
calcul d'un nombre de jours entre deux dates [ par borisV ]
Bonjour, je cherche à calculer (et afficher...) un nombre de jours en tapant une date d'arrivée et une date de départ.En fait, il faudrait peut-être s
Boutons radios? [ par dufour137 ]
bonjour tout le monde, j'aimerais svoir comment faire pour tester une valeure dans une page htm sur un bouton radio pour ouvrir une page internet selo
calcul score [ par jchv ]
Bonjour à tous . Voilà mon problème : Est-il possible de créer une page (genre formulaire peut-être ?) ou on pourrait choisir pour chaque question (30
un javascript qui calcul le nombre de jour entre 2 date? [ par jetlee79 ]
Bonjour,Je recherche désespérèment un javascript qui me dise le nombre de jours qu'il y a entre 2 date.Car j'ai une page html ou je saisie dans TXtDat
PRoblème en javascript, jeu de pendu [ par Chihiro ]
Voilà, j'ai un gros problème dans mon script qui ne marche pas, parce que je suis vraiment nulle en programmation... Est ce que quelqu'un pourrait y j
|
Téléchargements
Logiciels à télécharger sur le même thème :
|