Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Develop this in C++ Develop a program that implements a student information database. Start by implementing a class and name it Student. The class shall

Develop this in C++

Develop a program that implements a student information database. Start by implementing a class and name it Student. The class shall have a few data members; first_name, last_name (both of type string), studentID (of type integer), and scores[NUM_TESTS], where scores is an integer array and NUM_TESTS is a macro that you should define as 5 for now. A count data member should also exist to hold the number of valid scores (i.e. the ones that have been entered). Add any other data or function members as you see fit. Your constructor should initialize all strings to (i.e. empty) and all scores to zeros. The count should also be initialized to zero since initially the database user hasnt added any valid scores. You may want to add a function member add_score, that adds a test score (and hence it needs to also increment the count)

Create the class Records, which contains an array of type Student (i.e. use class aggregation), and whose size is equal to MAX_NUM_STUDENTS which is a macro that you should define as 30 for now (i.e. 30 students). This class should also contain a data member (count) that keeps track of the number of students whose information is valid. In addition, it should have member functions for adding new students and for adding scores. Note that the function for adding scores should first identify the students object within the student array of 30 objects/students and then invoke its corresponding Student::add_score member function (Hint: you will need to do string comparison). Also it should overload the operator [] and have it return a reference to the Student whose index is passed as the array operators index. Hence the prototype should look like this:

Student& operator[](int idx);

Your main routine should go through a while loop that asks the user to enter a command. For now implement the following commands;

addstudent firstname lastname (creates a new student) addscore firstname lastname score (This should append a new score to an already created student) print (This should print all valid students, each with its valid scores, one student per line) quit (exits the program)

If the user enters any other command, then the loop repeats by asking the user to enter a valid command. Commands should be case-insensitive. It may be a good idea to convert all words/strings to lower case. Heres a quick way to convert a string whose name is mystr to lowercase:

for(int i=0;i

The Following is the Sample of what the records.h file should look start to look like

#ifndef RECORDS.H #define RECORDS.H

#define NUM_SCORES 5 #define NUM_STUDENTS 30

#include

class student { public: int count; string firstname; string lastname; float scores[NUM_SCORES]; Student(); ~Student(); bool add_score(float score); };

class records { Student student[NUM_STUDENTS]; int count; public: Records(); ~Records(); bool add_student(string, string); bool add_score(string, string, float); int get_count() { return count; } Student& operator[](int); }; #endif

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_step_2

Step: 3

blur-text-image_step3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions