Goal
In this project you will help determine the best of times for tutoring services for a class based upon student availability. The input to the program will be the information provided by the student, including the student ID, days of the week, and hours the student can attend tutoring. The output is a list days and time periods that will maximize the numbers of students who can attend at least 1 hour of tutoring. Make sure you look at the examples to understand the goal. The goal is not to pick the days and times noted by the most students, but rather dates and times that serve the maximum number of different students.
Objectives
The goal of this programming project is for you to master (or at least get practice on) the following tasks:
- working with balanced expressions
- reading data from input files
- using the provided Stack class
- writing classes
- working with existing code
Input Dataset
( ) are the symbols surrounding student data
< > are the symbols surrounding day of the week data
[ ] are the symbols surrounding the time period.
For example:
(A Smith
Assume the only tutoring days are M,T,W,H,F and the hours are from 0900 to 2100, hence the last hour is 2100 (9PM – 10 PM). Also assume there are no spaces or line breaks in the input, and that every student will have a unique name.
Program Logic
This two-dimensional array can be used to store the various students who can come for tutoring in that time period.
The first part of your program should read the input ,data validate its format, and populate the array. You must use a Stack as to interpret the Expression. Your program should prompt the user for which test dataset to run. The user should enter 1 for test dataset 1, ..up to n (depending on the number you provide.
The second part should analyze the array to pick 3 time slots that covers the most different students.
For example, in the abbreviated schedule below,Thursday at 1200, Wednesday at 0900 and Friday at 1000 would cover the most (in this case all) students. Each cell represents the students who can attend tutoring at that time period.
Running the program
The zipped java project file, which contains all your source code, input files and Eclipse related projects, is to be submitted You may include more than one test file to indicate your program is working.
You are responsible for making sample test cases (at least 3) as well as running the sets provided.