Permisi gan, sekarang ini ane lagi iseng bikin program quiz dengan c++. program udah bisa di run dan jalan. cuma ada sedikit permasalahan ketika soal-soal quiz di programnya mau dibuat acak (Random), masalahnya yaitu soal udah mau acak tapi cuman muncul satu aja, abis itu programnya selesai.
ini kode program ane, tinggal copas aja kalo mau dicoba.
Spoiler for Kode :
#include <iostream>
#include <string>
#include <limits>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
using namespace std;
int guess;
int menang;
int nyawa = 3;
class pertanyaan
{
private:
string soal;
string jawab_1;
string jawab_2;
string jawab_3;
string jawab_4;
int jawaban_benar;
int prize;
public:
void setValues (string, string, string, string, string, int, int);
void askQuestion ( );
};
void pertanyaan::setValues (string p, string j1, string j2, string j3, string j4, int jb, int pz)
{
soal = p ;
jawab_1 = j1;
jawab_2 = j2;
jawab_3 = j3;
jawab_4 = j4;
jawaban_benar = jb;
prize = pz;
}
void pertanyaan::askQuestion ( )
{
cout << "Nyawa : " <<nyawa << endl;
cout << "---------------------------------------------------------" <<endl;
if (nyawa > 0)
{
cout << endl;
cout << soal << endl;
cout << "1. " << jawab_1 << endl;
cout << "2. " << jawab_2 << endl;
cout << "3. " << jawab_3 << endl;
cout << "4. " << jawab_4 << endl;
cout << endl;
cout << "Jawab : " ;
cin >> guess;
if (guess == jawaban_benar)
{
cout << endl;
cout << "Jawaban anda benar. " <<endl;
menang = menang + prize ;
cout << "score anda : " <<prize <<endl;
cout << "Total menang : " <<menang <<endl;
}
else
{
cout << "Jawaban anda salah." <<endl;
cout << "Total menang : " <<menang <<endl;
nyawa = nyawa - 1;
cout << endl;
}
}
else
{
system ("CLS");
cout << "Kesempatan anda habis. " << endl;
cout << "Total score : " <<menang << endl;
cout << endl;
}
cout << endl;
cout << "---------------------------------------------------------" <<endl;
}
void umum ()
{
srand((unsigned)time(0));
int ran = rand() % 5 + 1;
pertanyaan p1;
pertanyaan p2;
pertanyaan p3;
pertanyaan p4;
pertanyaan p5;
p1.setValues ("Apa ibukota Kanada ?",
"Ottawa",
"Beijing",
"Jakarta",
"Nem York",
1,
100);
p2.setValues ("Siapa presiden Amerika Serikat saat ini ?",
"Osama Bin Laden",
"Barrack Obama",
"Karl Max",
"David Beckham",
2,
100);
p3.setValues ("Siapa Sekjen PBB saat ini ?",
"Kofi Anan",
"Barrack Obama",
"Ban-Ki-Moon",
"Nelson Mandela",
3,
200);
p4.setValues ("Siapa penemu mesin diesel ?",
"Bjarne Strostaup",
"Leonardo Da Vinci",
"Albert Einstein",
"Rudolf Diesel",
4,
100);
p5.setValues ("Siapa pemain sepakbola terbaik dunia saat ini ?",
"Xavi Hernandez",
"Lionel Messi",
"Cristiano Ronaldo",
"Wayne Rooney",
2,
100);
if (ran == 1) p1.askQuestion ( );
if (ran == 2) p2.askQuestion ( );
if (ran == 3) p3.askQuestion ( );
if (ran == 4) p4.askQuestion ( );
if (ran == 5) p5.askQuestion ( );
menang = 0;
nyawa = 3;
}
void matematika ()
{
pertanyaan p1;
pertanyaan p2;
pertanyaan p3;
pertanyaan p4;
pertanyaan p5;
p1.setValues ("diketahui a=5, b=3, c=7. hasil dari a+b-c = ?",
"1",
"10",
"3",
"4",
1,
100);
p2.setValues ("luas persegi dengan sisi 10 cm adalah ?",
"50",
"100",
"110",
"32",
2,
100);
p3.setValues ("diketaui segitiga ABC, tinggi=10, alas=12. luasnya adalah ?",
"60",
"50",
"20",
"200",
1,
200);
p4.setValues ("diketahui deret bilangan 2,2,4,5,6. nilai mediannya adalah ?",
"5.5",
"5",
"4.5",
"4",
4,
200);
p5.setValues ("diketahui deret bilangan 2,2,4,5,2. nilai rata-ratanya adalah ?",
"2",
"3",
"5",
"7",
2,
300);
p1.askQuestion ( );
p2.askQuestion ( );
p3.askQuestion ( );
p4.askQuestion ( );
p5.askQuestion ( );
menang = 0;
nyawa = 3;
}
int main ()
{
awal:
cout << " **************************" <<endl;
cout << " * *" <<endl;
cout << " * Program Quiz Show Game *" <<endl;
cout << " * *" <<endl;
cout << " * BY *" <<endl;
cout << " * *" <<endl;
cout << " * Andre *" <<endl;
cout << " * *" <<endl;
cout << " **************************" <<endl;
cout <<endl;
int pilih;
char pilihan;
cout << "--------------------------Program Quiz------------------------";
cout << "\n\n";
cout << "1. quiz pertanyaan umum. ";
cout << "\n";
cout << "2. quiz matematika. ";
cout << "\n\n";
cout << "Masukan pilihan : ";
cin >> pilih;
system ("CLS");
switch (pilih) {
case 1 : umum(); break;
case 2 : matematika (); break;
}
cout <<"\n";
while(cin.fail() || pilih > 2 || pilih == 0)
{
system ("CLS");
cout << "pilihan tidak sesuai, silakan ulangi lagi." <<endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout <<"\n";
goto awal;
}
cout <<"apakah anda ingin kembali ke menu utama ? ";
cout <<"Y/N : "; cin >> pilihan;
if (pilihan == 'y' || pilihan == 'Y') {
system ("CLS");
goto awal;
}else{
system ("CLS");
cout <<"Terima Kasih";
}
return 0;
}
ini skrinsutnya:
Spoiler for Tampilan Awal :
Spoiler for program sebelum di random :
Spoiler for program setelah di random :
kira-kira gmna solusinya gan supaya ketika soalnya di random mau muncul semuanya??
Thanks Gan
Maaf klo ngerepotin.