Академический Документы
Профессиональный Документы
Культура Документы
Ing. de Software
Sabatino 2 semestre
Proyecto calculadora
Introduccin
En este proyecto se llevar a cabo el desarrollo de software de una calculadora
con operaciones simples (suma, resta, multiplicacin, divisin). Para poder realizar
el software se aplicar la ingeniera de software correspondiente teniendo un
objetivo general y especifico, as como la investigacin de requerimientos
funcionales y no funcionales, el modelo que se utilizar para el desarrollo del
software, se aplicaran los casos de uso identificando la funcin de cada actor, as
como de la aplicacin.
Objetivo General
Desarrollar una calculadora que sea capaz de realizar las operaciones bsicas
como suma, resta, multiplicacin y divisin, el usuario introducir la cantidad por
medio de botones, la validacin de la calculadora ser realizada en el botn punto
donde solo se podr introducir una nica ves el punto.
Objetivos especficos
Anlisis
1.-La calculadora identificara el tipo de operacin que desea realizar el usuario a
travs de cada botn por operacin.
2.-Mostrara la operacin realizada y resultado
3.-Solo se podr utilizar introducir el punto una sola ocasin
Diseo
1.-Su diseo ser simple cada nmero y operacin ser un botn,
2.-Todo nmero se mostrar en una caja de texto no editable.
3.- Mostrar la operacin completa en la parte superior de la calculadora.
4.-Mostrara el resultado en la caja de texto no editable
Desarrollo
1.-El software se desarrollar en el lenguaje java
Modelo
El modelo que utilizare para el desarrollo de la calculadora ser el modelo en
cascada ya que me permite perfeccionar cada fase del software, ya que es un
proyecto pequeo y los requisitos son claros y entendibles el modelo en cascada
es el correcto para este proyecto.
Anlisis
Requisitos
Un requerimiento es la definicin de cada entrada y salida del
software divididos en requerimientos funcionales y no funcionales
Requerimientos funcionales
1.-Sumar 2 nmeros
2.-Restar 2 nmeros
3.-multiplicar 2 nmeros
4.-Dividir 2 nmeros
5.-limpiara pantalla
Requisitos no funcionales
1.-Se desarrollar en el lenguaje java
Diseo de sistema
La calculadora generara las operaciones bsicas de acuerdo a las acciones que
tome el usuario.
7
1
6
2
4
3
imagen 2 interface de calculadora autor: Jonathan Lpez
Casos de Usos
Manual de usuario
Ilustracin
imagen
0 Teclado
Numrico
El botn punto solo se podr colocar una nica ocasin separando los enteros de
los decimales
imagen 0
Botn punto
Manual tcnico
La calculadora est desarrollada en lenguaje java, sobre el IDE NETBEANS se le
dio la siguiente interface
El boton PUNTO se crea una cadena donde se guardaran los numeros que se
encuentren en la caja de texto. En caso de que la caja de texo este basia se
colocara un 0.
Crearemos un metodo publico para evitar que se coloque mas de un punto,
recorriendo toda la cadena, si no existe punto lo colocara al final, pero si existe no
colocara nada
Botn borrar, su funcin es una borrar el ultimo digito que se encuentra en la caja
de texto, lo que hacemos es recuperar lo que se encuentra en la caja de texto y
guardarlo en una cadena, leer la cadena y darle el mismo valor de la cadena-1 y
mandamos a mostrar a la caja de texto.
cdigo fuente
package jona;
public class calculadoraFinal extends javax.swing.JFrame {
String numero1;
String operador;
String numero2;
public calculadoraFinal() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(290, 230));
getContentPane().setLayout(null);
MostrarDatos.setEditable(false);
MostrarDatos.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
MostrarDatos.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
MostrarDatosActionPerformed(evt);
}
});
getContentPane().add(MostrarDatos);
MostrarDatos.setBounds(30, 30, 216, 30);
num7.setText("7");
num7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num7ActionPerformed(evt);
}
});
getContentPane().add(num7);
num7.setBounds(10, 70, 39, 23);
num8.setText("8");
num8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num8ActionPerformed(evt);
}
});
getContentPane().add(num8);
num8.setBounds(60, 70, 39, 23);
num9.setText("9");
num9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num9ActionPerformed(evt);
}
});
getContentPane().add(num9);
num9.setBounds(110, 70, 39, 23);
divicion.setText("/");
divicion.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
divicionActionPerformed(evt);
}
});
getContentPane().add(divicion);
divicion.setBounds(160, 70, 37, 23);
num4.setText("4");
num4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num4ActionPerformed(evt);
}
});
getContentPane().add(num4);
num4.setBounds(10, 100, 39, 23);
num5.setText("5");
num5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num5ActionPerformed(evt);
}
});
getContentPane().add(num5);
num5.setBounds(60, 100, 39, 23);
num6.setText("6");
num6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num6ActionPerformed(evt);
}
});
getContentPane().add(num6);
num6.setBounds(110, 100, 39, 23);
numtiplicacion.setText("*");
numtiplicacion.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
numtiplicacionActionPerformed(evt);
}
});
getContentPane().add(numtiplicacion);
numtiplicacion.setBounds(160, 100, 39, 23);
num1.setText("1");
num1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num1ActionPerformed(evt);
}
});
getContentPane().add(num1);
num1.setBounds(10, 130, 39, 23);
num2.setText("2");
num2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num2ActionPerformed(evt);
}
});
getContentPane().add(num2);
num2.setBounds(60, 130, 39, 23);
num3.setText("3");
num3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num3ActionPerformed(evt);
}
});
getContentPane().add(num3);
num3.setBounds(110, 130, 39, 23);
resta.setText("-");
resta.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
restaActionPerformed(evt);
}
});
getContentPane().add(resta);
resta.setBounds(160, 130, 37, 23);
num0.setText("0");
num0.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
num0ActionPerformed(evt);
}
});
getContentPane().add(num0);
num0.setBounds(60, 160, 39, 23);
punto.setText(".");
punto.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
puntoActionPerformed(evt);
}
});
getContentPane().add(punto);
punto.setBounds(210, 160, 37, 23);
suma.setText("+");
suma.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sumaActionPerformed(evt);
}
});
getContentPane().add(suma);
suma.setBounds(160, 160, 41, 23);
igual.setText("=");
igual.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
igualActionPerformed(evt);
}
});
getContentPane().add(igual);
igual.setBounds(210, 130, 40, 23);
jButton1.setText("C");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
jButton1.setBounds(210, 100, 40, 23);
jButton2.setText("CE");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2);
jButton2.setBounds(210, 70, 45, 23);
DatosSegundoPlano.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
DatosSegundoPlano.setToolTipText("");
getContentPane().add(DatosSegundoPlano);
DatosSegundoPlano.setBounds(30, 0, 210, 20);
pack();
}// </editor-fold>
//declaracion de evento al precionar el boton 0
public static String calculo(String numero1, String numero2, String operador) {// metodo calculo
Double resultado = 0.0;//se crea variable tipo double y se inicializa en 0
String respuesta;//se crea la variable respuesta
if (operador.equals("-")) {//se identifica el valor del operador si es el signo - entrara a restar los
valores de las variables n1 y n2
n1 = numero1;
DatosSegundoPlano.setText(n1 + "/");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for
(javax.swing.UIManager.LookAndFeelInfo
javax.swing.UIManager.getInstalledLookAndFeels()) {
info
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(calculadoraFinal.class.getName()).log(java.util.logging.Le
vel.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(calculadoraFinal.class.getName()).log(java.util.logging.Le
vel.SEVERE, null, ex);
Validacin
La aplicacin que se desarrollo es la correcta al igual que su funcionalidad ya que
al manejar una interface, su uso es intuitivo para el usuario.
Imagen 1 cajas
Imagen 2 teclado
numrico
Imagen 3
botn punto