Intro
Another user asked for a solution to this problem, quoting:
" I'm creating a test where the students grade themselves between 1 and 5 on what they think their ability is for each category.. eg Public Speaking (1,2,3,4 or 5)
There is ten categories. But for each category, the answer they give needs to be multiplied by a certain number, which correlates to the importance of that skill in negotiating. eg
Public Speaking is important = ( number * 5 )
Maintaining Control Over Body Language is LESS important = ( number * 3 )
Questioning is the LEAST important = ( number * 1)
Initially she tried using the Likert question, but it has never a score. So I worked out another scenario
Example
Take the test: one subject only 'Will I be a good teacher'? The percentage at the end should reflect the grade of ability based on your estimations.
My scenario
I used Multiple Choice Questions as Survey questions. And for once I appreciated the fact that Captivate makes no difference between text and numbers. This was a pleasant and useful discovery: if you use numbers instead of characters for the answers, the value of the system variable cpQuizInfoLastAnswerChoice will be an number and... you can use this number in calculations using advanced actions.This made the solution easy, was glad that my Captivate intuition was correct. I tried to make the solution as simple as possible, because the user was kind of a newbie to advanced actions. Each category will be one Multiple choice question, with the choice of numbers for the Numbering option. All questions have the same possibile answers corresponding with the five grades of ability:
- Very Poor,
- Poor
- Good
- Normal
- Excellent
When the user clicks the Submit button, the chosen answer number will be stored in the sysem variable cpQuizInfoAnswerChoice. This value changes after each answer and will be used to calculate the score for the subject.
Variables
I created some user variables:
- v_subject: will store the subject for this list of questions, will be populated in the title slide for the subject; I inserted a text caption on the MCQ master slide above the Progress indicator to show the subject on each question slide. This variable will get its value by a simple action (Assign) On Enter of the Title slide.
- v_teacher: stores the cumulated score based on the estimated ability grades and the weight factor (depending on importance) for each category; this value will be calculated by an advanced action triggered by the Submit button. If there is no reason to keep this absolute score, the variable could be reused for another subject, and perhaps then you could better label it v_score.
- v_maxTeach: will be used to store the maximum score that could be obtained if the maximum ability was indicated everywhere. Of course it could be replaced by a literal value, and in the example this was 100. But I thought it would be more versatile to calculate this maximum score, to avoid dreaded maths...and the calculations are done in the same advanced action triggered by the Submit button.
- v_percTeach: will store the percentage for this subject, calculated from the variables v_teacher and v_maxTeach by an advanced action triggered on entering the 'score' slide.
- v_multi: the weight factor for a category, will be populated by a simple action on entering each question (category) slide.
- v_dummy: a variable necessary to compensate for the limited mathematical functionalities in Captivate, used only for calculations
Events - actions
On Enter Title slide: Simple action Assign v_subject with XXXX (name of the subject)
On Enter Question slide (for each): Simple action Assign v_multi with .... (weight factor, number)
On Enter Score slide: Advanced action TeachCalcEnd
For each Submit button same Advanced action TeacherCalc
Advanced Actions
TeacherCalc:
This action is triggered by Submit buttons
The variable v_dummy is first used to store the weight of the grade by multiplying v_multi with the chosen answer number (1-5); then the total score v_teacher is incremented with the result.
The same variable is used a second time to calculate the maximum possible score for this category by multiplying v_multi with 5 (maximum ability); and this is used to increment the maximum total score v_maxTeach.
I added the statement 'Go to Next Slide' so that the user doesn't have to wait for the playhead to reach the end of the question slide.
TeachCalcEnd:
Action, triggered on entering the last slide, which shows the percentage.
Rather simple maths to calculate the percentage from v_teacher and v_maxTeach and store it in the variable v_percTeach.
Some Timesaving tips
Start by creating the user variables, and then add the Text Caption with v_subject to the MCQ Master slide.
Create the title slide, with its On Enter action (assigning a value to v_subject), and duplicate it then for the other subjects. That way you have only to change the value With for the On Enter action and edit the text captions.
Insert only one MCQ slide after the title slide. Edit its text captions, add the simple action On Enter, create the advanced action TeacherCalc to be triggered by the submit button. I unchecked also dragged the Next button under the Clear button but since there is no Review, it could also have been unchecked.
Now duplicate the MCQ-slide 9 times: this will avoid to re-edit the answers, to relocate the buttons, to re-assign the simple action On Enter and the advanced action for the Submit button. Do not forget to edit the With field for the Simple action On Enter that will populate v_multi.
For the question slides in the other objects, you will have to duplicate the advanced actions if you use new variables to store the score (v_teacher), maximum score (v_maxTeach) and percentage (v_percTeach). The variables v_subject, v_dummy are reusable.