Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

KIE1004 Assignment 2 (10%) S1 2022/2023

Assigning a large number of students to classes during university registration process can be a daunting task for an administrator. Most importantly, the administrator needs to ensure that there is no time clashing. The university has hired your team as programmers to author the timetable application. The timetable is as shown below. There are four courses with two groups each. The student only needs to be assigned to one of the groups if they are registered for the course. The     program needs to prevent time-clash when assigning the time slot for each student. For example,   when the student is already assigned for KIE1003G1, this student must not be assigned for KIE1004G2. A sample test data is provided in StudentList.csv” . However, the provided data file is just one of the sample test data, other test data will be used as well to evaluate the capability of your application.

 

9am-12pm

2pm-5pm

Monday

KIE1003G1/KIE1004G2

KIE1004G1/KIE1003G2

Tuesday

KIE1001G1/KIE1002G2

KIE1002G1/KIE1001G2

The application has a menu structure as listed below with each menu function as described where  the user may select menu at any sequent. You need to print the error message for invalid selection.

 

 

Mark

Menu 1

Run a function to load student list from file (“StudentList.csv”). The file contains the student id and the courses they are registered for. The      student id should only consist of alphabets and integers only and error message should be printed if otherwise.

 

10

Menu 2

Run a function to display the student registration record as loaded during Menu 1’ execution.

5

Menu 3

Run a function to randomize the student sequent so that they will be randomly assigned to different group of the courses.

10

Menu 4

Run a function to assign the timetable to the students:

1)   The assigned timeslot must not be clashing.

2)   The maximum number of students in each group must be limited to 30. If there is not enough space for a particular course group, an error message should be printed.

3)   If the courses the students are registered for is not in the timetable, error message should be printed.

45

Menu 5

Run a function to display the assigned timetable for each of the students.

5

Menu 6

Run a function to display the number of students in each of the courses group.

5

Menu 7

Exit the application

 

 

 

 

Others:

Apply good programming practices such as:

1)   Commenting to describe the purpose of important code sections

2)   Proper use of array, const, local and global variables

3)   Print error messages when necessary to alert the user.

4)   etc

20

Assumption:

1)   Maximum number of students is 100.

2)   Maximum number of students in each class group is 30.

3)   The maximum number of courses the student might be registered for is 6.

Hint:

1)   One way to define the timetable array is as follows:

string timeTable[timetableRow][timetableCol] = {{"KIE1003G1",

"KIE1004G1","KIE1001G1","KIE1002G1"},{"KIE1004G2","KIE1003G2","KIE1002G2","KIE1001 G2"}};

2)   .find() or substr() function might be useful.

3)   To save time during testing, you may want to disable the menu option and the function sequentially.

4)   To save time during testing, you may also want to shorten the list inside “StudentList.csv” .

Submission:

1) This is a group assignment. Discussion between group and shared codes are not allowed. Any copying of a block of code or more than 20% will be penalized or disciplinary action taken.

2) Include the name of group members in the source code.

2) Submission is through Spectrum and will be subjected to Turnitin for checking against plagiarism from internet and among students.

3) You need to upload two documents into spectrum:

i) Summary sheet: Include the source codes (in text format, not image) and printscreen of   the important output screens into a single PDF document. Multiple output screens should

be included to show the full capability of your application.

ii) Source code file (just *.cpp, not the whole project folder)

Penalty:

1) Syntax error [50%]: You need to ensure that your source code is free from syntax error and can be compiled. Since you can test the code before submission, no excuse will be accepted for submitting  source code that cannot be compiled.

2) Forming group from different occurrence[30%]

3) Plagiarism [0-100%]

Before 20th January 2023 5pm (0% penalty)

Before 21st January 2023 5pm (30% penalty)

Before 22nd January 2023 5pm (60% penalty)

After 22nd January 2023 5pm (100% penalty)