(**** * * Module Wizard defines the objects and operations related to the * step-by-step tutorial of the Grader. *) object InstructorInfo is components: First and Last and PhoneNumber and Email and OfficeHrs; description: (* InstructorInfo collects information about the instructor's name, phone number and office hours. *); end InstructorInfo; object First is string description: (* First is a free-form string that contains the instructor's first name. *); end First; object Last is string description: (* Last is a free-form string that contains the instructor's last name. *); end Last; object PhoneNumber is string description: (* PhoneNumber is a free-form string that contains the instructor's phone number. *); end PhoneNumber; object Email is string description: (* Email is a free-form string that contains the instructor's email address. *); end Email; object OfficeHrs is components: Monday and Tuesday and Wednesday and Thursday and Friday and Saturday and Sunday; description: (* OfficeHrs is a table that contains office hours for all the days of the week. *); end OfficeHrs; object Monday is string; object Tuesday is string; object Wednesday is string; object Thursday is string; object Friday is string; object Saturday is string; object Sunday is string; object ClassInfo is components: CourseName and CourseTitle and CourseDescription and Categories and Add; operations: AddCategory; description: (* ClassInfo collects information of the instructor's course name, title, description and what categories to be included in the Gradesheet. Add component adds an additional category *); end ClassInfo; object CourseName is string description: (* CourseName is a free-form string that contains the course name. *); end CourseName; object CourseTitle is string description: (* CourseTitle is a free-form string that contains the course title. *); end CourseTitle; object CourseDescription is string description: (* CourseDescription is a multi-line text area that contains the course description. *); end CourseDescription; object Categories is string* description: (* CourseTitle contains a list of categories. *); end Categories; object Add is components: string; description: (* Add has a one-line string for the name of a new category. *); end Add; operation AddCategory is in: string; out: Categories; description: (* Add adds a new category to the Categories. *); end AddCategory; object Import is components: FileName and Browse; operations: FileBrowse; description: (* Import reads a plain text file and creates the StudentInfo objects in the Gradesheet. *); end Import; object FileName is string description: (* FileName is the name of the plain text file. *); end FileName; object Browse; operation FileBrowse is in: ; out: FileName; description: (* FileBrowse looks for a plain text file and returns a FileName object of that file. *); end FileBrowse; operation WizardStep1 in: II:InstructorInfo; out: II':InstructorInfo; description: (* Perform wizard step 1, producing output to be given to wizard step 2. *); end WizardStep1;