Je travaille sur un nouveau projet. Ma meilleure analogie serait un fabricant de tests d'évaluation psychologique.Je cherche des astuces pour créer une application "TestMaker" (Questions et Réponses) avec Evaluation Engine
Aspect n ° 1. L'utilisateur final doit créer des questions de test. Avec les types de questions Et les réponses possibles aux questions le cas échéant.
Exemples:
1. Do you have red hair? (T/F)
2. What is your favorite color? (Single Response/Multiple Choice)
(Possible Responses: Red, Yellow, Black, White)
3. What size shoe do you wear (rounded to next highest size)? (Integer)
4. How much money do you have on you right now? (Dollar Amount (decimal))
donc je dois être en mesure de créer des questions, leur type de question, et quelques-unes des questions, les réponses possibles.
ici:
Numéro 1 est un type de savoir de "Vrai ou faux".
Le numéro 2 est un type connu de "réponse unique/choix multiple" ET l'utilisateur final créera les réponses possibles.
Le numéro 3 est un type connu de "Integer". L'utilisateur final (personne prenant l'évaluation) peut fondamentalement mettre n'importe quelle valeur entière.
Le numéro 4 est un type connu de "Decimal". Identique à Integer.
Aspect n ° 2. L'utilisateur final doit évaluer les réponses de la personne. Et affecter une valeur scalaire à un ensemble de réponses.
Exemple:
Si quelqu'un a répondu:
1. T
2. Red
3. >=8
4. (Not considered for this situation)
Certains psychiatre-expert chiffres que si quelqu'un a répondu avec les réponses ci-dessus, que vous êtes 85% plus à risque de dépression que la normale . (Où 85% est un nombre final affaires utilisateur (psychiatre) peut entrer en tant que paramètre.
donc Aspect # 2 est en cours d'exécution à travers les réponses de quelqu'un, et la détermination d'un résultat.
La « grille de réponse » devrait être configuré de façon à ce qu'il passe (en tout ou en partie) les possibilités dans un ordre de classement prioritaire, et après que toutes les conditions soient réunies (sur une seule ligne), sortez avec le résultat
:
(1.) T (2.) Red (3.) >=8 ... Result = 85%
(1.) T (2.) Yellow (3.) >=8 ... Result = 70%
(1.) F (2.) Red (3.) >=8 ... Result = 50%
(1.) F (2.) Yellow (3.) >=8 ... Result = 40%
Une fois qu'une correspondance est trouvée, vous quitte avec le pourcentage. Si vous ne trouvez pas de correspondance, vous passez à la règle suivante.
Aussi, en cours d'exécution avec cet exemple de simulation psychologique, je n'ai pas besoin de définir chaque permutation. Beaucoup de questions sur les évaluations psychologiques ne sont pas réellement utilisées, elles sont juste "fluff". Donc, dans ma grille ci-dessus, j'ai délibérément omis la question # 4. Cela n'a aucune incidence sur les résultats.
Il peut également y avoir une "Cette personne a-t-elle pris cela au sérieux?"Grille d'évaluation:
(3.) >=20 (4.) >=$1,000 ... Result = False
(La possibilité d'avoir une taille de chaussure> = 20 et ayant de gros dollars dans votre poche est très faible, donc vous ne avez probablement pas pris le sérieux test psych.)
Si aucune règle n'est trouvée, (dans ma vraie application, pas cette maquette), je lancerais une exception ou je m'en ficherais, je n'aurais pas besoin d'une règle par défaut ou d'une règle d'erreur Dans ce qui précède, le rouge et le jaune sont "inquiétants" "couleurs préférées.Si votre couleur préférée est le noir ou le blanc, cela n'a aucune incidence sur votre facteur de risque de dépression
J'ai utilisé Business Rul e Moteurs dans le passé. (InRule par exemple). Ils sont très chers, et ce n'est pas dans le budget.
BizTalk Business Rules Framework est une possibilité. Pas de $ irable, mais possible. Mon problème avec n'importe quel moteur de règles est que le "vocabulaire" (j'ai peu d'expérience avec les moteurs de règles métier) est basé sur des objets, avec des propriétés statiques.
public class Employee
{
public string LastName
{ get; set; }
public DateTime HireDate
{ get; set; }
public decimal AnnualSalary
{ get; set; }
public void AdjustSalary(int percentage)
{
this.AdjustSalary= this.AdjustSalary + (this.AdjustSalary * percentage);
}
}
Il serait facile de créer des règles métier. Mais dans mon cas, le test est composé de questions (dynamiques) et de réponses (dynamiques), et non de propriétés prédéterminées.
Donc je suppose que je suis à la recherche de quelques idées pour enquêter sur la façon de retirer cela.
Je sais que je peux créer une application "TestMaker" assez rapidement.
Le plus gros problème est l'intégration des Questions et (réponses possibles) dans les «règles d'évaluation».
Merci pour tous les conseils.
Technologies: DotNet 4.0 Cadre Sql Server 2008 Backend Database VS2010 Pro, C#
Ceci est probablement de loin la plus longue question que je l'ai vu sur Stackoverflow :) – Kizz
Messages .OrderByDescending (p => p.Body.Length) .Lorsque (p => p.PostTypeId == 1) . Prenez (10) http: // coderjournal.com/2010/06/use-linqpad-to-query-stack-overflow/ Peut-être que! :) Vous pouvez vérifier si vous êtes vraiment vraiment ennuyé. – granadaCoder
Préférez-vous que le résultat soit déterminé en utilisant des requêtes SQL ou en utilisant du C# clair? – Polity