$24
Hackerrank Link: https://www.hackerrank.com/cs2810-ooaia-a6
Objective
Learning the basics of Functors (Function objects) and its applications.
Problem Statement
Create a class in C++ for representing the students. The class should have following attributes.
Name of the student (may contain duplicates) Roll number (Unique integer)
Scores they get in three subjects(Physics, Chemistry, Maths) some other supportive attributes of your choice
There are 3 type of operations to perform using only Functors.
Find student details, given the roll number
Find all the students given the name. Return the students sorted by the roll number.
Find the average score of all the students. Return the students sorted rst by the decreasing average score then by the roll number.
Input Format
First line contains the number of students n.
Following n lines will have the details of each student in the given form
hnameihspaceihrollno:ihspaceihP hysicsmarksihspaceihChemistrymarksihspaceihM athsmarksi
After which a single operation number is given along with input required for particular operation.
1
Output Format
For operation 1: print the details of the student with given roll number, same as in input format. In case of roll number not present in input print "Invalid Entry"
For operation 2: print the details of the students in separate lines with the given name in separate lines, sorted according to their roll numbers. In case of name not present in input print "Invalid Entry"
For operation 3: print the details of the students along with the average marks in separate lines, sorted in decreasing order of average marks then by the roll number. (print average marks to four decimal place).
Constraints
Number of students(n): 1 n 100
Subject marks(m): 0 m 100
Roll number (r): 1 r 100
Sample Testcase
Input 1:
5
Akshay 14 78 85 67
Sahil 32 89 76 90
Suzain 36 56 71 65
Priya 29 89 80 99
Sonu 39 84 75 95
38 Output 1: Invalid Entry
Input 2:
8 Akshay 14 78 85 67
Sahil 32 89 76 90
Priya 29 89 80 99
Sonu 39 84 75 95
Akshay 15 65 80 74
Manav 23 59 83 70
Akshay 13 78 67 85
Shubham 34 92 85 95
Akshay
Output 2:
2
Akshay 13 78 67 85
Akshay 14 78 85 67
Akshay 15 65 80 74
Input 3:
10
Akshay 14 78 85 67
Sahil 32 89 76 90
Suzain 36 56 71 65
Priya 29 89 80 99
Sonu 39 84 75 95
Akshay 15 65 80 74
Manav 23 59 83 70
Akshay 13 78 67 85
Sahil 31 67 76 86
Shubham 34 92 85 95
3
Output 3:
Shubham 34 92 85 95 90.6667
Priya 29 89 80 99 89.3333
Sahil 32 89 76 90 85.0000
Sonu 39 84 75 95 84.6667
Akshay 13 78 67 85 76.6667
Akshay 14 78 85 67 76.6667
Sahil 31 67 76 86 76.3333
Akshay 15 65 80 74 73.0000
Manav 23 59 83 70 70.6667
Suzain 36 56 71 65 64.0000
Design submission format
For the design submission on Moodle, please submit tar.gz le named as your roll number.
3