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

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

27.06.2017, 23:52. Показов 3001. Ответов 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
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
28.06.2017, 00:19
Цитата Сообщение от drelay Посмотреть сообщение
C++
1
2
3
4
5
    int n = 1;
    student *p = new student[n];
    student **q = new student*[n];
    for (int i = 0;i < n;i++)
    q[i] = &p[i];
Что здесь делается?

Добавлено через 11 минут
Вот это для чего?
Цитата Сообщение от drelay Посмотреть сообщение
C++
1
student **q = new student*[n];
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 00:33  [ТС]
C++
1
2
3
4
5
 int n = 1;
    student *p = new student[n];
    student **q = new student*[n];
    for (int i = 0;i < n;i++)
    q[i] = &p[i];
Конкретно в этом мне кажется и кроется проблема. В оперативную сохраняется корректно, он не на файл.
C++
1
student **q = new student*[n];
Указатель на каждый эллемент массива (потребуется для сортировки)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
28.06.2017, 00:36
Цитата Сообщение от drelay Посмотреть сообщение
Указатель на каждый эллемент массива (потребуется для сортировки)
Доступ к элементам массива осуществляется через индексы. Зачем здесь ещё какой то массив указателей? У тебя что, должно быть несколько баз студентов, или одна?
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 00:52  [ТС]
Как это можно реализовать сортировку тогда?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
28.06.2017, 00:54
Цитата Сообщение от drelay Посмотреть сообщение
Как это можно реализовать сортировку тогда?
Как обычно. Через индекс получаешь объект структуры, через объект структуры получаешь нужное поле, сравниваешь, сортируешь.
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 01:14  [ТС]
тогда завтра попробую, сил уже нет
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 09:23
Напишите формулировку задания целиком, пожалуйста. Я помогу тогда.
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 12:36  [ТС]
Создать базу данных студентов с сортировкой, редактированием, добавлением и удалением. Вот вся суть задачи. Писать только на С++
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 14:25
Когда я прошу формулировку ЦЕЛИКОМ, я же не просто так это делаю)
Считываться база разве не должна с файла? Только записываться в бинарный файл после создания в ходе исполнения программы?
Сортировка по фамилии?
Структура задана в условие задачи или ее можно дополнить?
Напишите, пожалуйста, нормально задание. Я не любитель по двадцать раз кодить)
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 15:17  [ТС]
Суть задания: создать программу для работы с базой данных с нуля. Файл для БД создается программой для последующего заполнения.
В базе данных должна записываться информация о каждом студенте:
Имя Фамилия Отчество Группа Возраст Пол.
Главные условия задания сделать функционал, (саму базу будет заполнять преподаватель через консоль).
Функции: Добавление записи о студенте, редактировании, удалении, просмотра всех записей, сортировки по заданным параметрам : по группе, по фамилии, и т.д.
Считываться база разве не должна с файла? Только записываться в бинарный файл после создания в ходе исполнения программы?
Считывание происходит после каждого заполнения через консоль. Не обязательно только в бинарный, можно и в текстовый.
Структура задана в условие задачи или ее можно дополнить?
Структуру в задании не было, уже сам составил.

P.S. Есть и рабочая способная записывать и читать с файла , резервная копия кода, но там даже не начаты попытки сделать сортировку
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 17:40
Вот черновичек. Под себя можно докрутить. Например вынести макрос VVOD куда-нибудь, и т.д. Но задачу она выполняет. Массив структур сохраняется по команде в бинарнике корректно (первые два байта - количество сохраненных структур в файле), его можно полистать в каком-нибудь hex-редакторе, увидеть обрывки сохраненных стринг. Ну и при желании, конечно, написать функцию и выдергивать сохраненные данные обратно в массив.

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;// сигнализирует о том, заполнена ли эта структура или, например, удалена
    string surname, name, patr, sex, clas;
    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 p1->surname.compare(0, p1->surname.length(), 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;
}
PS Ну и переписал я почти всё, потому что ты там вообще непонятно что нагородил с массивами указателей на указатели...Вычленять и править это долго, проще переписать.
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
28.06.2017, 18:50
Цитата Сообщение от YarRainbow Посмотреть сообщение
C++
1
2
3
4
5
6
7
struct student {
 
    bool status = false;// сигнализирует о том, заполнена ли эта структура или, например, удалена
    string surname, name, patr, sex, clas;
    int age;
 
};
YarRainbow, кто же такие структуры, без сериализации, бинарными методами записывает?
1
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 18:58  [ТС]
Ух, благодарю тебя выручил меня, закрою сессию теперь, вот только вопрос остался, макросы то я еще не прошел, что с ним делать?)
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 18:59
nd2, очевидно тот, кто совсем недавно изучает программирование)
Если я буду записывать каждый элемент структуры последовательно - это можно будет назвать сериализацией?)
PS Я как-то не подумал что не умею сохранять данные в структуры целиком, не обращаясь к ее элементам
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
28.06.2017, 19:01
Цитата Сообщение от YarRainbow Посмотреть сообщение
Если я буду записывать каждый элемент структуры последовательно - это можно будет назвать сериализацией?)
Бинарными методами? Проблема в std::string: если записываешь память под std::string, то что записываешь?
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 19:08
nd2, оу щет, я понял хD
попробую в свободное время написать сериализацию структур со строками (чисто для себя), в принципе не сложно вроде бы. Но здесь, конечно, уже накосячил )

Добавлено через 3 минуты
drelay, просто почитай про #define, чтобы самому понять и преподавателю показать что знаешь. Никто тебя ругать за это не будет. Как поймешь что это, можешь просто в код вынести.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
28.06.2017, 19:13
Цитата Сообщение от YarRainbow Посмотреть сообщение
Но здесь, конечно, уже накосячил
Я знаю три варианта:
1) заменить std::string на Си-строки и оставить бинарные методы;
2) оставить std::string, но записывать в текстовый файл, текстовыми методами (ТС, вроде бы, не настаивал на бинарности);
3)сделать сериализацию std::string;

Добавлено через 2 минуты
Пример:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    string str("Hello, world!");
    ofstream fout("string_bin", ios::binary);
    size_t n = str.size();
    fout.write((const char*)&n, sizeof(n)); // пишем в файл размер строки
    fout.write(str.c_str(), n); // пишем в файл строку
    fout.close();
    
    ifstream fin("string_bin", ios::binary);
    if (fin)
    {
        n = 0;
        string s;
        fin.read((char*)&n, sizeof(n)); // читаем из файла размер записанной строки
        s.resize(n); // выделяем память нужного размера
        fin.read(&s[0], n); // читаем строку из файла
        fin.close();
    }
    else
        cout << "Error opening file!" << endl;
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 19:16
Да я понял это, мне просто лень функцию сравнения переписывать, не помню я как с массивами char работать, чтобы сравнить их)
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
28.06.2017, 19:17  [ТС]
Тут проблемка с чтением, после перезапуска список не читается с файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.06.2017, 19:17
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru