AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen
Thema durchsuchen
Ansicht
Themen-Optionen

Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

Ein Thema von AquaMari · begonnen am 23. Apr 2015 · letzter Beitrag vom 1. Mai 2015
Antwort Antwort
AquaMari

Registriert seit: 23. Apr 2015
7 Beiträge
 
Delphi 4 Standard
 
#1

AW: Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 25. Apr 2015, 11:28
Wo wir aber schon dabei sind habe ich jetzt eine andere Frage.
Ich möchte ja zum Schluss ein Ergebnis von diesem Quiz zeigen. Also dass ich dann zum Schluss angebe wie viele Fragen man richtig beantwortet hat. Und ich möchte also, dass nur wenn man die richtige Antwort oder die richtige Antworten angekreuzt (checked) hat (da auch mehrere Antworten richtig sein können) und die falschen eben nicht angekreuzt hat, einen Punkt bekommt und ansonsten nicht.

Also ich habe hier ein Procedure mit druecken (checkbox[i].onclick) und da habe ich schon was hingeschrieben(da werden bei mir eben die richtigen Antworten nicht richtig zusammengezählt):
unten seht ihr den Quell-Code

Wie kann ich das jetzt hinbekommen ?

Danke im Voraus

Lg,
AquaMari

Delphi-Quellcode:

procedure Tform1.druecken;
var i:integer;
begin
  if groupbox1.caption=fragen[1] then

for i:=1 to 4 do
   if check[i].caption=r_antworten[1] then richtige_A:=richtige_a+1
   else richtige_a:=richtige_a;

   
if groupbox1.caption=fragen[2] then
for i:=1 to 4 do

   if (check[i].caption=r_antworten[2]) and (check[i].caption=r_antworten[3]) and (check[i].caption=r_antworten[4]) then richtige_A:=richtige_a+1
    else richtige_a:=richtige_a;

   if groupbox1.caption=fragen[3] then
for i:=1 to 4 do

   if check[i].caption=r_antworten[5] then richtige_A:=richtige_a+1
   else richtige_a:=richtige_a;


   if groupbox1.caption=fragen[4] then
for i:=1 to 4 do
if (check[i].caption=r_antworten[6]) and (check[i].caption=r_antworten[7]) then richtige_A:=richtige_a+1
else richtige_a:=richtige_a;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#2

AW: Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 25. Apr 2015, 11:46
Wenn man solche Abfrage-Orgien schreiben muss, sollte man sich vielleicht eine alternative Lösung ausdenken. So könnte man eine Liste von Strukturen (Records oder Klassen) verwalten, die
- die Frage
- die möglichen Antworten
- den Index der richtigen Antwort
beinhalten. Da ich davon ausgehe, dass es je Frage nur eine richtige Antwort gibt, sind Checkboxen nicht die optimale Wahl. Besser wäre eine Radiogroup, die über die Items-Eigenschaft befüllt und über die ItemIndex-Eigenschaft ausgewertet wird. Dann kann man nämlich den ItemIndex mit dem "richtige Antwort"-Index der o.a. Struktur vergleichen. Beispiele sollten sich im Forum unter "Wer wird Millionär" oder ähnlichen Suchbegriffen finden lassen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#3

AW: Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 25. Apr 2015, 14:08
(da auch mehrere Antworten richtig sein können)
Da ich davon ausgehe, dass es je Frage nur eine richtige Antwort gibt, sind Checkboxen nicht die optimale Wahl.
@DeddyH
Deine Vermutung widerspricht der Aussage von AquaMari im Post über Deinem.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#4

AW: Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 25. Apr 2015, 14:16
Delphi-Quellcode:

if groupbox1.caption=fragen[4] then
  for i:=1 to 4 do
    if (check[i].caption=r_antworten[6]) and (check[i].caption=r_antworten[7]) then richtige_A:=richtige_a+1
  else richtige_a:=richtige_a;
Schau Dir einmal diese Zeile an:
if (check[i].caption=r_antworten[6]) and (check[i].caption=r_antworten[7]) then Das kann nicht funktionieren, da check[i] nicht gleichzeitig zwei verschiedene Antworten haben kann.

Aussedem kannst Du den else-Teil weglassen.

Wenn Du dieses System beibehalten wolltest, dann müsstest Du für jede richtige Antwortmöglichkeit eine Schleife durchlaufen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
AquaMari

Registriert seit: 23. Apr 2015
7 Beiträge
 
Delphi 4 Standard
 
#5

AW: Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 1. Mai 2015, 09:18
Und wie kann ich das hinkriegen wenn ich das außerhalb der Procedure checkbox.onclick hinschreibe??

Wie löse ich nun die Aufgabe??

nochmal zur info: ich möchte das nur wenn man die richtige Antwort oder Antworten angekreuzt hat einen Punkt bekommt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 1. Mai 2015, 10:03
Da nicht davon auszugehen ist, dass es je Frage mehr als 256 Antworten gibt, ließe sich das auch über Mengen lösen. Jede Aufgabe besteht dann somit aus der Frage, einer Liste der möglichen und einer Menge der richtigen Antworten. Zur Auswertung gehst Du dann die Checkboxen durch und bildest aus den angekreuzten wiederum eine Menge. Diese kannst Du dann mit der vorgegebenen Menge vergleichen. http://www.delphipraxis.net/33010-me...iner-kurs.html

[edit] Ich hab mich dazu durchgerungen, eine kleine Beispielanwendung zu schreiben. Die ist zwar kein Kleinod der hohen Programmierkunst, zeigt aber das Prinzip. [/edit]

[edit2] Delphi 4 kennt AFAIK keine Unit "Variants", die kannst Du einfach aus der uses-Klausel löschen. [/edit2]
Angehängte Dateien
Dateityp: zip MultipleChoice.zip (1,9 KB, 13x aufgerufen)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 1. Mai 2015 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz