İ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