Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Viktor St.
3 / 3 / 1
Регистрация: 05.12.2009
Сообщений: 16
#1

Динамическая структура. Кто бы решил?( на C) - C++

05.12.2009, 15:55. Просмотров 1026. Ответов 1
Метки нет (Все метки)

Дан бинарный файл, содержащий записи.
Необходимо реализовать программу, которая бы загружала
данный бинарный файл в динамическую структуру: двунаправленный список
связанного хранения. После загрузки данных производится сортировка списка,
выбор поля и направления сортировки осуществляется пользователем. По
окончании сортировки упорядоченный список должен быть выведен на экран.
Далее пользователь может добавить в список произвольное количество записей,
введя их с клавиатуры. Добавление
записей в список осуществляется без нарушения правил упорядочивания записей
(использовать функцию сортировки при вводе записей нельзя, запись должна
добавляться в список в нужную позицию). После завершения ввода необходимо
удалить из списка часть записей. При этом все
удаляемые записи должны быть записаны в выходной текстовый файл, если он
был указан пользователем. Все оставшиеся в списке записи сохраняются в
исходный бинарный файл, перезаписывая его.
Информация, необходимая для работы программы, передается в параметрах
командной строки. Необходимо реализовать обработку следующих параметров:
Имя исходного бинарного файла (указывается в формате file:<имя файла>),
если имя не указано, то его ввод запрашивается у пользователя. Если файл с
указанным именем открыть не удалось, то выводится соответствующее
сообщение, выполнение программы продолжается с ввода новых записей, а
результирующий список записывается в файл result.bin.
Поле сортировки (указывается в формате field:N, где N – номер поля равное
1,2,3 и т.д.). Если этот параметр не указан, то он принимается равным 1.
Направление сортировки (указывается в формате dir:inc – сортировка по
возрастанию, dir:dec – сортировка по убыванию). Если этот параметр не
указан, то он принимается равным inc.
Выходной текстовый файл (указывается в формате out:<имя файла>).
При реализации программы учитывать, что параметры командной строки
могут быть переданы в произвольном порядке. Например, программа может быть
запущена одним из следующих способов:
proga.exe file:data.bin field:2 dir:dec out:log.txt
proga.exe field:2 dir:dec file:data.bin
proga.exe file:data.bin out:log.txt
proga.exe out:log.txt field:2 dir:dec file:data.bin
Программа должна быть реализована с использованием функционального и
модульного подходов. Рекомендуется, чтобы в программе были реализованы
следующие модули:

главный модуль (MAIN), содержащий функцию main;
модуль (DATA), содержащий описание структуры данных;
модуль (LIST), содержащий функции для работы с динамическим списком;
модуль (FUNC), содержащий вспомогательные функции.
Для работы со списком необходимо реализовать как минимум следующие
функции:
добавление записи в конец списка,
вставка записи в середину списка,
удаление записи из списка,
перемещение по списку,
сортировка списка,
сохранение списка в файл,
загрузка списка из файла,
удаление всего списка.
В качестве дополнительных функций можно привести следующие функции:
проверка корректности ввода значений с клавиатуры;
сравнение двух записей (для сортировки).
Необходимо учитывать, что значение полей, которые заключены в кавычки в
формате ввода/вывода, могут состоять из нескольких слов. При вводе все
значения должны проходить проверку на корректность. Значения полей,
представляющих собой перечисления нескольких значений
должны вводиться с помощью специальными
обозначений. Например: тип носителя – CD, DVD и ни как иначе.
Алгоритм сортировки динамического списка:
алгоритм сортировки «вставками».
Дополнительно необходимо реализовать программы для создания исходного
файла и его просмотра. Программа создания исходного файла должна
запрашивать у пользователя имя файла, а затем осуществлять ввод данных и
запись их файл. Ввод данных завершается по требованию пользователя. Ввод
значений полей одной записи осуществляется u1088 раздельно, а не согласно формату
строки ввода. Программа просмотра файла в качестве параметров командной
строки получает имя файла и выводит значения, содержащиеся в нем, согласно
формату вывода. Вывод осуществляется по 20 записей или до конца файла, если
записей в нем осталось меньше 20. Продолжение вывода осуществляется после
нажатия пользователем любой клавиши.

Описание структуры: содержит информацию о людях: ФИО (строки по 15 символов),
пол, дата рождения (в формате дд.мм.гггг), серия (два символа) и номер (целое
семизначное число) паспорта.
Формат ввода/вывода: ФИО (ПОЛ) ДД.ММ.ГГГГ СЕРИЯ:НОМЕР
Дополнительная обработка: Удалить из списка последние N записей, с определенным
именем человека.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2009, 15:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамическая структура. Кто бы решил?( на C) (C++):

Динамическая структура - C++
Добрый день. Хочу создать примерно такую структуру: struct person { char name, char delimeter, char age, char delimeter, ... ...

Динамическая структура - C++
Помогите пожалуйста с заданием. Дано задание: На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и...

Динамическая структура - C++
Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке. Сведения о каждом автобусе...

Динамическая структура.С. Срочно!! - C++
Добрый день. Нужно строчно написать программку в С, используя динамическую структуру. Заранее благодарю. Задание такое: В текстовом...

Динамическая структура данных - C++
Нужна помощь с динамическими структурами данных: Написать программу, которая сохраняет элементы с помощью динамической структуры...

Динамическая структура данных - C++
Есть динамическая структура struct comp { char num; comp* next; //Ссылка на следущий элемент списка }; struct dyn_list {...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
06.12.2009, 11:07 #2
Это больше похоже на ТЗ
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2009, 11:07
Привет! Вот еще темы с ответами:

Динамическая структура данных - C++
Дано type строка=array of char; дата=record число:1..31; месяц:1..12; год:1900..1979 end;анкета=record фамилия:строка;пол:(муж,...

Динамическая структура данных С++ - C++
Всем огромный привет! :) Начали учить эту тему, ещё до конца не разобрался, а уже прогу делать надо. Вот задание: Дана очередь на основе...

Динамическая структура очередь - C++
Ребят,можете помочь. Создать очередь на базе связного списка. Написать функцию, выводящую на экран n (вводится с клавиатуры) элементов с...

Динамическая структура данных в С++ - C++
Определить функции вставки нового звена в односвязный линейный список, удаления звена из списка, просмотра содержимого списка. как вот...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru