Курсач - копия. Методика роботи користувача з системою 1 Керівництво програміста Програма призначена для навчання мові C. Програма має наступні функції підвищити точність, збереження і захищеність даних
Скачать 0.52 Mb.
|
MainWindow, який видаляє користувацький інтерфейс після завершення виконання програми; підвищити точність, збереження і захищеність даних; прискорити процес пошуку потрібної інформації; підвищити зручність роботи з базою даних; здійснити контроль введення; систематизувати зберігання даних; максимально перехопити системні помилки; спростити процедуру введення даних. головний модуль interactive_c.pro містить інформацію про всі файли проекту. обробник подій MainWindow, який завантажує потрібні елементи користувацького інтерфейсу на екран; обробник подій обробник подій on_pushButton_clicked, який завантажує на екран елементи користувацького інтерфейсу потрібні для перегляду даних у книзі; обробник подій on_pushButton_2_clicked, який завантажує на екран елементи користувацького інтерфейсу потрібні для відповіді на питання, завантажує з бази даних перше питання перевіряючи тему глави документу яка була відкрита, завантажує з бази даних відповіді на перше питання по темі; обробник подій on_pushButton_5_clicked, завантажує на екран всі наступні питання після першого та всі відповіді к цім питанням, перевіряє правильність відповідей, записує кількість правильних відповідей, виводить вікно с кількістю набраних балів, після проходження тесту знову завантажує на екран елементи користувацького інтерфейсу потрібні для перегляду даних у книзі; в) модуль main.cpp завантажує графічний інтерфейс користувача; г) модуль mainwindow.h містить:
г) модуль res.qrc містить інформацію о всіх ресурсах проекту. 2.3.2 Керівництво оператора Програма призначена для навчання мові C. Програма має наступні функції:
Для функціонування розробленого програмного продукту, а також в разі його допрацювання, необхідно мати таку мінімальну апаратну платформу: персональний комп’ютер з мікропроцесором Intel Pentium 1,8 ГГц та вище, оперативна пам’ять 512 Мб і вище, вільного простору на жорсткому диску 200Мб, монітор, клавіатура та маніпулятор типу “миша”. На всі пристрої, що використовуються в системі потрібні драйвери цих пристроїв. На персональному комп’ютері повинно бути встановлено наступне програмне забезпечення: операційна система Windows 7, DB Browser. Для інсталяції програмного продукту необхідно скопіювати на комп’ютер файл Clearn.exe та базу даних 1.db. Після запуску файлу Clearn.exe одразу ж буде відкрите вікно «Clearn», це вікно зображене на рисунку 2.3. Рисунок 2.3 – Зовнішній вигляд головного вікна програми «Clearn» На вікні «Clearn» міститься кнопки «Start» та «Exit» за допомогою яких відбувається початок работ из додатком чи закриття додатку. Після натиснення на кнопку «Start» з'являється вікно в якому ви можете переглядати інформацію з підручника мови С у вигляді HTML сторінок та перейти к питанням до вибраної теми. Це вікно зображено на рисунку 2.4. Рисунок 2.4 – Зовнішній вигляд вікна перегляду HTML На вікні перегляду HTML міститься кнопка «Questions» за допомогою якої відбувається перехід з режиму читання у режим відповіді на питання по матеріалу. Після натиснення на кнопку «Questions» відображується вікно відповіді на запитання. Це вікно зображено на рисунку 2.5. Рисунок 2.5 – Зовнішній вигляд вікна відповіді на питання На вікні відповіді на питання міститься текстовий контейнер з текстом запитання, динамічно сгенеровані радіо перемикачі з відповідями на запитання та кнопка для відповіді. Для того щоб дати відповідь на поставлене запитання потрібно вибрати одну із відповідей та натиснути «Ответить», після цього додаток переключиться на наступне запитання з цієї теми. Після завершення всіх питань з'явиться вікно з кількістю отриманих балів за відповіді на запитання. Це вікно зображене на рисунку 2.6 Рисунок 2.6 – Зовнішній вигляд вікна «Оценка» На вікні «Оценка» міститься кількість отриманих балів за відповіді ни питання та кнопка «ОК», яка поверне вас до головного меню додатку. Висновки В результаті виконання курсової роботи була розроблена програма, призначена для навчання мові С. Програма має наступні функції:
Програмне забезпечення розроблене за допомогою візуального середовища розроботки QT Creator та язика програмування С++. Програмний продукт працює на персональному комп’ютері під керуванням операційної системи Windows 7/10. Програма має зручний інтерфейс. Програма була протестована та виявилася працездатною, має досить високу швидкість роботи. Список літератури 1. Чен П. Модель "сущность-связь" - шаг к единому представлению о данных //СУБД. - 1995. - №3. - С.137-158. 2. Кириллов В.В. Структуризованный язык запросов (SQL). - СПб.: ИТМО, 1994. - 80 с 3. Кузнецов С.Д. Стандарты языка реляционных баз данных SQL: краткий обзор //СУБД. - 1996. - №2. - С.6-36. 4. https://uk.wikipedia.org/ 5. http://studcon.org/rol-kompyuternoyi-tehniky-u-suchasnomu-suspilstvi 6. http://www.library.if.ua/book/100/6867.html 7. http://www.intuit.ru/department/pl/visualcsharp/2/visualcsharp_2.html – Ин-теллектуальные робототехнические системы 8. А. Федоров, Microsoft Visual Studio 2010: Первое знакомство. – М.: Вильямс, 2009. 9. С.Ю. Ржеуцкая, Базы данных. Язык SQL. – М.: Academia, 2010. – 159 с. 10. П. МакФедрис, Microsoft Windows 7. Полное руководство. – М.: Вильямс, 2012. Додаток А(Текст програми) //файл mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->book_widget->hide(); ui->widget->hide(); } MainWindow::MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { ui->menu_widget->hide(); ui->book_widget->show(); QUrl q("qrc:/pref/db/menu.html"); ui->textBrowser->setSource(q); } void MainWindow::on_textBrowser_anchorClicked(const QUrl &arg1) { } void MainWindow::on_pushButton_2_clicked() { ui->menu_widget->hide(); ui->book_widget->hide(); ui->widget->show(); mark = 0; maxMark = 1; x = 0; QString s1 = ui->textBrowser->source().toString(); theme = ""; if(s1 == "qrc:/pref/db/1.html") theme = "1"; else if(s1 == "qrc:/pref/db/2.html") theme = "2"; else if(s1 == "qrc:/pref/db/3.html") theme = "3"; else if(s1 == "qrc:/pref/db/4.html") theme = "4"; else if(s1 == "qrc:/pref/db/5.html") theme = "5"; else if(s1 == "qrc:/pref/db/6.html") theme = "6"; else if(s1 == "qrc:/pref/db/7.html") theme = "7"; else if(s1 == "qrc:/pref/db/8.html") theme = "8"; else if(s1 == "qrc:/pref/db/9.html") theme = "9"; else if(s1 == "qrc:/pref/db/10.html") theme = "10"; else if(s1 == "qrc:/pref/db/11.html") theme = "11"; else if(s1 == "qrc:/pref/db/12.html") theme = "12"; else if(s1 == "qrc:/pref/db/13.html") theme = "13"; else if(s1 == "qrc:/pref/db/14.html") theme = "14"; else if(s1 == "qrc:/pref/db/15.html") theme = "15"; else if(s1 == "qrc:/pref/db/16.html") theme = "16"; else if(s1 == "qrc:/pref/db/17.html") theme = "17"; else if(s1 == "qrc:/pref/db/18.html") theme = "18"; else if(s1 == "qrc:/pref/db/19.html") theme = "19"; else if(s1 == "qrc:/pref/db/20.html") theme = "20"; else if(s1 == "qrc:/pref/db/21.html") theme = "21"; else if(s1 == "qrc:/pref/db/22.html") theme = "22"; else if(s1 == "qrc:/pref/db/23.html") theme = "23"; else if(s1 == "qrc:/pref/db/24.html") theme = "24"; qDebug() << s1; qDebug() << theme; masRad = new QRadioButton[6]; sdb = QSqlDatabase::addDatabase("QSQLITE"); sdb.setDatabaseName("C:/College/college/kurs/db/1.db"); sdb.open(); QSqlQuery query; query.exec("SELECT quest FROM questions WHERE theme_id = " + theme); query.next(); ui->label_2->setText(query.value(0).toString()); query.exec("SELECT quest_id FROM questions WHERE theme_id = " + theme); query.first(); QString questId = ""; questId = query.value(0).toString(); query.exec("SELECT answer FROM answers WHERE question_id = " + questId); while (query.next()) { QString answ = query.value(0).toString(); qDebug()< masRad[x].setText(answ); ui->verticalLayout->addWidget(&masRad[x]); x++; } ui->verticalLayout->addStretch(); z = 2; count = 1; } void MainWindow::on_pushButton_4_clicked() { } void MainWindow::on_pushButton_5_clicked() { if(count<2) { QSqlQuery query("SELECT answers.answer FROM answers JOIN true_ans ON true_ans.answer_id=answers.answer_id WHERE answers.question_id = " + QString::number(z-1)); for(int i=0; i { query.first(); QString s = query.value(0).toString(); qDebug()<<"ответ:"; qDebug() << s; if(masRad[i].isChecked()) { if(s == masRad[i].text()) { mark++; } } } maxMark++; QLayoutItem *child; while ((child = ui->verticalLayout->takeAt(0)) != 0) { delete child; qDebug()<<"del"; } x = 0; query.exec("SELECT quest FROM questions WHERE theme_id = 1"); for(int i=0; i { query.next(); } ui->label_2->setText(query.value(0).toString()); query.exec("SELECT quest_id FROM questions WHERE theme_id = " + theme); query.next(); query.exec("SELECT answer FROM answers WHERE question_id = " + QString::number(z)); while (query.next()) { QString answ = query.value(0).toString(); qDebug()< masRad[x].setText(answ); ui->verticalLayout->addWidget(&masRad[x]); x++; } ui->verticalLayout->addStretch(); z++; count++; } else { QSqlQuery query("SELECT answers.answer FROM answers JOIN true_ans ON true_ans.answer_id=answers.answer_id WHERE answers.question_id = " + QString::number(z-1)); for(int i=0; i { query.next(); QString s = query.value(0).toString(); qDebug()<<"ответ:"; qDebug() << s; if(masRad[i].isChecked()) { if(s == masRad[i].text()) { mark++; } } } QMessageBox::information(this,"Оценка","Вы набрали " + QString::number(mark) + " из " + QString::number(maxMark) + " балов."); QLayoutItem *child; while ((child = ui->verticalLayout->takeAt(0)) != 0) { delete child; qDebug()<<"del"; } ui->menu_widget->hide(); ui->widget->hide(); ui->book_widget->show(); QUrl q("qrc:/pref/db/menu.html"); ui->textBrowser->setSource(q); } } //файл main.cpp #include "mainwindow.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } //файл mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); MainWindow(); QRadioButton *masRad; QSqlDatabase sdb; int z; QString theme; int mark; int maxMark; int x; int count; private slots: void on_pushButton_clicked(); void on_textBrowser_anchorClicked(const QUrl &arg1); void on_pushButton_2_clicked(); void on_pushButton_4_clicked(); void on_pushButton_5_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H |