Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

Помогите первокурснику   Найти похожие ветки 

 
Ник11111111   (2005-12-19 18:39) [0]

Привет всем! У меня такая проблема, осталась одна лабораторная по Pascal:
Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат:
номер УДК;
фамилию и инициалы автора;
название;
год издания;
количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать следующие функциональные возможности:
-начальное формирование данных обо всех книгах в библиотеке в виде списка;
-при взятии каждой книги вводится номер УДК, и программа уменьшает значение количества книг на единицу
или выдает сообщение о том, что требуемой книги в библиотеке нет или она находится на руках;
-при возвращении каждой книги вводится номер УДК, и программа увеличивает значение количества книг на единицу;
по запросу выдаются сведения о наличии книг в библиотеке.

Помогите пожалуйста


 
Tonich ©   (2005-12-19 18:56) [1]

где должны храниться эти данные в базе данных, или просто в созданных тобою файлах


 
Ник1111111111   (2005-12-19 19:13) [2]

Как проще, помоги пожалуйста, это в принципе не важно


 
Eraser ©   (2005-12-19 19:18) [3]


> Ник11111111   (19.12.05 18:39)

А что конкретно не понятно?


 
Ник1111111111   (2005-12-19 19:22) [4]

программа вся=(


 
Tonich ©   (2005-12-19 19:59) [5]

ну в твоем случаи проще конечно в файлах, но это так коряво буит


 
antonn_   (2005-12-19 20:29) [6]

точно в файлах будет проще, Ник1111111111  так и делай.
:)


 
Eraser ©   (2005-12-19 20:42) [7]


> Ник11111111   (19.12.05 18:39)

вероятность того, что тебе тут дадут готовый код резко стремится к 0.
По сабжу, советую использовать объектно-ориентированный подход, а данные сохранять в файлах... где же ещё!


 
Tonich ©   (2005-12-19 21:38) [8]

да тут как говорит один товарисч "вопрос оплаты не раскрыт"  так кажется )))

а если и не так, то смысл тот... )))


 
Санёк   (2005-12-19 21:42) [9]

хех....
это не лаба, это курсач!

код готовый никто за так давать не будет.
тут либо утром деньги, днем стулья, днем деньги вечером стулья, либо вопросы по делу - как реализовать ту или иную фичу.

если приложение не консольное - используй ini файлы - очень удобно.
иначе - работа с файлами.


 
Eraser ©   (2005-12-19 21:47) [10]


> Санёк   (19.12.05 21:42) [9]


> если приложение не консольное - используй ini файлы - очень
> удобно.

А, если не секрет, почему в консольном приложении нельзя использовать ini файлы?

> Ник11111111

у ini файлов есть некоторые ограничения. Советую записывать информацию в файл в виде структур.


 
Sergey Masloff   (2005-12-19 21:48) [11]

Классная задача. Для 1 курса я бы не использовал никакого объектного подхода (или как второй вариант к функциональному варианту). А так можно развернуться в рамках чисто функционального подхода.
 Кстати с учебной точки зрения очень неплохо решить задачу сначала в рамках функционального подхода а потом в рамках объектного. Очень хорошо мозги проясняет и потом при случае обсудить оба подхода не придется мычать и вспоминать к месту и не к месту цитаты из учебников.
 Для простоты можно начать с файла записей и оболочки для работы с ним - вставка извлечение и так далее. Если сделать к нему индексацию для ускорения поиска это уже и на курсовой может потянуть и вообще очень интересную работу сделать.


 
Санёк   (2005-12-19 21:49) [12]


> Eraser ©   (19.12.05 21:47) [10]

по опыту общения с преподами - если даже интерфейс нормальный сделать нельзя, то и всякими сторонними разработками тоже нельзя пользоваться - только стандартный синтаксис языка плюс полностью свой код.


> у ini файлов есть некоторые ограничения.

например?
что в ини файлах не позволит реализовать задачу?


 
Юрий ©   (2005-12-19 21:49) [13]

Пример здесь:

http://webfile.ru/701264

PS. Работа через файлы.


 
Юрий ©   (2005-12-19 21:51) [14]


> Если сделать к нему индексацию


Конечно без "фич".


 
Eraser ©   (2005-12-19 21:53) [15]


> Санёк   (19.12.05 21:49) [12]


> например?
> что в ини файлах не позволит реализовать задачу?

Главное ограничение - максимальный размер 64 Кб, согласись для БД, хоть и учебной, это мало.

А использовать в любом случае прийдётся структуры, т.к. У меня такая проблема, осталась одна лабораторная по Pascal, т.е. скорее всего имеется ввиду TP или BP, не уверен, что там есть TIniFile.


 
Санёк   (2005-12-19 21:56) [16]


> Eraser ©   (19.12.05 21:53) [15]

да, да, вы правы :)


 
Profi ©   (2005-12-19 21:59) [17]

Блин, у нас была задача:
На складе есть детали и инструменты. В этих двух группах может быть много подгрупп. Надо сохранить все в файл записи. Возможность удалять, сортировать, добавлять. И строить диаграму для каждой главной группы и всего склада сразу.

To Ник11111111.

Задача решается за два часа на Pascal"е. По номеру ищешь в файле запись, смотришь остаток и либо уменьшаешь его и обратно в файл, либо увеличиваешь.
В общем алгаритм простой. Плус две проверки: на отсутствие книги вообще и на остаток равный 0.


 
LordOfRock ©   (2005-12-19 23:23) [18]

Очень простое решение:

Если это действительно лаба, то кто-нить из группы уже точно сдал её. Просто подходишь к нему, и за бабосы предлагаешь ему, чтобы он сделал за тебя эту лабу. И всё прокомментировал, чтобы тебе преподу легче объяснить было.

Если это курсач, то количество бабосов увеличивается  ессно.


 
paul_k ©   (2005-12-20 09:10) [19]

Ник11111111   (19.12.05 18:39)
Читать методичку до апросветления . Там все описано. методичку можешь искать на сайте МИИТа. авторство Шейкина Г.А.

Tonich ©   (19.12.05 18:56) [1]
В файлах. и загружатся в динамические списки в памятть. и дальше работа со списками. Формирование индексов. и так далее.

Санёк   (19.12.05 21:42) [9]
Это лаба... даже у вечерников

Юрий ©   (19.12.05 21:51) [14]
Конечно без "фич".

насколько я помню свои лабы по теме - индексация обяязательное условие


 
Sandman29 ©   (2005-12-20 09:12) [20]

Sergey Masloff   (19.12.05 21:48) [11]

Мне дали такую курсовую работу на первом курсе. Причем, когда я спросил, можно ли использовать объекты, получил жесткое нет, разрешены только записи. Видимо, так и задумывалось, чтобы студенты сначала освоили процедурное (плоское) программирование, а потом уже в дебри объектов лезли.


 
Юрий ©   (2005-12-20 14:15) [21]


> насколько я помню свои лабы по теме - индексация обяязательное
> условие


Разница в образовании? Институт моего брата, чей код и был выложен здесь, не является профильным, и занимается в основном текстилём ;). А если человек захочет разобраться, то разберётся. Тем более по условию задачи тут не надо городить огород.


 
stone ©   (2005-12-20 14:20) [22]


> Eraser ©   (19.12.05 21:53) [15]
> > что в ини файлах не позволит реализовать задачу?
>
> Главное ограничение - максимальный размер 64 Кб, согласись
> для БД, хоть и учебной, это мало.

Максимальный размер чего?


 
Megabyte ©   (2005-12-20 14:25) [23]

А можно как-нить, сделать, чтобы при входе на форум гостей сразу баннер с примерными расценками на лабы и курсачи с готовым кодом появлялся? А то уже надоело подобные темы читать. :{


 
Skyle ©   (2005-12-20 14:26) [24]


> [22] stone ©   (20.12.05 14:20)
>
> > Eraser ©   (19.12.05 21:53) [15]
> > > что в ини файлах не позволит реализовать задачу?
> >
> > Главное ограничение - максимальный размер 64 Кб, согласись
>
> > для БД, хоть и учебной, это мало.
>
> Максимальный размер чего?


ini-файла. Насколько я знаю, начиная с w2k уже неактуально.


 
stone ©   (2005-12-20 14:31) [25]


> Skyle ©   (20.12.05 14:26) [24]
> Насколько я знаю, начиная с w2k уже неактуально.

О том и речь. Сейчас год и операционка далеко уже за 2k. Хотя, наверное, еще можно встретить раритеты. :)


 
syte_ser78 ©   (2005-12-20 14:31) [26]

Проще всего сделать следующим образом.
Каждому УДК (че эт такое кстат?) создаеш свой файл.
В него пишешь в определнной последовательности данные о книге. Каждая запись - одна строка.

Все никаких проблем.
Findfirst
Writeln
ReadLn
Милое дело.
Пишется неспеша за пару часов.


 
Skyle ©   (2005-12-20 14:39) [27]


>
> [26] syte_ser78 ©   (20.12.05 14:31)
> Проще всего сделать следующим образом.
> Каждому УДК (че эт такое кстат?) создаеш свой файл.

По файлу на книгу... Круто.


 
syte_ser78 ©   (2005-12-20 14:40) [28]

Так же круто как и хранить подобное просто в файле или ини файле.


 
Skyle ©   (2005-12-20 14:43) [29]


>  [28] syte_ser78 ©   (20.12.05 14:40)
> Так же круто как и хранить подобное просто в файле или ини
> файле.


Не... не также...
Один файл с данными размером 10 Гб я себе представить могу. А вот 10 000 000 000 файлов размером 50 байт - тоже могу, но с недоумением.


 
syte_ser78 ©   (2005-12-20 14:45) [30]

Skyle ©   (20.12.05 14:43) [29]
Представляю себе время выборки нужной записи из 10Гб текстового файла.


 
syte_ser78 ©   (2005-12-20 14:46) [31]

Да и вообще я писал не как лучше, а как проще. Согласись - мой метод наиболее прост.


 
Skyle ©   (2005-12-20 14:47) [32]


> [30] syte_ser78 ©   (20.12.05 14:45)


Представляй. Файл храню в виде UDK<tab> всё остальное.

При старте читаю все UDK и получаю индекс.


 
Skyle ©   (2005-12-20 14:49) [33]


> [31] syte_ser78 ©   (20.12.05 14:46)


Чем он прост?
Реализацией?

Возьмём конкретную задачу: подвальная библиотека, 2 000 книг.
Я читаю файл TStringList"ом, вовсю использую Values[...].

Короче, бессмысленно....
Я бы вообще CDS использовал :-)


 
syte_ser78 ©   (2005-12-20 15:27) [34]

Skyle ©   (20.12.05 14:49) [33]

>Чем он прост?
> Реализацией?

Да.

> Я читаю файл TStringList"ом, вовсю использую
> Values[...].

Откуда в паскале TStringList?


 
paul_k ©   (2005-12-20 15:31) [35]

syte_ser78 ©   (20.12.05 14:45) [30]
Представляю себе время выборки нужной записи

очень быстро. Если рядом лежит файл с индексом. И руки из нужного места растут


 
Плохиш ©   (2005-12-20 15:36) [36]


> Помогите первокурснику

А зачем?


 
Skyle ©   (2005-12-20 15:38) [37]


> [34] syte_ser78 ©   (20.12.05 15:27)
> Откуда в паскале TStringList?


Сложно чтоли сочинить? ;-)


 
jack128 ©   (2005-12-20 15:44) [38]

paul_k ©   (20.12.05 9:10) [19]
Это лаба... даже у вечерников

Я прошлом симестре я подобный _курсовой_ делал.


 
jack128 ©   (2005-12-20 15:44) [39]

Skyle ©   (20.12.05 15:38) [37]
Сложно чтоли сочинить? ;-)

Сложнее, чем в дельфи на порядок ;)


 
syte_ser78 ©   (2005-12-20 15:45) [40]


> Сложно чтоли сочинить? ;-)

а зачем?
В таком случае лучше, и более правильно использывать базу данных. Проще и получаешь в нагрузку массу всяких вкусностей.


 
paul_k ©   (2005-12-20 15:45) [41]

jack128 ©   (20.12.05 15:44) [38]
а у нас - лаба на втором курсе... от так..


 
jack128 ©   (2005-12-20 15:46) [42]

syte_ser78 ©   (20.12.05 15:45) [40]
более правильно использывать базу данных. Проще и получаешь в нагрузку массу всяких вкусностей


Как считаешь, что легче, создать в TP StringList или же обертку для какой нить бд??


 
paul_k ©   (2005-12-20 15:47) [43]

syte_ser78 ©   (20.12.05 15:45) [40]
В таком случае лучше, и более правильно использывать базу данных.

если я правильно понимаю автора то лаба по дисциплине "Структуры и алгоритмы хранения данных" или около того. Цель - разработать структуру хранения данных с индексами и прочей лабудой.
Откуда тут БД возьмется?


 
syte_ser78 ©   (2005-12-20 15:57) [44]

jack128 ©   (20.12.05 15:46) [42]
unit dbIII;{веpсия 3.01 05-04-94}

{         Модуль для pаботы с Базами Данных фоpмата dBase III
              (С) Copyright 1993-1994 by Shakirov S.R.

  Использовался с Turbo Pascal 5.5 и Borland/Turbo Pascal 7.0

  Данный модуль достаточно долго находился в эксплуатации в pазличных
      пpогpаммах, pаботающих совместно с дpугими пpогpаммами,написанными
      на Clipper 5.01, FoxPro 1.5, FoxPro 2.5, FoxPro 2.5a и не содеpжит
      явных ошибок (не наблюдалось pазpушение стpуктуpы БД)

  Позволяет :
      ¦ читать/записывать поля БД
      ¦ узнать стpуктуpу существующей БД
      ¦ создавать новую БД
      ¦ pаботать в локальных сетях (пpовеpялся в NetWare 2.15, 2.2, 3.11r)
      ¦ искать записи по значению поля (аналог Find ... Continue)
      ¦ создавать "наследников" у котоpых на базе существующих методов
              pеализованы необходимые функции (напpимеp фильтpы,соpтиpовку,
              pаботу с удаленными записями,сжатие БД,использование системы
              тpанзакций пpи pаботе в сети и т.д.)

  Возможны пpоблемы :
      ¦ если Вы заблокиpовали запись,то не забудьте ее pазблокиpовать,т.к.
            это не делается автоматически
      ¦ с Memo полями фоpмата как у FoxPro (если Вы хотите,чтоб pаспоз-
            навание делалось автоматически, то в методе Open надо по
            байту ID опpеделять DBT- или FPT-файл используется)
      ¦ с символьными полями длиннее 255 байт,что возможно в Clipper (в
            этом файле ниже можно найти инфоpмацию как это испpавить,если
            очень хочется pаботать с ними)
      ¦ если Вы "обозвали" поля pусским буквами,то дpугие СУБД их обычно
            не пpизнают

  Пpиложениe
      ¦ cимвольные коды полей :
         C - символное поле, длина 1-254 символов
         N - числовое поле,опpеделяется общей длиной и количеством цифp после точки
         F - число с плавующей точкой(Я не знаю чем этот тип отличается от пpедыдущего)
         L - логическое поле, длина 1
         D - дата, длина 8 символов, фоpмат YYyyMmDd
         M - memo поле ,длина 10, не должно содеpжать символы #0 или #26
      ¦ демонстpационные пpимеpы :
         dbCreate.pas - создание БД и запись в нее
         OpenRead.pas - откpытие/чтение из БД
         Structur.pas - опpеделение стpуктуpы БД
           dbIIIa.pas - ваpиант pеализации фильтpа для базы данных
           Filter.pas - пpимеp использования фильтpа

  Это ShareWare пpодукт.Допускается свободное pаспpостpанение и использо-
         вание в некоммеpческих целях,с условием полной пеpедачи текстов
         без изменений,а если они есть,то это должно быть явно отpажено
         в исходных текстах.


Эта вещь поможет. Сам подобной пользывался пару лет назад.


 
evvcom ©   (2005-12-20 16:04) [45]


> Да и вообще я писал не как лучше, а как проще. Согласись
> - мой метод наиболее прост.

Действительно, что может быть проще работать за тебя ОС! Пущай ищет! А проводник виснет...


 
msguns ©   (2005-12-20 16:05) [46]

;)
Как раз заканчиваю подобную прогу. БД на акцесе. "Просто" через текстовики не получится. Там одних справочников около 10. Кроме того, что делать с деталями ? Ну, например, авторов у издания может быть 2 или даже 5. Причем поиск должен быть и по автору тоже (это к тому, что запихать всех авторов книжки в одну строку не фонтан).
Кроме того, важны такие реквизиты, как
- Инвентарный номер
- Номер описи
- № шифра
- Язык (языки)
- Издательство
- Издатель
- Цена номинал
- Вид (книга, журнал, газета,..)
- Состояние: ветхое, новое, б/у и т.д.
- Наличие (в поиске, на руках, утеряно, утилизировано,..)
- У кого на руках
- Регистрационная карточка (информация о движении: выдачи, возвратов,..)
- Наличие суперобложки
- Место хранения (город, здание, помещение, стеллаж, полка, № на полке)
- Данные о поступлении (дата и № накл., ФИО МОЛ,..)

Программа для ведомственной библиотеки, поэтому нет картотки читателей. В противном случае пришлось бы вводить еще объект "Читатель", по которому надо было бы держать как минимум одну таблицу и "Ордеры" - документы, по которым книги подбираются и выдаются, в т.ч. в читальный зал.

Сложности при написании программы следующие:
1. Максимально удобный интерфейс. Следует учитывать, что при внедрении программы предстоит ввод огромного кол-ва данных,- надо позаботиться о максимальном комфорте библиотекаря-оператора. В частности, "плотный" контроль корректности введенных данных.
2. Интерфейс однозначно MDI, т.к. одновременно может итти поиск разных изданий и оформление нескольких заявок параллельно.
3. Мощная и удобная поисковая система, построенная "послойно": каскад последовательно налагаемых фильтров,- программа должна "уметь" быстро находить данные по частичному и ассоциативному совпадению на объемах до сотни тысяч записей.
4. Должна быть легко "транспортабельной" для библиотек без ЛВС (учитывая мат.положение библиотек), т.е. легко устанавливаться на любом компе.

Короче, все не так уж легко при более пристальном взгляде ;)


 
evvcom ©   (2005-12-20 16:07) [47]


> что может быть проще работать за тебя ОС!

что может быть проще заставить работать за тебя ОС!


 
oldman ©   (2005-12-20 18:01) [48]

бутылку преподу - проблемы больше нет.
:)


 
Sergey Masloff   (2005-12-20 20:21) [49]

paul_k ©   (20.12.05 15:45) [41]
>а у нас - лаба на втором курсе... от так..
Ну не лаба. На несколько занятий оно было. Но таки на втором курсе. Правда специальность у меня не программистская так что може у вас и лаба ;-)



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.013 c
14-1135007795
LordOfRock
2005-12-19 18:56
2006.01.15
Посмотрите сайт


14-1135253655
syte_ser78
2005-12-22 15:14
2006.01.15
Serious Sem 2


2-1135623484
gidd
2005-12-26 21:58
2006.01.15
метод hide


6-1127837051
maVladimir
2005-09-27 20:04
2006.01.15
Многопоточная закачка файлов


3-1132305106
Anny
2005-11-18 12:11
2006.01.15
Прога считывания и обработки штрих кода...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский