Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16

Структура: При попытке просмотра данных о студенте программа крашится. Как исправить?

27.06.2017, 23:52. Показов 3156. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется пустая база данных студентов (для последующего заполнения). Если после заполнения хотя бы одного студента после перезапуска программы при просмотре списка студентов программа крашится. (Функционал еще не доделан, пункта 3 еще нету).
Уже сломал всю голову, не могу понять по чему неправильно записывается файл. Возможно я накосячил и с открытием)
Код
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
//Доделать пункты
//Сортировка
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <conio.h>
#include <iomanip>
#include <stdlib.h>
#include <string>
using namespace std;
int main() {
 
    FILE *fp, *ft;
 
    char another, choice, sort;
 
struct student {
 
        char fam[50], imua[50];
        char otch[50];
        char pol[50];
        char course[100];
 
        int age;
 
    };
    
    setlocale(LC_ALL, ("Russian"));
    int n = 1;
    student *p = new student[n];
    student **q = new student*[n];
    for (int i = 0;i < n;i++)
    q[i] = &p[i];
    char xfam[50], ximua[50], xcource[100], xpol[50];
    int xage;
    long int recsize;
    
    fp=fopen("users.txt","rb+");
 
    if (fp == NULL) {
        fp = fopen("users.txt","wb+");
 
        if (fp==NULL)
        {
             puts("Невозможно открыть файл!");
             return 0;
        }
    }
 
 recsize = sizeof(p);
 
 while(1) {
    setlocale(LC_ALL, ("Russian"));
     system("cls");
     cout << "\n=========== Список студентов ===========";
     cout <<"\n\n                                          ";
     cout << "\n========================================";
     cout << "\n  1. Добавить запись о новом студенте";
     cout << "\n  2. Список студентов";
     cout << "\n  3. Список студентов с сортировкой";
     cout << "\n  4. Редактировать запись о студенте";
     cout << "\n  5. Удалить запись о студенте";
     cout << "\n  6. Выйти из программы";
     cout << "\n========================================";
     cout << "\n";
     cout << "\n Выберите пункт меню:";
     fflush(stdin);
     choice = getche();
     switch(choice)
     {
      case '1' : //Добавление
      n+1;
            fseek(fp,0,SEEK_END);
            another ='Y';
            while(another == 'Y' || another == 'y')
            {
                  system("cls");
                  for(int i = 0 ; i < n ; i++)
                  {
                cout << "Введите фамилию: ";
                cin >> p[i].fam;
                cout << "Введите имя: ";
                cin >> p[i].imua;
                cout << "Введите отчество: ";
                cin >> p[i].otch;
                cout << "Укажите пол: ";
                cin >> p[i].pol;
                cout << "Введите курс: ";
                cin >> p[i].course;
                cout << "Введите возраст: ";
                cin >> p[i].age;
                }
                fwrite(&q,recsize,1,fp);
                cout << "\n Добавить еще одну запись? (Y/N) ";
                fflush(stdin);
                another = getchar();
            }
            break;
            case '3' : //Sorting
          
   case '2': //Просмотр
            system("cls");
           rewind(fp);
           cout << "=== Просмотр списка студентов ===";
           cout << "\n";
           while (fread(&q,recsize,1,fp) == 1){
                for(int i = 0 ; i < n ; i++)
                {
           cout << "\n";
           cout <<"\nФИО     :: " <<q[i] -> fam <<" "<<q[i]->imua<<" "<<q[i]->otch;
           cout <<"\nПол     :: " <<q[i]->pol;
           //cout << "\n";
           cout <<"\nКурс    :: " <<q[i]->course ;
           cout <<"\nВозраст :: "<<q[i]->age;
           }
           }
           cout << "\n\n";
           system("pause");
           break;
 
   case '4' : //Редактирование
            system("cls");
          another = 'Y';
          while (another == 'Y'|| another == 'y')
          {
              cout << "\n Введите имя студента : ";
              cin >> ximua;
 
            rewind(fp);
            while (fread(&q,recsize,1,fp) == 1)
            {
                for(int i = 0 ; i < n ; i++)
                if (strcmp(p[i].imua,ximua) == 0)
                {
                for(int i = 0 ; i < n ; i++)
                {
                cout << "Введите новую фамилию : ";
                cin >> p[i].fam;
                cout << "Введите новое имя : ";
                cin >> p[i].imua;
                cout << "Введите новое отчество: ";
                cin >> p[i].otch;
                cout << "Укажите пол: ";
                cin >> p[i].pol;
                cout << "Введите новый курс    : ";
                cin >> p[i].course;
                cout << "Введите новый возраст   : ";
                cin >> p[i].age;
                }
                fseek(fp, - recsize, SEEK_CUR);
                fwrite(&q,recsize,1,fp);
                break;
                }
                else
                cout<<"Запись о студенте не найдена";
            }
            cout << "\n Изменить другую запись? (Y/N) ";
                fflush(stdin);
                another = getchar();
            }
            break;
 
     case '5': //Удаление
       system("cls");
           another = 'Y';
          while (another == 'Y'|| another == 'y')
          {
             while (fread(&q,recsize,1,fp) == 1){
           cout << "\n";
           for(int i = 0 ; i < n ; i++)
           {
           cout <<"\nФИО     :: " <<p[i].fam <<" "<<p[i].imua<<" "<<p[i].otch;
           cout <<"\nПол     :: " <<p[i].pol;
           //cout << "\n";
           cout <<"\nКурс    :: " <<p[i].course ;
           cout <<"\nВозраст :: "<<p[i].age;
           }
           }
           cout << "\n\n";
              cout << "\n Введите фамилию студента запись о котором нужно удалить : ";
              cin >> xfam;
 
              ft = fopen("temp.dat", "wb");
 
              rewind(fp);
              while (fread (&q, recsize,1,fp) == 1)
                for(int i = 0 ; i < n ; i++)
                 if (strcmp(p[i].imua,ximua) != 0)
                {
                    n-1;
                    fwrite(&q,recsize,1,ft);
                }
                fclose(fp);
                fclose(ft);
                remove("users.txt");
                rename("temp.dat","users.txt");
 
                fp=fopen("users.txt","rb+");
 
                cout << "\n Удалить другую запись? (Y/N) ";
                fflush(stdin);
                another = getchar();
              }
              break;
 
              case '6': //Закрытие программы
              fclose(fp);
              cout << "\n\n";
              cout << "\t\t     Закрытие программы...";
              cout << "\n\n";
              exit(0);
          }
     }
system("pause");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2017, 23:52
Ответы с готовыми решениями:

Программа крашится при попытке распечатать массив
Доброго времени суток. Имеется программа, которая в мейне инициализирует двухмерный динамический массив, количество строк и столбцов...

Программа крашится при попытке чтения числа с плавающей точкой
Первый пост, немного волнительно :) Помогаю другу с курсовой. Вчера он мне кинул код, который вылетает при попытке чтения числа с...

Крашится программа при попытке присваивания значения элементу дин-го массива
Не могу понять в чём ошибка. Я только учусь, поэтому возможно, что ошибка элементарная. Вот шаблон класса множество. Хотел написать...

29
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 19:28
Студворк — интернет-сервис помощи студентам
Держи, ТС, проверяй, так оно правильней.
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
 
#define VVOD cout << "Введите фамилию: ";\
cin >> p[i].surname;\
cout << "Введите имя: ";\
cin >> p[i].name;\
cout << "Введите отчество: ";\
cin >> p[i].patr;\
cout << "Укажите пол: ";\
cin >> p[i].sex;\
cout << "Введите курс: ";\
cin >> p[i].clas;\
cout << "Введите возраст: ";\
cin >> p[i].age;
 
#define FIND_ERR cout << "Студент не найден!";
 
 
using namespace std;
 
struct student {
 
    bool status = false;// сигнализирует о том, заполнена ли эта структура или, например, удалена
    char surname[50], name[50], patr[50], sex[50], clas[50];
    int age;
 
};
 
int add_new(student*, int);//добавить нового студента
int del_n(student*, int);//удалить студента
int change_n(student*, int);//изменить студента
int show_origin(student*, int);//показать список
int show_sort(student*, int);//показать сортированный список
int save(student*, short);//сохраняет БД в файл
int compare(const void *, const void *);
 
int main() {
 
 
    setlocale(LC_ALL, ("Russian"));
    int n = 10;
    student *p = new student[n];
 
    while (1) {
        setlocale(LC_ALL, ("Russian"));
        system("cls");
        cout << "\n=========== Список студентов ===========";
        cout << "\n\n                                          ";
        cout << "\n========================================";
        cout << "\n  1. Добавить запись о новом студенте";
        cout << "\n  2. Список студентов";
        cout << "\n  3. Список студентов с сортировкой";
        cout << "\n  4. Редактировать запись о студенте";
        cout << "\n  5. Удалить запись о студенте";
        cout << "\n  6. Сохранить БД в файл";
        cout << "\n  7. Выйти из программы";
        cout << "\n========================================";
        cout << "\n";
        cout << "\n Выберите пункт меню:";
        char choice;
        choice = getche();
        system("cls");
        switch (choice)
        {
        case '1':           add_new(p, n);          break;
        case '2':           show_origin(p, n);          break;
        case '3':           show_sort(p, n);            break;
        case '4':           change_n(p, n);         break;
        case '5':           del_n(p, n);            break;
        case '6':           save(p, n);         break;
        case '7': //Закрытие программы
            cout << "\n\n";
            cout << "\t\t     Закрытие программы...";
            cout << "\n\n";
            exit(0);
        }
        system("pause");
    }
    system("pause");
    return 0;
}
 
int add_new(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (!p[i].status) {
            VVOD
                p[i].status = true;
            return 0;
        }
    }
    cout << "База переполнена!";
}
 
int del_n(student* p, int n) {
    cout << "Введите точную фамилию, для удаления студента из базы: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            p[i].status = false;
            return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int change_n(student* p, int n) {
    cout << "Введите точную фамилию, для изменения студента в базе: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            VVOD
                return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int show_origin(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (p[i].status) {
            cout << "Фамилия: " << p[i].surname << endl;
            cout << "Имя: " << p[i].name << endl;
            cout << "Отчество: " << p[i].patr << endl;
            cout << "Пол: " << p[i].sex << endl;
            cout << "Курс: " << p[i].clas << endl;
            cout << "Возраст: " << p[i].age << endl << endl;
        }
    }
    return 0;
}
 
int show_sort(student* p, int n) {
    student *p2 = new student[n];
    for (auto i = 0; i < n; i++) {
        p2[i] = p[i];
    }
    qsort(p2, n, sizeof(student), compare);
    show_origin(p2, n);
    return 0;
}
 
int compare(const void * val1, const void * val2) {
    student *p1 = (student*)val1;
    student *p2 = (student*)val2;
    return strcmp(p1->surname, p2->surname);
}
 
int save(student* p, short n) {
    ofstream fileout("outbin.dat", ios::binary);
    fileout.write((char*)&n, sizeof n);
    for (auto i = 0; i < n; i++) {
        fileout.write(reinterpret_cast<char*>(&p[i]), sizeof(student));
    }
    fileout.close();
    return 0;
}
Добавлено через 2 минуты
drelay, так в ТЗ я ж специально уточнял.) Функции считывания с файла БД нет.
Цитата Сообщение от drelay Посмотреть сообщение
(саму базу будет заполнять преподаватель через консоль)
Добавлено через 2 минуты
В общем, у меня пол третьего ночи, если сильно надо, может найдутся добрые люди, которые прикрутят функцию считать БД. Но мне пора)
Моешь сам дописать, там не сложно. (если я правильно в последней правке записываю файл хD)

Добавлено через 4 минуты
upd Ага, не очень правильно я записал, но длина фиксированная у всех строк и мы ее знаем, так что можно считать) Я буду часов через 9ть
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,428
28.06.2017, 19:36
Цитата Сообщение от YarRainbow Посмотреть сообщение
не очень правильно я записал
Нормально.

Добавлено через 3 минуты
Для порядка, нужно структуру выровнять по байту:
C++
1
2
3
4
5
6
7
#pragma pack(push,1)
struct student
{
    // ....
    
};
#pragma pack(pop)
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
29.06.2017, 10:24
drelay, разобрался с чтением?
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
29.06.2017, 12:28  [ТС]
Не-а не разобрался. И сортировка кстати тоже должна быть из файла
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.06.2017, 12:35
Цитата Сообщение от drelay Посмотреть сообщение
И сортировка кстати тоже должна быть из файла
Как вы себе это представляете?
Данные сначала нужно загрузить из файла, а потом сортировать.
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
29.06.2017, 12:57  [ТС]
Эту часть нужно дописать, у меня к сожалению возможности сейчас нет я на зачёте . Вчера пробовал, не получилось
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
29.06.2017, 16:27
Лучший ответ Сообщение было отмечено drelay как решение

Решение

drelay, функция сортировки есть, не надо ничего в нее дописывать. Просто вызывайте в нужный момент. Чтение записанной БД из файла в массив структур покажу вечером, как время найду. Пока не за компьютером.

Добавлено через 3 часа 19 минут
drelay, добавил функцию подгружающую сохраненную БД из бинарника. То есть, вводишь данные, сохраняешь, перезапускаешь программу, проверяешь пустой список, загружаешь - вуаля!
Можешь добавить функцию load() куда-нибудь в начало (перед циклом while), будет автоматически подгружать при запуске программы последнюю сохраненную БД.
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
180
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
 
#define VVOD cout << "Введите фамилию: ";\
cin >> p[i].surname;\
cout << "Введите имя: ";\
cin >> p[i].name;\
cout << "Введите отчество: ";\
cin >> p[i].patr;\
cout << "Укажите пол: ";\
cin >> p[i].sex;\
cout << "Введите курс: ";\
cin >> p[i].clas;\
cout << "Введите возраст: ";\
cin >> p[i].age;
 
#define FIND_ERR cout << "Студент не найден!";
 
 
using namespace std;
 
struct student {
 
    bool status = false;// сигнализирует о том, заполнена ли эта структура или, например, удалена
    char surname[50], name[50], patr[50], sex[50], clas[50];
    int age;
 
};
 
int add_new(student*, int);//добавить нового студента
int del_n(student*, int);//удалить студента
int change_n(student*, int);//изменить студента
int show_origin(student*, int);//показать список
int show_sort(student*, int);//показать сортированный список
int save(student*, short);//сохраняет БД в файл
int load(student*, short);//загружает БД из файла
int compare(const void *, const void *);//функция сравнения для qsort()
 
int main() {
 
 
    setlocale(LC_ALL, ("Russian"));
    int n = 10;
    student *p = new student[n];
 
    while (1) {
        setlocale(LC_ALL, ("Russian"));
        system("cls");
        cout << "\n=========== Список студентов ===========";
        cout << "\n\n                                          ";
        cout << "\n========================================";
        cout << "\n  1. Добавить запись о новом студенте";
        cout << "\n  2. Список студентов";
        cout << "\n  3. Список студентов с сортировкой";
        cout << "\n  4. Редактировать запись о студенте";
        cout << "\n  5. Удалить запись о студенте";
        cout << "\n  6. Сохранить БД в файл";
        cout << "\n  7. Загрузить БД из файла";
        cout << "\n  8. Выйти из программы";
        cout << "\n========================================";
        cout << "\n";
        cout << "\n Выберите пункт меню:";
        char choice;
        choice = getche();
        system("cls");
        switch (choice)
        {
        case '1':           add_new(p, n);          break;
        case '2':           show_origin(p, n);          break;
        case '3':           show_sort(p, n);            break;
        case '4':           change_n(p, n);         break;
        case '5':           del_n(p, n);            break;
        case '6':           save(p, n);         break;
        case '7':           load(p, n);         break;
        case '8': //Закрытие программы
            cout << "\n\n";
            cout << "\t\t     Закрытие программы...";
            cout << "\n\n";
            exit(0);
        }
        system("pause");
    }
    system("pause");
    return 0;
}
 
int add_new(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (!p[i].status) {
            VVOD
                p[i].status = true;
            return 0;
        }
    }
    cout << "База переполнена!";
}
 
int del_n(student* p, int n) {
    cout << "Введите точную фамилию, для удаления студента из базы: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            p[i].status = false;
            return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int change_n(student* p, int n) {
    cout << "Введите точную фамилию, для изменения студента в базе: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            VVOD
                return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int show_origin(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (p[i].status) {
            cout << "Фамилия: " << p[i].surname << endl;
            cout << "Имя: " << p[i].name << endl;
            cout << "Отчество: " << p[i].patr << endl;
            cout << "Пол: " << p[i].sex << endl;
            cout << "Курс: " << p[i].clas << endl;
            cout << "Возраст: " << p[i].age << endl << endl;
        }
    }
    return 0;
}
 
int show_sort(student* p, int n) {
    student *p2 = new student[n];
    for (auto i = 0; i < n; i++) {
        p2[i] = p[i];
    }
    qsort(p2, n, sizeof(student), compare);
    show_origin(p2, n);
    return 0;
}
 
int compare(const void * val1, const void * val2) {
    student *p1 = (student*)val1;
    student *p2 = (student*)val2;
    return strcmp(p1->surname, p2->surname);
}
 
int save(student* p, short n) {
    ofstream fileout("savebin.dat", ios::binary);
    fileout.write((char*)&n, sizeof n);
    for (auto i = 0; i < n; i++) {
        fileout.write(reinterpret_cast<char*>(&p[i]), sizeof(student));
    }
    fileout.close();
    return 0;
}
 
int load(student* p, short n) {
    ifstream filein("savebin.dat", ios::binary);
    short x;
    filein.read((char*)&x, sizeof x);
    if (x > n) {
        cout << "Ошибка: слишком большой размер загружаемой БД.";
    }
    for (auto i = 0; i < n; i++) {
        filein.read(reinterpret_cast<char*>(&p[i]), sizeof(student));
    }
    filein.close();
    return 0;
}
PS Кстати, я добавил там проверку на несоответствие БД, но как оно будет работать, если ты вдруг n будешь задавать вручную при запуске - не проверял. То есть, при загрузке меньшей сохраненной базы в большую я не знаю, как будет вести себя программа.

Добавлено через 6 минут
UPD. Все нормально. Можно n вводить при запуске программы даже, все будет обрабатываться отлично, будут вылазить предусмотренные программой ошибки и предупреждения. То есть, я пытался сломать программу, оперируя каждый раз разным по размеру массивом структур, не выходит.
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
29.06.2017, 20:33  [ТС]
Удаление тоже происходит из файла?

Добавлено через 38 секунд
Нет возможности шасси проверить
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
30.06.2017, 05:59
Лучший ответ Сообщение было отмечено drelay как решение

Решение

drelay, работают с файлами две функции: save() и load(). Больше и не надо. Все операции происходят в программе, потому что так надо. Если вы хотите чтобы удалялось, сортировалось, изменялось сразу в файле, просто добавьте функцию save() в самый конец цикла while.
Кликните здесь для просмотра всего текста
(и не забудьте тогда добавить load() непосредственно перед while, иначе рискуете при перезапуске ненароком потерять прошлую БД, случайно перезаписав ее)
Тогда сохранение будет происходить автоматически, после каждой операции. Но это не очень хороший способ демонстрации функций работы с файлами.
Напрямую удалять и изменять в файле, конечно, можно, но лучше забудьте про это. Это в данном конкретном случае вообще ни к чему.

Добавлено через 7 минут
PS Что-то еще непонятно? Может я плохо объясняю?
1
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
30.06.2017, 11:06  [ТС]
Спасибо большое, все работает. Все как нужно было) +rep
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.06.2017, 11:06
Помогаю со студенческими работами здесь

Программа крашится при вводе данных
Вот этот код скопирован из учебника. На моем компьютере почему то запускается программа но при вводе 1.2 3.4 5.6| просто выключается и все....

Исправить вывод данных о студенте
Здравствуйте, помогите пожалуйста с такой проблемкой, когда ввожу данные о студенте (фамилию, имя, отчество и и тд.) и затем пытаюсь...

Приложение крашится при попытке инициализировать searchview
Кто может подсказать, что я делаю не правильно Приложение рушится на попытке инициализировать элемент SearchView на вот этой строчке ...

Крашится при попытке открытия простой страницы через QWebView
крашится при попытки открытия простой страницы через qwebView

При загрузки текста из файла в combobox1 кодировка крашится в неизвестный формат символов как исправить?
comboBox2.Items.AddRange(File.ReadAllLines(&quot;Sporting_achievement.txt&quot;)); Добавлено через 2 минуты Пробовал так получают один вид...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru