питання при натисканні на кнопку Ок raquo ;, метод setQuestion для установки полів вікна з існуючого питання.
Клас MainWindow є класом головного вікна програмного програми - сервера. У ньому відображається список доданих тестів і кнопки для додавання, редагування або видалення тесту, а також перегляду результатів. У даних цього класу містяться наступні елементи: setDlg - вікно налаштувань тесту, queDlg - вікно додавання питання, testDlg - вікно редагування питань тесту, tests - контейнер тестів, testModel - модель представлення тестів можливих для тестування, і прапори isEditQuestion і isEditTest - для установки ознаки редагування або додавання нового тесту або питання. Клас надає методи setNewTest - слот для обробки натиснення на кнопку створення нового тесту, setTestWindows - слот для відображення вікна редагування питань, setFinish - слот для обробки закінчення редагування, setBackToSet - слот для повернення до редагування налаштувань, setEditQue - слот для редагування питання, setAddQue -слот для обробки додавання нового питання, setAddToList - слот для додавання нового питання в контейнер тестів, setAddTheme - слот для додавання теми, setDeleteTheme - слот для видалення теми, setChangeTheme - слот для зміни обраної теми, setEditTest - слот для обробки натиснення кнопки редагування тесту.
На малюнку 4.3 зображена Діаграма класів QTest і QTestingTask. QTest є сховищем питань по одному предмету, а QTestingTask - тестовим квитком для студента. QTest має наступні дані: caption - назва тесту, questions - контейнер для зберігання питань, quantityOfQuestions - кількість питань в одному тестовому квитку, time - час для проходження тесту, usedQuestions - контейнер для зберігання питань, які вже були обрані в тестові квитки, usedThemes -те ж саме для тем. Методи: addQuestion - для додавання питання в тест, delQuestion - для видалення питання, addTheme - для додавання теми, delTheme - видалення теми, editQuestions - для редагування питань, createTask - для створення тестового квитка, getQuestion - для отримання квитка, getThemes - для отримання назви всіх тим тесту, setCaption - для встановлення назви, getCaption - для отримання назви тесту. Клас QTestingTask має наступні дані: questions - контейнер для зберігання питань, index - унікальний номер тестованого, time - час проходження тесту, date - дата проходження тесту, fio - ПІБ студента, group - група студента, mark - оцінка. Методи: addQuestion - додавання питання в квиток, getMark - перевірка відповідей та виставляння оцінки.
Малюнок 4.4 - Діаграма класів надають графічне оформлення програмної системи клієнта
На малюнку 4.4 представлена ??діаграма класів надають графічне оформлення програмної системи клієнта.
Клас QNetworkDialog представляє вікно введення IP адреси і порту серввера. Даний клас не має даних, його методи: getIP - отримання IP адреси з вікна, getPort - отримання порту з вікна, setNextClicked - обробка натискання на кнопку Next.
Клас QExitDialog надає графічне оформлення вікна для попередження перед виходом. Методи: setOkClicked - обробка натискання на кнопку Ok, setCancelClicked - обробка натискання на кнопку Cancel.
Клас MainWindow є головним вікном додатка клієнта. Його дані: tstDlg, exitDlg, nameDlg - екземпляри класів описаних вище, tcpSocket - об'єкт для роботи з tcp з'єднанням, uniqueID - унікальний номер тестованого, questionNumbers - модель для навігації по номерам питань, questions - контейнер з питаннями, answers - контейнер з відповідями. Методи: readData - читання даних по мережі, requestTestList - відправка запиту на список тестів, requestTask - відправка запиту на нове завдання, sendToServer - відправка результатів на сервер, setNextClicked - обробка натискання на кнопку Next, setBackClicked - обробка натискання на кнопку Back, setExitClicked -обробка натискання на кнопку Exit, setQuestionChanged - обробка зміни номера питання у вікні навігації.
4.2 Інформаційний простір системи
На малюнку 4.5 зображено інформаційно простір програмної системи. З вікна типу QSettingsDialog в MainWindow передаються час проходження тесту і кількість питань у квитку. З вікна типу QQuestionDialog передається об'єкт - спадкоємець класу QQuestion у вікно QTestWindow. Далі з цього вікна передається об'єкт класу QTest в MainWindow сервера. Також з сервера клієнту передаються питання у вигляді списку типу QQuestion. В клієнті з вікна типу QSettingsWindow передається інформація про студента, а саме його ім'я і група. Далі відбувається тестування з отриманим питань і відповіді передаються сервера у вигляді списку строкового типу, а також передається ім'я і група студента.
Малюнок 4.5 - Інформаційний простір програмної сис...