Question: #include #include using namespace std; #include StudentTestScore.h void isValid(StudentTestScores& obj,int); int main() { StudentTestScores std1, std2; double score; int index; bool tryAgain; cout < <
#include
cout << "Entre las " << std1.getNumTestScores() << " notas del estudiante: " << std1.getStudentName() << ":" << endl; for (index = 0; index < std1.getNumTestScores(); index++) { cin >> score; std1.setTestScore(score, index); } tryAgain = true; while (tryAgain) { try { isValid(std1, score); tryAgain = false; } catch (string exceptionString) { cout << exceptionString; cout << "Entre el denominador de la segunda fraccion:"; cin >> score; } std1.display(); cout << "Entre las " << std2.getNumTestScores() << " notas del estudiante: " << std2.getStudentName() << ":" << endl; for (index = 0; index < std2.getNumTestScores(); index++) { cin >> score; std2.setTestScore(score, index); } std2.display();
StudentTestScores std3(std1); std3.display(); system("pause"); return 0; } }
void isValid(StudentTestScores &obj,int score) { if ( score < 0) { string exceptionString = "ERROR: Score cant be lower than zero "; throw exceptionString; } }
------
#ifndef STUDENTTESTSCORES_H
#define STUDENTTESTSCORES_H
#include
using namespace std;
const double DEFAULT_SCORE = 0.0;
class StudentTestScores
{
private:
char* studentName;
double* testScores;
int numTestScores;
void createTestScoresArray(int size);
public:
StudentTestScores(char* name, int numScores);
StudentTestScores(const StudentTestScores& obj);
~StudentTestScores();
void setTestScore(double score, int index);
void setStudentName(char* name);
char* getStudentName() const;
int getNumTestScores() const;
double getTestScore(int index) const;
void display() const;
};
#endif
------
#include "StudentTestScore.h" #include
StudentTestScores::StudentTestScores(){ }
void StudentTestScores::createTestScoresArray(int size) { numTestScores = size; testScores = new double[size]; for (int i = 0; i < size; i++) testScores[i] = DEFAULT_SCORE; }
StudentTestScores::StudentTestScores(char* name, int numScores) { studentName = new char[strlen(name) + 1]; strcpy(studentName, name); createTestScoresArray(numScores); }
StudentTestScores::StudentTestScores(const StudentTestScores& obj) { studentName = new char[strlen(obj.studentName) + 1]; strcpy(studentName, obj.studentName); numTestScores = obj.numTestScores; testScores = new double[numTestScores]; for (int i = 0; i < numTestScores; i++) testScores[i] = obj.testScores[i]; }
StudentTestScores::~StudentTestScores() { delete[] studentName; delete[] testScores; }
void StudentTestScores::setTestScore(double score, int index) { testScores[index] = score; }
void StudentTestScores::setStudentName(char* name) { delete[] studentName; studentName = new char[strlen(name) + 1]; strcpy(studentName, name); }
char* StudentTestScores::getStudentName() const { cout << "Enter student name: "; cin >> studentName; return this->studentName; }
int StudentTestScores::getNumTestScores() const { return this->numTestScores; }
double StudentTestScores::getTestScore(int index) const { return this->testScores[index]; }
void StudentTestScores::display() const { cout << "Las notas del estudiante " << this->getStudentName() << " son :" << endl; for (int index = 0; index < this->getNumTestScores(); index++) { cout << this->getTestScore(index) << ","; } cout << endl; }
Having trouble getting the main to work (c++)
I cant add the obj to the class due to not having a default constructor but in adding one I run into problems initializing the variables in the function file.
This causes me to not be able to add a name as well as making the testnumber and score to be stuck in 0. To add the strcpy is causing error C4996
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
