Студопедия

Главная страница Случайная страница

Разделы сайта

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






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






Структуры:

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));

}

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.