Скачиваний:
11
Добавлен:
15.08.2023
Размер:
431.42 Кб
Скачать

3 Разработка структуры программы

Программа по обыкновению состоит из модулей back-end и front-end программирования (логики программы и интерфейса).

Основное окно программы:

  1. Главное меню: QMenuBar

  2. Панель инструментов: QToolBar

  3. Таблица: QTableWidget

  4. Строка статуса таблицы: QLineEdit

Диалог добавления нового элемента:

  1. Строка номера игрока: QLineEdit

  2. Строка возраста игрока: QlineEdit_2

  3. Строки рейтинга игрока: QlineEdit_3 и QlineEdit_4

  4. Строка имени игрока: QLineEdit_5

  5. Строка команды игрока: QLineEdit_6

  6. Блок кнопок для применения/отклонения параметров: buttonBox

Диалог поиска элемента по таблице

  1. Строка поиска элемента: QLineEdit

  2. Применение/отклонение параметров: buttonBox

Диалог редактирования элемента базы данных:

  1. Строка номера игрока: QLineEdit

  2. Строка возраста игрока: QlineEdit_2

  3. Строки рейтинга игрока: QlineEdit_3 и QlineEdit_4

  4. Строка имени игрока: QLineEdit_5

  5. Строка команды игрока: QLineEdit_6

  6. Блок кнопок для применения/отклонения параметров: buttonBox

Код:

  1. Основной класс формы Qt – окно главной программы.

  2. Файл с имплементацией главной формы

  3. Класс формы Qt – окно добавления элемента.

  4. Файл с имплементацией окна добавления

  5. Класс формы Qt – окно поиска элемента.

  6. Файл с имплементацией окна поиска элемента.

  7. Класс формы Qt – окно изменение элемента.

  8. Файл с имплементацией окна изменения элемента.

  9. Класс хэш-таблицы

  10. Файл с имплементацией хэш-таблицы

  11. Класс базы данных FDB

  12. Файл с имплементацией базы данных

  13. Класс описывающий футбольного игрока

  14. Файл с имплементацией класса описывающего футбольного игрока

4 Разработка собственных классов

4.1 dbWindow – класс главного окна и функций яп.

Поля класса:

1. Определение редактирования базы данных – bool isEdit()

Методы класса:

1. Инициализация главного окна void - initWindow()

2. Добавление элемента в базу данных из формы нового элемента - void ldToTable()

3. Выбор действия «новый файл» - void on_actionNew_triggered()

4. Выбор действия «открыть файл» - void on_actionOpen_triggered()

5. Выбор действия «сохранить файл» - void on_actionSave_triggered()

6. Выбор действия «добавить элемент» - void on_actionAdd_new_item_triggered()

7. Выбор действия «удалить элемент» - void on_actionDelete_item_triggered()

8. Выбор действия «слияние бд» - void on_actionMerge_triggered()

9. Выбор действия «поиск» - void on_actionFind_triggered()

10. Выбор действия «информация» - void on_actionHelp_triggered()

11. Выбор действия «редактировать» - void on_actionEdit_triggered()

12. Добавление нового элемента в таблицу из диалогового окна – void setNewTableItemFromDialog(int number, int age, string rate, string name, string team )

13. Логика поиска элементов в таблице void findItemInWidgetTable(QString wanted_line)

14. Изменение элемента базы данных из диалогового окна – void repalceTableItem(int number, int age, string rate, string name, string team)

15. Вывод количества элементов базы данных в окно статуса базы void showItemAmountStauts()

Объекты:

1. Объект класса базы данных – FDB fdb

2. Указатель на объект интерфейса окна ui::dbWindow *iu

4.2 editdialog – класс окна редактирования записей

Поля класса:

Отсутствуют

Методы класса:

1. Применение отредактированных данных – void on_ButtonBox_accepted()

2. Сигнал отправки отредактированных данных в главную форму – void senEditToTabel( int number, int age, string rate, string name, string team)

Объекты:

1. Указатель на объект интерфейса окна редактирования записей – Ui::editdialog *ui

4.3 finindb – класс окна поиска по базе данных

Поля класса:

Отсутствуют

Методы класса:

1. Сигнал нажатие кнопки «ОК» - void okClicled(QString wantedLine)

2. Нажатие кнопки, запускающий логику поиска – void on_buttonBox_accepted()

Объекты:

1. Указатель на объект интерфейса окна поиска –Ui::finindb *ui

4.4 newitemdialog – класс окна добавления нового элемента

Поля класса:

1. Поле номера игрока – int number

2. Поле возраста игрока – int age

3. Поле рейтинга игрока – int rating

4. Поле имени игрока – string name

5. Поле команды игрока – string team

Методы класса:

1. Сигнал применения параметров при нажатии кнопки «ОК» - void acceptClicked( int number, int age, string rating, string name, string team)

2. Запуск логики добавления элемента по нажатии кнопки – void on_buttonBox_accepted()

Объекты:

1. Указатель на объект интерфейса окна ui::newitemdialog *ui

4.5 FDB – класс базы данных

Поля класса:

1. Поле пути к файлу – string dbfile

2. Копия одной строки их полученного файла – string line

3. Проверка на соответствие передаваемого файла нужному формату разметки базы данных – bool isdatabase()

Методы класса:

1. Парсер файла формата базы данных – void dbparser(string path)

2. Шифрование базы данных – string encrypt(string path)

3. Расшифровка базы данных - string decrypt(string path)

4. Открытие файла и размещение в таблице – void open_n_place(string path)

5. Открытие и размещение зашифрованного файла в таблице – void dopen_n_place(string path)

6. Запись информации из контейнера базы данных файл и его сохранение – void writeToDB(string path)

7. Слияние баз данных – void merge(string path)

Объекты:

1. Объект хэш-таблицы HashTable DataBase

4.6 HashTable – класс хэш-таблицы (контейнер)

Поля класса:

1. Хеш группы – static const int hashGroups

Методы класса:

1. Функция хеширования – int hashFunction(int key)

2. Геттер номера игрока – size_t getPlayerNumber(size_t key)

3. Геттер возраста игрока – size_t getPlayerAge(size_t key)

4. Геттер рейтинга игрока – string getPlayerRating(size_t key)

5. Геттер имени игрока – string getPlayerName(size_t key)

6. Геттер команды игрока – string getPlayerTeam(size_t key)

7. Геттер количества ключей – size_t index_amount()

8. Геттер ключа из списка ключей по индексу – size_t get_index(size_t number)

9. Проверка на пустоту таблицы – bool isEmpty()

10. Проверка на входимость ключа в таблицу – bool isKeyExist(int key)

11. Добавление элемента в таблицу – void insertItem(int key, FootbalPlayer value)

12. Удаление элемента из таблицы – void removeItem(int key)

13. Вывод таблицы на экран (только консоль) – void printTable()

14. Очистка всей таблицы – void clear()

15. Изменение элемента таблицы – void replaceItem(int key, FootbalPlayer value)