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;
}