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

Большая задача на работу с классом и файлами

09.04.2019, 21:37. Показов 3670. Ответов 88
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По заданию нужно:
1)Занести из файлов индекс группы студента, его фамилию, четыре оценки за экзамены и участие (0/1).
2)Начислить студентам определённой группы стипендию: все "5" и участие +50% к стипендии, без участия +25%, с четвёрками обычная стипендия, с тройками её нет.
3)Предусмотреть возможность добавления информации, удаления отдельных записей, сортировки по заданному полю.


Я и с классами, и с файлами работал очень мало, поэтому у меня возникли вопросы: как из одного файла, содержащего одновременно фамилию и, допустим, оценки, считать одно отдельно от другого? Что за возможность добавления/удаления информации, сортировка и как это сделать?

Добавлено через 4 часа 41 минуту
Пожалуйста, ответьте быстрее, мне нужно сделать эту и остальные работы как можно скорее.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2019, 21:37
Ответы с готовыми решениями:

Задача на работу с файлами
Помогите решить проблему! ________________________________________ В файле находится текст программы на языке С. Создать выходной...

Задача на работу с файлами
Записать в С все положительные числа из А и В, указывая после каждого десятого элемента количество десятков. Последнее количество десятков...

Задача на работу с текстовыми файлами
В качестве входных данных поступает некоторое сообщение. Все сообщения имеют общее правило: Пользователь Команда Задача следующая. ...

88
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
10.04.2019, 08:04
Цитата Сообщение от ChioraYaz Посмотреть сообщение
как из одного файла, содержащего одновременно фамилию и, допустим, оценки, считать одно отдельно от другого?
Записывай отдельно, и читай отдельно. В первой строке фамилия, во второй четыре оценки и участие (через пробелы).
Цитата Сообщение от ChioraYaz Посмотреть сообщение
Что за возможность добавления/удаления информации, сортировка и как это сделать?
std::vector объектов класса студент, добавить в вектор объект, удалить из вектора объект, изменить в векторе данные какого-нибудь объекта, отсортировать std::vector по какому-либо полю класса студент.
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
10.04.2019, 16:49  [ТС]
А, то есть считывать с одной строки фамилию, со следующей оценки, потом активность, а дальше так чередовать? Если да, то я могу сделать. И можно про сортировку и вектор где-то подробно и понятно почитать?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
10.04.2019, 17:21
Цитата Сообщение от ChioraYaz Посмотреть сообщение
И можно про сортировку и вектор где-то подробно и понятно почитать?
http://www.cplusplus.com/reference/vector/vector/
https://ru.cppreference.com/w/cpp/container/vector
http://www.cplusplus.com/reference/algorithm/sort/
https://ru.cppreference.com/w/cpp/algorithm/sort
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
10.04.2019, 21:29  [ТС]
Если честно, понятней не стало, потому что половина сайтов с неработающими кодами, а ещё половина вообще на английском и даже без каких-либо примеров.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2019, 04:57
Цитата Сообщение от ChioraYaz Посмотреть сообщение
половина сайтов с неработающими кодами
Например?
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
11.04.2019, 14:24  [ТС]
https://ru.cppreference.com/w/cpp/container/vector
На этом сайте код примера не работает, как и кнопка его запуска.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2019, 14:28
Цитата Сообщение от ChioraYaz Посмотреть сообщение
На этом сайте код примера не работает,
Что значит: "не работает"? У тебя среда какая?
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
11.04.2019, 14:31  [ТС]
Мне нужно будет в векторе записать в каждый элемент и фамилию, и данные об экзаменах? Если да, то как их разделить? Я только с вектором типа int знаю, что делать.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.04.2019, 14:36
Цитата Сообщение от ChioraYaz Посмотреть сообщение
Мне нужно будет в векторе записать в каждый элемент и фамилию, и данные об экзаменах? Если да, то как их разделить? Я только с вектором типа int знаю, что делать.
...
Цитата Сообщение от nd2 Посмотреть сообщение
std::vector объектов класса студент
Добавлено через 1 минуту
Цитата Сообщение от ChioraYaz Посмотреть сообщение
Если честно, понятней не стало, потому что половина сайтов с неработающими кодами, а ещё половина вообще на английском и даже без каких-либо примеров
Тогда учебники почитай, там всё разжёвано.
1
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
11.04.2019, 17:42  [ТС]
Аааа, класс студентов, теперь понимаю.

Добавлено через 1 час 38 минут
В main вектора объявить можно, а в классе выдаёт ошибки:
C++
1
2
3
4
5
6
7
8
9
10
11
class student
{
    
    
public:
 
    std::vector<int> oc(10);
    std::vector<string> fam(10);
    std::vector<int> uch(10);
 
};
Пишу то же самое, но в классе так делать не даёт.
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
12.04.2019, 19:56  [ТС]
Так как его объявить? Я не нашёл.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.04.2019, 06:16
Цитата Сообщение от ChioraYaz Посмотреть сообщение
В main вектора объявить можно, а в классе выдаёт ошибки:
Зачем тебе в классе студент векторы?
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
class Student
{
    
public:
 
private:
    int ind;
    string fam;
    int oc[4];
    int uch;
 
};
 
class Group
{
    int ind;
    vector <Student> students;
    
    public:
 
}
class Department
{
    vector <Group> groups;
 
   public:
}
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
13.04.2019, 21:23  [ТС]
То есть в main я через какой-нибудь цикл строки из файла поочерёдно записываю в разные вектора, так?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.04.2019, 21:30
Цитата Сообщение от ChioraYaz Посмотреть сообщение
То есть в main я через какой-нибудь цикл строки из файла поочерёдно записываю в разные вектора, так?
Создаёшь в main() вектор студентов, в цикле, на каждой итерации, читаешь данные одного студента из файла в объект студент, после этого добавляешь этого студента в вектор.
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
13.04.2019, 21:43  [ТС]
Название: Безымянный.png
Просмотров: 70

Размер: 1.7 Кб
Я смогу записывать вот так в каждый объект по три строки, а потом брать следующий объект?
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
13.04.2019, 21:44  [ТС]
То есть фамилия, 4 оценки, участие.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.04.2019, 22:12
Цитата Сообщение от ChioraYaz Посмотреть сообщение
То есть фамилия, 4 оценки, участие.
А индекс группы где?
0
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 395
13.04.2019, 22:58  [ТС]
Чёрт, забыл

Добавлено через 14 минут
Мне обязательно записать всё содержимое файла в какой-нибудь массив типа char all, а потом с помощью all.size() найти его конец, чтобы использовать в цикле? Или можно как-то попроще?

Добавлено через 18 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    vector <Student> st[100];
 
    ifstream fi;
 
    fi.open("dannie.txt");
 
    for(i=0;i<a;i++)
    {
        if(v=4)
        {
            v=0;
 
        }
 
        if(v=0)
        {
            fi>>st[i].ind;
            v++;
        }
    }
По плану a - это конец всего файла, v считает кол-во строк, но я не знаю как записать это в вектор из файла.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
14.04.2019, 07:10
Читай учебники, или ищи готовый код. Здесь, на форуме, много примеров с классом студент (воспользуйся поиском по форуму).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2019, 07:10
Помогаю со студенческими работами здесь

Переделать работу с текстовыми файлами под работу с двоичными файлами
Здравствуйте. В этой программе идёт работа с текстовыми файлами, а нужно с двоичными. Можно ли как-то переделать? #include...

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

Задача на работу с файлами
Добрый день! Помогите, пожалуйста, решить следующую задачу: &quot;Дан текстовый файл со статистикой посещения сайта за неделю. Каждая строка...

задача на работу с файлами!
Если кому-то будет не сложно...я просто ничего в файлах практически не понимаю( известные данные: название предприятий, плановый объем...

Сложная задача на работу с файлами
Считать с клавиатуры строку, выделить слова в нее входящие. Построчно записать в файл уникальные буквы, частоту встречаемости данной буквы...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru