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
|
|
03.01.2013, 03:22 | |
Ответы с готовыми решениями:
10
создать бд маршрута автобусного парка
1) Создать Базу данных (Имя , Фамилия, Отчество) 2) Создать таблицу в Базе данных (состоящия из 3 столбцов(а,б,с) и 3 строк int) 3)Создать пользовате Создать простую базу данных в MS Sql Server, как создать? Я ничего не понял |
Don't worry, be happy
|
||||||
03.01.2013, 03:35 | 2 | |||||
1) Конечно возможна. Иначе зачем он нужен то тогда?
a) Считываете как всегда всё, удаляете что нужно и записываете всё заново. б) Как и в других случаях - поэлементный ввод. Можно перегрузить оператор >>. 2) Можно и на stdio.h, но это уже Си'шные функции, оно Вам надо? a) Так же как и через потоки - поэлементно! б) Он это не требует, а рекомендует. Это мелсофтовские функции. Не используйте их, если у Вас студенческий проект. Можете вначале дописать
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 |
Да, создаешь поток для чтения и работатешь с ним, как с обычным cin. Удаление - загружаешь все содержимое файла, удаляешь требуемое, записываешь в файл обратно. Вообще это наверно не требуется. При запуске программы - загружаешь базу, при выходе выгружаешь.
Когда с клавы вводишь - все просто. По отдельности вводишь каждое поле. когда работаешь с файлом - открываешь его в бинарном виде. Есть вроде метод write - он записывает байты. Записываешь таким образом свою базу в файл по байтам. А когда считываешь - есть похожая функция для считывания байт.(Придется вспомнить преобразование типов). Он требует, потому что на это есть причины. Например функция gets - вводит строку и пихает ее в массив. Предположим у тебя массив и 10 символов, а ввел 20. Оставшмеся 10 запишутся мимо массива - это серьезная проблема. Поэтому есть безопасный вариант gets_s, где передается еще и кол-во элементов в массиве - что безопаснее. Вообще советую использовать безопасные варианты, кроме тех случаев, когда код должен быть кроссплатформенный. Советую в начале файла с кодом приписать #pragma warning(disable:4355 4996) Оно должно вырубить это предупреждение и еще какое-то - не помню уже...
1
|
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
|
|
03.01.2013, 03:47 [ТС] | 6 |
Так, ну про бинарное считывание я в принципе предполагал правильно, просто хотел убедиться...
Ну напоследок, самый такой банальный и возможно, холиварный, вопрос: чем практичнее пользоваться то? =) Потоками или стандартным вводом/выводом?
0
|
Don't worry, be happy
|
|
03.01.2013, 03:50 | 7 |
Потоки работают медленнее, но, имхо, они удобнее и приятнее для восприятия. Так же есть возможность работать с STL.
Да и раз пишите на C++, то и ввод/вывод желательно делать на C++
0
|
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
|
|
03.01.2013, 03:53 [ТС] | 8 |
Большое спасибо, дальше мозговать буду сам =)
0
|
3 / 3 / 1
Регистрация: 17.11.2012
Сообщений: 39
|
|
03.01.2013, 04:00 [ТС] | 10 |
На использование ресурсов ограничений нет, но знаний мало. За тем исключением, что использую vector и string.
0
|
Don't worry, be happy
|
|
03.01.2013, 04:02 | 11 |
0
|
03.01.2013, 04:02 | |
Помогаю со студенческими работами здесь
11
Создать базу данных с таблицами «Врачи» и «Пациенты» Создать межтабличную связь типа «один-ко-многим» Создать базу данных с таблицами «Врачи» и «Пациенты» Создать межтабличную связь типа «один-ко-многим»
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |