İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

advertisement
İnternet Üzerinden Sınav Yapabilen Applet Uygulaması
İ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
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"}
};
www.dijitalders.net
İnternet Üzerinden Sınav Yapabilen
Applet Uygulaması
1
İnternet Üzerinden Sınav Yapabilen Applet Uygulaması
int SuankiSoru = ;
int Puan = ;
int DogruSayisi=;
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][]);
Acevap.setLabel(Sorular[SoruNo][1]);
Bcevap.setLabel(Sorular[SoruNo][2]);
www.dijitalders.net
İnternet Üzerinden Sınav Yapabilen
Applet Uygulaması
2
İnternet Üzerinden Sınav Yapabilen Applet Uygulaması
Ccevap.setLabel(Sorular[SoruNo][3]);
Dcevap.setLabel(Sorular[SoruNo][4]);
Ecevap.setLabel(Sorular[SoruNo][5]);
}
public void CevabiKontrolEt(int SoruNosu) {
int VerilenCevapIndex = ;
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);
}
}
www.dijitalders.net
İnternet Üzerinden Sınav Yapabilen
Applet Uygulaması
3
İnternet Üzerinden Sınav Yapabilen Applet Uygulaması
www.dijitalders.net
İnternet Üzerinden Sınav Yapabilen
Applet Uygulaması
4
İ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 = ;
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[][] = "4+2 Kaç eder2"
Sorular[][1] = "5"
Sorular[][2] = "6"
Sorular[][3] = "7"
Sorular[][4] = "8"
Sorular[][5] = "9"
Sorular[][6] = "2"
Sorular[][7] = "5"
Sorular[1][] = "Türkiyenin baş kenti neresidir?"
Sorular[][1] = "Ankara"
Sorular[][2] = "İstanbul"
www.dijitalders.net
İnternet Üzerinden Sınav Yapabilen
Applet Uygulaması
5
İnternet Üzerinden Sınav Yapabilen Applet Uygulaması
Sorular[][3]
Sorular[][4]
Sorular[][5]
Sorular[][6]
Sorular[][7]
=
=
=
=
=
"İzmir"
"Bursa"
"Edirne"
"1"
"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][]);
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][]);
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][] = "Türkiyenin baş kenti neresidir?" yapıyoruz.
www.dijitalders.net
İnternet Üzerinden Sınav Yapabilen
Applet Uygulaması
6
Download