Bir Program Yazdım Ben Senin İçin Sınıf yapıları vs Kalıtımı da kullanarak tam anlamazsan daha fazlada yardımcı olabılırım
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <locale.h>
using namespace std;
class SoruProgram{
protected:
int YanlisSayisi;
int DogruSayisi;
public:
SoruProgram():DogruSayisi(0),YanlisSayisi(0){
}
void YSayiArtir(){
YanlisSayisi++;
}
void DSayiArtir(){
DogruSayisi++;
}
int YSayiDondur() const
{
return YanlisSayisi;
}
int DSayiDondur() const
{
return DogruSayisi;
}
};
class Sorular:public SoruProgram // kalıtım yapısı için
{
private:
int Soru_No;
char cevap;
static const int sinir=4;
public:
int SoruUret(){
return rand()%sinir;
}//Soru Uret Sonu
int SoruDeger(){
return sinir;
}//Soru Sayısını Döndürmek İçin
void SoruSor(){
Soru_No=SoruUret();
cout <<"Soru: "<<SoruCek(Soru_No)<<endl;
cout <<"Cevaplar: \n"<<CevaplariCek(Soru_No)<<endl;
}//Soru Sor Sonu
string SoruCek(int temp){
string Sorular;
switch(temp){
case 1: Sorular ="1. Soru";break;
case 2: Sorular ="2. Soru";break;
case 3: Sorular ="3. Soru";break;
case 4: Sorular ="4. Soru";;break;
}
return Sorular;
}//Soru Çek Sonu
string CevaplariCek(int temp2){
string Cevaplar;
switch(temp2){
case 1: Cevaplar = "a) 1.\nb)2.ci\nc)3.cü\nd)4.cü";break;
case 2: Cevaplar = "a) 1.\nb)2.ci\nc)3.cü\nd)4.cü";break;
case 3: Cevaplar = "a) 1.\nb)2.ci\nc)3.cü\nd)4.cü";break;
case 4: Cevaplar = "a) 1.\nb)2.ci\nc)3.cü\nd)4.cü";;break;
}
return Cevaplar;
}//CevaplariCek Sonu
void SoruKontrolu(){
char dogrucevap=DogruCevabiAl(Soru_No);
if(cevap==dogrucevap){
SoruProgram::DSayiArtir();
}
else{
SoruProgram::YSayiArtir();
}
}//Soru Kontrolu Sonu
char DogruCevabiAl(int SoruNo2){
char DogruCevap;
switch(SoruNo2){
case 1:DogruCevap='a';break;
case 2:DogruCevap='b';break;
case 3:DogruCevap='c';break;
case 4:DogruCevap='d';break;
}
return DogruCevap;
}//DogruCevabi Al Sonu
void CevapAl(){
cout<<"Cevabiniz: ";
cin>>cevap;
}
void SonucuEkranaYaz(){
cout<<"Doğru Sayınız: "<<SoruProgram::DSayiDondur()<<endl;
cout<<"Yanlış Sayınız: "<<SoruProgram::YSayiDondur()<<endl;
}
};
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"turkish");
srand(time(NULL));
Sorular soru;int i=1;
int dongu_sayi=soru.SoruDeger();
while(i<=dongu_sayi){
soru.SoruSor();
soru.CevapAl();
soru.SoruKontrolu();
i++;
}
soru.SonucuEkranaYaz();
system("PAUSE");
return EXIT_SUCCESS;
}