ів для завдання: testInput і testOutput. Клас надає методи для установки і читання даних.
Клас QGeneratedQuestion є класом - питанням типу обчислити сгенерированное вираз. Він містить наступні дані: parameters - контейнер для зберігання діапазонів параметрів вираження і expression - контейнер для зберігання операторів вираження і положення параметрів у виразі. Клас надає методи для установки і зчитування даних.
Клас QInitQuestion є класом - питанням типу визначити результат ініціалізації вираження. У даних міститься двомірний строковий контейнер для зберігання параметрів ініціалізує вираження. Клас надає метод для установки і зчитування цього контейнера.
Малюнок 4.2 - Діаграма класів надають графічне оформлення програмної системи сервера
На малюнку 4.2 представлені класи, що надають графічне оформлення програмної системи.
Всі класи є спадкоємцями клас QWidget - базового класу для опису класів - вікон графічного представлення бібліотеки Qt. Більш докладний опис цього класу можливо знайти в довідковій системі бібліотеки Qt.
Класи QWriteProgramDialog, QOutputDialog, QInitDialog, QGeneratedDialog надають графічне представлення чотирьох типів питань похідних від QQuestion представлених на малюнку 4.1.
Клас QWriteProgramDialog містить в даних наступні елементи delegate - делегат для представлення в таблицях випадаючого списку можливих типів для вибору, inTypesModel, outTypesModel - моделі для кончини вхідних і вихідних типів програми, inExample, outExample - моделі для представлення прикладів вихідних і вхідних параметрів. inTest, outTest - моделі, для представлення тестів для написаної програми. Клас надає метод clearWidget для очищення вікна, а також setParam для установки його налаштувань.
Клас QOutputDialog містить в даних делегат, аналогічно QWriteProgramDialog, а також дві моделі представлення даних typesModel - для зберігання типів вихідних параметрів і rangesModel - для зберігання діапазонів цих параметрів. Клас також надає методи clearWidget - для очищення вікна і методи для установки і зчитування даних і параметрів.
Клас QGeneratedDialog містить в даних строковий контейнер expression для зберігання операторів і положення параметрів, і контейнер з цілочисельних пар parameters для зберігання діапазонів вхідних параметрів. Також клас надає методи для установки і читання своїх даних, а також метод addCloseBkt - для додавання в вираз закриває дужки, addOpenBkt - для додавання в вираз відкриває дужки, addOperator - для додавання в вираз оператора і addParameter - для додавання в вираз параметра.
Клас QInitDialog містить в даних модель expressionModel для зберігання параметрів ініціалізує вираження. Клас надає методи для читання і установки цієї моделі, а також метод clearWidget - для очищення вікна.
Клас QSettingsDialog являє собою вікно настоянок тесту. У даних цього вікна присутні file - строкове поле для зберігання назви файлу тесту і isFileSelected - булевська змінна, яка зберігає значення, чи вибраний файл для відкриття або починати новий тест. Клас надає методи для читання значень полів введення вікна, а саме часу тестування - getTime, кількості питань - getQuestionAmount і читання назви тесту getCaption. Також клас надає метод для установки цих полів - setParameters і метод - слот для обробки натиснення на кнопку Далі .
Клас QTestWindow являє собою вікно для редагування тем і завдань (питань) тесту. Він містить наступні дані: themesModel - модель даних для представлення набору тем у вікні, questionsModel - контейнер моделей даних для надання безлічі наборів питань за темами у вікні і addThemeDialog - вікно для додавання теми. Також клас надає методи для установки і зчитування своїх даних. А також методи - слоти: setAdd - при натисненні на кнопку додавання питання, setEdit - при натисненні на кнопку редагування питання, setDelete - при натисненні на кнопку видалення питання, setAddTheme - при натисненні на кнопку додавання теми, setDeleteTheme - при натисненні на кнопку видалення теми , setBack - при натисненні на кнопку повернення у вікно налаштувань, setFinish - при натисненні на кнопку завершення редагування питань тесту, а також setThemeChanged - при зміні теми для відображення питань теми, яка була обрана.
Клас QQuestionDialog являє собою вікно для створення питання. У своїх даних він зберігає питання всіх чотирьох типів та вікна для їх подання. Він відображає одне з цих вікон в один час усередині деякого контейнера вікон всередині себе - layout типу QVBoxLayout. Клас надає методи clearWidget - для очищення вікна, setCurrentWidget - для установки конкретного вікна питання в контейнері вікон, createQuestion - метод для створення ...