case Tagesverfassung::SUPER:
//dieser case wird nie eintreffen, allerdings musst auch die funktionierende Version einbauen
{
for(auto urne : urnen)
{
abgegebene_stimmen += urne->getAlleStimmzettel().size();
for(auto stimme : urne->getAlleStimmzettel())
{
switch (stimme)
{
case Stimmzettel::ENTHALTUNG:
enthaltungen++;
break;
case Stimmzettel::BABLER:
babler++;
break;
case Stimmzettel::DOSKOZIL:
doskozil++;
break;
}
}
delete urne;
}
break;
}
}
std::cout << “************************************************************************************************************************” << std::endl;
std::cout << “* Liebe Genossinnen und Genossen, hiermit präsentiere ich Ihnen das Ergebnis der heutigen Wahl zum Parteivorsitzendem: *” << std::endl;
std::cout << “************************************************************************************************************************” << std::endl;
std::cout << “n+++ Mit ” << ((babler > doskozil) ? babler : doskozil) << ” Stimmen präsentieren wir Ihnen hiermit ” << ((babler > doskozil) ? “Andreas Babler” : “Hans Peter Doskozil”)
<< ” als Unseren neuen Bundesparteivorsitzenden!!! +++ *applaus applaus*” << std::endl;
std::cout << “nDas gesamte Ergebnis lautet wie folgt:nn” << “1. mit ” << ((babler > doskozil) ? babler : doskozil) << ” Stimmen: ” << ((babler > doskozil) ? “Andreas Bablern” : “Hans Peter Doskoziln”)
<< “2. mit ” << ((babler < doskozil) ? babler : doskozil) << ” Stimmen: ” << ((babler < doskozil) ? “Andreas Bablern” : “Hans Peter Doskoziln”) << “Und ” << enthaltungen << ” Enthaltungen.” << std::endl;
std::cout << “Insgesamt wurden ” << abgegebene_stimmen << ” Stimmen abgegeben.n” << std::endl;
};
int main()
{
std::vector<Wahlurne*>urnen;
std::cout << “Willkommen auf dem a.o. SPÖ Parteitag 2023!” << std::endl;
std::cout << “Liebe Genossinnen und Genossen, hier nun die Reden unserer Kandidaten:” << std::endl;
sleep(2);
for(int j = 0; j <= 3; j++)
{
sleep(1);
std::cout << “bla bla” << std::endl;
sleep(1);
std::cout << “bla” << std::endl;
sleep(1);
std::cout << “bla bla bla” << std::endl;
}
std::cout << “BLA!!!n” << std::endl;
std::cout << “Lasst die Wahlen beginnen! Es stehen Ihnen am Eingang der Spritzweinbar ” << MAX_URNEN << ” Urnen zurnStimmabgabe bereit..” << std::endl;
for(int i = 0; i < MAX_URNEN; i++)
{
int anzahl = 0;
std::cout << “nBitte geben Sie die Anzahl der abgegebenen Stimmen für Urne ” << i + 1 << ” bekannt:” << std::endl;
std::cin >> anzahl;
Wahlurne* urne = new Wahlurne(anzahl);
urnen.push_back(urne);
}
std::cout << “nDanke für die rege Teilnahme! Nun übernimmt unsere Wahlkommision.n(Das könnte ein bissi dauern)n” << std::endl;
auto gen = std::bind(std::uniform_int_distribution<>(0,1),std::default_random_engine());
6 comments
Falls es jemand selbst ausführen möchte:
“`
#include <iostream>
#include <vector>
#include <unistd.h>
#include <random>
#include <ctime>
#include <functional>
#define MAX_URNEN 5
bool randomBool()
{
static auto gen = std::bind(std::uniform_int_distribution<>(0,1),std::default_random_engine());
return gen();
};
enum class Tagesverfassung
{
SCHLECHT_UND_DEMOTIVIERT,
ALLES_OASCH,
SUPER
};
enum class Stimmzettel
{
ENTHALTUNG,
BABLER,
DOSKOZIL
};
class Wahlurne
{
public:
Wahlurne(int stimmen);
Wahlurne(const Wahlurne& w) = delete;
~Wahlurne();
std::vector<Stimmzettel> getAlleStimmzettel() { return alle_stimmzettel_; }
private:
std::vector<Stimmzettel> alle_stimmzettel_;
};
Wahlurne::~Wahlurne()
{
alle_stimmzettel_.clear();
};
Wahlurne::Wahlurne(int stimmen)
{
for(int i = 0; i < stimmen; i++)
{
int x = 3;
while(x > 2)
{
x = 1 + randomBool();
}
if(i % 21 == 0)
{
x = 0;
}
alle_stimmzettel_.push_back(static_cast<Stimmzettel>(x));
}
};
void spoeWahlKommission(int tagesverfassung, std::vector<Wahlurne*>& urnen)
{
int babler = 0;
int doskozil = 0;
int enthaltungen = 0;
int abgegebene_stimmen = 0;
std::random_device dev;
std::mt19937 rng(dev());
std::uniform_int_distribution<int> dist21(1,21);
Tagesverfassung verfassung = static_cast<Tagesverfassung>(tagesverfassung);
switch (verfassung)
{
case Tagesverfassung::SCHLECHT_UND_DEMOTIVIERT:
{
for(auto urne : urnen)
{
abgegebene_stimmen += urne->getAlleStimmzettel().size();
bool bias = randomBool();
for(auto stimme : urne->getAlleStimmzettel())
{
switch (stimme)
{
case Stimmzettel::ENTHALTUNG:
enthaltungen++;
break;
case Stimmzettel::BABLER:
babler++;
break;
case Stimmzettel::DOSKOZIL:
doskozil++;
break;
}
}
babler = bias ? babler – dist21(rng) : babler + dist21(rng);
doskozil = bias ? doskozil + dist21(rng) : doskozil – dist21(rng);
delete urne;
}
break;
}
case Tagesverfassung::ALLES_OASCH:
{
for(auto urne : urnen)
{
abgegebene_stimmen += urne->getAlleStimmzettel().size();
delete urne;
}
std::uniform_int_distribution<int> distAll(1,abgegebene_stimmen);
babler = distAll(rng) – dist21(rng);
doskozil = abgegebene_stimmen – babler;
enthaltungen = dist21(rng);
break;
}
case Tagesverfassung::SUPER:
//dieser case wird nie eintreffen, allerdings musst auch die funktionierende Version einbauen
{
for(auto urne : urnen)
{
abgegebene_stimmen += urne->getAlleStimmzettel().size();
for(auto stimme : urne->getAlleStimmzettel())
{
switch (stimme)
{
case Stimmzettel::ENTHALTUNG:
enthaltungen++;
break;
case Stimmzettel::BABLER:
babler++;
break;
case Stimmzettel::DOSKOZIL:
doskozil++;
break;
}
}
delete urne;
}
break;
}
}
std::cout << “************************************************************************************************************************” << std::endl;
std::cout << “* Liebe Genossinnen und Genossen, hiermit präsentiere ich Ihnen das Ergebnis der heutigen Wahl zum Parteivorsitzendem: *” << std::endl;
std::cout << “************************************************************************************************************************” << std::endl;
std::cout << “n+++ Mit ” << ((babler > doskozil) ? babler : doskozil) << ” Stimmen präsentieren wir Ihnen hiermit ” << ((babler > doskozil) ? “Andreas Babler” : “Hans Peter Doskozil”)
<< ” als Unseren neuen Bundesparteivorsitzenden!!! +++ *applaus applaus*” << std::endl;
std::cout << “nDas gesamte Ergebnis lautet wie folgt:nn” << “1. mit ” << ((babler > doskozil) ? babler : doskozil) << ” Stimmen: ” << ((babler > doskozil) ? “Andreas Bablern” : “Hans Peter Doskoziln”)
<< “2. mit ” << ((babler < doskozil) ? babler : doskozil) << ” Stimmen: ” << ((babler < doskozil) ? “Andreas Bablern” : “Hans Peter Doskoziln”) << “Und ” << enthaltungen << ” Enthaltungen.” << std::endl;
std::cout << “Insgesamt wurden ” << abgegebene_stimmen << ” Stimmen abgegeben.n” << std::endl;
};
int main()
{
std::vector<Wahlurne*>urnen;
std::cout << “Willkommen auf dem a.o. SPÖ Parteitag 2023!” << std::endl;
std::cout << “Liebe Genossinnen und Genossen, hier nun die Reden unserer Kandidaten:” << std::endl;
sleep(2);
for(int j = 0; j <= 3; j++)
{
sleep(1);
std::cout << “bla bla” << std::endl;
sleep(1);
std::cout << “bla” << std::endl;
sleep(1);
std::cout << “bla bla bla” << std::endl;
}
std::cout << “BLA!!!n” << std::endl;
std::cout << “Lasst die Wahlen beginnen! Es stehen Ihnen am Eingang der Spritzweinbar ” << MAX_URNEN << ” Urnen zurnStimmabgabe bereit..” << std::endl;
for(int i = 0; i < MAX_URNEN; i++)
{
int anzahl = 0;
std::cout << “nBitte geben Sie die Anzahl der abgegebenen Stimmen für Urne ” << i + 1 << ” bekannt:” << std::endl;
std::cin >> anzahl;
Wahlurne* urne = new Wahlurne(anzahl);
urnen.push_back(urne);
}
std::cout << “nDanke für die rege Teilnahme! Nun übernimmt unsere Wahlkommision.n(Das könnte ein bissi dauern)n” << std::endl;
auto gen = std::bind(std::uniform_int_distribution<>(0,1),std::default_random_engine());
sleep(7);
spoeWahlKommission(randomBool(), urnen);
std::cout << “nVielen Dank für Ihren Besuch und Ihre Beteiligung am a.o. SPÖ Parteitag 2023!” << std::endl;
return 0;
}
“`
Glaubst echt, dass des “meme” wer durchlest?
GZ, eiskalt den dritten Kandidaten vergessen xD
GZ, keine Tests geschrieben. Kannst sofort als Lead Entwickler in der SPÖ Zentrale anfangen.
“Meme“
https://preview.redd.it/xptncjzopj4b1.jpeg?width=700&format=pjpg&auto=webp&v=enabled&s=7b212a346a76539e7a1ff4bcab564310af47c138
Beim durchgehen hat mein Gehirn 110% arbeiten müssen. ^^
Ist mal was anderes ;P