Quiz Program Compiler A fun programming exercise is to write a program that quizzes the user from a set list of questions and answers. However, this task goes a level beyond that.

Your task


Write a program/func/etc. that takes two lists: A list of questions and a list of answers.
Output a program that quizzes the user.
The output program should ask each question on a separate line, which each question with a colon and space at the end like, What is 2+2:.
After the user answers all the questions, output a newline, and then one on each line, questions correct, questions wrong, and percentage calculation (rounded to 2 decimal places) as such (the brackets are user input):




What is the meaning of life, the universe, and everything: &lt;42&gt;
Am I awesome(Yes/No): &lt;No&gt;
What is 2+2: &lt;4&gt;

Number Correct: 2
Number Wrong: 1
Score: 2 / 3 * 100 = 66.67%


Scoring


You are scored on the size of your compiler program.
This is code-golf so shortes code in bytes wins!
Bonus: Score *.9 if you implement a flag in your compiler that makes the output program randomize question order.
CJam, 105 99 bytes

{{": "+ol}%.=_:+\,:LX$-X$LX$e2Ld/]"
Number Correct: %d
Number Wrong: %d
Score: %d / %d * 100 = %.2f%%"e%}


This defines an anonymous function.

The code is 110 bytes long and qualifies for the &times; 0.9 randomization bonus.

Test run

$ cat qna.cjam
[
  [
    "42"
    "Yes"
    "4"
  ]

  [
    "What is the meaning of life, the universe, and everything"
    "Am I awesome(Yes/No)"
    "What is 2+2"
  ]
]

{zmrz~{": "+ol}%.=_:+\,:LX$-X$LX$e2Ld/]"
Number Correct: %d
Number Wrong: %d
Score: %d / %d * 100 = %.2f%%"e%}

~

$ cjam qna.cjam
What is 2+2: 4
Am I awesome(Yes/No): No
What is the meaning of life, the universe, and everything: 42

Number Correct: 2
Number Wrong: 1
Score: 2 / 3 * 100 = 66.67%