Je dois concevoir un module (en C++) pour l'évaluation de feuilles d'étudiant contenant des questions avec plus d'une option correcte (avec un marquage partiel);Techniques de programmation pour l'évaluation de questions à choix multiples
Mes entrées sont: -
- Réponse correcte: vecteur d'options (par exemple 'A', 'C', 'D');
- Réponse de l'élève: vecteur d'options (par exemple 'A', 'B', 'C');
Les règles d'évaluation des types de questions ci-dessus sont les suivantes: -
- pleine Marques: (4) Si seules les options correspondant à corriger les options sont marquées
- Mark partielle: (+1) pour marquer chaque option correcte à condition qu'il n'y a pas d'options incorrectes marquées
- No Marks: (0) Si aucune option marquée
- marques négatives: (-2) Dans tous les autres cas
Par exemple, si (A), (C) et (D) sont les options correctes pour une question, marquer ces trois résultats entraînera +4 points; marquer seulement (A) et (D) donnera +2 points; et le marquage (A) et (B) donnera -2 marques, car une mauvaise option est également marquée.
REMARQUE: Les règles ci-dessus peuvent changer plus tard et se compliquer également.
J'ai pensé approches suivantes: -
- coder en dur les règles. Ce n'est pas flexible car les règles peuvent changer, par ex. une nouvelle sous-clause pourrait être: une option incorrecte remplie donne une note négative partielle, etc .; Utilisation de regex pour obtenir une certaine flexibilité en ce qui concerne les règles.
- Une regex peut être construite pour chacune des sous-règles ci-dessus et l'appariement peut être effectué pour trouver laquelle des sous-règles la réponse de l'étudiant correspond à et attribuer des marques en conséquence. Ainsi, en changeant seulement la regex, nous pouvons changer la règle.
- Utilisation du modèle de stratégie.
Veuillez fournir vos suggestions si vous pensez qu'il y a des failles dans les approches ci-dessus ou qu'il existe de meilleures solutions.
Vous dites que vos entrées sont des chaînes, mais vous parlez d'options. D'où viennent les options, et comment les déterminez-vous comme 'correctes'? – bzeaman
Salut @bzeaman J'ai mis à jour l'énoncé du problème. Et, l'exactitude de la réponse sera décidée à partir des règles ci-dessus, comme expliqué dans l'exemple. –