Файл: Курсовая работа Исполнитель Студент группы итп31 Н. А. Ковалёв Научный.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.02.2024
Просмотров: 160
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Также необходимо оценить размер БД, чтобы убедиться, что можно получить требуемый уровень производительности и у вас достаточно места для хранения данных.
3.1 Состав таблиц базы данных
База данных приложения военкомат включает десять таблиц, которые содержат информацию о гражданах и их статусе в отношении военной службы.
Основные таблицы:
Таблица военнообязанный: содержит информацию о каждом гражданине, включая ФИО, дату призыва, телефон.
Таблица категория запаса: содержит информацию о том, какая категория запаса у военнослужащего, а именно категорию запаса, группа учета, состав.
Таблица сборы: содержит дату о каждых проходивших сборах, их начало и конец.
Таблица вид отсрочки: содержит название вида отсрочки предоставленной военнообязанному.
Таблица отсрочка: содержит дату о периоде отсрочки выданной военнообязанному, то есть ее начало и конец.
Таблица военно-учетная специальность: содержит информацию о специальности выданной военному на время прохождения службы.
Таблица медицинская комиссия: содержит информацию о дате прохождения комиссии и конечной группе здоровья которую военнообязанный получил.
Таблица звание: содержит звание присвоенному военному.
Таблица род войск: содержит название рода войск к которому относится военнообязанный.
Таблица воинская часть: содержит информацию о адресе нахождения, телефоне воинской части.
Каждая из этих таблиц может содержать дополнительные поля и связи с другими таблицами в базе данных, которые могут использоваться для более детального отслеживания и управления информацией о гражданах и их статусе в отношении военной службы.
Рисунок 1 - Схема данных базы данных “Военкомат”
3.2 Структура таблиц базы данных
Таблица вид отсрочки
Код | Счетчик | Код вида отсрочки |
Название | Короткий текст | Название вида отсрочки |
Таблица военнообязанный
Код | Счетчик | Код военнообязанного |
ФИО | Короткий текст | Фио |
Телефон | Числовой | Телефон |
Дата призыва | Дата и время | Дата призыва |
Код звание | Числовой | Код звания |
Код военно-учетная специальность | Числовой | Код военно-учетная специальность |
Код категория запаса | Числовой | Код категория запаса |
Код воинская часть | Числовой | Код воинская часть |
Таблица военно-учетная специальность
Код | Счетчик | Код военно-учетная специальность |
Название | Короткий текст | Название военно-учетной специальности |
Таблица воинская часть
Код | Счетчик | Код воинская часть |
Адрес | Короткий текст | Адрес воинской части |
Телефон | Числовой | Телефон воинской части |
Код род войск | Числовой | Код рода войск |
Таблица звание
Код | Счетчик | Код звания |
Звание | Короткий текст | Звание военнообязанного |
Таблица категория запаса
Код | Счетчик | Код категории запаса |
Категория запаса | Короткий текст | Время в которое годен |
Группа учета | Числовой | Группа учета военнообязанного |
Состав | Короткий текст | Количество людей в составе |
Таблица медицинская комиссия
Код | Счетчик | Код медицинской комиссии |
Дата | Дата и время | Дата прохождения медицинской комиссии |
Группа здоровья | Числовой | Группа здоровья военнообязанного |
Код военнообязанный | Числовой | Код военнообязанного |
Таблица отсрочка
Код | Счетчик | Код отсрочки |
Дата начала | Дата и время | Дата начала отсрочки |
Дата конца | Дата и время | Дата конца отсрочки |
Код вид отсрочки | Числовой | Код вида отсрочки |
Код военнообязанный | Числовой | Код военнообязанного |
Таблица род войск
Код | Счетчик | Код рода войск |
Название | Короткий текст | Название рода войск |
Таблица сборы
Код | Счетчик | Код сборов |
Дата начала | Дата и время | Дата начала сборов |
Дата конца | Дата и время | Дата конца сборов |
Код военнообязанного | Числовой | Код военнообязанного |
4 Схема диалога пользователя с приложением
При входе в приложение открывается окно регистрации и производится проверка на существующего пользователя, берутся его данные из базы данных. Если таких данный нет – запускается процесс простой регистрации, где в процессе нее пользователю нужно будет ввести свой логин и пароль. Если, же, пройдена
регистрация и данные пользователя существуют, наступает следующий этап, а, именно, пользователя оповещают о успешности входа в приложение.
Процесс регистрации реализован поэтапно: при старте приложения, пользователь вводит свои логин и пароль. Проверяет его наличие в базе зарегистрированных пользователей. Если пользователя там нет, то в базу записывается информация о нем, а точнее: user_login, user_password. В процессе этого диалога, этап регистрации, на котором находится пользователь меняется после каждого сообщения. При первой записи в базе его этап устанавливается как «start» и после каждого сообщения он проверяется. Позже, после попытки запросить доступ к приложению, бот первым делом проверит наличие пользователя в базе данных и его этап регистрации. Если пользователь присутствует и его этап равен «finish», то ему предоставляется доступ.
Рисунок 2 – Регистрация
Приведу пример возможной схемы диалога пользователя с приложением :
1. Пользователь запускает приложение и видит на экране основное меню.
2. Приложение запрашивает у пользователя выбор действия: поиск призывников, добавление нового призывника, изменение данных существующего призывника или удаление призывника.
3. Если пользователь выбирает поиск призывников, приложение запрашивает у пользователя критерии поиска (например, ФИО, возраст, адрес проживания) и выводит на экран результаты поиска.
4. Если пользователь выбирает добавление нового военнообязанного, приложение запрашивает у пользователя необходимую информацию (например, ФИО, номер телефона, адрес проживания) и сохраняет ее в базе данных.
5. Если пользователь выбирает изменение данных существующего военнообязанного, приложение запрашивает у пользователя идентификатор военнообязанного и запрашивает у него новую информацию для замены.
6. Если пользователь выбирает удаление военнообязанного, приложение запрашивает у пользователя идентификатор призывника и удаляет его из базы данных.
7. Приложение предоставляет пользователю возможность вернуться в основное меню или выйти из приложения.
Кроме того, приложение может содержать дополнительные опции, такие как экспорт данных в файлы или импорт данных из внешних источников. Все действия пользователя должны сопровождаться информативными сообщениями на экране, чтобы пользователь мог понимать, какие действия выполняет приложение и какой результат он ожидает получить.
Заключение
В ходе выполнения данной работы были изучены основы программирования на языке Python, работа с базами данных и их взаимодействие. Были рассмотрены основные принципы работы военкомата, его задачи и требования к базе данных.
Разработанное приложение на Python позволяет хранить информацию о призывниках и военнослужащих в базе данных, а также осуществлять поиск по различным критериям, таким как ФИО, телефон, адрес проживания и т.д. Пользователь может добавлять новых военнообязанных, изменять и удалять существующую информацию. Также приложение позволяет автоматически определять военнообязанного на основе введенной информации.
Была проведена оценка производительности приложения, а именно времени выполнения запросов к базе данных и скорости отображения результата на экране. Результаты оценки производительности были сравнены с требованиями к производительности военкомата и выявлено, что приложение отвечает всем необходимым требованиям.
Выводы, сделанные в ходе выполнения работы, подтверждают, что разработанное приложение на Python с базой данных военкомата является эффективным и удобным инструментом для работы с информацией о призывниках и военнослужащих. Оно позволяет ускорить и упростить процесс обработки информации, а также повысить точность и надежность ее хранения.
Список использованных источников
-
Introduction to Python Database Programming / Marc-André Lemburg -
Изучаем Python / Марк Лутц -
Документация по языку программирования Python [Электронный ресурс] // URL: https://learn.microsoft.com/ru-ru/dotnet/python/ -
Advanced SQLite Usage in Python [Электронный ресурс] // URL:
https://www.pythoncentral.io/advanced-sqlite-usage-in-python/
-
Документация по FileHelpers Library [Электронный ресурс] // URL: https://www.filehelpers.net/ -
Приложение
import sqlite3
from PyQt5 import QtWidgets
import reglog_ui
db = sqlite3.connect('database.db')
cursor = db.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS users(
login TEXT,
password TEXT
)''')
db.commit()
for i in cursor.execute('SELECT * FROM users'):
print(i)
class Registration(QtWidgets.QMainWindow, reglog_ui.Ui_MainWindow):
def __init__(self):
super(Registration, self).__init__()
self.setupUi(self)
self.label.setText('')
self.label_2.setText('Регистрация')
self.lineEdit.setPlaceholderText('Введите Логин')
self.lineEdit_2.setPlaceholderText('Введите Пароль')
self.pushButton.setText('Регистрация')
self.pushButton_2.setText('Вход')
self.setWindowTitle('Регистрация')
self.pushButton.pressed.connect(self.reg)
self.pushButton_2.pressed.connect(self.login)
def login(self):
self.login = Login()
self.login.show()
self.hide()