Автор: Пользователь скрыл имя, 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
import javax.swing.border.
import javax.swing.event.
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(
TableModelStudents refreshModel = new TableModelStudents(students);
tableStudents.setModel(
}
/**
* Метод обновления таблицы Результаты
*/
public static void updateTableResults() {
results = Utils.getResultListForStudent(
TableModelResults refreshModel = new TableModelResults(results);
tableResults.setModel(
}
/**
* Конструктор
*/
public JFrameMain() {
JFrame frame = new JFrame();
frame.setTitle("Физическое воспитание");
frame.
Dimension screenSize =
Toolkit.getDefaultToolkit().
int gW = (int) screenSize.getWidth();
int gH = (int) screenSize.getHeight();
frame.setSize(gW / 2, (int) (gH / 1.1));
frame.setResizable(false);
frame.setLocationRelativeTo(
modelStudents = new TableModelStudents(students);
modelResults = new TableModelResults(results);
tableStudents = new JTable(modelStudents);
tableStudents.setDragEnabled(
tableResults = new JTable(modelResults);
tableResults.setDragEnabled(
tableStudents.getTableHeader()
tableStudents.setFont(new Font("Tahoma", Font.PLAIN, 12));
tableStudents.
public void mouseClicked(java.awt.event.
buttonAddResult.setEnabled(
buttonDelResult.setEnabled(
results = Utils.getResultListForStudent(
updateTableResults();
}
});
tableResults.getTableHeader().
tableResults.setFont(new Font("Tahoma", Font.PLAIN, 12));
tableResults.addMouseListener(
public void mouseClicked(java.awt.event.
}
});
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.
buttonAddStudent = new JButton("Добавить студента");
buttonAddStudent.setFocusable(
panelButtonStudent.add(
buttonAddStudent.
public void actionPerformed(ActionEvent e) {
JDialogStudent dialogStudentEdit = new JDialogStudent("Добавление студента");
dialogStudentEdit.setVisible(
}
});
panelButtonStudent.add(Box.
buttonEditStudent = new JButton("Редактировать студента");
buttonEditStudent.
panelButtonStudent.add(
buttonEditStudent.
public void actionPerformed(ActionEvent e) {
int selectedId = 0;
try {
selectedId = Integer.parseInt(
} catch (Exception ex) {
JOptionPane.showMessageDialog(
return;
}
for (Student element : students) {
if (element.getIdStudent() == selectedId) {
JDialogStudent dialogStudentEdit = new JDialogStudent("Редактирование студента");
dialogStudentEdit.
dialogStudentEdit.setVisible(
}
}
}
});
panelButtonStudent.add(Box.
buttonDelStudent = new JButton("Удалить студента");
buttonDelStudent.setFocusable(
panelButtonStudent.add(
buttonDelStudent.
public void actionPerformed(ActionEvent e) {
int selectedId = 0;
try {
selectedId = Integer.parseInt(
if (Utils.deleteStudent(
updateTableStudents();
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(
return;
}
}
});
panelButtonStudent.add(Box.
panelButtonStudent.setLayout(
TitledBorder std = BorderFactory.
panelButtonStudent.setBorder(
// result panel for button
panelButtonResult = new JPanel();
panelButtonResult.add(Box.
buttonAddResult = new JButton("Добавить успеваемость");
buttonAddResult.setFocusable(
buttonAddResult.
public void actionPerformed(ActionEvent e) {
JDialogResult dialogResult = new JDialogResult("Добавление успеваемости");
dialogResult.setVisible(true);
updateTableResults();
}
});
panelButtonResult.add(
panelButtonResult.add(Box.
buttonDelResult = new JButton("Удалить успеваемость");
buttonDelResult.setFocusable(
buttonDelResult.
public void actionPerformed(ActionEvent e) {
int selectedId = 0;
try {
selectedId = Integer.parseInt(tableResults.
if (Utils.deleteResult(
updateTableResults();
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(
return;
}
}
});
panelButtonResult.add(
panelButtonResult.add(Box.
panelButtonResult.setLayout(
TitledBorder res = BorderFactory.
panelButtonResult.setBorder(
// panel main for button
panelButtonMain = new JPanel();
panelButtonMain.setLayout(new BoxLayout(panelButtonMain, BoxLayout.Y_AXIS));
panelButtonMain.add(
panelButtonMain.add(
JPanel pan = new JPanel();
pan.setLayout(new BoxLayout(pan, BoxLayout.X_AXIS));
pan.add(spaneStudents);
pan.add(Box.
pan.add(panelButtonMain);
pan.add(Box.
buttonAddStudent.setEnabled(
buttonEditStudent.setEnabled(
buttonDelStudent.setEnabled(
buttonAddResult.setEnabled(
buttonDelResult.setEnabled(
comboBoxGroup = new JComboBox(Utils.getListGroups(
comboBoxGroup.
comboBoxGroup.addItemListener(
@Override
public void itemStateChanged(ItemEvent e) {
buttonAddStudent.setEnabled(
buttonEditStudent.setEnabled(
buttonDelStudent.setEnabled(
students = Utils.getStudentsListForGroup(
updateTableStudents();
}
});
frame.getContentPane().
frame.getContentPane().add(
frame.getContentPane().add(
frame.getContentPane().add(
frame.setVisible(true);
}
/**
* Модель таблицы студентов
*/
public static class TableModelStudents implements TableModel {
private Set<TableModelListener> listeners = new HashSet<TableModelListener>();
private List<Student> students;
public TableModelStudents(List<
this.students = students;
}
public void addTableModelListener(
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(
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(
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(
listeners.remove(listener);
}
public void setValueAt(Object value, int rowIndex, int columnIndex) {
//---
}
}
/**
* Метод получения ИД студента
* @return ИД
*/
public static int getIdStudent() {
return Integer.parseInt(
}
}
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("Авторизация");
Информация о работе ПЗ автоматизації обліку успішності з фізичного виховання