In this HackerRank Classes and Objects problem in c++ programming language A class defines a blueprint for an object. We use the same syntax to declare objects of a class as we use to declare variables of other basic types. For example:
Box box1; // Declares variable box1 of type Box
Box box2; // Declare variable box2 of type Box
Kristen is a contender for valedictorian of her high school. She wants to know how many students (if any) have scored higher than her in the 5 exams given during this semester.
Create a class named Student with the following specifications:
- An instance variable named score to hold a student’s 5 exam scores.
- A void input() function that reads 5 integers and saves them to scores.
- An int calculateTotalScore() function that returns the sum of the student’s scores.
HackerRank classes and objects problem solution in c++ programming.
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <cassert>
using namespace std;
// Write your Student class here
class Student {
private:
int scores[5];
int sum;
public:
Student() : sum(0) {}
int calculateTotalScore() {return sum;}
void input() {
for(int i=0; i<5; i++) {
cin >> scores[i];
sum+=scores[i];
}
}
};
int main() {
int n; // number of students
cin >> n;
Student *s = new Student[n]; // an array of n students
for(int i = 0; i < n; i++){
s[i].input();
}
// calculate kristen's score
int kristen_score = s[0].calculateTotalScore();
// determine how many students scored higher than kristen
int count = 0;
for(int i = 1; i < n; i++){
int total = s[i].calculateTotalScore();
if(total > kristen_score){
count++;
}
}
// print result
cout << count;
return 0;
}
Second solution
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <cassert>
using namespace std;
// Write your Student class here
class Student {
int totalScore = 0;
public:
void input() {
for (int i = 0; i < 5; i++) {
int x;
cin >> x;
totalScore += x;
}
}
int calculateTotalScore() {
return totalScore;
}
};
int main() {
int n; // number of students
cin >> n;
Student *s = new Student[n]; // an array of n students
for(int i = 0; i < n; i++){
s[i].input();
}
// calculate kristen's score
int kristen_score = s[0].calculateTotalScore();
// determine how many students scored higher than kristen
int count = 0;
for(int i = 1; i < n; i++){
int total = s[i].calculateTotalScore();
if(total > kristen_score){
count++;
}
}
// print result
cout << count;
return 0;
}