ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Quine mackulski

senquiDocumentos de Investigación18 de Abril de 2016

30.492 Palabras (122 Páginas)391 Visitas

Página 1 de 122

Quine – McCluskey

Desarrolladores:

Jorge Sánchez de la Garza

Rodrigo Alfredo Torres Lauría

Descripción del programa.

Este programa es capaz de resolver ecuaciones booleanas para circuitos combinacionales a partir de su tabla de verdad.

El programa utiliza el algoritmo desarrollado por Quine – McCluskey en el MIT.

El número de variables que soporta está dado por la cantidad de memoria del equipo donde se utilice el programa. En un equipo portátil con 512 MB de memoria en RAM se han podido resolver tablas de hasta 16 variables.

Funcionamiento:

[pic 1][pic 2]

[pic 3][pic 4][pic 5]

[pic 6][pic 7]

[pic 8]

[pic 9][pic 10][pic 11]

[pic 12]

[pic 13][pic 14]

[pic 15]

[pic 16]

[pic 17]

Pantalla principal al inicio del programa.

[pic 18]

Programa QMC en acción.

Código del programa:

import java.io.*;

import java.math.*;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import java.awt.datatransfer.*;

public class QMC extends JFrame implements ActionListener, ClipboardOwner{ // Declaración de la clase que extiende a JFrame para que tenga interfaz gráfica e implementa ActionListener para que los objetos puedan responder a las acciones del usuario así como ClipBoardOwner para poder copiar objetos al porta-papeles.

        

        /*Declaración de los objetos globales de la clase.*/

        

        JFrame frame = new JFrame("QMC"); // Se crea el frame de la aplicación.

        

        JPanel panel1; // Pánel que contiene alradio button de los minitérminos.

        JPanel panel2; // Pánel que contiene alradio button de los maxitérminos.

        JPanel panel3; // Pánel que contiene alradio button de término por término.

        JPanel panel4; // Pánel que contiene alradio button cargar la tabla desde archivo.

        JPanel panel5; // Pánel que contiene a los 4 páneles anteriores (a todos los radio buttons).

        JPanel panel6; // Pánel que contiene al label de suma de minitérminos y su text field.

        JPanel panel7; // Pánel que contiene al label de poducto de maxitérminos y su text field.

        JPanel panel8; // Pánel que contiene al label de términi por término y su text field.

        JPanel panel9; // Pánel que contiene al text field del archivo de entada.

        JPanel panel10; // Pánel que contiene a los 4 páneles anteriores.

        JPanel panel11; // Pánel que contiene a los 4 botones de los controles de inserción de datos.

        JPanel panel12; // Pánel que contiene a los páneles 5, 10 y 11.

        JPanel panel13; // Pánel que contiene al button de "Reset".

        JPanel panel14; // Pánel que contiene a los dos páneles anteriores  (controles de inserción de datos).

        JPanel panel15; // Pánel que contiene al botón de minimizar, el text field de la ecuación reducida y el botón de copiar.

        JPanel panel16; // Pánel que contiene el text field del archivo de los procedimientos de salida y el botón para guardar dichos procedimientos.

        JPanel panel17; // Pánel que contiene a los dos páneles anteriores (controles de minimización).

        JScrollPane panel18; // Pánel "scrollable" que contiene el text area donde se muestra la tabla de verdad.

        JPanel panel19; // Pánel que contiene al pánel anterior.

        JPanel panel20; // Pánel que contiene al text field del archivo de salida de la tabla de verdad y el botón para guardar la tabla.

        JPanel panel21; // Pánel que contiene a los dos páneles anteriores (controles de la tabla de verdad).

        

        JRadioButton invisible = new JRadioButton(); // Radio button invisible que sirve para poder "deseleccionar" los demás radio buttons que sí son visibles.

        

        JRadioButton minisrb = new JRadioButton("Minitérminos"); // Radio button de la inserción por minitérminos.

        JLabel suma = new JLabel("\u03a3m:");

        JTextField ministx = new JTextField("4,0,2,3,7,12",9); // Text field donde se capturan los minitérminos.

        JButton minisbt = new JButton("Llenar"); // Button de la inserción por minitérminos.

        

        JRadioButton maxisrb = new JRadioButton("Maxitérminos"); // Radio button de la inserción por maxitérminos.

        JLabel prod = new JLabel("\u03a0M:");

        JTextField maxistx = new JTextField("4,1,4,6,9,15",9); // Text field donde se capturan los maxitérminos

        JButton maxisbt = new JButton("Llenar"); // Button de la inserción por maxitérminos.

        

        JRadioButton termrb = new JRadioButton("Término por término"); // Radio button de la inserción término por término.

        JLabel term = new JLabel("# de variables:");

        JTextField termtx = new JTextField("0",3); // Text field donde se capturan el número de variables de involucradas.

        JButton termbt = new JButton("Introducir"); // Button de la inseción término por término.

        

        JRadioButton filerb = new JRadioButton("Tabla desde archivo"); // Radio button de la inserción desde archivo.

        JTextField filetx = new JTextField("Archivo a cargar",11); // Text field que muestra la ruta del archivo cargado.

        JButton filebt = new JButton("Cargar"); // Button de la inserción desde archivo.

        

        JButton resetbt = new JButton("Reset"); // Button que resetea el programa a sus valores iniciales.

                

        JButton minimizarbt = new JButton("Minimizar"); // Button para mininimar la tabla de verdad

        JTextField ecuaciontx = new JTextField(15); // Text field donde se muesra la ecuación ya minimizada.

        JButton copiarbt = new JButton("Copiar"); // Button para copiar la ecuación minimizada al porta-papeles.

        

        JTextField procedimsalidatx = new JTextField("Archivo a guardar",12); // Text field que muestra la ruta del archivo donde se guardaron los procedimientos.

        JButton procedimsalidabt = new JButton("Procedimientos a archivo"); // Button para guardar en un archivo los procedimientos de minimización.

        

        JTextArea tablavddarea = new JTextArea(10,20); // Text area donde se muestra la tabla de verdad.

        JTextField tablasalidatx = new JTextField("Archivo a guardar",12); // Text field donde se muestra la ruta del archivo donde se guardó la tabla de verdad.

        JButton tablasalidabt = new JButton("Guardar"); // Button para guardar el tabla de verdad en un archivo.

        

        ButtonGroup botones; // Grupo de botones que relaciona lógicamente los radio buttons creados, para que sean mutuamente excluyentes.

        PrintWriter aproced; // Objeto global con el que se imprimirá al archivo que contiene los procedimientos realizados para la simplificación.

        JFileChooser selector = new JFileChooser(); // Objeto con el que se selecciona un archivo en la véntana de diálogo.

        ExampleFileFilter filtro = new ExampleFileFilter(); // Objeto de tipo "ExampleFileFilter" con el que se filtran los archivos mostrados en la ventana de diálogo"

    ImageIcon icono = new ImageIcon("icono.gif"); // Objeto que contiene al ícono del programa.

        

        

        private static BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); //Declaración del objeto para captura desde el teclado.

   

   

    int numvar; // Variable que guarda el número de variables de la tabla.

...

Descargar como (para miembros actualizados) txt (90 Kb) pdf (588 Kb) docx (588 Kb)
Leer 121 páginas más »
Disponible sólo en Clubensayos.com