2016-05-24 1 views
0

Mon programme ne semble exécuter que 2 cours, puis il cesse et affiche le deuxième cours 3 fois. Je suis perplexe et tirant mes cheveux, toutes les suggestions aideraient beaucoup. Je m'excuse d'avance pour le poste long mais je pense que toutes les parties sont nécessaires pour identifier le problème.Erreurs de sortie C++ (nouveaux numéros ajoutés)

est ici la sortie actuelle: Current output

Ma sortie attendue est:

Titre: Titre du cours ID: 12345 Session: 54321 Unités: 1.2

Voilà où l'erreur est:

#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; 
    } 

Voici l'en-tête:

#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 

Et voici 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

S'il vous plaît montrer un [mcve]. Ma boule de cristal rouillée indique que vous utilisez le constructeur de façon incorrecte, mais je ne peux pas vraiment voir l'implémentation du constructeur. –

+0

Bien sûr, ce sera encore un peu long mais je vais ajouter. –

+0

S'il vous plaît fournir prévu et la sortie actuelle, il aidera à comprendre le problème. –

Répondre

1

Votre constructeur est déclaré comme Courses(string title, int course, int session, double units)

mais vous l'appelez comme Courses Class_1(title, session, units, course);

commutateur juste les variables et il devrait être bien

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