![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Описание алгоритма
Структуры: 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));} … }
|