ПЗ автоматизації обліку успішності з фізичного виховання

Автор: Пользователь скрыл имя, 24 Мая 2013 в 04:40, курсовая работа

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

Целью такой программы является просмотр сдачи студентом определенных нормативов, указанных в учебном плане заведения. Таким образом сократиться время поиска студента среди всех членов группы, и просмотр нормативов будет удобным, так как будет отвечать только заданному студенту.

Содержание

Введение 2
1 Постановка задачи 4
1.1 Требования пользователя 4
1.1.1 Мандатные требования 4
1.1.2 Ограничительные требования 4
2 Анализ требований 6
2.1 Анализ и обзор предметной области 6
2.2 Глоссарий 6
2.3 Описание вариантов использования ПО 7
2.4 Требования к ПО 13
2.4.1 Функциональные требования 13
2.4.2 Нефункциональные требования 13
3 Архитектурное и детальное проектирование ПО 14
3.1 Архитектурное проектирование клиентской части ПО 14
3.2 Архитектурное проектирование серверной части ПО 15
3.2.1 Логическая модель даннях 15
3.2.1.1 Выделение сущностей и атрибутов предметной области 15
3.2.2 Выделение связей между сущностями 17
3.2.3 Построение логической схемы БД 17
3.3 Детальное проектирование ПО 18
3.3.1 Детальное проектирование клиентской части ПО 18
3.3.2 Детальное проектирование серверной части ПО 20
3.3.2.1 Описание таблиц БД на основе логической модели БД 20
4 Проверка работоспособности ПО 21
Выводы 24
Список литературы 25
Приложение А. Листинг исходных кодов SQL-сценариев для создания таблиц БД 26
Приложение В . Листинг исходного кода клиентской части приложения 28

Работа содержит 1 файл

lozovaya_kursach_java.docx

— 608.55 Кб (Скачать)

import javax.swing.border.TitledBorder;

import javax.swing.event.TableModelListener;

import javax.swing.table.TableModel;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

/**

* Главный класс программы

 * @author Анастасия Лозовая

* @version 1.0

*/

public class JFrameMain extends JFrame {

    private static TableModel modelStudents, modelResults;

    private static JTable tableStudents, tableResults;

    private static ArrayList<Student> students = new ArrayList<Student>();

    private static ArrayList<Result> results = new ArrayList<Result>();

 

    private static Connection con = null;

    private static Statement сt = null;

    private static ResultSet rs = null;

    private static JComboBox comboBoxGroup;

 

    private JScrollPane spaneStudents;

    private JScrollPane spaneResults;

 

    private JPanel panelButtonStudent;

    private JPanel panelButtonResult;

    private JPanel panelButtonMain;

 

    private JButton buttonAddStudent;

    private JButton buttonEditStudent;

    private JButton buttonDelStudent;

 

    private JButton buttonAddResult;

    private JButton buttonDelResult;

 

    public static void setStudents(ArrayList<Student> newValue) {

        students = newValue;

    }

    /**

     * Метод обновления  таблицы Студенты

     */

    public static void updateTableStudents() {

        students = Utils.getStudentsListForGroup(comboBoxGroup.getSelectedItem().toString());

        TableModelStudents refreshModel = new TableModelStudents(students);

        tableStudents.setModel(refreshModel);

    }

    /**

     * Метод обновления  таблицы Результаты

     */

    public static void updateTableResults() {

        results = Utils.getResultListForStudent(tableStudents.getModel().getValueAt(tableStudents.getSelectedRow(), 0).toString());

        TableModelResults refreshModel = new TableModelResults(results);

        tableResults.setModel(refreshModel);

    }

    /**

     * Конструктор

     */

    public JFrameMain() {

        JFrame frame = new JFrame();

        frame.setTitle("Физическое воспитание");

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

        int gW = (int) screenSize.getWidth();

        int gH = (int) screenSize.getHeight();

        frame.setSize(gW / 2, (int) (gH / 1.1));

        frame.setResizable(false);

        frame.setLocationRelativeTo(null);

 

        modelStudents = new TableModelStudents(students);

        modelResults = new TableModelResults(results);

        tableStudents = new JTable(modelStudents);

        tableStudents.setDragEnabled(true);

        tableResults = new JTable(modelResults);

        tableResults.setDragEnabled(true);

        tableStudents.getTableHeader().setFont(new Font("Tahoma", Font.BOLD, 14));

        tableStudents.setFont(new Font("Tahoma", Font.PLAIN, 12));

        tableStudents.addMouseListener(new java.awt.event.MouseAdapter() {

            public void mouseClicked(java.awt.event.MouseEvent evt) {

                buttonAddResult.setEnabled(true);

                buttonDelResult.setEnabled(true);

                results = Utils.getResultListForStudent(tableStudents.getModel().getValueAt(tableStudents.getSelectedRow(), 0).toString());

                updateTableResults();

            }

        });

        tableResults.getTableHeader().setFont(new Font("Tahoma", Font.BOLD, 14));

        tableResults.setFont(new Font("Tahoma", Font.PLAIN, 12));

        tableResults.addMouseListener(new java.awt.event.MouseAdapter() {

            public void mouseClicked(java.awt.event.MouseEvent evt) {

            }

        });

        spaneStudents = new JScrollPane(tableStudents);

        spaneResults = new JScrollPane(tableResults);

        tableStudents.setLayout(new BoxLayout(tableStudents, BoxLayout.Y_AXIS));

        tableResults.setLayout(new BoxLayout(tableResults, BoxLayout.Y_AXIS));

 

        // student panel for button

        panelButtonStudent = new JPanel();

        panelButtonStudent.add(Box.createHorizontalStrut(10));

        buttonAddStudent = new JButton("Добавить студента");

        buttonAddStudent.setFocusable(false);

        panelButtonStudent.add(buttonAddStudent);

        buttonAddStudent.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                JDialogStudent dialogStudentEdit = new JDialogStudent("Добавление студента");

                dialogStudentEdit.setVisible(true);

            }

        });

        panelButtonStudent.add(Box.createHorizontalStrut(10));

        buttonEditStudent = new JButton("Редактировать студента");

        buttonEditStudent.setFocusable(false);

        panelButtonStudent.add(buttonEditStudent);

        buttonEditStudent.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                int selectedId = 0;

                try {

                    selectedId = Integer.parseInt(tableStudents.getModel().getValueAt(tableStudents.getSelectedRow(), 0).toString());

                } catch (Exception ex) {

                    JOptionPane.showMessageDialog(null, "Выберите элемент для редактирования");

                    return;

                }

                for (Student element : students) {

                    if (element.getIdStudent() == selectedId) {

                        JDialogStudent dialogStudentEdit = new JDialogStudent("Редактирование студента");

                        dialogStudentEdit.setValueTable(element);

                        dialogStudentEdit.setVisible(true);

                    }

                }

            }

        });

        panelButtonStudent.add(Box.createHorizontalStrut(10));

        buttonDelStudent = new JButton("Удалить студента");

        buttonDelStudent.setFocusable(false);

        panelButtonStudent.add(buttonDelStudent);

        buttonDelStudent.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                int selectedId = 0;

                try {

                    selectedId = Integer.parseInt(tableStudents.getModel().getValueAt(tableStudents.getSelectedRow(), 0).toString());

                    if (Utils.deleteStudent(selectedId)) {

                        updateTableStudents();

                    }

 

                } catch (Exception ex) {

                    JOptionPane.showMessageDialog(null, "Выберите элемент для редактирования");

                    return;

                }

            }

        });

        panelButtonStudent.add(Box.createHorizontalStrut(10));

        panelButtonStudent.setLayout(new BoxLayout(panelButtonStudent, BoxLayout.Y_AXIS));

        TitledBorder std = BorderFactory.createTitledBorder("Студенты");

        panelButtonStudent.setBorder(std);

 

        // result panel for button

        panelButtonResult = new JPanel();

        panelButtonResult.add(Box.createHorizontalStrut(10));

        buttonAddResult = new JButton("Добавить успеваемость");

        buttonAddResult.setFocusable(false);

        buttonAddResult.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                JDialogResult dialogResult = new JDialogResult("Добавление успеваемости");

                dialogResult.setVisible(true);

                updateTableResults();

            }

        });

        panelButtonResult.add(buttonAddResult);

        panelButtonResult.add(Box.createHorizontalStrut(10));

        buttonDelResult = new JButton("Удалить успеваемость");

        buttonDelResult.setFocusable(false);

        buttonDelResult.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                int selectedId = 0;

                try {

                    selectedId = Integer.parseInt(tableResults.getModel().getValueAt(tableResults.getSelectedRow(), 0).toString());

                    if (Utils.deleteResult(selectedId)) {

                        updateTableResults();

                    }

                } catch (Exception ex) {

                    JOptionPane.showMessageDialog(null, "Выберите элемент для редактирования");

                    return;

                }

            }

        });

        panelButtonResult.add(buttonDelResult);

        panelButtonResult.add(Box.createHorizontalStrut(10));

        panelButtonResult.setLayout(new BoxLayout(panelButtonResult, BoxLayout.Y_AXIS));

        TitledBorder res = BorderFactory.createTitledBorder("Успеваемость");

        panelButtonResult.setBorder(res);

 

        // panel main for button

        panelButtonMain = new JPanel();

        panelButtonMain.setLayout(new BoxLayout(panelButtonMain, BoxLayout.Y_AXIS));

        panelButtonMain.add(panelButtonStudent);

        panelButtonMain.add(panelButtonResult);

        JPanel pan = new JPanel();

        pan.setLayout(new BoxLayout(pan, BoxLayout.X_AXIS));

        pan.add(spaneStudents);

        pan.add(Box.createHorizontalStrut(10));

        pan.add(panelButtonMain);

        pan.add(Box.createHorizontalStrut(10));

 

        buttonAddStudent.setEnabled(false);

        buttonEditStudent.setEnabled(false);

        buttonDelStudent.setEnabled(false);

 

        buttonAddResult.setEnabled(false);

        buttonDelResult.setEnabled(false);

 

        comboBoxGroup = new JComboBox(Utils.getListGroups().getItems());

        comboBoxGroup.setSelectedIndex(-1);

        comboBoxGroup.addItemListener(new ItemListener() {

            @Override

            public void itemStateChanged(ItemEvent e) {

                buttonAddStudent.setEnabled(true);

                buttonEditStudent.setEnabled(true);

                buttonDelStudent.setEnabled(true);

                students = Utils.getStudentsListForGroup((String) comboBoxGroup.getSelectedItem());

                updateTableStudents();

            }

        });

        frame.getContentPane().setLayout(new BorderLayout());

        frame.getContentPane().add(comboBoxGroup, BorderLayout.NORTH);

        frame.getContentPane().add(pan, BorderLayout.CENTER);

        frame.getContentPane().add(spaneResults, BorderLayout.SOUTH);

        frame.setVisible(true);

    }

    /**

     * Модель таблицы студентов

     */

    public static class TableModelStudents implements TableModel {

        private Set<TableModelListener> listeners = new HashSet<TableModelListener>();

        private List<Student> students;

        public TableModelStudents(List<Student> students) {

            this.students = students;

        }

        public void addTableModelListener(TableModelListener listener) {

            listeners.add(listener);

        }

        public Class<?> getColumnClass(int columnIndex) {

            return String.class;

        }

        public int getColumnCount() {

            return 6;

        }

        public String getColumnName(int columnIndex) {

            switch (columnIndex) {

                case 0:

                    return "Код";

                case 1:

                    return "Фамилия";

                case 2:

                    return "Имя";

                case 3:

                    return "Отчество";

                case 4:

                    return "Группа";

                case 5:

                    return "Телефон";

            }

            return "";

        }

        public int getRowCount() {

            return students.size();

        }

        public Object getValueAt(int rowIndex, int columnIndex) {

            Student student = students.get(rowIndex);

 

            switch (columnIndex) {

                case 0:

                    return student.getIdStudent();

                case 1:

                    return student.getSurnameStudent();

                case 2:

                    return student.getFirstnameStudent();

                case 3:

                    return student.getMiddlenameStudent();

                case 4:

                    return student.getNameGroup();

                case 5:

                    return student.getPhoneStudent();

            }

            return "";

        }

        public boolean isCellEditable(int rowIndex, int columnIndex) {

            return false;

        }

        public void removeTableModelListener(TableModelListener listener) {

            listeners.remove(listener);

        }

        public void setValueAt(Object value, int rowIndex, int columnIndex) {

            //---

        }

    }

    /**

     * Модель таблицы результатов

     */

    public static class TableModelResults implements TableModel {

 

        private Set<TableModelListener> listeners = new HashSet<TableModelListener>();

 

        private List<Result> results;

 

        public TableModelResults(List<Result> results) {

            this.results = results;

        }

        public void addTableModelListener(TableModelListener listener) {

            listeners.add(listener);

        }

        public Class<?> getColumnClass(int columnIndex) {

            return String.class;

        }

        public int getColumnCount() {

            return 6;

        }

        public String getColumnName(int columnIndex) {

            switch (columnIndex) {

                case 0:

                    return "Код";

                case 1:

                    return "Семестр";

                case 2:

                    return "Преподаватель";

                case 3:

                    return "Норматив";

                case 4:

                    return "Оценка";

                case 5:

                    return "Дата сдачи";

            }

            return "";

        }

        public int getRowCount() {

            return results.size();

        }

        public Object getValueAt(int rowIndex, int columnIndex) {

            Result result = results.get(rowIndex);

 

            switch (columnIndex) {

                case 0:

                    return result.getIdResult();

                case 1:

                    return result.getSemestr();

                case 2:

                    return result.getLecturer();

                case 3:

                    return result.getNormative();

                case 4:

                    return result.getEvaluation();

                case 5:

                    return result.getDeliveryDate();

            }

            return "";

        }

        public boolean isCellEditable(int rowIndex, int columnIndex) {

            return false;

        }

        public void removeTableModelListener(TableModelListener listener) {

            listeners.remove(listener);

        }

        public void setValueAt(Object value, int rowIndex, int columnIndex) {

            //---

        }

    }

    /**

     * Метод получения  ИД студента

     * @return ИД

     */

    public static int getIdStudent() {

        return Integer.parseInt(tableStudents.getModel().getValueAt(tableStudents.getSelectedRow(), 0).toString());

    }

}

 

 

JFrameLogin

 

package view;

 

import controls.ConnectionDB;

import controls.Utils;

import javax.swing.*;

import java.awt.*;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.sql.*;

/**

* авторизация пользователей

*/

public class JFrameLogin extends JFrame {

    private static PreparedStatement prst = null;

    private static Connection con = null;

    private static Statement сt = null;

    private static ResultSet rs = null;

 

    private JPanel panelTextField;

    private JPanel panelLabel;

    private JPanel panelButton;

    private JPanel panelLabelField;

    private JButton buttonLogin;

    private JButton buttonCancel;

 

    private JTextField textFieldLogin;

    private JPasswordField textFieldPassword;

 

    private JLabel labelLogin;

    private JLabel labelPassword;

    /**

     * конструктор

     */

    public JFrameLogin() {

        final JFrame frame = new JFrame();

        frame.setTitle("Авторизация");

Информация о работе ПЗ автоматизації обліку успішності з фізичного виховання