Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99

Разработать программу управление двоичными файлами с записями фиксированной длины(структура и работа с ней)

10.11.2022, 03:17. Показов 4444. Ответов 62

Студворк — интернет-сервис помощи студентам
Приветствую всех. Очередное задание, над которым я буду биться не покладая рук несколько дней.
Как обычно от всех читающих рад буду получить любое пояснение / видение / список литературы и полезные ссылки / код / алгоритм к моему заданию, а так же пожелания удачи и терпения

Для начала прикладываю требования из методички, которым постараюсь следовать.

Общие требования:
файл состоит из записей определенной структуры, согласно варианту. Записи имеют ключ, уникальный в пределах файла.
Требования к подготовке и выполнению задания
1. Разработать структуру записи двоичного файла согласно варианту задания.
2. Подготовить тестовые данные в текстовом файле с кодировкой ASCII, в соответствии со структурой записи варианта. При открытии файла выполнить контроль его существования и открытия.
Примечание. Реализация операций по чтению данных из файла будет проще, если значение для каждого поля записи размещать на отдельной строке текстового редактора.
3. Имя файла вводит пользователь.
4. При открытии файла обеспечить контроль существования и открытия файла.
5. При применении механизма прямого доступа к записи файла выполнить контроль присутствия записи с заданным номером в файле.
6. Разработать функции для выполнения операций:
  • преобразование тестовых данных из текстового файла в двоичный файл;
  • сохранение данных двоичного файла в текстовом, так, чтобы используя их можно было восстановить двоичный файл;
  • вывод всех записей двоичного файла;
  • доступ к записи по ее порядковому номеру в файле, используя механизм прямого доступа к записи в двоичном файле;
  • удаление записи с заданным значением ключа, выполнить путем замены на последнюю запись.
  • Манипулирование записями в двоичном файле согласно дополнительным операциям, определенным в варианте;
7. Сохраните функции в новом модуле.
8. Разработать приложение, демонстрирующее выполнение всех операций, подключив к нему модуль с функциями.
9. Выполнить тестирование приложения, продемонстрировав выполнение всех операций.

То, что указано в задании 6 важно. Я обязательно напишу каждую функцию, но пока постараюсь сосредоточиться на основном задании и начну с него.
Дабы не усложнять жизнь и кидать сюда код, я всё буду делать в одном файле, потом разнесу и через switch case сделаю минюшку, чтобы удобно всё это тестить.


Само же задание(основная функция) звучит так:


Структура записи:
Учет техосмотра автомобилей.
Структура записи об автомобиле:
Номер (код региона, цифровой код, буквенный код), Модель, Цвет, Сведения о владельце (Фамилия, Имя, Адрес), дата последнего техосмотра.

Доп. Операция:
1. Заменить дату техосмотра у автомобиля с заданным номером на новую дату.
2. Сформировать список авто одной модели, прошедших техосмотр в заданную дату.



P.S Пока не могу задать какого-то конкретного вопроса, а просить чтобы растолковали что там вообще в условии написано как-то неловко (хотя я был бы рад). В общем буду писать конкретные вопросы как только смогу их составить. Пока же рад любой информации по теме. Главное — не сдать, а разобраться. Сейчас же постараюсь дойти хотя бы до какой-то части этого процесса. Начну, видимо со структуры и работы с ней. Надеюсь на твоё понимание, дорогой читатель)))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2022, 03:17
Ответы с готовыми решениями:

Управление двоичными файлами с записями фиксированной длины.Разбиаение записи на команды
Имеется задача. Честно говоря, не знаю как подступиться ни с точки зрения кода ни алгоритмически. Очень плохо даётся всё связанное с...

Работа с двоичными файлами: слова заданной длины
Работа с двоичными файлами: Создать файл, состоящий из слов. Вывести на экран все слова, длина которых равна заданному числу.

Создать текстовый файл с записями фиксированной длины.
Создать текстовый файл с записями фиксированной длины. Файл содержит информацию о стоимости 10 наименований товаров в различных...

62
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.11.2022, 04:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от daniil_novel Посмотреть сообщение
сказали что делали через дата файлы
Не знаю таких.

Цитата Сообщение от daniil_novel Посмотреть сообщение
В задании написано " сохранение данных двоичного файла в текстовом, так, чтобы используя их можно было восстановить двоичный файл"
Что именно мешает ?
Считать данные из бинарного файла в структуру, записать ее в текстовый (по заранее заданному формату)
каждое поле отдельно.
Формат этого текстового файла, всегда зависит от данных которые лежат в структуре (и еще от выбранных инструментов).
Текстовые файлы не обязательно должны содержать голые данные. (json, xml ... )

Я просто не понимаю, что конкретно мешает записать данные в текстовый файл, и потом их оттуда прочитать ?

На примере вашей структуры Car? Так там одни строки. Пишите каждое поле структуры в отдельную строку.
Все, файл готов.
Обратно так же. Считываем N в одну структуру, еще N в следующую.
Кто нарушил текстовый файл (добавил/удалил строку), сам виноват.
0
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
28.11.2022, 04:34  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
структуру
А зачем нам считывать их в структуру? Мы же абстрагируемся от задания с машинками. Здесь требуется просто написать эту функцию, которая выполняет такие-то действия на примере каких-то мной же придуманных данных. Вот я и не понимаю. В чем прикол, если я заполню текстовый файл цифрами от 1 до 9, а потом переведу его в бинарный. Он же будет такой же. Можно будет точно таким же способом считать бинарник напрямую в текстовый

Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
На примере вашей структуры Car? Так там одни строки. Пишите каждое поле структуры в отдельную строку.
Все, файл готов.
Обратно так же. Считываем N в одну структуру, еще N в следующую.
Кто нарушил текстовый файл (добавил/удалил строку), сам виноват.
Ну, кстати, со структурой даже интереснее. Попробую реализовать для тренировки)
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.11.2022, 05:19
Цитата Сообщение от daniil_novel Посмотреть сообщение
если я заполню текстовый файл цифрами от 1 до 9
Но у нас файл не заполнен циферками (или другим произвольным текстом).
Он заполнен данными о автомобилях.
И вот его нужно перевести в другой формат, бинарный, что бы наша программа, могла его читать/писать блоками.
И обратно.

Не по теме:

Закончен бал, погасли свечи.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2022, 05:19

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

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

Работа с двоичными файлами
Дан файл координат вершин ломаной линии на плоскости. Определить, имеет ли ломаная линия самопересечения, если да, то записать в файл G...

Работа с двоичными файлами
Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все положительные компоненты файла.

Работа с двоичными файлами
Задачи на использование двоичных и текстовых файлов . Условие вида "дан файл" означает, что пользователем вводится количество элементов и...


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

Или воспользуйтесь поиском по форуму:
63
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru