|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
|
Большая задача на работу с классом и файлами09.04.2019, 21:37. Показов 4169. Ответов 88
Метки нет (Все метки)
По заданию нужно:
1)Занести из файлов индекс группы студента, его фамилию, четыре оценки за экзамены и участие (0/1). 2)Начислить студентам определённой группы стипендию: все "5" и участие +50% к стипендии, без участия +25%, с четвёрками обычная стипендия, с тройками её нет. 3)Предусмотреть возможность добавления информации, удаления отдельных записей, сортировки по заданному полю. Я и с классами, и с файлами работал очень мало, поэтому у меня возникли вопросы: как из одного файла, содержащего одновременно фамилию и, допустим, оценки, считать одно отдельно от другого? Что за возможность добавления/удаления информации, сортировка и как это сделать? Добавлено через 4 часа 41 минуту Пожалуйста, ответьте быстрее, мне нужно сделать эту и остальные работы как можно скорее.
0
|
|
| 09.04.2019, 21:37 | |
|
Ответы с готовыми решениями:
88
Задача на работу с файлами Задача на работу с файлами
|
|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
|
| 20.04.2019, 20:18 [ТС] | |
|
Я, видимо, не так понял. Я думал, что придётся отдельно прописывать сравнение каждой пары элементов. Я уже написал, что смогу накалякать код сравнения оценок, группы и активности, но как быть с фамилиями? Сравнивать код каждого символа? Это же очень долго.
0
|
|
|
|
||
| 20.04.2019, 20:33 | ||
|
если фамилии объявлены как std::string, то их тоже можно сравнивать.
0
|
||
|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
|
| 20.04.2019, 20:51 [ТС] | |
|
Понял. В случае чего просто сравню первые буквы фамилии, так, скорее всего, тоже пойдёт.
Ещё сегодня я заметил, что функция удаления не работает правильно. В случае, если указано две и более фамилий для удаления, удаляется только одна. Насколько я понял, это из-за того, что в массиве фамилий для удаления после каждого удаления происходит уменьшение массива на 1, и из-за этого удалиться может не та фамилия, данные студента с которой убрали. Если я переделаю код так, чтобы он сравнивал последний элемент этого массива со всеми элементами вектора, при совпадении удалял этот элемент массива и сравнивал вектор уже с предыдущим, идя до начала, то так программа будет работать правильно всегда?
0
|
|
|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
||||||
| 21.04.2019, 22:39 [ТС] | ||||||
0
|
||||||
|
|
|||||||||||
| 21.04.2019, 23:08 | |||||||||||
|
нет, перед тем как что-то копировать в вектор нужно убедиться, что он одинакового размера с твоим исходным.
простое обращение по индексу[i] не создаёт в векторе новых элементов, если их там не было до этого. Чтобы они там были есть два способа 1) растянуть изначально пустой вектор до нужного размера, тогда в нём появятся все i-е элементы, к которым можно будет обращаться в цикле
0
|
|||||||||||
|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
|
| 22.04.2019, 16:37 [ТС] | |
|
Первый способ сделал st1 полностью пустым, везде нули и пустые строки, у второго способа изменений не было, просто завершается программа.
0
|
|
|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
|||||||||||
| 25.04.2019, 15:17 [ТС] | |||||||||||
|
В общем, посмотрел предикаты сортировки, решил сделать. Вот предикат для сортировки участия:
0
|
|||||||||||
|
|
||
| 25.04.2019, 17:06 | ||
|
я на всякий случай напоминаю, что тип char хранит только одинарные символы, а не строки.
0
|
||
|
-3 / 0 / 1
Регистрация: 29.03.2018
Сообщений: 397
|
||||||
| 25.04.2019, 18:12 [ТС] | ||||||
|
Вот это да, конкретная лажа, для редактирования у меня тип string, а тут я, видимо, скопировал оттуда, где просто y/n. В общем, теперь сортировка по участию работает.
По остальным полям попробую сделать аналогично. Добавлено через 13 минут Это было странно, но я могу сравнить элементы типа string с помощью обычного > или <, и это будет работать. Сейчас переделаю цикл сравнения с удалением, и тогда, видимо, всё будет готово. Добавлено через 4 минуты Переделывать ничего и не пришлось, просто сделал так, чтобы не элементы вектора сравнивались с элементами массива фамилий для удаления, а наоборот. Теперь удаление работает как надо. Добавлено через 27 минут Для тех, кому понадобится решить подобную задачу, я оставлю тут полный код программы. Кликните здесь для просмотра всего текста
Спасибо всем, кто помогал мне с этой темой, за это время я, наверно, даже удвоил знания в C++.
0
|
||||||
| 25.04.2019, 18:12 | |
|
Переделать работу с текстовыми файлами под работу с двоичными файлами Написать программу, демонстрирующую работу с классом Задача на работу с файлами задача на работу с файлами! Сложная задача на работу с файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|