Об’єктно-орієнтована побудова логічних схем

Автор работы: Пользователь скрыл имя, 30 Октября 2013 в 00:09, курсовая работа

Описание работы

Об'єктно-орієнтоване програмування — одна з парадигм програмування, яка розглядає програму, як множину “об'єктів”, що взаємодіють між собою. В ній використано декілька технологій від попередніх парадигм, зокрема успадкування, модульність, поліморфізм та інкапсуляцію. Не зважаючи на те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 90-х років. На сьогодні багато із мов програмування підтримують ООП. Серед яких є С++, Java, Objective-C, Clips, Python, PHP. В даній курсовій роботі ми будемо використовувати мову програмування Java, яка є зручним інстрементом для реалізаціі функціоналу, та створення графічного інтерфейсу програми.

Содержание работы

Вступ.........................................................................................................................4
1. Об’єктно-орієнтована побудова логічних схем. Постанова задачі та основні визначення.............................................................................................................5
2. Відомості о Java................................................................................................6
3. Іднівідуальне завдання.....................................................................................7
4. Інструкціі по експлуатаціі розробленої програми.........................................8
5. Тестування роботи програми згідно з заданим варіантом............................10
Висновки………………………………………………………………..…..…....11
Список літератури……………………………………….............................……12
Додаток 1. Код програми

Файлы: 1 файл

Курсач ООП.doc

— 649.00 Кб (Скачать файл)

    static ArrayList<Boolean> elementListOr = new ArrayList<Boolean>();

    static ArrayList<Boolean> elementListXor = new ArrayList<Boolean>();

    static ArrayList<Boolean> elementListNand = new ArrayList<Boolean>();

    static ArrayList<JLabel> eLJLabelListNot = new ArrayList<JLabel>();

    static ArrayList<JLabel> eLJLabelListAnd = new ArrayList<JLabel>();

    static ArrayList<JLabel> eLJLabelListOr = new ArrayList<JLabel>();

    static ArrayList<JLabel> eLJLabelListXor = new ArrayList<JLabel>();

    static ArrayList<JLabel> eLJLabelListNand = new ArrayList<JLabel>();

    static JTextField s1Field = new JTextField();

    static JTextField s2Field = new JTextField();

    static JTextField s3Field = new JTextField();

    static JTextField s4Field = new JTextField();

    static JTextField s5Field = new JTextField();

    static JTextField s6Field = new JTextField();

    static JTextField siField = new JTextField();

    static JTextField sjField = new JTextField();

    static JTextField operatorField = new JTextField("");

    static JTextField soField = new JTextField();

    //static JTextField elementXPositionField = new JTextField();

    //static JTextField elementYPositionField = new JTextField();

    static JTextField l1Field = new JTextField();

    static JTextField l2Field = new JTextField();

    static JTextField l3Field = new JTextField();

    //</editor-fold>

    static JButton addButton = new JButton("ADD ELEMENT");

    static JButton calculateButton = new JButton("CLEAR ALL!");

    static String finded[] = new String[2];

    static String ivarToCalcFunc;

    static String jvarToCalcFunc;

    static GraphicsPanel gP = new GraphicsPanel();

   

    public static void main(String[] args) {

        JFrame mainFrame = new JFrame("Schema Logic 3.0");

       

       

        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        mainFrame.setVisible(true);

 

 

        //<editor-fold defaultstate="collapsed" desc="Boxes">

        Box mainBox = Box.createVerticalBox();

        Box signalBox = Box.createHorizontalBox();

        Box inputBox = Box.createHorizontalBox();

        Box graphicsBox = Box.createHorizontalBox();

        Box outputBox = Box.createHorizontalBox();

        //</editor-fold>

 

        //<editor-fold defaultstate="collapsed" desc="Labels">

        JLabel s1Label = new JLabel("s1 : ");

        JLabel s2Label = new JLabel("s2 : ");

        JLabel s3Label = new JLabel("s3 : ");

        JLabel s4Label = new JLabel("s4 : ");

        JLabel s5Label = new JLabel("s5 : ");

        JLabel s6Label = new JLabel("s6 : ");

        JLabel siLabel = new JLabel("si: ");

        JLabel operatorLabel = new JLabel("do:");

        JLabel sjLabel = new JLabel("sj: ");

        JLabel eqLabel = new JLabel(" = ");

        //JLabel elementXPositionLabel = new JLabel("x: ");

        //JLabel elementYPositionLabel = new JLabel("y: ");

        //</editor-fold>

 

       

        addButton.addActionListener(new ButtonListener());

        calculateButton.addActionListener(new ButtonListener());

       

        l1Field.setEditable(false);

        l2Field.setEditable(false);

        l3Field.setEditable(false);

 

 

        //<editor-fold defaultstate="collapsed" desc="Signal box adding">

 

        signalBox.add(s1Label);

        signalBox.add(s1Field);

        signalBox.add(s2Label);

        signalBox.add(s2Field);

       signalBox.add(s3Label);

        signalBox.add(s3Field);

        signalBox.add(s4Label);

        signalBox.add(s4Field);

        signalBox.add(s5Label);

        signalBox.add(s5Field);

        signalBox.add(s6Label);

        signalBox.add(s6Field);

 

 

        //</editor-fold>

 

        //<editor-fold defaultstate="collapsed" desc="Input box adding">

        inputBox.add(siLabel);

        inputBox.add(siField);

        inputBox.add(Box.createHorizontalStrut(3));

        inputBox.add(operatorLabel);

        inputBox.add(operatorField);

        inputBox.add(Box.createHorizontalStrut(3));

        inputBox.add(sjLabel);

        inputBox.add(sjField);

        inputBox.add(eqLabel);

        inputBox.add(soField);

        inputBox.add(Box.createHorizontalStrut(40));

//        inputBox.add(elementXPositionLabel);

        //       inputBox.add(elementXPositionField);

        //     inputBox.add(elementYPositionLabel);

        //     inputBox.add(elementYPositionField);

        inputBox.add(addButton);

        inputBox.add(calculateButton);

 

        //</editor-fold>

        // graphicsBox.add(graphicsLabel);

 

        //<editor-fold defaultstate="collapsed" desc="Output box adding">

        outputBox.add(Box.createHorizontalStrut(200));

        outputBox.add(l1Field);

        outputBox.add(l2Field);

        outputBox.add(l3Field);

        outputBox.add(Box.createHorizontalStrut(200));

        //</editor-fold>

 

        //<editor-fold defaultstate="collapsed" desc="pack">

        mainBox.add(signalBox);

        mainBox.add(Box.createVerticalStrut(20));

        mainBox.add(inputBox);

        mainBox.add(Box.createVerticalStrut(20));

        mainBox.add(graphicsBox);

        mainBox.add(Box.createVerticalStrut(20));

        mainBox.add(outputBox);

       

       

        mainFrame.setContentPane(mainBox);

       

        mainFrame.pack();

        mainFrame.setSize(500, 200);

        mainFrame.setResizable(false);

        //</editor-fold>

 

    }

   

    private static class ButtonListener implements ActionListener {

       

        static JFrame graphicsFrame;

       

        public ButtonListener() {

        }

       

        public static Boolean intoBool(int bool) {

            Boolean b = null;

            if (bool == 1) {

                b = true;

            } else if (bool == 0) {

                b = false;

            }

            return b;

           

        }

       

        @Override

        public void actionPerformed(ActionEvent e) {

           

            if ("ADD ELEMENT".equals(e.getActionCommand())) {

                if (graphicsFrame == null) {

                    graphicsFrame = new JFrame("Schema Graphics 1.0");

                    graphicsFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                    graphicsFrame.setVisible(true);

                    graphicsFrame.setPreferredSize(new Dimension(600, 800));

                    graphicsFrame.setContentPane(gP);

                    graphicsFrame.pack();

                }

                try {

 

                    //<editor-fold defaultstate="collapsed" desc="si Switch ">

                    switch (siField.getText()) {

                        case "s1":

                            ivarToCalcFunc = (s1Field.getText());

                           

                            break;

                        case "s2":

                            ivarToCalcFunc = (s2Field.getText());

                           

                            break;

                        case "s3":

                            ivarToCalcFunc = (s3Field.getText());

                           

                            break;

                        case "s4":

                            ivarToCalcFunc = (s4Field.getText());

                           

                            break;

                        case "s5":

                            ivarToCalcFunc = (s5Field.getText());

                           

                            break;

                        case "s6":

                            ivarToCalcFunc = (s6Field.getText());

                           

                            break;

                        default:

                            finded = (siField.getText()).split(":");

                            switch (finded[0]) {

                                case "X":

                                case "x":

                                    ivarToCalcFunc = String.valueOf(elementListXor.get(Integer.parseInt(finded[1])));

                                    break;

                                case "A":

                                case "a":

                                    ivarToCalcFunc = String.valueOf(elementListAnd.get(Integer.parseInt(finded[1])));

                                    break;

                                case "D":

                                case "d":

                                    ivarToCalcFunc = String.valueOf(elementListNand.get(Integer.parseInt(finded[1])));

                                    break;

                                case "N":

                                case "n":

                                    ivarToCalcFunc = String.valueOf(elementListNot.get(Integer.parseInt(finded[1])));

                                    break;

                                case "O":

                                case "o":

                                    ivarToCalcFunc = String.valueOf(elementListOr.get(Integer.parseInt(finded[1])));

                                    break;

                            }

                       

                    }

                    //</editor-fold>

 

                    //<editor-fold defaultstate="collapsed" desc="sj Switch">

                    switch (sjField.getText()) {

                        case "s1":

                            jvarToCalcFunc = (s1Field.getText());

                           

                            break;

                        case "s2":

                            jvarToCalcFunc = (s2Field.getText());

                           

                            break;

                        case "s3":

                            jvarToCalcFunc = (s3Field.getText());

                           

                            break;

                        case "s4":

                            jvarToCalcFunc = (s4Field.getText());

                            break;

                        case "s5":

                            jvarToCalcFunc = (s5Field.getText());

                            break;

                        case "s6":

                            jvarToCalcFunc = (s6Field.getText());

                            break;

                        default:

                            finded = (sjField.getText()).split(":");

                            switch (finded[0]) {

                                case "X":

                                case "x":

                                    jvarToCalcFunc = String.valueOf(elementListXor.get(Integer.parseInt(finded[1])));

                                    break;

                                case "A":

                                case "a":

                                    jvarToCalcFunc = String.valueOf(elementListAnd.get(Integer.parseInt(finded[1])));

                                    break;

                                case "D":

                                case "d":

                                    jvarToCalcFunc = String.valueOf(elementListNand.get(Integer.parseInt(finded[1])));

                                    break;

                                case "N":

                                case "n":

                                    jvarToCalcFunc = String.valueOf(elementListNot.get(Integer.parseInt(finded[1])));

                                    break;

                                case "O":

                                case "o":

                                    jvarToCalcFunc = String.valueOf(elementListOr.get(Integer.parseInt(finded[1])));

                                    break;

                            }

                       

                    }

                    //</editor-fold>

 

                    //<editor-fold defaultstate="collapsed" desc="Operator Switcher">

                    switch (operatorField.getText()) {

                        case "&&":

                            System.out.println("&&");

                            System.out.println(ivarToCalcFunc + "_" + jvarToCalcFunc);

                            System.out.println(andOperation(ivarToCalcFunc, jvarToCalcFunc));

                            addNewElementToList(andOperation(ivarToCalcFunc, jvarToCalcFunc));

                            break;

                        case "||":

                            System.out.println("||");

                            System.out.println(ivarToCalcFunc + "_" + jvarToCalcFunc);

                            System.out.println(orOperation(ivarToCalcFunc, jvarToCalcFunc));

                            addNewElementToList(orOperation(ivarToCalcFunc, jvarToCalcFunc));

                            break;

                        case "!":

                            System.out.println("!");

                            System.out.println(ivarToCalcFunc + "_" + jvarToCalcFunc);

                            System.out.println(notOperation(jvarToCalcFunc));

                            addNewElementToList(notOperation(jvarToCalcFunc));

                            break;

                        case "^":

                            System.out.println("^");

                            System.out.println(ivarToCalcFunc + "_" + jvarToCalcFunc);

                            System.out.println(xorOperation(ivarToCalcFunc, jvarToCalcFunc));

                            addNewElementToList(xorOperation(ivarToCalcFunc, jvarToCalcFunc));

                            break;

                        case "!&":

                            System.out.println("!&");

                            System.out.println(ivarToCalcFunc + "_" + jvarToCalcFunc);

                            System.out.println(nandOperation(ivarToCalcFunc, jvarToCalcFunc));

                            addNewElementToList(nandOperation(ivarToCalcFunc, jvarToCalcFunc));

                            break;

                        case "->":

                            if (soField.getText().equals("L1") || soField.getText().equals("l1")) {

                                l1Field.setText(jvarToCalcFunc);

                            } else if (soField.getText().equals("L2") || soField.getText().equals("l2")) {

                                l2Field.setText(jvarToCalcFunc);

                            } else if (soField.getText().equals("L3") || soField.getText().equals("l3")) {

                                l3Field.setText(jvarToCalcFunc);

                            }

                            break;

                       

                    }

                    //</editor-fold>

                } catch (NumberFormatException | HeadlessException exception) {

                    System.out.println("ERROR OF INPUT" + exception);

                }

            } else if ("CLEAR ALL!".equals(e.getActionCommand())) {

                try {

                    new ProcessBuilder("cmd", "/c", "start", "C:/my.bat").start();

                    System.exit(0);

Информация о работе Об’єктно-орієнтована побудова логічних схем