Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- setlocale(LC_ALL, "Russian");
- srand(time(0));
- std::cout << "\n\nСтартовал очень серьёзный экзамен по устройству Собиратора-1000\n"
- "Всего на экзамене присутствует 25 взмокших студентов"
- "\nи один Злой экзаменатор =)\n"
- "\nPS Пролисните вниз, чтоыб увидеть всю программу"<< std::endl;
- int goodStudent = rand()%25; // Кол-во Не списывающих студентов
- int hitrStudent = 25 - goodStudent; // Кол-во потенциально списывающих студентов
- std::vector <std::string> spisStudent; // Вектор, который хранит имена спис. студентов
- std::string sname[] = {"Александр", "Валерия", "Евгений", "Владимир", "Пётр",
- "Степпан", "Марина", "Карина", "Алексей", "Семён",
- "Ирина", "Светлана", "Алеся", "Мария", "Ольга"};
- int i = 0;
- // Цикл заполнения вектора именами спис. студентов
- if (hitrStudent!=0) {
- while(1)
- {
- for (; i!=hitrStudent; ++i)
- {
- spisStudent.push_back(sname[rand()%15]);
- }
- break;
- }
- }
- // Вывод информации
- std::cout << "\nВсего освобождённых от экзамена студентов: " << goodStudent << std::endl;
- std::cout << "Всего потенциально списывающих студентов: " << spisStudent.size() << "\n" << std::endl;
- int timeP = rand()%31;
- std::cout << "===================================" << std::endl;
- if (timeP==0)
- std::cout << "Строгий преподователь внимательно осмотрел студентов на 1 минуте" << std::endl;
- else
- std::cout << "Строгий преподователь внимательно осмотрел студентов на " << timeP << " минуте" << std::endl;
- std::cout << "===================================\n" << std::endl;
- int timeS = 0;
- std::vector <std::string> zapalili;
- std::vector <std::string> nezdal;
- //Цикл проверки и создания времени списывания
- for (std::vector <std::string>::const_iterator it = spisStudent.begin(),end = spisStudent.end(); it != end; it++)
- {
- metka1: // Точка возврата для goto
- int countRazShp = rand()%4;
- // Проверка, воспользовался ли шпорой
- if (countRazShp==0)
- {
- std::cout << "Студент " << *it << " НЕ воспользовался шпаргалками" << std::endl;
- if(rand()%2 == 1)
- std::cout << "СДАЛ\n" << std::endl;
- else
- {
- std::cout << "НЕ СДАЛ\n" << std::endl;
- nezdal.push_back(*it);
- }
- continue;
- }
- else
- std::cout << "Студент " << *it << " воспользовался шпаргалками на " << std::flush;
- // Проверка вероятностей
- for (int ii=0; ii!=countRazShp; ii++)
- {
- timeS = rand()%31;
- if (timeS == timeP)
- {
- if (timeS==0)
- std::cout << "!!!ЗАПАЛИЛИ И ВЫГНАЛИ!!! (на 1 минуте!)\n" << std::endl;
- else
- std::cout << "!!!ЗАПАЛИЛИ И ВЫГНАЛИ!!! (на " << timeS << " минуте!)\n" << std::endl;
- zapalili.push_back(*it);
- it++;
- goto metka1; // goto... здесь уж ничего не поделаешь, пришлось использовать!
- }
- if (timeS==0)
- std::cout << "1, " << std::flush;
- else
- std::cout << timeS << ", " << std::flush;
- }
- std::cout << "минуте(ах) \n" << std::flush;
- if (rand()%2 == 1)
- std::cout << "СДАЛ\n" << std::endl;
- else
- {
- std::cout << "НЕ СДАЛ\n" << std::endl;
- nezdal.push_back(*it);
- }
- }
- std::cout << "===================================" << std::endl;
- std::cout << "\tИТОГИ" << std::endl;
- std::cout << "===================================" << std::endl;
- std::cout << "\nКол-во не сдавших экзамен из-за списывания: " << zapalili.size() << "\n" << std::endl;
- std::cout << "Кол-во просто не сдавших экзамен: " << nezdal.size() << "\n" << std::endl;
- std::cout << "Кол-во сдавших экзамен: " << (25-nezdal.size()-zapalili.size()) << "\n" << std::endl;
- std::cout << "Евгений Осипов (www.fastandclever.ru), 2011\n" << std::endl;
- HANDLE hStdout = GetStdHandle (STD_OUTPUT_HANDLE);
- COORD orig = {0, 0};
- SetConsoleCursorPosition (hStdout, orig);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment