Ich habe eine kleine Konsolenanwendung in C++ erstellen, die die folgenden tun:Speicher von Objekten in einem Array von einem zweiten Objekt
Klasse Thema erstellen, die neben Attributen: Name des Themas, die Anzahl der Studenten und Array von Studenten, die dieses Thema besuchen. Danach erstellen Sie eine Klasse Student, die Vor- und Nachnamen des Studenten als Attribute hat. In der Hauptdatei zählen Sie, wie viele doppelte Namen in jedem Betreff vorhanden sind.
Ich habe hier ein paar Probleme. Das erste ist, dass ich nicht weiß, wie man ein Array in meiner Subject.h
Datei initialisiert. Zweitens ist, wie man Student
Objekte in Subject
Objekte tatsächlich setzen und die Namen am Ende vergleichen.
Was ich Ausgabe aussehen möchten:
Doppelte Namen in subjectA
sind: Michael.
Doppelte Namen in subjectB
sind: Nicholas, John.
Dabei sollten subjectA
und subjectB
C++
und C
genannt werden.
Hier ist mein Code so weit (ich googelte für die letzten ein oder zwei Stunden über dieses Problem von mir, aber ich konnte einfach keine richtige Antwort finden/Beispiel).
HINWEIS: Ich schließe alle diese Dateien zur Klärung ein.
Subject.h
#include <string>
#include <iostream>
using namespace std;
/*
* I should also have an array named `arrayOfStudents`
* which should store all students who are attending
* that Subject.
*/
class Subject
{
public:
Subject();
Subject(Subject &subject);
Subject(string nameOfSubject, int numberOfStudents);
~Subject();
const string getNameOfSubject();
const int getNumberOfStudents();
void setNameOfSubject(string nameOfSubject);
void setNumberOfStudents(int numberOfStudents);
void print();
private:
string nameOfSubject;
int numberOfStudents;
};
Subject.cpp
#include <iostream>
#include "Subject.h"
using namespace std;
Subject::Subject()
{
}
Subject::Subject(string nameOfSubject, int numberOfStudents)
{
this->nameOfSubject = nameOfSubject;
this->numberOfStudents = numberOfStudents;
}
Subject::Subject(Subject &Subject) : nameOfSubject(Subject.getNameOfSubject()), numberOfStudents(Subject.getNumberOfStudents())
{
}
Subject::~Subject()
{
cout << "Object is destroyed" << endl;
}
const string Subject::getNameOfSubject()
{
return nameOfSubject;
}
const int Subject::getNumberOfStudents()
{
return numberOfStudents;
}
void Subject::setNameOfSubject(string nameOfSubject)
{
nameOfSubject = this->nameOfSubject;
}
void Subject::setNumberOfStudents(int numberOfStudents)
{
numberOfStudents = this->numberOfStudents;
}
void Subject::print()
{
cout << "Subject: " << nameOfSubject << " :: Number of students: " << numberOfStudents << endl;
}
Student.h
#include <string>
#include <iostream>
using namespace std;
class Student
{
public:
Student();
Student(Student &student);
Student(string name, string surname);
~Student();
const string getName();
const string getSurname();
void setName(string name);
void setSurname(string surname);
void print();
private:
string name;
string surname;
};
Student.cpp
#include <iostream>
#include "Student.h"
using namespace std;
Student::Student()
{
}
Student::Student(string name, string surname)
{
this->name = name;
this->surname = surname;
}
Student::Student(Student &student) : name(student.getName()), surname(student.getSurname())
{
}
Student::~Student()
{
cout << "Object is destroyed" << endl;
}
const string Student::getName()
{
return name;
}
const string Student::getSurname()
{
return surname;
}
void Student::setName(string name)
{
name = this->name;
}
void Student::setSurname(string surname)
{
surname = this->surname;
}
void Student::print()
{
cout << "Student: " << name << " " << surname << endl;
}
Main.cpp
#include <iostream>
#include "Subject.h"
#include "Student.h"
using namespace std;
int main()
{
/*
* First three students should attend first Subject
* while other four the second Subject.
* Also note that only names matter and not surnames.
*/
Student stA("Michael", "Doe");
Student stB("Michael", "Doe");
Student stC("Thomas", "Doe");
Student stD("Nicholas", "Doe");
Student stE("Nicholas", "Doe");
Student stF("John", "Doe");
Student stG("John", "Doe");
Subject subjectA("C++", 3);
Subject subjectB("C", 4);
return 0;
}
'nameOfSubject = this-> nameOfSubject;' ist rückwärts in 'setNameOfSubject' und anderen. Aber ich sehe keinen Code zum Drucken "Doppelte Namen ...", also, wer weiß? –
Bitte schreiben Sie einen [MCVE], wenn Sie gute Antworten erhalten möchten –