3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
1

Создать базу данных автобусного парка

03.01.2013, 03:22. Показов 2571. Ответов 10
Метки нет (Все метки)

Доброго времени суток. Задание таково:

Создать базу данных автобусного парка. Структура информации:
номер автобуса, фамилия водителя, номер маршрута, количество автобусов на маршруте.

В программу необходимо включить меню работы с программой, которое должно содержать
следующие пункты:
а) создание файла исходных данных;
б) просмотр содержимого файла;
в) поиск заданной информации в файле;
г) корректировка информации в файле (дозапись информации в файл, удаление информации из
файла, изменение значения компонент файла);
д) выход из программы;
Собственно сам код полностью не требую, но есть несколько вопросов:

1) Возможна ли реализация через fstream? Если да, то:
а) Как через данную библиотеку реализовать удаление компоненты из файла?
б) Т.к. записываться будут структуры данных, то требуется ввод структуры как единого целого. Как это будет выглядеть?

2) Если ответ на первый вопрос отрицательный, то:
а) Как реализовать ввод структуры, как единого целого через библиотеку stdio.h?
б) Компилятор Visual Studio постоянно требует использование защищенного ввода (print_s и scan_s, к примеру). Почему он требует такой ввод и есть ли какое-либо решение этой проблемы? (Я пользовался процедурой fflush(stdin) (очистка буфера, если не ошибаюсь), чтобы избежать ошибок в scan_s).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2013, 03:22
Ответы с готовыми решениями:

создать бд маршрута автобусного парка
Создать базу данных:маршруты автобусного парка.Разработать структуру базы данных, каждая запись...

Сформировать и распечатать список маршрутов автобусного парка
1. Сформировать и распечатать список маршрутов автобусного парка – массив записей не менее 10: ...

1) Создать Базу данных (Имя , Фамилия, Отчество) 2) Создать таблицу в Базе данных (состоящия из 3 столбцов(а,б,с) и 3 строк int) 3)Создать пользовате
Задача помогите незнаю ваще как даже сделать. Заранее спасибо большое: 1) Создать Базу данных (Имя...

Создать простую базу данных в MS Sql Server, как создать? Я ничего не понял
Входная информация Подсистема «Фонотека»: - Диск (наименование, дата выпуска, категория,...

10
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,515
Записей в блоге: 1
03.01.2013, 03:35 2
1) Конечно возможна. Иначе зачем он нужен то тогда?
a) Считываете как всегда всё, удаляете что нужно и записываете всё заново.
б) Как и в других случаях - поэлементный ввод. Можно перегрузить оператор >>.
2) Можно и на stdio.h, но это уже Си'шные функции, оно Вам надо?
a) Так же как и через потоки - поэлементно!
б) Он это не требует, а рекомендует. Это мелсофтовские функции. Не используйте их, если у Вас студенческий проект. Можете вначале дописать
C++
1
#pragma warning (disable:4996)
это отключит данное предупреждение. Не знаю, работает ли fflush под линуксом.
1
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
03.01.2013, 03:41  [ТС] 3
Ну насчет _s как раз таки требует, ибо отчаянно брыкается уже на стадии дебага.

Про удаление можно чуточку подробнее? =) Именно алгоритм, я никак не могу додуматься до такой элементарщины попроще...

Реализовывал ранее так: создавал массив с типом записи как буфер, считывал все данные, кроме удаляемых, туда и перезаписывал файл.
0
1386 / 1016 / 323
Регистрация: 28.07.2012
Сообщений: 2,804
03.01.2013, 03:42 4
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Возможна ли реализация через fstream?
Да, создаешь поток для чтения и работатешь с ним, как с обычным cin. Удаление - загружаешь все содержимое файла, удаляешь требуемое, записываешь в файл обратно. Вообще это наверно не требуется. При запуске программы - загружаешь базу, при выходе выгружаешь.
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
требуется ввод структуры как единого целого.
Когда с клавы вводишь - все просто. По отдельности вводишь каждое поле. когда работаешь с файлом - открываешь его в бинарном виде. Есть вроде метод write - он записывает байты. Записываешь таким образом свою базу в файл по байтам. А когда считываешь - есть похожая функция для считывания байт.(Придется вспомнить преобразование типов).
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Компилятор Visual Studio постоянно требует использование защищенного ввода
Он требует, потому что на это есть причины. Например функция gets - вводит строку и пихает ее в массив. Предположим у тебя массив и 10 символов, а ввел 20. Оставшмеся 10 запишутся мимо массива - это серьезная проблема. Поэтому есть безопасный вариант gets_s, где передается еще и кол-во элементов в массиве - что безопаснее. Вообще советую использовать безопасные варианты, кроме тех случаев, когда код должен быть кроссплатформенный.
Советую в начале файла с кодом приписать #pragma warning(disable:4355 4996) Оно должно вырубить это предупреждение и еще какое-то - не помню уже...
1
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,515
Записей в блоге: 1
03.01.2013, 03:42 5
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Ну насчет _s как раз таки требует, ибо отчаянно брыкается уже на стадии дебага.
Может у Вас что еще не так? Потому что это должен быть варнинг и использование этих функций - Ваше личное дело.
0
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
03.01.2013, 03:47  [ТС] 6
Так, ну про бинарное считывание я в принципе предполагал правильно, просто хотел убедиться...

Ну напоследок, самый такой банальный и возможно, холиварный, вопрос: чем практичнее пользоваться то? =) Потоками или стандартным вводом/выводом?
0
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,515
Записей в блоге: 1
03.01.2013, 03:50 7
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Потоками или стандартным вводом/выводом?
Потоки работают медленнее, но, имхо, они удобнее и приятнее для восприятия. Так же есть возможность работать с STL.
Да и раз пишите на C++, то и ввод/вывод желательно делать на C++
0
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
03.01.2013, 03:53  [ТС] 8
Большое спасибо, дальше мозговать буду сам =)
0
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,515
Записей в блоге: 1
03.01.2013, 03:54 9
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Большое спасибо, дальше мозговать буду сам =)
Можете использовать STL - это ускорит разработку(если, конечно разрешено пользоваться сие библиотекой и достаточно знаний)
0
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
03.01.2013, 04:00  [ТС] 10
На использование ресурсов ограничений нет, но знаний мало. За тем исключением, что использую vector и string.
0
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,515
Записей в блоге: 1
03.01.2013, 04:02 11
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
За тем исключением, что использую vector и string.
они Вам пригодятся, чтобы не изобретать велосипед
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2013, 04:02
Помогаю со студенческими работами здесь

Создать базу данных с таблицами «Врачи» и «Пациенты» Создать межтабличную связь типа «один-ко-многим»
Ребят выручайте я в таких делах не шарю в универе задали: 1.Создать базу данных с таблицами...

Создать базу данных с таблицами «Врачи» и «Пациенты» Создать межтабличную связь типа «один-ко-многим»
Ребята запутался в задании, помогите разобраться. Задание Создать базу данных с таблицами «Врачи»...

Создать базу данных с возможностью представления расчетных данных на определенную дату
Добрый день! Требуется создать базу данных с возможностью представления расчетных данных на...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru