Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <sstream>
- #include <ctime>
- using namespace std;
- struct test
- {
- string quest, answ;
- };
- void FileReading(string);
- void menu();
- void TestReading(string, string, test&);
- void TestProcess(char);
- int counter(bool, int);
- void RandomAnekdot();
- string IntToString(int);
- void AnekdotMenu();
- string TestVybor(string, char);
- string FileVybor(char);
- void FileMenu(char);
- string DeleteSpace(string);
- void Mark(int);
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char text;
- start:
- FileReading("hello.txt");
- cin >> text;
- text = tolower(text);
- if (text == 'y' || text == 'n')
- {
- system("cls");
- FileReading("start.txt");
- string exit;
- cin >> exit;
- if (exit == "exit")
- goto exit;
- else
- {
- menu();
- goto exit;
- }
- }
- else
- {
- system("cls");
- cout << "К сожалению, ты не научился со мной общаться :(\nНо я в тебя верю, так что попробуй снова!\nТвой Валерка\n" << endl;
- goto start;
- }
- system("pause");
- exit:
- return 0;
- }
- void FileReading(string fileName)
- {
- string str;
- ifstream file(fileName);
- if (!file)
- cout << "Код ошибки: 666. К сожалению, что-то пошло не так... Обратитесь к разработчику программы. Его e-mail: ek.toksol@gmail.com" << endl;
- else
- while (getline(file, str))
- cout << str << endl;
- file.close();
- }
- void menu()
- {
- system("cls");
- char n;
- int rez = 0;
- cout << "Выберите, что Вам необходимо:" << endl << endl;
- cout << "Лабораторные работы:" << endl;
- cout << "1 - Следование" << endl;
- cout << "2 - Операторы ветвления" << endl;
- cout << "3 - Операторы цикла: заданное число повторений" << endl;
- cout << "4 - Операторы цикла: вычисления с заданной точностью" << endl;
- cout << "5 - Суммирование рядов" << endl;
- cout << "6 - Перегрузка функций" << endl;
- cout << "7 - Статические одномерные массивы" << endl;
- cout << "8 - Статические двумерные массивы" << endl << endl;
- cout << "9 - Выход" << endl << endl;
- cout << "А может, вам хочется анекдотов от Барикова?" << endl;
- cin >> n;
- system("cls");
- switch (n)
- {
- case '1': FileMenu(n); break;
- case '2': FileMenu(n); break;
- case '3': FileMenu(n); break;
- case '4': FileMenu(n); break;
- case '5': FileMenu(n); break;
- case '6': FileMenu(n); break;
- case '7': FileMenu(n); break;
- case '8': FileMenu(n); break;
- case '9': return; break;
- case 'y': AnekdotMenu(); break;
- default: menu(); break;
- }
- }
- void TestProcess(char n)
- {
- test t;
- string answ, fileName;
- int rez = 0, p;
- cout << endl;
- for (int i = 1; i <= 5; i++)
- {
- string per = IntToString(i);
- fileName = TestVybor(per, n);
- cout << endl;
- TestReading(fileName, "\\0", t);
- cin >> answ;
- p = answ.find(" ");
- if (p >= 0)
- answ = DeleteSpace(answ);
- if (answ == t.answ)
- {
- rez = counter(true, rez);
- }
- else
- {
- rez = counter(false, rez);
- }
- cout << endl;
- answ.clear();
- }
- Mark(rez);
- system("pause");
- menu();
- }
- void TestReading(string fileName, string stop, test &t)
- {
- ifstream file(fileName);
- if (!file)
- {
- cout << "Код ошибки: 667. К сожалению, что-то пошло не так... Обратитесь к разработчику программы. Его e-mail: ek.toksol@gmail.com" << endl;
- menu();
- }
- else
- {
- while (getline(file, t.quest))
- {
- if (t.quest == stop)
- break;
- cout << t.quest << endl;
- }
- getline(file, t.answ);
- }
- file.close();
- }
- int counter(bool fl, int rez)
- {
- if (fl)
- rez++;
- cout << endl;
- if (fl == 0)
- cout << "false" << endl;
- else
- cout << "true" << endl;
- cout << "Ваш текущий результат: " << rez << "/5" << endl;
- return rez;
- }
- void RandomAnekdot()
- {
- string str, n;
- int p = 0;
- srand(time(0));
- n = IntToString(1 + rand() % 21);
- ifstream file("anekdoty.txt");
- if (!file)
- cout << "Код ошибки: 668. К сожалению, что-то пошло не так... Обратитесь к разработчику программы. Его e-mail: ek.toksol@gmail.com" << endl;
- else
- while (getline(file, str))
- {
- p = str.find(n);
- if (p >= 0)
- {
- cout << str << endl;
- while (getline(file, str))
- {
- if (str != "")
- cout << str << endl;
- else
- break;
- }
- break;
- }
- }
- file.close();
- }
- string IntToString(int val)
- {
- ostringstream oss;
- oss << val;
- return oss.str();
- }
- void AnekdotMenu()
- {
- string lol;
- int n;
- FileReading("anstart.txt");
- cin >> lol;
- for (int i = 0; i < lol.length(); i++)
- {
- lol[i] = tolower(lol[i]);
- }
- if (lol == "lol")
- {
- esche:
- RandomAnekdot();
- }
- else
- goto menu;
- menu:
- cout << endl << endl;
- cout << "1 - Анекдот!" << endl;
- cout << "2 - Выйти в главное меню" << endl;
- cin >> n;
- system("cls");
- switch (n)
- {
- case 1: goto esche; break;
- case 2: menu(); break;
- default: goto menu; break;
- }
- }
- string TestVybor(string i, char n)
- {
- string path;
- path = "lr1/1.txt";
- path[2] = n;
- path[4] = i[0];
- return path;
- }
- string FileVybor(char n)
- {
- string path;
- path = "lr1.txt";
- path[2] = n;
- return path;
- }
- void FileMenu(char n)
- {
- int nom;
- string path = FileVybor(n);
- FileReading(path);
- cout << endl;
- cout << "1 - Пройти тест по пройденной теме" << endl;
- cout << "2 - Выйти в главное меню" << endl;
- cin >> nom;
- nazad:
- switch (nom)
- {
- case 1: system("cls"); TestProcess(n); break;
- case 2: menu(); break;
- default: goto nazad; break;
- }
- }
- string DeleteSpace(string answ)
- {
- string answ2;
- for (int i = 0; i < answ.length(); i++)
- {
- if ((answ[i] != ' ') && (answ[i] != '\n'))
- answ2 += answ[i];
- }
- return answ2;
- }
- void Mark(int rez)
- {
- switch(rez)
- {
- case 0: cout << "Ужасно, чувак..." << endl;
- case 1: cout << "Это очень плохо, парень..." << endl;
- case 2: cout << "Плохо" << endl;
- case 3: cout << "Нормально" << endl;
- case 4: cout << "Молодец, у тебя хорошо получилось!" << endl;
- case 5: cout << "Просто отличный результат! Ты крут, парень!" << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement