Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 19
1

Не получается изменить введенные данные по выбранному id

13.04.2018, 15:23. Показов 1314. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
не получается изменить введенные данные по выбранному id, можно изменить данные только последнего студента, в чем может быть ошибка? вводил тестовую переменную p=i в цикле, она всегда равна нулю, то есть цикл не проходит вообще. заменял строчки stud->id на stud[i].id - не помогло.
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
struct fig 
{
    char surn[30];
    int mark[100];
    int modulcount;         
    int id; 
};
void fCloseFile(FILE *file) 
{
    fclose(file);
}
void push(fig *&stud)
{
    
    cout<<"Введите id: "<<endl;
    cin>>stud->id;
    cout<<"Введите фамилию :"<<endl;
    cin>>stud->surn;    
    cout<<"Введите кол-во модулей: "<<endl;
    cin>>stud->modulcount;
    cout<<"Введите оценки: "<<endl;
    for(int j=0; j<stud->modulcount; j++)
    {
        cin>>stud->mark[j];     
    }       
}
void infile(FILE* file, fig *stud)
{
    push(stud);
    int sum = 0;
    cout << "id: " << stud->id << endl;
    cout << "Фамилия: " << stud->surn << endl;
    cout << "Кол-во модулей : " << stud->modulcount << endl;
    cout << "Оценки : " << endl;
    for(int j=0; j<stud->modulcount; j++)
    {
        cout<<stud->mark[j]<<" ";
        sum+=stud->mark[j];
    }
    if (sum>=60)
        cout<<"Зачет "<<endl;
    else cout<<"Незачет "<<endl;
    cout<<endl;
    fwrite(stud, sizeof(file), 1, file);
    cout << "Данные в файл записаны \n";
    fCloseFile(file);
}
 
void fromfile(char *filename)
{
    fig stud;
    FILE *file = fopen(filename,"rb");
    fread(&stud, sizeof(fig), 1, file);
    cout << "Данные из файла: "<<endl;
    cout << "id: " << stud.id << endl;
    cout << "Фамилия: " << stud.surn << endl;
    cout << "Кол-во модулей : " << stud.modulcount << endl;
    for(int j=0; j<stud.modulcount; j++)
    {
        cout<<stud.mark[j]<<" ";
    }
    fCloseFile(file);
    return;
}
FILE* fOpenFile(char *filename) {
    FILE *file;
    file = fopen(filename,"a+b");
    return file;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251); 
    fig *student = new fig;
    char *fName = "myfile.txt";
    FILE *file = fOpenFile(fName);
    cout<<"Введите кол-во студентов: "<<endl;
    int num;
    int vibor;
    int p=0;
    int change;
    int newmark[100];
    cin>>num;
    for(int i=0; i<num; i++)
    {
        infile(file,student);
    }   
    fromfile(fName);
    cout<<"Редактировать оценки студента? 1-да, 0-нет "<<endl;
    cin>>vibor;
    if (vibor==0)
        cout<<"Завершение программы... "<<endl;
    else 
    {
        cout<<"Ввод id: "<<endl;
        cin>>change;
        
        for(int i=0; i<num; i++)
        {
            if (student->id==change)
            {
        cout<<"Введите оценки: "<<endl;
        for(int j=0; j<student->modulcount; j++)
        {       
            cin>>newmark[j];
            student->mark[j]=newmark[j];
            
        }       
        break;
            }
        }
        cout<<"Завершение программы... "<<endl;
    }
    _getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2018, 15:23
Ответы с готовыми решениями:

Невозможность изменить введенные данные в инпут
Ситуация такая: есть инупт, к которому привязан скрипт, динамически меняющий его содержимое в...

Не получается изменить данные в бинарном файле
Здравствуйте. Мучаюсь, не пойму как сделать чтобы изменить данные. Программа обращается к файлу с...

Не получается изменить данные в диаграмме в PowerPoint
Необходимо получить доступ к данным диаграммы для их изменения, однако сделать это не удается....

Введенные данные структуры не проходят проверку в конце (if (Sum/7 >= new_midsumma) и просто все эти данные выводят
Задание: Описать структуру с именем «Студенты», содержащую следующие поля: фамилия и инициалы;...

1
75 / 26 / 22
Регистрация: 22.06.2013
Сообщений: 127
13.04.2018, 16:13 2
C++
1
2
3
4
for(int i=0; i<num; i++)
        {
            if (student->id==change)
            {
Тут нечего перебирать циклом, у вас только один student хранится в памяти.

C++
1
fig *student = new fig;
Может стоило массив завести?
C++
1
fig *student = new fig[COUNT];
0
13.04.2018, 16:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2018, 16:13
Помогаю со студенческими работами здесь

Не получается изменить данные в таблице: "Missing SQL property"
Помогите, не получается изменить данные в таблице

Считать данные в select согласно выбранному checkbox
Имеется форма: &lt;input type='checkbox' name='menu' value='id товара' /&gt; .. название товара и...

По выбранному значению TreeList фильтровать данные в GridView
По выбранному значению TreeList фильтровать данные в GridView Добавлено через 2 часа 26 минут...

По выбранному в ComboBox значению выводить соответствующие данные в DataGridView
необходимо создать сортировку в datagridview по выбору данных из combobox. в combobox выведены...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru