Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
samaranin
0 / 0 / 0
Регистрация: 22.04.2014
Сообщений: 2
#1

Работа с объектами. Код вылетает сразу после инициализации элементов массива - C++

22.04.2014, 20:53. Просмотров 194. Ответов 2
Метки нет (Все метки)

Код вылетает сразу после инициализации элементов массива. Не могу засечь в чем проблема. Не подскажете? Буду благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <cstdlib>
#include <iostream>
#include <algorithm>
 
using namespace std;
 
class Student
{
 private:
         char *lastName;
         int number;
         int marks[5];
 
 public:
        Student(char *name, int num, int *mark)
        {
                 lastName = name; 
                 number = num;
                 for (int i = 0; i<5; i++) marks[i] = mark[i];   
        }
        
        Student()
        {
                 lastName = "LastName";
                 number = 0;
                 for (int i = 0; i<5; i++) marks[i] = 0;
        }
        
        void SetName(char *lastname) { lastName = lastname; }
        void SetNumber(int num) { number = num; }
        void SetMarks (int *mark) 
        {
             for (int i = 0; i<5; i++) marks[i] = mark[i];
        }
        
        void Show() 
        {
             cout << "Last Name: " <<lastName << ". Number: " << number << endl;
             cout << "Marks: ";
             for (int i = 0; i<5; i++) cout << marks[i] << " ";
             cout << endl;
        }
        
        double AverageMark()
        {
               int summ = 0;
               for (int i = 0; i<5; i++) summ += marks[i];
               return (double) summ/5;
        }
};
 
class Group
{
 private:
         int n;
         Student group[];
 
 public:
        bool CMP (int a, int b) { return a < b; }
        
        Group()
        {
               
               cout << "Enter number of students: ";
               cin >> n;
               for (int i = 0; i<n; i++)
               {
                   char *name;
                   int num;
                   int mark[5];
                   cout << "Enter Last Name: "; cin >> name;
                   cout << "Enter Number: "; cin >> num;
                   cout << "Enter Marks: ";
                   for (int j = 0; j<5; j++) 
                   {
                       cout<< (j+1) << ": "; 
                       cin >> mark[j];
                   }
                   group[i].SetName(name); 
                   group[i].SetNumber(num); 
                   group[i].SetMarks(mark);
               }
        }
        
        Group(Student *gr)
        {
               cout << "Enter number of students: ";
               cin >> n;
               for (int i = 0; i<n; i++) group[i] = gr[i];
        }
        
        void Print()
        {
             for (int i = 0; i<n; i++) group[i].Show();
        }
        
        void StudWithMaxMark()
        {
             cout << "Students with max average mark: " << endl;
             if ( n < 5 )
                for (int i = 0; i < n; i++) group[i].Show();
             else
                for (int i = 0; i < 5; i++) group[i].Show();
        }
};
 
int main(int argc, char *argv[])
{
    Group gr;
    gr.Print();
    gr.StudWithMaxMark();
    system("PAUSE >> VOID");
    return EXIT_SUCCESS;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 20:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с объектами. Код вылетает сразу после инициализации элементов массива (C++):

после ввода сразу вылетает с крит. ошибкой - C++
int main(int nNumberofArgs, char* pszArgs) { char *ipshnik; cout &lt;&lt; &quot;enter IP&quot;; cin &gt;&gt; *ipshnik; system...

После компиляции программы. Visual studio сразу закрывается. Вылетает ошибка. - C++
http://s54.***********/i145/1104/ad/e59a041279ff.jpg Что делать? Когда жму ctrl+f5 Visual studio сразу же закрывается! ошибка как...

Чтение массива сразу после удаление элемента - C++
Подскажите как удалить элемент массива продолжить чтение массива с элемента который стоит после удаленого элемента #include &lt;iostream&gt;...

Сразу три 1.анализ функции, 2.замена элементов массива, 3.максимальный элемент массива - C++
1. Протабулировать заданную функцию y = f(x) на промежутке с постоянным шагом h. интервал =; шаг h=0.1; система уравнений (х-1)^4 и...

Реализация stl-ной queue с объектами своего класса, вылетает программа - C++
не могу разобраться, в чем проблема. необходимо реализовать очередь и запихивать туда объекты из своего класса, дело в том, что при...

При отладке программы вылетает окошко с ошибкой: использование переменной без инициализации - C++
код: #include &lt;iostream&gt; #include &lt;conio.h&gt; int A,n,m; using namespace std; void poisk1(); void poisk2(); int main() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6360 / 5924 / 1921
Регистрация: 18.12.2011
Сообщений: 15,228
Завершенные тесты: 1
22.04.2014, 21:59 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Student(char *name, int num, int *mark)
 {
                 lastName=new char[strlen(name)+1];
                 strcpy(lastName ,name);
           ...
}
Student()
{
                lastName=new char[9];
                strcpy(lastName ,"LastName");
....
}
~Student()
{
    delete[] lastName;
} 
 void SetName(char *lastname) 
{ 
     delete[] lastName;
     lastName=new char[strlen(lastname)+1];
     strcpy(this->lastName,lastname); 
}
Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class Group
{
 private:
         int n;
         Student* group;
 
 public:
        bool CMP (int a, int b) { return a < b; }
        
        Group()
        {
               
               cout << "Enter number of students: ";
               cin >> n;
               group=new Student[n];
               for (int i = 0; i<n; i++)
               {
                   char name[100];
                   int num;
                   int mark[5];
                   cout << "Enter Last Name: "; cin >> name;
                   cout << "Enter Number: "; cin >> num;
                   cout << "Enter Marks: ";
                   for (int j = 0; j<5; j++) 
                   {
                       cout<< (j+1) << ": "; 
                       cin >> mark[j];
                   }
                   group[i].SetName(name); 
                   group[i].SetNumber(num); 
                   group[i].SetMarks(mark);
               }
        }
        
        Group(Student *gr)
        {
               n=gr->n;
               for (int i = 0; i<n; i++)
               {
                   group[i].SetName(gr[i].name); 
                   group[i].SetNumber(gr[i].num); 
                   group[i].SetMarks(gr[i].mark);
               }
        }
        
       ....
 
~Groupe()
{
    delete[] group;
}
};
samaranin
0 / 0 / 0
Регистрация: 22.04.2014
Сообщений: 2
22.04.2014, 22:00  [ТС] #3
Большое спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 22:00
Привет! Вот еще темы с ответами:

Все элементы, равные нулю, поставить сразу после максимального элемента данного массива - C++
нужно переделать данную задачу, с использованием указателей Условие: В массиве A=(a1, а2, ..., аn) все элементы, равные нулю, поставить...

Все элементы заданного массива, равные нулю, поставить сразу после максимального элемента - C++
В массиве A=(a1, а2, ..., аn) все элементы, равные нулю, поставить сразу после максимального элемента данного массива. Элементы массива...

Вычислить количество положительных элементов массива и сумму элементов массива, расположенных после последнего элемента, равного нулю - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: количество положительных элементов массива; сумму элементов...

Комбофикс вылетает сразу после начатия скана. - Удаление вирусов
Комбофикс вылетает сразу после начатия скана. С логами не работал раньше, но буду учиться. Отправлю логи hijackthis и rsit


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru