Design a University Registration application. The application must allow users the ability to register for a semester by building a valid course schedule. Valid schedules are those that do not exceed the max amount of units/credits per semester (per school policy), all course prerequisites for a course have been met, entrance test scores have been met or exceeded, and student is in good academic standing. Users should be able to add, edit, and delete their information into the system. The application shall maintain courses with the ability to add and edit course information. The system shall generate a Final schedule including the student registering along with the validated course list they wish to enroll in. The system will display the schedule for the user to confirm before registering.
Your application shall take advantage of C# Windows Forms to provide a way to rapidly develop a working application. The application must have the following requirements:
- An application menu form where a user will access the functions of your program.
- A form to maintain (add/edit/delete) Student Information.
- A form to maintain (add/edit) Courses.
- A form to maintain (add/edit) Final Schedule.
- Student objects will contain data:
- student ID - 10 digit number must be positive
- firstName - first name of the customer
- lastName - last name of the customer
- gpa - a decimal value ranging from 0.00 - 4.00
- courseHistory - a list of courses the student has passed with C or above
- graduateStatus - student is eligible for graduate classes
- gmatScore - range from 200 - 800 whole numbers only.
Underlined data items only apply to grad students.
- Course objects will contain data:
- subject - 3 letter acronym (such as CIS, ACC, MKT) for a subject.
- courseNumber - 3 digit number identifying a specific course in a subject area (i.e. 345)
- courseTitle - words that describe the name of the course
- units - number of credit hours the course is worth
- startTime - time the class starts
- days - days the class meets (i.e. M W, T Th, M W F, etc.)
- seats - whole number representing the seats still available in the course
- prerequisites - list of courses required to be passed to enroll in course
- Schedule objects will contain data:
- list of courses’ information the student has added to their schedule
- student information that is normally on a schedule (print your own to see an example)
- totalUnits - total of units enrolled adding up units from all classes on schedule
- Students cannot add a course to their schedule if no seats are available.
- Student cannot enroll in a course if the prerequisites have not been met.
- Graduate students must score 700 or above on GMAT to be eligible for graduate classes.
- A minimum GPA of 3.0 is required to enroll in all graduate classes.
- A schedule cannot contain any conflicts where 2 courses occur on same day and time.
- A schedule’s total units must not exceed the max allowed in a semester.
- Your application must store student data permanently (use data files).
- The application shall not crash due to exceptions. Handle all possible exceptions.
- OOP rules must be followed, all variables must be encapsulated. No global data.
- Design must be user friendly and professionally designed.
2 Preliminary deliverables will be submitted as milestones throughout the semester.
Build a prototype of your application GUI. This will include creating all forms with all intended controls needed to perform the required functionality. Your GUI should be format should be professional and pleasing to the eye. Control placement must be user friendly and intuitive. For this deliverable none of the controls need to function fully, but you are encouraged to include any working functionality (feedback can be provided for working functions).
Create a preliminary UML Class diagram depicting your proposed data and methods for the required classes. Variables should include details specifying your plan such as data types, class vs. instance, array yes/no, and property yes/no. Methods should include return data types, parameters (ref, value, out, array). Depict inheritance and proper relationships.
Submit a .zip file containing the entire project (the top level “Project” folder that contains all files; see previous tutorials for directions) with your updated UML within the project folder where your .sln solution file resides. Submission MUST CONTAIN a comment with your Name on the first line of all .cs files and the first student in the data file MUST BE your NAME or ZERO credit will be given (I recommend doing this First!!!). This is the last deliverable due per the date in the course schedule
GUI Prototype 15 points
UML Design 15 points
Program 70 points
Total: 100 points
Your program will be graded on logic, your selection of the different types of statements (branching & looping), and formatting (are you tabbing and using squiggly brackets correctly).
Detailed Rubric for program will be provided at a later date.