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

Найти ошибку - после работы функции addStudent, оценки старых студентов не присваиваются новому массиву - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Решение СЛАУ методом прогонки http://www.cyberforum.ru/cpp-beginners/thread1160159.html
Добрый день,нужно решить СЛАУ методом прогонки,вот СЛАУ и ее решение. коэфф перед х1считается как за а1. перед х2считается как за в1. перед х3считается как за с1. результат д1. СЛАУ: 4x1+3x2=4; x1+2x2-x3=2; x2+4x3+x4=7,5; x3+2x4-x5=1;
C++ Create a programm that creates an object of created class Time and tests the member functions of class Time Class Create a class called Time that might be used to represent time. 1. Your class should include three data members of type int to represent hour, minute and second. http://www.cyberforum.ru/cpp-beginners/thread1160152.html
Написать Windows-приложение-графическую иллюстрацию графика уравнения C++
Написать Windows-приложение — графическую иллюстрацию графика уравнения, y = 3 x-1, и обратного к нему (т.е. значения координат х заменяются на у и наоборот). как это сделать?
C++ Найти наибольший элемент каждой пары из массива А и записать их в новый массив
Найти наибольший элемент каждой пары из массива А и записать их в новый массив. Получить из него массив четных положительных чисел
C++ Немогу разобраться с кодом http://www.cyberforum.ru/cpp-beginners/thread1160136.html
код писал не я, помогите пожалуйста разобраться.Я не могу понять за что отвечает та или иная переменная.Я знаю что это С а не С++,но в этой категории больше добрых людей ) #include "stdio.h" #include "malloc.h" float GetCount(char** str, int rows, int columns) // подсчет средней длины последовательности символов в строке { int i,j,m; int cnt = 0; // количество последовательностей int...
C++ Local Function definitions are illegal Прошу помощи специалистов. Есть некоторая функция кейлогера, которую нужно запустить при открытии диалогового окна MFC. При компиляции проекта выдает следующую ошибку Compiling... 700Dlg.cpp E:\CPP\700\700Dlg.cpp(65) : error C2601: 'KeyEvent' : local function definitions are illegal E:\CPP\700\700Dlg.cpp(106) : error C2601: 'MsgLoop' : local function definitions are illegal... подробнее

Показать сообщение отдельно
NikiKoyot
 Аватар для NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
28.04.2014, 15:59  [ТС]     Найти ошибку - после работы функции addStudent, оценки старых студентов не присваиваются новому массиву
alekopoko,
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <conio.h>
#include <string.h>
#include <time.h>
using namespace std;
struct student{
    char *fullname;
    char *group;
    int *evaluation;
    int *arr_ev;
    float rating;
};
void getss(char *&str){
    char temp[80];
    gets(temp);
    str = new char[strlen(temp) + 1];
    strcpy(str, temp);
}
void fillingStudent(student *st, int count, int start,int finish){
    for (int i = start; i < finish; i++){
        cout << endl;
        cout << "Студент №" << i + 1 << endl;
        cout << "Введите полное имя студента: ";
        getss(st[i].fullname);
        cout << "Введите группу студента: ";
        getss(st[i].group);
    }
    cout << endl;
}
void createStudent(student *&st, int &count){ //Создание студентов
    system("cls");
    cout << "Введите кол-во студентов: ";
    cin >> count;
    cin.ignore(1);
    st = new student[count];
    fillingStudent(st,count,0,count);
}
void printStudent(student *st, int count, int from, int to){ //Вывод студентов
    //system("cls");
    for (int i = from; i < to; i++){
        cout << "| Cтудент №" << i + 1
            << " || Полное имя: " << st[i].fullname
            << " || Группа: " << st[i].group
            << " || Rating: " << st[i].rating
            << " |" << endl;
        cout << endl;
    }
    //do{
    //  cout << "Для продолжения нажмите любую клавишу...";
    //} while (!_getch());
}
void studentRating(student *st, int count, int start, int finish){ //Определение рейтинга студента
    for (int i = start; i < finish; i++){
        float temp = 0;
        for (int j = 0; j < st->arr_ev[i]; j++){
            temp += st[i].evaluation[j];
        }
        st[i].rating = temp / st->arr_ev[i];
    }
}
void addEvaluation(student *st, int count,int start, int finish){ //Добавление оценок
    system("cls");
    st->arr_ev = new int[count];
    for (int i = start; i < finish; i++){
        cout << "Студент №" << i + 1 << endl;
        cout << "Введите кол-во добавляемых оценок: ";
        cin >> st->arr_ev[i];
        cin.ignore(1);
        st[i].evaluation = new int[st->arr_ev[i]];
        for (int j = 0; j < st->arr_ev[i]; j++)
            st[i].evaluation[j]=rand()%11+1;
        cout << endl;
    }
    studentRating(st, count, start, finish);
}
void printEvaluation(student *st, int count){ //Вывод оценок
    system("cls");
    for (int i = 0; i < count; i++){
        cout << "Студент №" << i + 1 << endl;
        for (int j = 0; j < st->arr_ev[i]; j++){
            cout << st[i].evaluation[j] << " ";
        }
        cout << endl;
    }
    do{
        cout << "Для продолжения нажмите любую клавишу...";
    } while (!_getch());
}
void addStudent(student *&st, int &count){
    system("cls");
    cout << "Введите необходимое кол-во студентов: ";
    int n;
    cin >> n;
    cin.ignore(1);
    if (n <= 0){
        cout << "Невозможно добавить 0 или меньше элементов\nПовторите ввод\n";
    }
    else{
        /*1*/ //Добавление в конец 
        int newcount = count + n;
        student *temp = new student[newcount];
 
        temp->arr_ev = new int[newcount];
        for (int i = 0; i < count; i++){
            temp[i] = st[i];
            temp->arr_ev[i] = st->arr_ev[i];
            temp[i].evaluation = new int[temp->arr_ev[i]];
            for (int j = 0; j < st->arr_ev[i]; j++){
                temp[i].evaluation[j] = st[i].evaluation[j];
            }
        }
        fillingStudent(temp,count,count,newcount);
        addEvaluation(temp,count,count,newcount);
        delete[]st;
        st = temp;
        count = newcount;
    }
}       
void searchStudent(student *st, int count){// Поиск по 
    //Добавить по имени, рейтингу
    system("cls");
    cout << "Введите название группы: ";
    char *str;
    getss(str);
    for (int i = 0; i < count; i++){
        int result;
        result = _stricmp(st[i].group, str);
        if ( result == 0){
            printStudent(st, count, i, i + 1);
        }
    }
    delete[]str;
}
void DrawMenu(char **menu, int lengthMenu, int punkt)//Вывод меню для управления
{
    system("cls");
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    for (int i = 0; i < lengthMenu; i++)
    {
        if (i == punkt - 1)
            SetConsoleTextAttribute(hStdOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
        cout << menu[i] << endl;
        if (i == punkt - 1)
            SetConsoleTextAttribute(hStdOut, 15);
    }
}
int ConsoleMenu(char **menu, int lengthMenu){//Управление меню кнопками "вниз" и " "вверх"
    int punkt = 1;
    DrawMenu(menu, lengthMenu, punkt);
    while (1)
    {
        int j = _getch();
        if (j == 72) punkt--;
        if (j == 80) punkt++;
        if (punkt<1) punkt = lengthMenu;
        if (punkt>lengthMenu) punkt = 1;
        if (j == 13) return punkt;
        if (j == 72 || j == 80)DrawMenu(menu, lengthMenu, punkt);
    }
}
 
int main(void){
    srand(time(NULL));
    setlocale(LC_ALL, "Russian");
    student *stptr;
    int n = 0;
    createStudent(stptr, n);
    addEvaluation(stptr, n,0,n);
    //searchStudent(stptr, n);
    printStudent(stptr, n,0,n);
    printEvaluation(stptr, n);
    addStudent(stptr,n);
    //printStudent(stptr, n,0,n);
    printEvaluation(stptr, n);
    exit(0);
}
Прошу не судить строго
 
Текущее время: 19:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru