Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <vector>
- #include "tekst.h"
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWindow; }
- QT_END_NAMESPACE
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
- private slots:
- void on_actionZako_cz_triggered();
- void on_pushButton_clicked();
- int liczenieplikow();
- int losowaniepytania();
- int wszystkie_powtorzenia();
- int start();
- int ilosc_pozostalych_pytan();
- private:
- Ui::MainWindow *ui;
- // QString(nazwapliku);
- QString prawidlowa_odpowiedz;
- QString odpowiedz;
- int pytanie = 1;
- int dodatkowe_powtorzenia = 3;
- int powtorzenia_startowe = 3;
- std::vector<int> powtorzenia = std::vector<int>(liczenieplikow(), 3);
- std::vector<int> wystapienia = std::vector<int>(liczenieplikow(), 0);
- };
- #endif // MAINWINDOW_H
- //*************************************************************************************8
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QFileDialog>
- #include <QTextStream>
- #include <QFile>
- #include <filesystem> //jesli jest problem z ta biblioteka skorzystac z nowszej wersji MinGW
- #include <cstdlib>
- #include <ctime>
- #include <vector>
- #include <QPixmap>
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- setWindowTitle("Testownik");
- // setWindowIcon(QIcon(""));
- ui->progressBar->setValue(0);
- srand(time(NULL));
- start();
- ui->wszystkich_pytan->display(liczenieplikow());
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- int MainWindow::start()
- {
- QString nazwa_plik_pytania = "C://Users/wikto/Documents/pytania/"+QString::number(pytanie)+".txt";
- QFile plik_pytania(nazwa_plik_pytania);
- if(plik_pytania.open(QIODevice::ReadOnly))
- {
- QTextStream str(&plik_pytania);
- ui->textBrowser->setText(str.readAll());
- ui->textEdit->clear();
- plik_pytania.close();
- }
- QString nazwa_plik_odpowiedzi = "C://Users/wikto/Documents/odpowiedzi/"+QString::number(pytanie)+".txt";
- QFile plik_odpowiedzi(nazwa_plik_odpowiedzi);
- if(plik_odpowiedzi.open(QIODevice::ReadOnly))
- {
- QTextStream odp(&plik_odpowiedzi);
- prawidlowa_odpowiedz = odp.readAll();
- plik_pytania.close();
- }
- ui->pozostalych_powtorzen->display(powtorzenia[pytanie-1]);
- }
- int MainWindow::liczenieplikow()
- {
- int liczbaplikow = 0;
- std::filesystem::path p { "C://Users/wikto/Documents/pytania" };
- for (auto& p : std::filesystem::directory_iterator(p))
- liczbaplikow++;
- return liczbaplikow;
- }
- int MainWindow::losowaniepytania()
- {
- while(true)
- {
- int numer = rand()%liczenieplikow()+1;
- if(powtorzenia[numer-1]>0)
- {
- return numer;
- }
- }
- }
- int MainWindow::wszystkie_powtorzenia()
- {
- int suma_powtorzen = 0;
- for(int i=0; i<powtorzenia.size(); i++)
- suma_powtorzen = suma_powtorzen + powtorzenia[i];
- return suma_powtorzen;
- }
- int MainWindow::ilosc_pozostalych_pytan()
- {
- int pozostale_pytania = 0;
- for(int i=1; i<=liczenieplikow(); i++)
- {
- if(powtorzenia[i-1]>0)
- pozostale_pytania++;
- }
- return pozostale_pytania;
- }
- void MainWindow::on_actionZako_cz_triggered()
- {
- close();
- }
- void MainWindow::on_pushButton_clicked()
- {
- // QString numer = QString::number(a);
- // QString sciezka = ("C://Users/wikto/Documents/pytania/");
- odpowiedz = ui->textEdit->toPlainText();
- if(odpowiedz==prawidlowa_odpowiedz) //jesli odpowiedz jest prawidlowa
- {
- powtorzenia[pytanie-1]--;
- wystapienia[pytanie-1]++;
- }
- else
- powtorzenia[pytanie-1] = powtorzenia[pytanie-1] + dodatkowe_powtorzenia;
- pytanie = losowaniepytania(); //losowanie pytania
- ui->pozostalych_powtorzen->display(powtorzenia[pytanie-1]); //wyswietlanie liczby pozostalych powtorzen
- ui->pozostalych_pytan->display(ilosc_pozostalych_pytan());
- QString nazwa_plik_pytania = "C://Users/wikto/Documents/pytania/"+QString::number(pytanie)+".txt";
- QFile plik_pytania(nazwa_plik_pytania);
- ui->textEdit->clear();
- if(plik_pytania.open(QIODevice::ReadOnly))
- {
- QTextStream str(&plik_pytania);
- ui->textBrowser->setText(str.readAll());
- plik_pytania.close();
- }
- QString nazwa_plik_odpowiedzi = "C://Users/wikto/Documents/odpowiedzi/"+QString::number(pytanie)+".txt";
- QFile plik_odpowiedzi(nazwa_plik_odpowiedzi);
- if(plik_odpowiedzi.open(QIODevice::ReadOnly))
- {
- QTextStream odp(&plik_odpowiedzi);
- prawidlowa_odpowiedz = odp.readAll();
- plik_pytania.close();
- }
- ui->progressBar->setValue(wszystkie_wystapienia()*100/wszystkie_powtorzenia());
- }
- //******************************************************************************************
- #include "mainwindow.h"
- #include <iostream>
- #include <QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
- }
Add Comment
Please, Sign In to add comment