Главная страница

Курсач - копия. Методика роботи користувача з системою 1 Керівництво програміста Програма призначена для навчання мові C. Програма має наступні функції підвищити точність, збереження і захищеність даних


Скачать 0.52 Mb.
НазваниеМетодика роботи користувача з системою 1 Керівництво програміста Програма призначена для навчання мові C. Програма має наступні функції підвищити точність, збереження і захищеність даних
Дата08.03.2019
Размер0.52 Mb.
Формат файлаdoc
Имя файлаКурсач - копия.doc
ТипМетодика роботи
#69817


группа 1


2.3 Методика роботи користувача з системою

2.3.1 Керівництво програміста
Програма призначена для навчання мові C. Програма має наступні функції:

  • підвищити точність, збереження і захищеність даних;

  • прискорити процес пошуку потрібної інформації;

  • підвищити зручність роботи з базою даних;

  • здійснити контроль введення;

  • систематизувати зберігання даних;

  • максимально перехопити системні помилки;

  • спростити процедуру введення даних.

Для функціонування розробленого програмного продукту, а також в разі його допрацювання, необхідно мати таку мінімальну апаратну платформу: персональний комп’ютер з мікропроцесором Intel Pentium 1,8 ГГц та вище, оперативна пам’ять 512 Мб і вище, вільного простору на жорсткому диску 200Мб, монітор, клавіатура та маніпулятор типу “миша”. Для виводу на друк інформації потрібен принтер. На всі пристрої, що використовуються в системі потрібні драйвери цих пристроїв. На персональному комп’ютері повинно бути встановлено наступне програмне забезпечення: операційна система Windows XP і вище, DB Browser.

Завантажувальний файл програмного продукту має назву Clearn.exe, для редагування даної програми необхідно відкрити файл interactive_c.pro в середовищі QT Creator та внести необхідні зміни.

База даних програми має назву 1.db, для редагування даної бази необхідно відкрити файл 1.db за допомогою DB Browser та внести необхідні зміни.

Для інсталяції програмного продукту необхідно скопіювати на комп’ютер файл Clearn.exe та базу даних 1.db.

Програмний продукт має модульну структуру і складається з наступних модулів: interactive_c.pro, main.cpp, mainwindow.cpp, mainwindow.h, mainwindow.ui, res.qrc.

Програма містить наступні функції та обробники подій:

  1. головний модуль interactive_c.pro містить інформацію про всі файли проекту.

б) модуль mainwindow.cpp містить:

  • обробник подій MainWindow, який завантажує потрібні елементи користувацького інтерфейсу на екран;

  • обробник подій

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










  • написать администратору сайта