| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Добавление записи в текстовый файл |
| Автор: Bestseller01 23.12.2015, 15:08 | ||
| Помогите включить в этот список добавление новых студентов в уже существующий текстовый файл Оценок должно быть 5 сам текстовый файл выглядит так: Ф.И.О Алгебра Физика Химия Геометрия Русс. язык Иванов И. И 3 4 4 4 5 Карпов И. С. 5 5 5 5 3 Петров С. К. 3 3 4 4 3 Борзенков А. А. 4 4 4 4 4 Константинов П. П. 5 5 5 5 5
|
| Автор: rudolfninja 23.12.2015, 20:25 |
| Доброго времени суток. Во-первых, у вас язык c++. В нем принято использовать классы для объединения данных и методов обработки этих данных, а у вас используется структура. Во-вторых, хорошим тоном программирования считается разделять класс на интерфейс и реализацию методов этого интерфейса, причем желательно что бы это все было в разных файлах: .h и .cpp соответственно. Теперь по делу, если вам надо реализовать функцию, которая добавляет информацию о студентах в конец файла, то вам нужно выполнить следующие шаги: 1) Записать куда-нибудь информацию о студенте. Тут хорошо подойдет структура, в которой будет строковое поле и целочисленный массив из 5 элементов. Пользователь программы заполняет эту структуру и переходит к шагу №2. 2) Записать информацию, полученную на шаге 1 в файл. Для этого файл надо открыть для записи в конец. В случае с файловыми потоками, нужно добавить флаг std::ios::app при открытии файла. Дальше все просто, с помощью операторов вставки записываете в файл новую информацию. |
| Автор: rudolfninja 25.12.2015, 11:53 | ||||||||||||||||||||||
В общем, сначала объявляем структуру студент, в которое содержится имя студента и массив оценок:
Для более удобной (наглядной) индексации массива было создано перечисление, в котором названиям предметов соответствуют числовые константы:
Для вывода названия предмета на экран (понадобиться при выводе двоичников/троичников) был создан массив с названием предметов:
Ну а дальше начинаем создавать функции, которые нужны для работы программы по заданию: Функция, которая определяет, все ли оценки студента - 5. В случае если студент отличник - функция возвращает true, иначе - false. В функцию передается объект структуры student:
Функция, которая выводит студентов с заданной оценкой и пишет по какому предмету студент имеет заданную оценку. Функция возвращает false если студентов с заданной оценкой нет в списке, иначе - true и выводит на экран фамилии студентов и предмет, по которому заданная оценка. В функцию передается список студентов (по сути, обычный массив) и искомая оценка:
Функция, которая выводит список студентов на экран. Функция принимает на вход список студентов (массив из элементов структуры student):
Функция, которая добавляет список студентов в конец текстового файла. Функция возвращает значение типа bool, в случае если такого файла не существует - возвращаемое значение будет false и список студентов никуда не будет записан. Если файл существует, то список студентов будет добавлен в конец файла. Поэтому важно убедиться, что требуемый файл существует (его следует создать вручную перед использованием программы):
Функция, которая добавляет студента в список. В функцию надо передать ссылку на список, в который будет добавлен студент. Сначала будет предложено заполнить данные о студенте и потом он будет добавлен в список:
Функция вывода меню на экран. Возвращаемое значение - выбор пользователя:
Ну и функция main, в которой собрано все то, что описано выше, в требуемой последовательности:
Вам осталось только создать проект и вставить туда весь этот код. Не забудьте подключить нужные заголовочные файлы:
На всякий случай прикрепил к сообщению .cpp файл программы, в котором содержится полный исходный код рабочего приложения. |