İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

Bir dizi ile soruların belirlendiği ve dizideki elemanları sıra ile kullanıcı ekranına getirip, cevaba göre dizide belirtilen doğru cevapla kıyaslayıp, yine dizide belirtilen puanı kullanıcıya veren uygulama örneği

İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

Applet class dosyası


import java.applet.Applet;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
//import java.awt.Graphics;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class NewApplet extends Applet implements ActionListener {

    Label Soru = new Label();
    Label PuanDurumu = new Label();

    //Checkboxlar Radio button olsunlar diye
    CheckboxGroup Cevaplar = new CheckboxGroup();
    Checkbox Acevap = new Checkbox("", Cevaplar, false);
    Checkbox Bcevap = new Checkbox("", Cevaplar, false);
    Checkbox Ccevap = new Checkbox("", Cevaplar, false);
    Checkbox Dcevap = new Checkbox("", Cevaplar, false);
    Checkbox Ecevap = new Checkbox("", Cevaplar, false);
    Button Tamam = new Button("Tamam");

    String Sorular[][] = {
        {"4+2 Kaç eder2", "5", "6", "7", "8", "9", "2", "5"},
        {"Türkiyenin baş kenti neresidir?", "Ankara", "İstanbul", "İzmir", "Bursa", "Edirne", "1", "10"}
    };

    int SuankiSoru = 0;
    int Puan = 0;
    int DogruSayisi=0;
   
    public void init() {

        setLayout(null);

        PuanDurumu.setLocation(250, 5);
        PuanDurumu.setSize(200, 20);
        add(PuanDurumu);

        Soru.setLocation(10, 10);
        Soru.setSize(200, 20);
        add(Soru);

        Acevap.setLocation(10, 40);
        Acevap.setSize(200, 20);
        add(Acevap);

        Bcevap.setLocation(10, 60);
        Bcevap.setSize(200, 20);
        add(Bcevap);

        Ccevap.setLocation(10, 80);
        Ccevap.setSize(200, 20);
        add(Ccevap);

        Dcevap.setLocation(10, 100);
        Dcevap.setSize(200, 20);
        add(Dcevap);


        Ecevap.setLocation(10, 120);
        Ecevap.setSize(200, 20);
        add(Ecevap);

        SorulariYaz(SuankiSoru);

        Tamam.setLocation(10, 140);
        Tamam.setSize(60, 20);
        add(Tamam);

        Tamam.addActionListener(this);

    }

    public void actionPerformed(ActionEvent Olay) {

        if (SuankiSoru <Sorular.length) {
            CevabiKontrolEt(SuankiSoru);
        }

        SuankiSoru++;

        if (SuankiSoru < Sorular.length) {
            SorulariYaz(SuankiSoru);
        } else {
            SinaviBitir();
        }

    }

    public void SorulariYaz(int SoruNo) {

        Cevaplar.setSelectedCheckbox(null);

        Soru.setText(Sorular[SoruNo][0]);
        Acevap.setLabel(Sorular[SoruNo][1]);
        Bcevap.setLabel(Sorular[SoruNo][2]);
        Ccevap.setLabel(Sorular[SoruNo][3]);
        Dcevap.setLabel(Sorular[SoruNo][4]);
        Ecevap.setLabel(Sorular[SoruNo][5]);
    }

    public void CevabiKontrolEt(int SoruNosu) {

        int VerilenCevapIndex = 0;
        if (Acevap.getState()) {
            VerilenCevapIndex = 1;
        } else if (Bcevap.getState()) {
            VerilenCevapIndex = 2;
        } else if (Ccevap.getState()) {
            VerilenCevapIndex = 3;
        } else if (Dcevap.getState()) {
            VerilenCevapIndex = 4;
        } else if (Ecevap.getState()) {
            VerilenCevapIndex = 5;
        }

        if (Integer.valueOf(Sorular[SoruNosu][6]) == VerilenCevapIndex) {
            //String tip integera dönüştürülüyor
            Puan += Integer.valueOf(Sorular[SoruNosu][7]);
            DogruSayisi++;
            //Integer deger stringe donusuyor
            PuanDurumu.setText(Integer.toString(Puan));
        }
    }

    public void SinaviBitir() {

        //Var olan nesneleri gizliyoruz
        Soru.setVisible(false);
        Acevap.setVisible(false);
        Bcevap.setVisible(false);
        Ccevap.setVisible(false);
        Dcevap.setVisible(false);
        Ecevap.setVisible(false);
        Tamam.setVisible(false);

        Label Sonuc=new Label(Sorular.length + " soru içerisinden "+DogruSayisi+" doğru cevap ile "+ Puan+ " puan aldınız.");
        Sonuc.setLocation(10, 30);
        Sonuc.setSize(400, 20);
        add(Sonuc);

    }
}

 

 

İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

Kodlarla İlgili Açıklamalar :

Filiz EMİR'in isteği ile aşağıdaki açıklamaları yapma gereği duyduk.

        int VerilenCevapIndex = 0;
        if (Acevap.getState()) {
            VerilenCevapIndex = 1;
        } else if (Bcevap.getState()) {
            VerilenCevapIndex = 2;
        } else if (Ccevap.getState()) {
            VerilenCevapIndex = 3;
        } else if (Dcevap.getState()) {
            VerilenCevapIndex = 4;
        } else if (Ecevap.getState()) {
            VerilenCevapIndex = 5;
        }

  Yukardaki kodda kullanıcının şeçtiği Checkbox'a göre bir index ataması yapıyoruz. Bu atama 1 den 5'e kadar VerilenCevapIndex değişkeni içerisine yapılıyor.

 

String Sorular[][] = {
        {"4+2 Kaç eder2", "5", "6", "7", "8", "9", "2", "5"},
        {"Türkiyenin baş kenti neresidir?", "Ankara", "İstanbul", "İzmir", "Bursa", "Edirne", "1", "10"}
    };

Yukardaki Sorular dizisisinde 0. Eleman soruyu 1 den 5'e kadar olan elemanlar cevap şıklarını,  6. değer doğru cevabın olduğu dizi index numarasını, 7. değerde puanı tutuyor.

Yani Sorular dizisi bellekte şu şekilde duruyor

Sorular[0][0] = "4+2 Kaç eder2"
Sorular[0][1] = "5"
Sorular[0][2] = "6"
Sorular[0][3] = "7"
Sorular[0][4] = "8"
Sorular[0][5] = "9"
Sorular[0][6] = "2"
Sorular[0][7] = "5"

Sorular[1][0] = "Türkiyenin baş kenti neresidir?"
Sorular[0][1] = "Ankara"
Sorular[0][2] = "İstanbul"
Sorular[0][3] = "İzmir"
Sorular[0][4] = "Bursa"
Sorular[0][5] = "Edirne"
Sorular[0][6] = "1"
Sorular[0][7] = "10"

 Seçilen cevabın index numarası ile benim soruyu yazarken belirttiğim doğru cevap index numarası tutuyorsa, Sorular[SoruNosu] dizisinin 7. elemanındaki puan değerini kullanıcıya veriyoruz..

if (Integer.valueOf(Sorular[SoruNosu][6]) == VerilenCevapIndex) {

Kısaca soruları yazarken doğru şıkkın numarasınıda giriyorum. Kullanıcının cevap indexi ile benim soruyu yazarken belirttiğim doğru cevap indexi tutarsa soruyu doğru cevaplamıştır diyoruz...

Soruların Ekrana Yazılmasını Saylayan Fonksiyon:

    public void SorulariYaz(int SoruNo) {

        Cevaplar.setSelectedCheckbox(null);

        Soru.setText(Sorular[SoruNo][0]);
        Acevap.setLabel(Sorular[SoruNo][1]);
        Bcevap.setLabel(Sorular[SoruNo][2]);
        Ccevap.setLabel(Sorular[SoruNo][3]);
        Dcevap.setLabel(Sorular[SoruNo][4]);
        Ecevap.setLabel(Sorular[SoruNo][5]);
    }

  Checkbox Grubumuzun adı Cevaplar olduğundan Ekrana soruları basarken tüm Checkboxların selected özelliğini boşa alıyoruz.

Cevaplar.setSelectedCheckbox(null);

  Ekranda daha önce konumlarını belirlediğim alanlara SoruNo ile index'i gelen dizi eleman değerlerinin gelmesini sağlıyoruz

Soru.setText(Sorular[SoruNo][0]);
Acevap.setLabel(Sorular[SoruNo][1]);
Bcevap.setLabel(Sorular[SoruNo][2]);
Ccevap.setLabel(Sorular[SoruNo][3]);
Dcevap.setLabel(Sorular[SoruNo][4]);
Ecevap.setLabel(Sorular[SoruNo][5]);

  Mesela SoruNo=1 ise Soru Label değerini Sorular[1][0] = "Türkiyenin baş kenti neresidir?" yapıyoruz.

 

Yorumunuzu Ekleyin
İnternet Üzerinden Sınav Yapabilen Applet Uygulaması Yorumları +4 Yorum
  • filiz emir
    1
    filiz emir
    public void SorulariYazint SoruNo Cevaplar.setSelectedCheckboxnull; Soru.setTextSorular[SoruNo][0]; Acevap.setLabelSorular[SoruNo][1]; Bcevap.setLabelSorular[SoruNo][2]; Ccevap.setLabelSorular[SoruNo][3]; Dcevap.setLabelSorular[SoruNo][4]; Ecevap.setLabelSorular[SoruNo][5]; public void CevabiKontrolEtint SoruNosu int VerilenCevapIndex 0; if Acevap.getState VerilenCevapIndex 1; else if Bcevap.getState VerilenCevapIndex 2; else if Ccevap.getState VerilenCevapIndex 3; else if Dcevap.getState VerilenCevapIndex 4; else if Ecevap.getState VerilenCevapIndex 5; if Integer.valueOfSorular[SoruNosu][6] VerilenCevapIndex //String tip integera dönüştürülüyor Puan + Integer.valueOfSorular[SoruNosu][7]; DogruSayisi++; //Integer deger stringe donusuyor PuanDurumu.setTextInteger.toStringPuan; Kodun bu kısmında ne yapıldığını ayrıntılı anlatabilirmisiniz çözmekte zorlandım bayağı bi programlama öğrencisi olarak :
    13 Nisan 2014 16:34:01, Pazar
  • Admin
    1
    Admin
    if Acevap.getState [Hangi şık seçiliyse onun getStatesi true olacağından, VerilenCevapIndexine ona göre bir değer attım. Yani A için 1, B için 2, C için 3 gibi... Hangi şık seçiliyse, seçili şıkkın indexini aldım. Integer.valueOfSorular[SoruNosu][6] VerilenCevapIndex Sorular sıra ile sorulduğundan sıradaki sorunun doğru cevabının olduğu index numarasını 6. değerde tutuyorum. Yani sorunun doğru cevap şıkkının index numarasını 6. dizi değeri belirtiyor. Seçilen cevabın index numarası ile benim soruyu yazarken belirttiğim doğru cevap index numarası tutuyorsa, Sorular[SoruNosu] dizisinin 7. elemanındaki puan değerini kullanıcıya veriyorum.. Kısaca soruları yazarken doğru şıkkın numarasınıda giriyorum. Kullanıcının cevap indexi ile benim soruyu yazarken belirttiğim doğru cevap indexi tutarsa soruyu doğru cevaplamıştır diyorum...
    14 Nisan 2014 00:39:01, Pazartesi
  • filiz emir
    1
    filiz emir
    Teşekkürler Peki bu kod bloğu ? public void SorulariYazint SoruNo Cevaplar.setSelectedCheckboxnull; Soru.setTextSorular[SoruNo][0]; Acevap.setLabelSorular[SoruNo][1]; Bcevap.setLabelSorular[SoruNo][2]; Ccevap.setLabelSorular[SoruNo][3]; Dcevap.setLabelSorular[SoruNo][4]; Ecevap.setLabelSorular[SoruNo][5]; Özellikle Cevaplar.setSelectedCheckboxnull; bu kod satırının açılımı nedir ?
    14 Nisan 2014 02:04:06, Pazartesi
  • Admin
    1
    Admin
    Filiz senin için yeni açıklamalar ekledik...
    16 Nisan 2014 12:01:15, Çarşamba


Yükleniyor...
Yükleniyor...