;; CS1102 starter file for lab 5

;;;;;;; DATA DEFINTIONS FOR A SIMPLE TUTORING SYSTEM ;;;;;;;;;;;;;;;;

;; A question is a
;; - (make-open-question string list[value])
(define-struct open-question (test correct-answers))

;; A command is
;;  - (make-ask question)
;;  - (make-branch-on-results (number->boolean) list[commands] list[commands])
;;  - (make-display-status)

(define-struct ask (ques))
(define-struct branch-on-results (test passed failed))
(define-struct display-status ())

;; An exam is a list[command]

(define exam1
  (list 
   (make-ask (make-open-question "What is 3*4+2?" (list 14)))
   (make-ask (make-open-question "What is 2+3*4?" (list 14)))
   (make-ask (make-open-question "What is 5+2*6?" (list 17)))
   (make-branch-on-results
    (lambda (percent-right) (< percent-right 50))
    (list (make-ask (make-open-question "What is 3+5*2?" (list 13))))
    empty)
   (make-ask (make-open-question "What is (3-2)*6?" (list 6)))   
   (make-display-status)))
   