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

Неисправный код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread1305030.html
Помогите решить задачу:
C++ Можно ли обойтись без mutex? в оф мануале : The following example includes a bank account of a person (Joe) and two components, one corresponding to a bank agent depositing money in Joe's account, and one representing Joe. Joe will only be withdrawing money from the account: class BankAccount; BankAccount JoesAccount; void bankAgent() { for (int i =10; i>0; --i) { //... http://www.cyberforum.ru/cpp-beginners/thread1305024.html
Перестановка столбцов матрицы C++
Нужно отсортировать столбцы матрицы по убыванию сумм их элементов. Помогите с сортировкой, пожлуйста
C++ Подскажите пожалуйста что нужно исправлять
#include <iostream> #include <math.h> using namespace std; int main() { double y, x, Pi; Pi = 3.14159; x = -Pi; while (x <= Pi)
C++ Связь между программами http://www.cyberforum.ru/cpp-beginners/thread1305005.html
У меня есть одна программа на C++. В ней следовательно есть несколько переменных (например int i = 3 и String c = "test"). Необходимо создать программу на C++ Builder 6.0, которая сможет: 1. Получить список всех переменных программы. 2. Изменить переменные. 3. Прочитать переменные. И 2 вопрос: можно ли сделать две программы (именно программы, не формы) с общими переменными?
C++ Работа с XML файлами в Builder С++ Добрый день, уважаемые форумчане! Подскажите какие-нибудь учебники по работе с XML файлами в Builder С++. ПОЖАЛУЙСТА! в интернете ничего путного не нашла...А если кому не жалко, можете скинуть исходник подробнее

Показать сообщение отдельно
Spirit2222
0 / 0 / 1
Регистрация: 02.11.2013
Сообщений: 32

Неисправный код - C++

19.11.2014, 15:23. Просмотров 152. Ответов 4
Метки (Все метки)

Дан код:
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include<iostream>
#define CHAR_LENGTH 200
#define NOTHING_FOUND -1
 
class Student {
private:
    char* name;
    char* lastName;
    int iq;
 
    void init() {
        name = new char[CHAR_LENGTH] {};
        lastName = new char[CHAR_LENGTH] {};
    }
 
public:
    Student() {
        init();
        iq = 0;
    }
 
    Student(char* _name, char* _lastName, int _iq) {
        init();
        strncpy_s(name, CHAR_LENGTH, _name, strlen(_name));
        strncpy_s(lastName, CHAR_LENGTH, _lastName, strlen(_lastName));
        iq = _iq;
    }
 
    ~Student() {
        delete[] name;
        delete[] lastName;
    }
 
    char* getName() {
        return name;
    }
 
    char* getLastName() {
        return lastName;
    }
 
    int getIq() {
        return iq;
    }
 
    bool equals(Student* student) {
        return  strncmp(name, student->name, CHAR_LENGTH) == 0 &&
            strncmp(lastName, student->lastName, CHAR_LENGTH) == 0 &&
            iq == student->iq;
    }
 
    void show() {
        using namespace std;
        cout << "Name: " << name << " Last name: " << lastName << " IQ: " << iq << endl;
    }
};
 
class Group {
private:
    Student* students;
    int groupSize;
    int currentSize;
 
    void init(int _groupSize) {
        students = new Student[_groupSize];
        groupSize = _groupSize;
        currentSize = 0;
    }
 
    int findStudent(Student* student) {
        for (int i = 0; i < currentSize; i++) {
            if (students[i].equals(student)) {
                return i;
            }
        }
 
        return NOTHING_FOUND;
    }
 
public:
    Group() {
        init(20);
    }
 
    Group(int groupSize) {
        init(groupSize);
    }
 
    ~Group() {
        delete[] students;
    }
 
    bool addStudent(Student* student) {
        if (currentSize >= groupSize) {
            return false;
        }
 
        students[currentSize++] = Student(student->getName(), student->getLastName(), student->getIq());
        return true;
    }
 
    bool removeStudent(Student* student){
        return removeStudent(findStudent(student));
    }
 
    bool removeStudent(int index) {
        if (index < 0 || index >= currentSize) {
            return false;
        }
 
        for (int i = index; i < currentSize - 1; i++)
        {
            std::swap(students[i], students[i + 1]);
        }
        --currentSize;
        return true;
    }
 
    void show() {
        for (int i = 0; i < currentSize; i++) {
            students[i].show();
        }
    }
};
 
void main(){
    Student vasya("Vasya", "Pipkin", 1200);
    Student petya("Petya", "Pupkin", 100);
    Student grisha("Grigoriy", "Vasechkin", -500);
 
    Group group(5);
    group.addStudent(&vasya);
    group.addStudent(&petya);
    group.addStudent(&grisha);
 
    group.show();
 
    group.removeStudent(&vasya);
 
    group.show();
    system("pause");
 
}
его нужно исправить. Помогите пожалуйста, не могу понять, что не так. Препод намекнул что нужно написать конструктор копирования, но все равно не понятно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru