1. Need suggestions on approaching

Can ya'll give some suggested solutions for the implementation of this question. Would deeply appreciate it.

Create a Person class that contains Firstname, Lastname, DOB, address, telephone # and a virtual show function.

Create a Student class that inherits from the Person class and adds StudentId, feespaid and Courses (array object of Course class). A student can register for a maximum of 6 courses and a minimum of 3. The show function calls calculatetotalfees that calculates and outputs the total fees for the student. It should also output the total fees paid and the amount due. Overload the plus operator within the student class such that it increases the fees paid variable by an amount specified in the parameter.

Create a class named Course that contains Coursename, Coursecode, Number of Credits and Cost per Credit which is a static variable.

Create a function called calculatetotalfees that calculates the fees for a student by adding the cost of each course that a student takes. The cost of each course can be found by multiplying the number of credits of each course by the cost per credit.

Create a main that creates 10 student objects as well as 15 course objects. The software should use a loop to call the show function of each student object.

2. why not start out by writing your classes and worry about what comes in main() later
im still learning c++ so this might be wrong
Code:
```//example Person class
#include <string>

Class person{
Public:
Virtual show();
String Firstname;
String Lastname;
Private:
Int DOB;
Int tel;

};```

3. Person.h
Code:
```#ifndef PERSON_H
#define	PERSON_H

#include <string>
using namespace std;

class Person {

public:
Person();
~Person();
virtual void show();
virtual void setData(string, string, string, string, int);

protected:
string FirstName, LastName, DOB, Address, Tel;
};

#endif	/* PERSON_H */```
Person.cpp
Code:
```#include "Person.h"

Person::Person() {
}

Person::~Person() {
}

void Person::show(){
}

void Person::setData(string firstname, string lastname, string dob, string address, int tel)

{
FirstName = firstname;
LastName = lastname;
DOB = dob;
Tel = tel;
}```
Course.h
Code:
```#ifndef COURSE_H
#define	COURSE_H

#include <string>
using namespace std;

class Course {
friend class Student;
public:
Course();
Course(string, string, int);
virtual ~Course();
void getCourse();
private:
string CourseName, CourseCode;
int Credit;
static float CostPerCredit;
};

#endif	/* COURSE_H */```
Course.cpp
Code:
```#include <iostream>
#include "Course.h"

using namespace std;

Course::Course() {
}

Course::Course(string Cname, string Ccode, int Cred):CourseName(Cname),
CourseCode(Ccode), Credit(Cred)
{
}

Course::~Course() {
}

void Course::getCourse(){
cout << CourseName << "\t" << CourseCode << "\t" << Credit << "\t" << CostPerCredit << endl;
cin.get();
}

float Course::CostPerCredit = 1000.00;```
Student.h
Code:
```#ifndef STUDENT_H
#define	STUDENT_H

#include "Person.h"
#include "Course.h"
#include <string>
using namespace std;

class Student: public Person {
public:
Student();
virtual ~Student();
void show();
void Register();
void setBio(string, string, string, string, int);
void setCourses(int);
float CalculateTotalFees();

private:
string StudentID;
float FeesPaid, FeesBalance,Inc;
Course Courses[];
};

#endif	/* STUDENT_H */```
Student.cpp
Code:
```#include <iostream>
#include "Student.h"

using namespace std;

Student::Student() {
}

Student::~Student() {
}

void Student::Register(){
//Store registration data

string sid, fn, ln, db, ad, ph;
int i;

cout << "Enter Student ID: \t";
cin >> sid;
cout << endl << "Enter First Name: \t";
cin >> fn;
cout << endl << "Enter Surname: \t";
cin >> ln;
cout << endl << "Enter DOB: \t";
cin >> db;
cout << endl << "Enter Address: \t";
cout << endl << "Enter Phone #: \t";
cin >> ph;

setBio(sid, fn, ln, db, ad, ph);

cout << endl << "How many courses do you wish to do?";
cin >> i;

while(i < 3 || i > 6){
cout<<"You must enter at least 3 but no more than 6." << endl << "How many courses do you wish to do?";
cin >> i;
}

cout << "Available Courses: " << endl <<
"Code \t\t" << "Course" <<
"1 \t\t" << "Business Communication" <<
"2 \t\t" << "Business Systems" <<
"3 \t\t" << "Data Communication" << endl << endl;

if(i >= 3 && i <= 6){
setCourses(i);
}

}

void Student::show(){
//Print student data
}

void Student::setBio(string ID, string fname, string lname, string dob, string addr, int tel){
StudentID = ID;
FirstName = fname;
LastName = lname;
DOB = dob;
Tel = tel;
}

void Student::setCourses(int i){
int coursetype;
for(count = 0; count <= i; count++){
cout<<"\nenter course you wish to register for: ";
cin>>coursetype;

switch(coursetype){
case 1:
Courses[1] = Course.BusComm;
}

}
}

float Student::CalculateTotalFees(){
//Calculate fees

}```
main.cpp
Code:
```#include <iostream>
#include "Student.h"
#include "Course.h"

using namespace std;

/*
*
*/

int main(int argc, char** argv) {

DataComm("Data Communication", "DTCM01", 3),
Network("Networking", "NETK01", 3),
Calculus("Calculus", "MATH03", 4),
Stats("Statistics", "MATH02", 3),
Algorithm("Algorithm Development", "PROG01", 3),
WebApp("Web Applications", "WEBP01", 3),
Comm1("Communication 1", "BSCOM0103", 3),
Comm2("Communication 2", "BSCOM02", 3),
VB("Visual Basic", "PROG03", 3),
DataStruct("Data Structures", "DTSTR01", 3),
Cplus("C Plus Plus", "PROG02", 3),
Econ("Micro Economics", "ECON01", 3),
DataBase("Data Management", "DBMS01", 4);

Student Ray, Dennis, Francine, Jessica, Nadine, Sandie, Neil, Chev, Jason, John;

Ray.Register();

return 0;
}

cout << "##################################################################" <<
"##################################################################" <<
"##                                                              ##" <<
"##       Welcome to XLCR Course Registration System (XCRS)      ##" <<
"##                                                              ##" <<
"##################################################################" <<
"##################################################################" << endl << endl;
}```
Code is incomplete but its where am at so far and trying to figure out loads a stuff.
Last edited by lovepython; Dec 8, 2012 at 09:21 AM.

4. Am here now trying to figure out how i can access the Course objects in main from the setCourses function in the Student class...sigh

5. Hardcore Techie
Join Date
Jul 2002
Posts
1,395
Rep Power
0
Originally Posted by lovepython
Am here now trying to figure out how i can access the Course objects in main from the setCourses function in the Student class...sigh
I found nothing on the interwebs on using class functions from other cpp files. Does extern work?
Code:
```#ifndef STUDENT_H
#define	STUDENT_H

#include "person.h"
#include "course.h"
#include <string>
using namespace std;

extern class Student: public Person {
public:
Student();
virtual ~Student();
void show();
void Register();
void setBio(string, string, string, string, int);
void setCourses(int);
float CalculateTotalFees();

private:
string StudentID;
float FeesPaid, FeesBalance,Inc;
Course Courses[];
};

#endif	/* STUDENT_H */```
I get this error: "a storage class can only be specified for objects and functions student.h /course_proj line 23 C/C++ Problem"

6. StudentEnrollment.h:
#ifndef STUDENTENROLLMENT_H
#define STUDENTENROLLMENT_H

# include <iostream>
# include <string>

using namespace std;

class Roster {

private:

string courseName;
string courseCode;
string courseCredits;
string professorName;

public:

void setCourseName ( string );
void setCourseCode ( string );
void setCourseCredits ( string );
void setProfessorName ( string );

string getCourseName();
string getCourseCode();
string getCourseCredits();
string getProfessorName();

Roster ();

};

#endif;

StudentEnrollment.cpp:
#include <iostream>
#include <string>
#include "StudentEnrollment.h"

using namespace std;

// Roster class implementation

Roster::Roster () {

courseName = "";
courseCode = "";
courseCredits = "";
professorName = "";

}

void Roster::setCourseName ( string cn ) {
courseName = cn;
}

void Roster::setCourseCode ( string c ) {
courseCode = c;
}

void Roster::setCourseCredits ( string cc ) {
courseCredits = cc;
}

void Roster::setProfessorName ( string pn ) {
professorName = pn;
}

string Roster::getCourseName() {
return courseName;
}

string Roster::getCourseCode() {
return courseCode;
}

string Roster::getCourseCredits() {
return courseCredits;
}

string Roster::getProfessorName() {
return professorName;
}

main.cpp:
#include <iostream>
#include <string>
#include "StudentEnrollment.h"

using namespace std;

int main (int argc, char * const argv[]) {

int number_of_rosters = 0;

string course, code, credits, name;

cout << "Enter the number of rosters you would like to create: ";
cin >> number_of_rosters;
cin.ignore(100, '\n');

Roster roster[number_of_rosters];

for ( int i = 0; i < number_of_rosters; i++){
cout << "Enter course name: ";
getline(cin,course);
roster[i].setCourseName(course);

cout << "Enter course code; ";
getline(cin, code);
roster[i].setCourseCode(code);

cout << "Enter course credits: ";
getline(cin, credits);
roster[i].setCourseCredits(credits);

cout << "Enter professor name: ";
getline(cin, name);
roster[i].setProfessorName(name);

cout << "Next course..." << endl;
}

cout << endl;

for ( int i = 0; i < number_of_rosters; i++){
cout << roster[i].getCourseName() << endl;
cout << roster[i].getCourseCode() << endl;
cout << roster[i].getCourseCredits() << endl;
cout << roster[i].getProfessorName() << endl;
cout << endl;
}

return 0;
}

Have you giving linklists any thought? – samy.vilar Aug 23 '12 at 18:11