Untitled
unknown
apache_conf
2 years ago
3.0 kB
5
Indexable
#include <iostream> #include <queue> #include <string> #include <vector> #include <random> #include <thread> template <typename T> T my_rand(const T &min, const T &max) { std::mt19937 rnd{std::random_device{}()}; std::uniform_int_distribution<T> makeUniform(min, max); return makeUniform(rnd); } const char *r_name() { static constexpr int size = 10; static const char *name[] = { "ziya", "yusuf", "zahir", "aycan", "ismihan", "elif", "ece", "enes", "sadik", "qiyasettin" }; return name[my_rand(0, size-1)]; } const char *r_surname() { static constexpr int size = 4; static const char *surname[] = { "arslan", "elik", "hanelci", "yesilkaya" }; return surname[my_rand(0,size-1)]; } class Person { public: Person(std::string name, std::string surname, int i) : m_name{name}, m_surname{surname}, m_id{i} {} friend std::ostream &operator <<(std::ostream& out, const Person &p) { return out<<p.m_name<<" "<<p.m_surname; } int get_id() const { return m_id; } private: int m_id; std::string m_name, m_surname; }; namespace Counter { constexpr size_t size = 5; int counter[size] = {0,0,0,0,0}; int fill_counter(const Person&p) { int idx; do { idx = my_rand(0,4); }while(counter[idx] != 0); counter[idx] = p.get_id(); return idx; } void print_counter() { std::cout<<"\n\n"; for(size_t i=0;i<size;i++) std::cout<<(i+1)<<" "; std::cout<<"\n"; for(size_t i=0;i<size;i++) std::cout<<counter[i]<<" "; std::cout<<"\n"; } void current_count(const Person &p) { std::cout<<"sayin "; std::cout<<p<<" lutfen " <<fill_counter(p)+1<<" .nolu giseye\n"; } void listen_counter() { std::cout<<"islemi sonlanan giseyi yaziniz: "; size_t i; std::cin>>i; counter[i] = 0; } bool full_counter() { int flag = 0; for(size_t i=0;i<size;i++) if(counter[i] != 0) flag++; return flag == size; } } int main() { std::queue<Person> qu; for(int i=0;i<10;i++) { Person p{r_name(), r_surname(), i+1}; qu.push(std::move(p)); } while(qu.size() != 0) { Counter::current_count(qu.front()); qu.pop(); Counter::print_counter(); if(Counter::full_counter()) Counter::listen_counter(); //Counter::listen_counter(); } }
Editor is loading...