2013-11-19 7 views
-2

Привет всем ниже - мой код. После того, как я нажимаю кнопку запуска, она автоматически завершается перед показом любого выхода. Может кто-нибудь мне помочь ?Моя программа на C++ завершается

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

StudentReviewSystem ::StudentReviewSystem() 
{ 
} 
StudentReviewSystem :: ~StudentReviewSystem() 
{ 
} 


void StudentReviewSystem :: addCourse(const int courseId, const string courseName) 
{ 
int numOfCourse = 0; 
Course* C ; 

    if(numOfCourse==0) 
    { 
     C = new Course[numOfCourse+1]; 
     C[0].courseId= courseId ; 
     C[0].courseName = courseName ; 
     cout<< " Course " <<courseId<< " has been added"<<endl; 
     numOfCourse++; 

    } 

else 
{ 
    int x = 0 ; 
    for(int i = 0; i< numOfCourse; i++) 
    { 
     if(C[i].courseId == courseId) 
     { 
      cout<< " Course " <<courseId<< " already exists"<<endl; 
      x++; 
     } 

     if(x == 0) 
    { 
     Course* tmp = C ; 
     C = new Course[numOfCourse+1]; 
     for(int i = 0; i< numOfCourse ; i++) 
     { 
      C[i] = tmp[i]; 
     } 
     C[numOfCourse].courseId = courseId; 
     C[numOfCourse].courseName = courseName; 
     delete[] tmp ; 
     numOfCourse++; 

    } 

    } 

} 

} 
int main() 
{ 
    StudentReviewSystem S; 
    S.addCourse(101, "Algorithms and Programming"); 
    S.addCourse(201, "Fundamental Structures of Computer Science I"); 
    S.addCourse(101, "Algorithms and Programming"); 
} 
+2

Время для компиляции со всеми предупреждениями и информацией об отладке (например, 'g ++ -Wall -g') и узнать, как использовать ** отладчик ** (например,' gdb', по крайней мере, в Linux). –

+0

примечание стороны: numOfCourse устанавливается на '0' каждый раз, когда вы вызываете свою функцию. вы, вероятно, хотите, чтобы это была переменная-член, а не локальная переменная. – clcto

+0

Да, это то, что я хочу – user8938744

ответ

1

Если прекратив вы имеете в виду закрытия окна терминала, а затем попробуйте запустить system("pause"); в конце основной.

+0

Я пробовал, но не работает. Моя программа дает неправильную ошибку alloc – user8938744

+0

Проверьте правильность или разделите с нами конструктор класса курса. – Kissiel

+0

с использованием пространства имен std; класс Курс { общественность: int courseId; string courseName; Курс(); }; – user8938744

Смежные вопросы