teoría de la computación1

23
Teoría de la Computación Reporte de: AE1 Máquina Expendedora de Refrescos 24/08/2011 Keren Sánchez Salinas. Numero de control: 08410843 Valor: 5%

Upload: keren-sanchez-salinas

Post on 04-Mar-2015

134 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Teoría de la Computación1

Teoría de la Computación Reporte de: AE1 Máquina Expendedora de Refrescos 24/08/2011 Keren Sánchez Salinas. Numero de control: 08410843 Valor: 5%

Page 2: Teoría de la Computación1

1

Í

ó

ó

Page 3: Teoría de la Computación1

2

Simular el funcionamiento de una máquina expendedora de refrescos, utilizando

un lenguaje de programación.

1.-Detectar las funciones básicas que llevara a cabo el programa (métodos

principales).

2.-Revizar los métodos propuestos, y detectar métodos secundarios.

3.-Creación de clase en java.

Page 4: Teoría de la Computación1

3

4.-Creación de interfaz gráfica del programa y añadir los botones necesarios para

la ejecución del mismo.

6.-Aplicar los métodos en modo de lenguaje de programación, corrigiendo errores

y verificando su correcto funcionamiento.

Page 5: Teoría de la Computación1

4

7.-Ejecución del programa en modo correcto, tomando en cuenta las

consideraciones a tomar.

Page 6: Teoría de la Computación1

5

A. Al ejecutar aparece la siguiente ventana, si se nota la instrucción marca que

se presione inicio para comenzar, si no se desea realizar esta acción solo

hay que oprimir salir. También se puede notar que el botón de cancelar esta

temporalmente invisible.

B. Al dar clic en el botón “inicio” aparece el siguiente menú, con el mensaje de

insertar monedas y el valor de cada moneda. Ahora se puede notar que el

botón cancelar esta visible, por lo que desde este momento es posible

Page 7: Teoría de la Computación1

6

cancelar la operación.

C. Ahora se ha presionado dos veces el botón de “0.10” y nos muestra el valor

que tenemos hasta el momento.

Page 8: Teoría de la Computación1

7

D. Al sumar la cantidad de 0.45 la maquina expulsa el refresco y muestra el

mensaje de que se puede tomar.

E. Al despachar el refresco vuelve a contador en ceros.

F. Ahora bien, si el valor en monedas sobrepasa a 0.45, la maquina se traga la

última moneda que se ha introducido y muestra un mensaje diciéndonos lo

Page 9: Teoría de la Computación1

8

anterior.

G. Al presionar el botón de “cancelar”, nos manda al menú con el que se inició.

Page 10: Teoría de la Computación1

9

H. Y al presionar el botón de “Salir” nos muestra un mensaje en el que se pide

la confirmación de la acción.

I. Al presionar “si” el programa termina su ejecución y vuelve a NetBeans.

Page 11: Teoría de la Computación1

10

ó

Clase Main:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ssss;

/**

*

* @author Kerensita

*/

public class Ssss {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

menuu me = new menuu();

me.show();

}

}

Page 12: Teoría de la Computación1

11

Clase JFrame:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

/*

* menuu.java

*

* Created on 23-ago-2011, 17:36:16

*/

package ssss;

import java.text.DecimalFormat;

import javax.swing.JOptionPane;

/**

*

* @author Kerensita

*/

public class menuu extends javax.swing.JFrame {

double z=0;

DecimalFormat df = new DecimalFormat("0.00");

Page 13: Teoría de la Computación1

12

/** Creates new form menuu */

public menuu() {

initComponents();

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this

method is

* always regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

uno = new javax.swing.JButton();

dos = new javax.swing.JButton();

display = new javax.swing.JLabel();

jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

Page 14: Teoría de la Computación1

13

jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorde

r.RAISED));

uno.setText("Inicio");

uno.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt)

{

unoActionPerformed(evt);

}

});

dos.setText("Salir");

dos.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt)

{

dosActionPerformed(evt);

}

});

display.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

display.setText("Presione Inicio");

jButton1.setText("Cancelar");

jButton1.setEnabled(false);

jButton1.addActionListener(new java.awt.event.ActionListener() {

Page 15: Teoría de la Computación1

14

public void actionPerformed(java.awt.event.ActionEvent evt)

{

jButton1ActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN

G)

.addComponent(jButton1,

javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)

.addComponent(display,

javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(uno)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 44,

Short.MAX_VALUE)

.addComponent(dos)))

Page 16: Teoría de la Computación1

15

.addContainerGap())

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(display)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI

NE)

.addComponent(uno)

.addComponent(dos))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jButton1)

.addContainerGap())

);

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

Page 17: Teoría de la Computación1

16

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jPanel1,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jPanel1,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addContainerGap())

);

pack();

}// </editor-fold>

private void dosActionPerformed(java.awt.event.ActionEvent evt) {

if( "Salir".equals(this.dos.getText())){

int x=JOptionPane.showConfirmDialog(null, "Quieres Salir?","Salir",

JOptionPane.YES_NO_OPTION);

if(x==0){

System.exit(0);

Page 18: Teoría de la Computación1

17

}

}else{

double x=Double.parseDouble(this.dos.getText());

if( "0.10".equals(this.dos.getText())){

if(z<0.45){

z=z+x;

this.display.setText("Tiene Acumulado=$"+ String.valueOf(df.format(z)));

if(z==0.45){

JOptionPane.showMessageDialog(null, "Toma Tu Refresco");

this.display.setText("Inserte Monedas");

this.uno.setText("0.25");

this.dos.setText("0.10");

z=0;

}

if(z>0.45){

z=z-x;

this.display.setText("Tiene Acumulado=$"+ String.valueOf(df.format(z)));

JOptionPane.showMessageDialog(null, "Se trago Ultima

moneda","Error",JOptionPane.ERROR_MESSAGE);

}

}

}

}

Page 19: Teoría de la Computación1

18

}

private void unoActionPerformed(java.awt.event.ActionEvent evt) {

if( "Inicio".equals(this.uno.getText())){

this.display.setText("Inserte Monedas");

this.uno.setText("0.25");

this.dos.setText("0.10");

this.jButton1.setEnabled(true);

}else{

double x=Double.parseDouble(this.uno.getText());

if( "0.25".equals(this.uno.getText())){

if(z<0.45){

z=z+x;

this.display.setText("Tiene Acumulado=$"+ String.valueOf(df.format(z)));

if(z==0.45){

JOptionPane.showMessageDialog(null, "Toma Tu Refresco");

this.display.setText("Inserte Monedas");

this.uno.setText("0.25");

this.dos.setText("0.10");

z=0;

}

if(z>0.45){

z=z-x;

this.display.setText("Tiene Acumulado=$"+ String.valueOf(df.format(z)));

Page 20: Teoría de la Computación1

19

JOptionPane.showMessageDialog(null, "Se trago Ultima

moneda","Error",JOptionPane.ERROR_MESSAGE);

}

}

}

}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

this.uno.setText("Inicio");

this.dos.setText("Salir");

this.display.setText("Presione Inicio");

z=0;

this.jButton1.setEnabled(false);

}

/**

* @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.

Page 21: Teoría de la Computación1

20

* For details see

http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :

javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(menuu.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(menuu.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(menuu.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(menuu.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

}

Page 22: Teoría de la Computación1

21

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new menuu().setVisible(true);

}

});

}

// Variables declaration - do not modify

public javax.swing.JLabel display;

public javax.swing.JButton dos;

private javax.swing.JButton jButton1;

public javax.swing.JPanel jPanel1;

public javax.swing.JButton uno;

// End of variables declaration

}

Page 23: Teoría de la Computación1

22

Ó

Dada la anterior información se puede concluir que la simulación resulto en el

objetivo propuesto, sin embargo existieron muchas complicaciones en la

realización de la misma, por ejemplo, el que el programa simulara los valores y

que, exactamente en cierta cantidad, se ejerciera una conclusión, resulto en la

realización de muchas maneras diferentes, muchas de las cuales sin el

resultado esperado.

Sin embargo, la simulación fue un éxito y este reporte es prueba de ello.