2016-05-24 19 views
0

Mein Programm scheint durch zwei Kurse nur ausgeführt werden, dann hört es auf und zeigt den zweiten Kurs 3 mal.C++ Ausgabefehler (Neuheiten hinzugefügt)

Ich bin ratlos und zog mir die Haare aus, würden irgendwelche Vorschläge viel helfen.

Ich entschuldige mich auch im Voraus für den langen Post, aber ich fühle mich alle Teile nötig sind, um das Problem zu identifizieren.

Hier ist die aktuelle Ausgabe: Current output

Meine erwartete Ausgabe ist:

Titel: Titel Kursnummer: 12345 Session: 54321 Einheiten: 1.2

Hier, wo der Fehler ist:

#include <fstream> 
    #include <string> 
    #include <iomanip> 

    #include "Course.h" 

    using namespace std; 

    int main() 
    { 
    string title; 
    double units; 
    int course; 
    int session; 

    cout << "Enter the title of a course:"; 
    cin >> title; 
    cout << "Enter the course ID number"; 
    cin >> course; 
    cout << "Enter the number of units for the course"; 
    cin >> units; 
    cout << "Enter the session number for the course"; 
    cin >> session; 

    Courses Class_1(title, session, units, course); 

    cout << endl << "Class title: " << Class_1.getTitle() << endl << 
     "title: " << setw(5) << Class_1.getTitle() << 
     setw(5) << "course ID: " << setw(5) << Class_1.getCourseID() << 
     setw(5) << "Session number: " << setw(5) << Class_1.getSessionNumber()  << 
     setw(5) << "Units: " << setw(5) << Class_1.getNumOfUnits() << endl; 

    cout << "Enter the title of a course:"; 
    cin >> title; 
    cout << "Enter the course ID number"; 
    cin >> course; 
    cout << "Enter the number of units for the course"; 
    cin >> units; 
    cout << "Enter the session number for the course"; 
    cin >> session; 

    Courses Class_2; 

    Class_2.setTitle(title); 
    Class_2.setCourseID(course); 
    Class_2.setSessionNumber(session); 
    Class_2.setNumOfUnits(units); 

    cout << endl << "Class title: " << setw(5) << Class_2.getTitle() << endl << 
     "title: " << setw(5) << Class_2.getTitle() << 
     setw(5) << "course ID: " << setw(5) << Class_2.getCourseID() << 
     setw(5) << "Session number: " << setw(5) << Class_2.getSessionNumber() << 
     setw(5) << "Units: " << setw(5) << Class_2.getNumOfUnits() << endl; 

    cout << Class_1.getTitle() << endl; 
    // ----------------------------------------------------------------- 

    Courses Class_3; 

    Class_3.setTitle(title); 
    Class_3.setCourseID(course); 
    Class_3.setSessionNumber(session); 
    Class_3.setNumOfUnits(units); 

    cout << endl << "Class title: " << setw(5) << Class_3.getTitle() << endl << 
     "title: " << setw(5) << Class_3.getTitle() << 
     setw(5) << "course ID: " << setw(5) << setw(5) << Class_3.getCourseID() << 
     setw(5) << "Session number: " << setw(5) << setw(5) << Class_3.getSessionNumber() << 
     setw(5) << "Units: " << setw(5) << Class_3.getNumOfUnits() << endl; 

    cout << Class_2.getTitle() << endl; 
    // ----------------------------------------------------------------------- 

    Courses Class_4; 

    Class_4.setTitle(title); 
    Class_4.setCourseID(course); 
    Class_4.setSessionNumber(session); 
    Class_4.setNumOfUnits(units); 

    cout << endl << "Class title: " << setw(5) << Class_4.getTitle() << endl << 
     "title: " << setw(5) << Class_4.getTitle() << 
     setw(5) << "course ID: " << setw(5) << Class_4.getCourseID() << 
     setw(5) << "Session number: " << setw(5) << Class_4.getSessionNumber() << 
     setw(5) << "Units: " << setw(5) << Class_4.getNumOfUnits() << endl; 

    cout << Class_3.getTitle() << endl; 

    system("pause"); 
    return 0; 
    } 

Hier ist die Überschrift:

#pragma once 
    #include <iostream> 
    #include <string> 
    using namespace std; 

    #ifndef COURSES_H 
    #define COURSES_H 

    class Courses 
    { 
    public: 
    // Default Constructor 
    Courses(); 

    // Ovverload Constructor 
    Courses(string title, int course, int session, double units); 

    // Destructor 
    ~Courses(); 

    int getCourseID() const; 
    // Gets the course ID. 

    int getSessionNumber() const; 

    // Gets the session number. 

    double getNumOfUnits() const; 
    // Gets the number of units. 

    string getTitle() const; 
    // Gets the title of a course. 

    // -------------------------------- 

    void setCourseID(int); 
    // Sets the ID number of a course. 

    void setSessionNumber(int); 
    // Sets the session number of a course. 

    void setNumOfUnits(double); 
    // Sets the number of units of a course. 

    void setTitle(string); 
    // Sets the title of a course. 



    private: 

    // Member Variables 
    string newTitle; 
    int newCourseID; 
    int newSessionNumber; 
    double newNumOfUnits; 

    }; 

    #endif // !COURSE_H 

Und hier ist Course.cpp

#include "Course.h" 

    Courses::Courses() 
    { 
    newCourseID = 0; 
    newSessionNumber = 0; 
    newNumOfUnits = 0.0; 
    } 



    Courses::Courses(string title, int course, int session, double units) 
    { 
    newTitle = title; 
    newCourseID = course; 
    newSessionNumber = session; 
    newNumOfUnits = units; 
    } 

    Courses::~Courses() 
    { 
    } 

    string Courses::getTitle() const 
    { 
    return newTitle; 
    } 

    int Courses::getCourseID() const 
    { 
    return newCourseID; 
    } 

    double Courses::getNumOfUnits() const 
    { 
    return newNumOfUnits; 
    } 

    int Courses::getSessionNumber() const 
    { 
    return newSessionNumber; 
    } 
    // ------------------------------------- 
    void Courses::setTitle(string title) 
    { 
    newTitle = title; 
    } 

    void Courses::setCourseID(int course) 
    { 
    newCourseID = course; 
    } 

    void Courses::setNumOfUnits(double units) 
    { 
    newNumOfUnits = units; 
    } 

    void Courses::setSessionNumber(int session) 
    { 
    newSessionNumber = session; 
    } 
+2

Bitte zeigen Sie [mcve]. Meine rostige Kristallkugel sagt, dass Sie den Konstruktor falsch verwenden, aber ich kann die Konstruktorimplementierung nicht ganz sehen. –

+0

Sicher, es wird immer noch ein bisschen lang sein, aber ich werde hinzufügen. –

+0

Bitte geben Sie erwartet und die aktuelle Ausgabe wird es helfen, das Problem zu verstehen. –

Antwort

1

Ihr Konstruktor als Courses(string title, int course, int session, double units) deklariert wird

aber Sie nennen es als Courses Class_1(title, session, units, course);

nur wechseln um die Variablen und es sollte in Ordnung sein

Courses Class_1(title,course,session,units);