#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
class Fortunecookie
{
private:
string fortune[10];
int rand_index;
public:
void openFortuneCookie();
void generateNewFortune();
Fortunecookie(); // typo
};
void Fortunecookie::generateNewFortune()
{
rand_index = rand() %10;
}
Fortunecookie::Fortunecookie()
: fortune{" One that would have the fruit must climb the tree",
" A new opportunity awaits you at the fork of the road",
" The early bird gets the worm, but the second mouse gets the cheese. ",
" You are cleverly disguised as responsible adult.",
" The best things in life aren't things",
" Forget injuries; never forget kindnesses.",
" Borrow money from a pessimist. They don't expect it back",
" Your good enough, strong enough and gosh darnit' people like you",
" A feather in the hand is better than a bird in the air. ",
" In life, you must be the water"
}
{
rand_index = rand() %10; // number between 0 and 9
}
void Fortunecookie::openFortuneCookie()
{
generateNewFortune();
cout << " |====================================================================| \n";
cout << " | | \n";
cout << " | " <<setw(2)<<rand_index+1<<"-"<<setw(63)<<fortune[rand_index]<< " |\n";
cout << " | | \n";
cout << " |====================================================================| \n";
}
int main ()
{
srand(time(0)); // only once, at the beginning of the programme
Fortunecookie yourfortune; // this calls the default constructor
//yourfortune.generateNewFortune();
//yourfortune.Fortunecookie(); // OUCH !!
yourfortune.openFortuneCookie();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjdGltZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBGb3J0dW5lY29va2llCnsKcHJpdmF0ZToKICAgc3RyaW5nIGZvcnR1bmVbMTBdOwogICBpbnQgcmFuZF9pbmRleDsKcHVibGljOgogICB2b2lkIG9wZW5Gb3J0dW5lQ29va2llKCk7CiAgIHZvaWQgZ2VuZXJhdGVOZXdGb3J0dW5lKCk7CiAgIEZvcnR1bmVjb29raWUoKTsgIC8vIHR5cG8KfTsKCgp2b2lkIEZvcnR1bmVjb29raWU6OmdlbmVyYXRlTmV3Rm9ydHVuZSgpCnsKICAgIHJhbmRfaW5kZXggPSByYW5kKCkgJTEwOwp9CgpGb3J0dW5lY29va2llOjpGb3J0dW5lY29va2llKCkKICAgICAgICAgICAgICAgOiBmb3J0dW5leyIgT25lIHRoYXQgd291bGQgaGF2ZSB0aGUgZnJ1aXQgbXVzdCBjbGltYiB0aGUgdHJlZSIsCiAgICAgICAgICAgICAgICAgICAiIEEgbmV3IG9wcG9ydHVuaXR5IGF3YWl0cyB5b3UgYXQgdGhlIGZvcmsgb2YgdGhlIHJvYWQiLAogICAgICAgICAgICAgICAgICAgIiBUaGUgZWFybHkgYmlyZCBnZXRzIHRoZSB3b3JtLCBidXQgdGhlIHNlY29uZCBtb3VzZSBnZXRzICAgICB0aGUgY2hlZXNlLiAiLAogICAgICAgICAgICAgICAgICAgIiBZb3UgYXJlIGNsZXZlcmx5IGRpc2d1aXNlZCBhcyByZXNwb25zaWJsZSBhZHVsdC4iLAogICAgICAgICAgICAgICAgICAgIiBUaGUgYmVzdCB0aGluZ3MgaW4gbGlmZSBhcmVuJ3QgdGhpbmdzIiwKICAgICAgICAgICAgICAgICAgICIgRm9yZ2V0IGluanVyaWVzOyBuZXZlciBmb3JnZXQga2luZG5lc3Nlcy4iLAogICAgICAgICAgICAgICAgICAgIiBCb3Jyb3cgbW9uZXkgZnJvbSBhIHBlc3NpbWlzdC4gVGhleSBkb24ndCBleHBlY3QgaXQgICAgICAgYmFjayIsCiAgICAgICAgICAgICAgICAgICAiIFlvdXIgZ29vZCBlbm91Z2gsIHN0cm9uZyBlbm91Z2ggYW5kIGdvc2ggZGFybml0JyBwZW9wbGUgICAgIGxpa2UgeW91IiwKICAgICAgICAgICAgICAgICAgICIgQSBmZWF0aGVyIGluIHRoZSBoYW5kIGlzIGJldHRlciB0aGFuIGEgYmlyZCBpbiB0aGUgICAgIGFpci4gIiwKICAgICAgICAgICAgICAgICAgICIgSW4gbGlmZSwgeW91IG11c3QgYmUgdGhlIHdhdGVyIgogICAgICAgICAgICAgICAgICB9CnsKICAgIHJhbmRfaW5kZXggPSByYW5kKCkgJTEwOyAgLy8gbnVtYmVyIGJldHdlZW4gMCBhbmQgOSAKfQp2b2lkIEZvcnR1bmVjb29raWU6Om9wZW5Gb3J0dW5lQ29va2llKCkKewogICAgZ2VuZXJhdGVOZXdGb3J0dW5lKCk7CiAgICAKICAgIGNvdXQgPDwgIiB8PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT18IFxuIjsKICAgIGNvdXQgPDwgIiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuIjsKICAgIGNvdXQgPDwgIiB8ICIgPDxzZXR3KDIpPDxyYW5kX2luZGV4KzE8PCItIjw8c2V0dyg2Myk8PGZvcnR1bmVbcmFuZF9pbmRleF08PCAiIHxcbiI7CiAgICBjb3V0IDw8ICIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiI7CiAgICBjb3V0IDw8ICIgfD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09fCBcbiI7Cn0KaW50IG1haW4gKCkKewogICAgc3JhbmQodGltZSgwKSk7ICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IG9uY2UsIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByb2dyYW1tZQogICAgRm9ydHVuZWNvb2tpZSB5b3VyZm9ydHVuZTsgICAgICAgICAvLyB0aGlzIGNhbGxzIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yCiAgICAvL3lvdXJmb3J0dW5lLmdlbmVyYXRlTmV3Rm9ydHVuZSgpOwogICAgLy95b3VyZm9ydHVuZS5Gb3J0dW5lY29va2llKCk7ICAgICAgIC8vIE9VQ0ggISEKICAgIHlvdXJmb3J0dW5lLm9wZW5Gb3J0dW5lQ29va2llKCk7CiAgICByZXR1cm4gMDsKfQo=