Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Описание алгоритма




Структуры:

QLabel: Для хранения или вывода сообщений.

QPlainTextEdit: Для расширенного ввода данных.

QPushButton: Для выполнения определенных операций при нажатии.

QTextBrowser: Для хранения или вывода данных.

QTextEdit: Для ввода данных.

QProgressBar: Для вывода прогресса выполнения заданий

Основные переменные:

● Num – номер выполняемого задания.

● Z1p,…,z10p – вводимые пользователем решения.

● Z1,…z10 – встроенные решения матриц.

● S – ответы.

● Pin – ПИН-код для режима Администратора.

Функции:

Рис. 5 Функции программы

 

Описание:

1) Считывание номера из plainTextEdit_2; проверка на проходимость задания; Проверка на правильность ввода задания;

 

void MainWindow::on_pushButton_2_clicked()

{

int num = ui->plainTextEdit_2->toPlainText().toInt();

if(num==1)

{

if(ui->pz1->toPlainText()=="+")

ui->textBrowser->setText("3 15\n2 1\n You've' already done this.");

else

ui->textBrowser->setText("3 15\n2 1");

}

...

if(num>10)

ui->textBrowser->setText("No such nomber");

if(!(ui->plainTextEdit_2->toPlainText().toInt())||num<1)

ui->textBrowser->setText("Something wrong");

}

2)Считывание решения пользователя из plainTextEdit; Сравнение соответствующих решений; Вывод сообщений; Изменение параметра progressBar; Запись о проходимости и количества пройденных заданий.

void MainWindow::on_pushButton_clicked(){ QString z1p,z3p,z2p,z4p,z5p,z6p,z7p,z8p,z9p,z10p; int i=0,s; bool f=true; int prog=ui->textBrowser_2->toPlainText().toInt(); int num = ui->plainTextEdit_2->toPlainText().toInt(); ui->textBrowser_3->hide(); ui->label_2->setText(" "); ui->label_3->setText(" "); ui->label_4->setText(" "); ui->label_5->setText(" "); ui->label_6->setText(" "); if (num==1) { z1p=ui->plainTextEdit->toPlainText(); QString z1="3*1-15*2"; s=3*1-15*2; for (i=0;i<=z1p.size()&&f==true;i++) if(z1p[i]!=z1[i]) { ui->label_2->setText("Mistake after"); ui->label_4->setText(QString::number(i)); ui->label_5->setText("element!"); f=false; } if (s!=ui->textEdit_2->toPlainText().toInt()) { ui->label_6->setText("Wrong answer. Check again"); f=false; } if (z1p.size()<z1.size()) { ui->label_6->setText("You missed something or didn't finish term"); f=false; } if (z1p.size()>z1.size()) { ui->label_6->setText("You wrote more then need. Check your derivation"); f=false; } if (z1p.size()==0) { ui->label_6->setText("You didn't write anything."); f=false; } if(f==true) { ui->label_2->setText("Good job!"); if(ui->pz1->toPlainText()!="+") { prog++; ui->textBrowser_2->setText(QString::number(prog)); ui->progressBar->setValue(prog*10); ui->pz1->setText("+"); } }

}

if(prog==10) ui->label_10->setText("Congratulations! You know how to find the determinant of matrix. Good luck!");

}

 

3) Проверка ПИН-кода

void MainWindow::on_pushButton_pin_clicked(){ int i; bool prpin=true; QString pin="2036", pinp; pinp=ui->textEdit_pin->toPlainText(); for(i=0;i<4;i++) if(pin[i]!=pinp[i]) { ui->label_pin->setText("Wrong PIN! Try again."); prpin=false; } if(prpin==true) { ui->pushButton_ans->show(); ui->pushButton_user->show(); ui->label_pin->setText(" "); ui->pushButton_admin->hide(); ui->pushButton_pin->hide(); ui->label_11->hide(); ui->textEdit_pin->hide(); ui->textEdit_pin->setText(""); }

}

 

4)Вход под администратора.(Доступ к кнопкам)

void MainWindow::on_pushButton_admin_clicked(){ui->pushButton_pin->show();ui->textEdit_pin->show();ui->label_11->show();

}

 

5)Вход под пользователя.(Лишение доступа к кнопкам)

void MainWindow::on_pushButton_user_clicked(){ ui->pushButton_ans->hide(); ui->pushButton_user->hide(); ui->plainTextEdit->clear(); ui->pushButton_admin->show();

}

6)Вывод решения на plainTextEdit_2; Показывает ответ. Доступно только администратору.

void MainWindow::on_pushButton_ans_clicked(){ int s; int num = ui->plainTextEdit_2->toPlainText().toInt(); if (num==1) { ui->plainTextEdit->setPlainText("3*1-15*2"); s=3*1-15*2; ui->label_3->setText(QString::number(s));

}

}


Поделиться:

Дата добавления: 2015-08-05; просмотров: 57; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты