Файл: Курсовая работа Исполнитель Студент группы итп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 с базой данных военкомата является эффективным и удобным инструментом для работы с информацией о призывниках и военнослужащих. Оно позволяет ускорить и упростить процесс обработки информации, а также повысить точность и надежность ее хранения.

Список использованных источников





  1. Introduction to Python Database Programming / Marc-André Lemburg

  2. Изучаем Python / Марк Лутц

  3. Документация по языку программирования Python [Электронный ресурс] // URL: https://learn.microsoft.com/ru-ru/dotnet/python/

  4. Advanced SQLite Usage in Python [Электронный ресурс] // URL:

https://www.pythoncentral.io/advanced-sqlite-usage-in-python/

  1. Документация по 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()