0% encontró este documento útil (0 votos)
3 vistas37 páginas

Calculadora Científica en Java: Proyecto IT

Este documento proporciona una visión general de un proyecto de calculadora científica desarrollado como parte del cumplimiento de un título de MSc en tecnología de la información. Incluye una sección de agradecimientos que agradece a quienes brindaron apoyo y orientación. Luego se discute la descripción general del proyecto, incluyendo el nombre, tipo y software utilizado. También se esbozan los requisitos y especificaciones del sistema, las interfaces externas y los flujos de datos, un diagrama de flujo de datos de alto nivel y un diccionario de datos, el plan de pruebas y una introducción al proyecto. También se incluyen el código fuente, los requisitos de hardware/software y capturas de pantalla del proyecto.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas37 páginas

Calculadora Científica en Java: Proyecto IT

Este documento proporciona una visión general de un proyecto de calculadora científica desarrollado como parte del cumplimiento de un título de MSc en tecnología de la información. Incluye una sección de agradecimientos que agradece a quienes brindaron apoyo y orientación. Luego se discute la descripción general del proyecto, incluyendo el nombre, tipo y software utilizado. También se esbozan los requisitos y especificaciones del sistema, las interfaces externas y los flujos de datos, un diagrama de flujo de datos de alto nivel y un diccionario de datos, el plan de pruebas y una introducción al proyecto. También se incluyen el código fuente, los requisitos de hardware/software y capturas de pantalla del proyecto.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CALCULADORA CIENTÍFICA

Informe del Proyecto


Submitted in Partial Fulfillment of the
Requisitos para el Grado de

Msc(InformationTechnology)

a la

Universidad de Panjab

Colegio Sanatan Dharam Goswami Sec-32/C, Chandigarh

Enviado a: Submitted By:


Prof. Paramjit Singh Krishma Garg
Komal Kashyap
Roll No.:
Roll No.:
MSc(IT)-1stsem
RECONOCIMIENTO

He puesto esfuerzo en este proyecto. Sin embargo, no habría sido posible sin el
amable apoyo y ayuda de muchas personas y organizaciones. Me gustaría extender mi
sinceros agradecimientos a todos ellos.

Estoy muy agradecido a (GOSWAMI GANESH DUTTA SANATAM DHARAM


COLEGIO) por su orientación y supervisión constante, así como por proporcionar
información necesaria sobre el proyecto y también por su apoyo en completar el
proyecto.

Me gustaría expresar mi gratitud hacia mis padres y nuestro profesor Paramjiit Singh
por su amable cooperación y aliento que me ayudaron en la finalización de esto
proyecto.

Me gustaría expresar mi especial agradecimiento y gracias a las personas de la industria por brindarme
tal atención y tiempo.

Mis agradecimientos y apreciaciones también van a mi colega en el desarrollo del proyecto y


personas que me han ayudado voluntariamente con sus habilidades.
VISIÓN GENERAL DEL PROYECTO

NOMBRE DEL PROYECTO CALCULADORA CIENTÍFICA

PROJECT TYPE PROYECTO DE DESARROLLO

SOFTWARE JDK 6 Actualización 17


ESPECIFICACIONES DE REQUISITOS DEL SISTEMA:

Se produce en la culminación de la tarea de análisis. La función y el rendimiento


asignados al software como parte de la ingeniería de sistemas se refinan al establecer un
descripción completa de la información, una indicación de los requisitos de rendimiento y diseño
restricciones, criterios de validación apropiados y otros datos pertinentes a los requisitos.

Desarrollo/ Operación/ Mantenimiento de Entornos:


Los entornos exitosos para la ingeniería de software se basan en un entorno
arquitectura que abarca el software de sistema apropiado. Además, el entorno
la arquitectura debe considerar los patrones de trabajo humano que se aplican durante el software
proceso de ingeniería.

INTERFAZ EXTERNA Y FLUJOS DE DATOS


Interfaz Externa: El diseño de la interfaz externa comienza con una evaluación de cada externa
entidad representada en los DFD del modelo de análisis. Los datos y el control
se determinan los requisitos de la entidad externa y se establecen las interfaces externas apropiadas
diseñado. En este proyecto de GESTIÓN DE OFICINAS necesitamos cosas especiales como
verificación de firmas digitales como interfaz externa.

La interfaz debe estar acoplada con algoritmos de validación de datos y manejo de errores con
en un módulo. Dado que los efectos secundarios se propagan a través de las interfaces del programa, es esencial que
verifique todos los datos fluyendo de un módulo a otro.

HIGH LEVEL DFD AND DATA DICITIONARY:


Data Dictionary :
El diccionario de datos es el repositorio que contiene descripciones de todos los objetos de datos consumidos.
o producido por el software. Se encuentra en el núcleo del modelo de análisis. O en otras palabras,
es metadatos (datos sobre datos).

Diagramas DFD detallados y diagramas de estructura:

DFD significa diagrama de flujo de datos. DFD es una técnica gráfica que representa información.
y las transformaciones que se aplican a medida que los datos se mueven de la entrada a la salida. El DFD también
conocido como Gráfico de Burbuja. El diagrama de flujo de datos puede usarse para representar un sistema o
software en cualquier nivel de abstracción. De hecho, DFD puede ser dividido en un nivel que
representa un flujo de información creciente y detalles funcionales. Por lo tanto, el DFD
proporciona un mecanismo para la modelización funcional así como para la modelización de flujos. Al hacerlo,
satisface el segundo principio de análisis operativo.

PLAN DE PRUEBA

La función básica de la prueba es detectar los errores en el software después de la codificación en el


programas de software fase disponibles que pueden ejecutarse con fines de prueba.
Esto implica que las pruebas no solo deben descubrir errores introducidos durante la codificación, sino también
errores introducidos durante la última fase. Así, el objetivo de las pruebas es descubrir requisitos,
errores de codificación y diseño en el programa. En consecuencia, se requieren diferentes niveles de prueba.
empleado. Hay muchas etapas en las que se realizan pruebas.

•Functional Testing:
Durante la prueba funcional, el software del módulo se trata como una caja negra,
and the test cases are decided on basis of the specifications of the system
o módulo. Esta forma de prueba se llama "Pruebas de Caja Negra". El enfoque
está en probar los comportamientos del sistema.

Pruebas de rendimiento:
El software que proporciona funciones requeridas pero no se ajusta a
el requisito de rendimiento es inaceptable. Las pruebas de rendimiento están diseñadas
sobre el rendimiento en tiempo de ejecución de software en el contexto de un
sistema integrado. Las pruebas de rendimiento ocurren en todos los pasos en el
proceso de prueba. Incluso a nivel de unidad, el rendimiento de un módulo puede
ser evaluado como una prueba de caja blanca realizada. Sin embargo, no es hasta que todo el sistema
los elementos están completamente integrados para que el verdadero rendimiento del sistema pueda
se determinará. Las pruebas de rendimiento a menudo se combinan con pruebas de estrés y
a menudo requieren tanto hardware como software.
INTRODUCCIÓN AL PROYECTO

Secuencia para crear una interfaz gráfica de usuario para la calculadora

1. Crear un marco de calculadora (tamaño 200 por 270)


2. Añadir barra de menú a ello.

3. Agregar MenúItem (tipo CheckBox Básico y Ampliado)


4. Agregar TextField (para mostrar el resultado de los cálculos)
5. Agregar casilla de verificación para radianes y grados

6. Agregar botón al marco (20 para básico y otros 8 para extendido)


7. Los siguientes métodos de Acción/Ítem que se incluirán
(a) actionPerformed(ActionEvent ae){ todas las acciones realizadas
en la calculadora se notará por este método como presionar
botón agregar (+) etc.
(b) itemStateChanged(ItemEvent ie){ this will checks on the menubar
Por ejemplo, si haces clic en el elemento extendido del menú Ver, encontrarás

ver la vista extendida de la calculadora}


8. Los otros métodos/clases a utilizar
(i) hacerCalculadora(){ esto construirá la GUI para la calculadora }
(ii) resetButtons (num) { esto reiniciará los botones, es decir, cambiará el
propiedad a falso}
(iii)reciproco(num){ si num es cero entonces mensaje de error else num =1/num}
(iv) cambiarSigno(num){ cambia el signo del num}
(v) factorial(num){ si num es menor que 1 mensaje de error else hacer el factorial}
(vi) clase MessageBox extiende Dialog e implementa ActionListener {
esta clase se llama desde otros métodos para mostrar el error
[Link] un constructor}
EL LENGUAJE DE PROGRAMACIÓN JAVA
El lenguaje de programación Java es un lenguaje de alto nivel que se puede caracterizar por todo
de las siguientes palabras de moda:

Simple
•Orientado a objetos
Robusto
Seguro
•Neutral en arquitectura
Portátil
Alto rendimiento
•Multihilo
Dinámico
Con la mayoría de los lenguajes de programación, o bien compilas o interpretas un programa para que tú
puedes ejecutarlo en tu computadora. El lenguaje de programación Java es inusual en que un
el programa se compila e interpreta. Con el compilador, primero traduces un
programa en un lenguaje intermedio llamado bytecodes de Java—la independencia de la plataforma
códigos interpretados por el intérprete en la plataforma Java. El intérprete analiza y ejecuta
cada instrucción de bytecode de Java en la computadora. La compilación ocurre solo una vez;
la interpretación ocurre cada vez que se ejecuta el programa. La siguiente figura ilustra
cómo funciona esto.
Puedes pensar en los bytecodes de Java como las instrucciones de código máquina para la máquina virtual de Java.
Máquina (Java VM). Cada intérprete de Java, ya sea una herramienta de desarrollo o una Web
un navegador que puede ejecutar applets, es una implementación de la máquina virtual de Java.

Los bytecodes de Java ayudan a hacer posible el lema 'escribe una vez, ejecuta en cualquier lugar'. Puedes compilar tu

programar en bytecodes en cualquier plataforma que tenga un compilador de Java. Los bytecodes pueden luego
se puede ejecutar en cualquier implementación de la JVM de Java. Eso significa que mientras una computadora tenga
una JVM, el mismo programa escrito en el lenguaje de programación Java puede ejecutarse en
Windows 2000, una estación de trabajo Solaris, o en un iMac.

LA PLATAFORMA JAVA
Una plataforma es el entorno de hardware o software en el que se ejecuta un programa. Hemos
ya mencioné algunas de las plataformas más populares como Windows 2000, Linux,
Solaris y MacOS. La mayoría de las plataformas se pueden describir como una combinación del sistema operativo
sistema y hardware. La plataforma Java se diferencia de la mayoría de las otras plataformas en que es un
plataforma solo de software que funciona sobre otras plataformas basadas en hardware.

La plataforma Java tiene dos componentes:


La Máquina Virtual de Java (Java VM)
•La Interfaz de Programación de Aplicaciones de Java (Java API)

La API de Java es una gran colección de componentes de software listos para usar que proporcionan muchos
capacidades útiles, como los widgets de la interfaz gráfica de usuario (GUI). La API de Java es
agrupados en bibliotecas de clases e interfaces relacionadas; estas bibliotecas se conocen como
paquetes.
El código nativo es el código que, después de compilarlo, se ejecuta en un entorno específico.
plataforma de hardware. Como un entorno independiente de la plataforma, la plataforma Java puede ser un
un poco más lento que el código nativo. Sin embargo, compiladores inteligentes, intérpretes bien ajustados y simple-
Los compiladores de bytecode en tiempo real pueden ofrecer un rendimiento cercano al del código nativo sin
portabilidad amenazante. El compilador de Java te permite encadenar referencias a clases y
métodos de instancia y variables juntos, resultando en construcciones como la que aparece
en el programa de muestra.
REQUISITOS DE HARDWARE Y SOFTWARE

Kit de desarrollo de Java (jdk 6 actualización 17)

•Windows-XP/ 2000 o Superior


•Un adaptador gráfico VGA o SVGA
•Un mouse y teclado de puntero serie
•20 G.B. Disco duro o más
256 MB de RAM o más
•1.44 Floppy/ Unidad de CD-ROM
Monitor de 15 pulgadas

Impresora
REPRESENTACIÓN DEL PROYECTO
CÓDIGO FUENTE

importar [Link].*;

importar [Link].*;

class CalcFrame extiende Frame {

CalcFrame( String str) {

super(str);

addWindowListener(new WindowAdapter() {

public void ventanaCerrando (WindowEvent we) {

[Link](0);

});

public class Calculadora implements ActionListener, ItemListener {

CalcFrame fr;

MenuBar mb;
Vista del menú, fuente, acerca de;

MenuItem bold, regular, author;


Elemento de menú de casilla de verificación básico, científico;
GrupoDeCasillas cbg;
Casilla de verificación radianes, grados;

campoDeTexto display;

Botón key[] = new Botón[20];

Button clearAll, clearEntry, round;

Button scientificKey[] = new Button[10];

booleano addButtonPressed, subtractButtonPressed, multiplyButtonPressed;

boolean divideButtonPressed, decimalPointPressed, powerButtonPressed;

boolean roundButtonPressed = false;

double initialNumber;

doble currentNumber = 0;

int lugaresDecimales = 0;

public static void main (String args[]) {

Calculadora calc = nueva Calculadora();

[Link]();

public void hacerCalculadora() {

final int BWIDTH = 25;

final int BHEIGHT = 25;

int contar = 1;

// crear el marco para la calculadora

fr = new CalcFrame("Calculadora Básica");

[Link](200,270);

[Link]([Link]);

mb = new MenuBar();
vista = nuevo Menú("Vista");

fuente = new Menú ("Fuente");

about = new Menu("About");

basic = new CheckboxMenuItem("Basic",true);

[Link](this);

scientific = new CheckboxMenuItem("Scientific");

[Link](this);

bold = new MenuItem("Arial Bold");

[Link](this);

regular = new MenuItem("Arial Regular");

[Link](this);

author = new MenuItem("Authors");

[Link](this);

[Link](básico);

[Link](sciéntifico);

[Link](negrita);

[Link](regular);

[Link].añadir(autor);

[Link](vista);

[Link](fuente);

[Link](acerca de);

[Link](mb);

[Link](null);

para (int fila = 0; fila < 3; ++fila) {

para (int col = 0; col < 3; ++col) {


key[count] = new Button([Link](count));

key[count].addActionListener(this);

key[count].setBounds(30*(col + 1), 30*(row + 4), BWIDTH, BHEIGHT);

key[count].setBackground([Link]);

[Link](clave[count++]);

key[0] = new Button("0");

key[0].addActionListener(this);

key[0].setBounds(30,210,BWIDTH,BHEIGHT);

key[0].setBackground([Link]);

[Link](clave[0]);

key[10] = new Button(".");

key[10].addActionListener(this);

key[10].setBounds(60,210,BWIDTH,BHEIGHT);

key[10].setBackground([Link]);

[Link](key[10]);

key[11] = new Button("=");

key[11].addActionListener(this);

key[11].setBounds(90,210,BWIDTH,BHEIGHT);

key[11].setBackground([Link]);

[Link](clave[11]);

key[12] = new Button("*");

key[12].addActionListener(this);

key[12].setBounds(120,120,BWIDTH,BHEIGHT);
key[12].setBackground([Link]);

[Link](clave[12]);

key[13] = new Button("/");

key[13].addActionListener(this);

key[13].setBounds(120,150,BWIDTH,BHEIGHT);

key[13].setBackground([Link]);

[Link](clave[13]);

key[14] = new Button("+");

key[14].addActionListener(this);

key[14].setBounds(120,180,BWIDTH,BHEIGHT);

key[14].setBackground([Link]);

[Link](clave[14]);

key[15] = new Button("-");

key[15].addActionListener(this);

key[15].setBounds(120,210,BWIDTH,BHEIGHT);

key[15].setBackground([Link]);

[Link](clave[15]);

key[16] = new Button("1/x");

key[16].addActionListener(this);

key[16].setBounds(150,120,BWIDTH,BHEIGHT);

key[16].setBackground([Link]);

[Link](clave[16]);

key[17] = new Button("x^n");

key[17].addActionListener(this);

key[17].setBounds(150,150,BWIDTH,BHEIGHT);
key[17].setBackground([Link]);

[Link](clave[17]);

key[18] = new Button("+/-");

key[18].addActionListener(this);

key[18].setBounds(150,180,BWIDTH,BHEIGHT);

key[18].setBackground([Link]);

[Link](clave[18]);

key[19] = new Button("x!");

key[19].addActionListener(this);

key[19].setBounds(150,210,BWIDTH,BHEIGHT);

key[19].setBackground([Link]);

[Link](Clave[19]);

clearAll = new Button("CA");

[Link](this);

[Link](30, 240, BWIDTH+20, BHEIGHT);

[Link]([Link]);

[Link](borrarTodo);

clearEntry = new Button("CE");

[Link](this);

[Link](80, 240, BWIDTH+20, BHEIGHT);

[Link]([Link]);

[Link](clearEntry);

round = new Button("Redondear");

[Link](this);

[Link](130, 240, BWIDTH+20, BHEIGHT);


[Link]([Link]);

[Link](redondear);

display = new TextField("0");

[Link](30,90,150,20);

[Link]([Link]);

scientificKey[0] = new Button("Sin");

scientificKey[0].addActionListener(this);

scientificKey[0].setBounds(180, 120, BWIDTH + 10, BHEIGHT);

scientificKey[0].setVisible(false);

scientificKey[0].setBackground([Link]);

[Link](claveCientífica[0]);

scientificKey[1] = new Button("Cos");

scientificKey[1].addActionListener(this);

scientificKey[1].setBounds(180, 150, BWIDTH + 10, BHEIGHT);

scientificKey[1].setBackground([Link]);

scientificKey[1].setVisible(false);

[Link](claveCientífica[1]);

scientificKey[2] = new Button("Tan");

scientificKey[2].addActionListener(this);

scientificKey[2].setBounds(180, 180, BWIDTH + 10, BHEIGHT);

scientificKey[2].setBackground([Link]);

scientificKey[2].setVisible(false);

[Link](scientificKey[2]);

scientificKey[3] = new Button("Pi");

scientificKey[3].addActionListener(this);
scientificKey[3].setBounds(180, 210, BWIDTH + 10, BHEIGHT);

scientificKey[3].setBackground([Link]);

scientificKey[3].setVisible(false);

[Link](scientificKey[3]);

scientificKey[4] = new Button("aSin");

scientificKey[4].addActionListener(this);

scientificKey[4].setBounds(220, 120, BWIDTH + 10, BHEIGHT);

scientificKey[4].setBackground([Link]);

scientificKey[4].setVisible(false);

[Link](claveCientífica[4]);

scientificKey[5] = new Button("aCos");

scientificKey[5].addActionListener(this);

scientificKey[5].setBounds(220, 150, BWIDTH + 10, BHEIGHT);

scientificKey[5].setBackground([Link]);

scientificKey[5].setVisible(false);

[Link](claveCientífica[5]);

scientificKey[6] = new Button("aTan");

scientificKey[6].addActionListener(this);

scientificKey[6].setBounds(220, 180, BWIDTH + 10, BHEIGHT);

scientificKey[6].setBackground([Link]);

scientificKey[6].setVisible(false);

[Link](claveCientífica[6]);

scientificKey[7] = new Button("E");

scientificKey[7].addActionListener(this);

scientificKey[7].setBounds(220, 210, BWIDTH + 10, BHEIGHT);


scientificKey[7].setBackground([Link]);

scientificKey[7].setVisible(false);

[Link](claveCientífica[7]);

scientificKey[8] = new Button("todeg");

scientificKey[8].addActionListener(this);

scientificKey[8].setBounds(180, 240, BWIDTH + 10, BHEIGHT);

scientificKey[8].setBackground([Link]);

scientificKey[8].setVisible(false);

[Link](claveCientífica[8]);

scientificKey[9] = new Button("torad");

scientificKey[9].addActionListener(this);

scientificKey[9].setBounds(220, 240, BWIDTH + 10, BHEIGHT);

scientificKey[9].setBackground([Link]);

scientificKey[9].setVisible(false);

[Link](scientificKey[9]);

cbg = new CheckboxGroup();

degrees = new Checkbox("Degrees", cbg, true);

radians = new Checkbox("Radians", cbg, false);

[Link](this);

[Link](this);

[Link](185, 75, 3 * BWIDTH, BHEIGHT);

[Link](185, 95, 3 * BWIDTH, BHEIGHT);

[Link](false);

[Link](false);

[Link](grados);
[Link](radianes);

[Link](display);

[Link](true);

public void actionPerformed(ActionEvent ae) {

String buttonText = [Link]();

double displayNumber = [Link]([Link]()).doubleValue();

if(([Link](0) >= '0') & ([Link](0) <= '9')) {

si(puntoDecimalPresionado) {

para (int i=1;i <=decimalPlaces; ++i)

currentNumber *= 10;

currentNumber +=(int)[Link](0)- (int)'0';

para (int i=1;i <=decimales; ++i) {

currentNumber /=10;

++lugaresDecimal;

[Link]([Link](currentNumber));

else if (roundButtonPressed) {

int decPlaces = (int)[Link](0) - (int)'0';

por (int i=0; i< decPlaces; ++i)

displayNumber *= 10;

displayNumber = [Link](displayNumber);

por (int i = 0; i < decPlaces; ++i) {

displayNumber /=10;
}

[Link]([Link](displayNumber));

roundButtonPressed = false;

else {

currentNumber = currentNumber * 10 + (int)[Link](0)-(int)'0';

[Link]([Link]((int)currentNumber));

if(buttonText == "+") {

addButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

si (buttonText == "-") {

subtractButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "/") {

divideButtonPressed = true;

númeroInicial = númeroMostrar;

currentNumber = 0;
decimalPointPressed = false;

si (botonTexto == "*") {

multiplyButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "1/x") {

[Link](reciproco(displayNumber));

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "+/-") {

[Link](cambiarSigno(númeroDisplay));

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "x!") {

[Link](factorial(displayNumber));

currentNumber = 0;

decimalPointPressed = false;

si (buttonText == "x^n") {
powerButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

si (buttonText == "Sin") {

si ([Link]())

[Link]([Link]([Link]([Link] * displayNumber/180)));

else {

[Link]([Link]([Link](displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "Cos") {

si ([Link]())

[Link]([Link]([Link]([Link] * displayNumber/180)));

else{

[Link]([Link]([Link](displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

si (textoDelBotón == "Tan") {

si ([Link]())
[Link]([Link]([Link]([Link] * displayNumber/180)));

else {

[Link]([Link]([Link](displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

si (buttonText == "aSin") {

si ([Link]())

[Link]([Link]([Link](displayNumber)* 180/[Link] ));

else {

[Link]([Link]([Link](displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "aCos") {

si ([Link]())

[Link]([Link]([Link](displayNumber) * 180 / [Link]));

else {

[Link]([Link]([Link](displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}
if (buttonText == "aTan") {

si ([Link]())

[Link]([Link]([Link](displayNumber) * 180 / [Link]));

else {

[Link]([Link]([Link](displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

if (buttonText == "todeg")

[Link]([Link]([Link](displayNumber)));

if (buttonText == "torad")

[Link]([Link]([Link](displayNumber)));

if (buttonText == "Pi") {

[Link]([Link]([Link]));

currentNumber =0;

decimalPointPressed = false;

si (buttonText == "Redonda")

roundButtonPressed = true;

si (textoDelBotón == ".") {

String displayedNumber = [Link]();

boolean decimalPointFound = false;

int i;

decimalPointPressed = true;
para (i = 0; i < [Link](); ++i) {

if([Link](i) == '.') {

decimalPointFound = true;

continuar;

si (!decimalPointFound)

decimalPlaces = 1;

if(buttonText == "CA"){

restablecerTodosLosBotones();

[Link]("0");

currentNumber = 0;

si (textoBotón == "CE") {

[Link]("0");

currentNumber = 0;

decimalPointPressed = false;

si (textoBotón == "E") {

[Link]([Link](Math.E));

currentNumber = 0;

decimalPointPressed = false;

si (buttonText == "=") {
currentNumber = 0;

si(addButtonPressed)

[Link]([Link](initialNumber + displayNumber));

si(sePresionaBotónRestar)

[Link]([Link](initialNumber - displayNumber));

if (divideButtonPressed) {

if(displayNumber == 0) {

MessageBox mb = new MessageBox ( fr, "Error ", true, "Cannot divide by zero.");

[Link]();

de lo contrario

[Link]([Link](initialNumber/displayNumber));

if(multiplyButtonPressed)

[Link]([Link](initialNumber * displayNumber));
si (botónDeEncendidoPresionado)

[Link](poder(númeroInicial, númeroDeDisplay));

resetAllButtons();

if (buttonText == "Arial Regular") {

para (int i = 0; i < 10; ++i)

key[i].setFont(new Font("Arial", [Link], 12));

if (buttonText == "Arial Bold") {

para (int i =0; i < 10; ++i)


key[i].setFont(new Font("Arial", [Link], 12));

si (buttonText == "Autores") {

MessageBox mb = new MessageBox ( fr, "Calculadora ver 1.0 beta ", true, "Autores: Aarti
Kohli (aarti_nkr@[Link]) \t Shruti Manchanda (shruti.virgo89@[Link]) \t
Sakshi Taneja (simmytaneja@[Link])

[Link]();

public void itemStateChanged(ItemEvent ie) {

si ([Link]() == "Básico") {

[Link](true);

[Link](false);

[Link]("Basic Calculator");

[Link](200,270);

if (scientificKey[0].isVisible()) {

para (int i=0; i < 8; ++i)

scientificKey[i].setVisible(false);

[Link](false);

[Link](false);

si ([Link]() == "Científico") {

[Link](false);

[Link](true);

[Link]("Scientific Calculator");
[Link](270,270);

si (!scientificKey[0].isVisible()) {

para (int i=0; i < 10; ++i)

scientificKey[i].setVisible(true);

[Link](true);

[Link](true);

public void resetearTodosLosBotones() {

addButtonPressed = false;

subtractButtonPressed = false;

multiplyButtonPressed = false;

divideButtonPressed = false;

decimalPointPressed = false;

powerButtonPressed = false;

roundButtonPressed = false;

public String factorial(double num) {

int theNum = (int)num;

if (theNum < 1) {

MessageBox mb = new MessageBox (fr, "Facorial Error", true,

No se puede encontrar el factorial de números menores que 1.

[Link]();

retornar ("0");
}

else {

for (int i=(theNum -1); i > 1; --i)

theNum *= i;

return [Link](theNum);

public String recíproco(double num) {

si (num == 0) {

MessageBox mb = new MessageBox(fr,"Error Recíproco", verdadero,

No se puede encontrar el recíproco de 0

[Link]();

sino

num = 1/num;

return [Link](num);

public String power (double base, double index) {

return [Link]([Link](base, index));

public String cambiarSigno(double num) {

return [Link](-num);

class MessageBox extiende Dialog implements ActionListener {


Botón de ok;

MessageBox(Frame f, String title, boolean mode, String message) {

super(f, título, modo);

Panel centrePanel = nuevo Panel();

Etiqueta lbl = nueva Etiqueta(mensaje);

[Link](lbl);

add(centrePanel, "Center");

Panel southPanel = new Panel();

ok = new Botón("OK");

[Link](this);

[Link](ok);

agregar(southPanel, "Sur");

empaquetar();

addWindowListener (new WindowAdapter() {

public void windowClosing (WindowEvent we) {

[Link](0);

});

public void actionPerformed(ActionEvent ae) {

desechar(); } } // Fin del código fuente


MEJORA FUTURA

El sistema ha sido diseñado y desarrollado teniendo en cuenta las perspectivas futuras.


Se han incluido varias características para hacer el sistema compatible cuando sea necesario.
requerido para la demanda del usuario en constante cambio.
La mayoría de las posibles situaciones que pueden surgir a lo largo del tiempo están siendo consideradas
y el sistema se ha vuelto compatible con el mundo de la computación altamente dinámico y
cambios interminables en los requisitos del usuario.
Este proyecto es muy portátil. Podemos transferir los proyectos de un sistema a otro muy fácilmente.
otro sin ninguna interferencia del hardware o software de la máquina. El
el sistema es muy fácil de aprender, eficiente y ahorra tiempo.
El candidato ha desarrollado esto por sí mismo y es muy flexible para modificarlo según las necesidades.
de usuarios y clientes en el futuro. Sin embargo, la aplicación es capaz de mejorar.

Pocas características, que pueden ser introducidas más tarde en el software para mejorarlo:

Se pueden añadir más características y funciones.


Se puede conectar a una base de datos para recuperar todos los resultados anteriores.
La complejidad de la resolución de problemas puede cambiar según el desarrollo de
nuevas funciones en la biblioteca de Java.
BIBLIOGRAFÍA
• [Link]
•[Link]
•[Link]/wiki/Java_(programming_language)
• [Link]
•[Link] (por David Flanagan, por Joshua Bloch)

También podría gustarte