Автоматизированная система учета абонентов библиотеки

МИНИСТЕРСТВООБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ДАГЕСТАНСКИЙГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРАИНФОРМАЦИОННЫХ СИСТЕМ В ЭКОНОМИКЕ
Курсоваяработа
по БазамДанных
на тему
«Автоматизированнаясистема учета абонентов библиотеки»
Выполнила: ст-ка 3 курса
гр.И-713 ФИС
Шахпеленгова Н.В.
Проверил: ассистент
кафедры ИСЭ
Ярахмедова Н.Я.
Махачкала2009г.

Введение
Развитие современногообщества предполагает широкое использование компьютерных и информационныхтехнологий, на основе которых создаются разнообразные информационные системы.Обычно получаемая в них информация анализируется человеком, который будетиграть определяющую роль. Такие информационные системы являютсяавтоматизированными, так как в их функционировании принимает участие человек.
В данной работепредлагается автоматизировать ведение учета абонентов библиотеки.
Для достиженияпоставленной цели необходимо решить ряд задач:
1. проанализироватьсостав программных средств, которые существуют на сегодняшний день;
2. провести анализтехнических и программных средств;
3. проанализироватьсредства программирования и выбрать из них оптимальное;
4. выбрать СУБД;
5. разработать базуданных для учета абонентов;
6. разработатьпрограммное приложение, обеспечивающее ввод, отображение и вывод данных;
7. разработать методическоеобеспечение пользователя.
В курсовойработе создана специализированная база данных для ведения учета абонентовбиблиотеки, а также рассмотрены основные понятия и принципы, лежащие в основесистем управления базами данных. Разработано объектно-ориентированноепрограммное приложение. Произведена разработка алгоритмов, был выбран языкпрограммирования Borland С++ Builder, как наиболее подходящий для данногопроекта, реализующая разработанный алгоритм.

1.        Теоретическаячасть
1.1     Анализ предметнойобласти
Предметной областьюназывается часть реального мира, представляющая интерес для данногоисследования. В данной курсовой работе предметной областью является библиотекаи ведение учета абонентов.
Библиотека — это информационное, культурное,образовательное учреждение, располагающее организованным фондом документов ипредставляющее их во временное пользование абонентам, а также осуществляющеедругие библиотечные услуги.
Основные функциибиблиотеки — информационная, культурная, образовательная, досуговая.
Абонент библиотеки — это физическое или юридическоелицо, зарегистрированное библиотекой как ее постоянный пользователь.
Абонент – [нем. Abonnent, франц. Abonner –подписываться] – лицо,имеющее абонемент.
Абонемент – [франц. abonnement] – правопользования чем-либо на определенный срок.
Абонемент библиотекиосуществляет выдачу изданий читателям на дом на определенный срок. Срокпользования библиотечными изданиями определяется «Правилами пользованиябиблиотекой».
Работа на абонементестроится на основе общего обслуживания. При общем абонементе читатели получаютлитературу на одной кафедре выдачи. Дифференциация осуществляется путемвыделения групп читателей. Формуляры читателей выделенных групп ставят отдельноили помечают условными обозначениями (цветовые пометки, буквы).
Все издания, выдаваемыечитателям на дом, записываются в формуляре, при этом указывается: дата выдачи,инвентарный номер, автор и заглавие. Читатели расписываются в получении изданий.
На дом выдаются читателюиздания (в том числе книги, журналы, ноты, пластинки, диафильмы и др.) всоответствии с «Правилами пользования библиотекой». В Старорусской ЦБС взрослымчитателям книги выдаются сроком на 1 месяц, читателям-детям — на 10 дней. Срокпользования изданиями по просьбе читателя (лично или по телефону) может бытьпродлен, если на издание нет спроса со стороны других читателей.
При возвращении изданиябиблиотекарь обязан в присутствии читателя зачеркнуть его расписку вчитательском формуляре.
Читатель библиотеки — лицо, пользующееся библиотекой наосновании официальной записи в установленных документах.
При записи в библиотекупосетитель предъявляет паспорт или заменяющий его документ. Читатели, недостигшие 16 лет, записываются в библиотеку по письменной просьбе родителей.Запись и выдача изданий сотрудникам библиотеки производится на общихоснованиях.
Лица, временнопроживающие в данном населенном пункте, записываются в библиотеку, как правило,без права выдачи литературы на дом. В отдельных случаях библиотека можетвыдавать этим читателям книги на дом под залог, превышающий сумму стоимостикниги не менее чем в 1,5 раза, и, взяв плату за запись.
На каждого читателязаполняется формуляр читателя. Формуляр содержит сведения о читателе и выданныхизданиях и служит учетным документом выдачи литературы и анализа чтения.
На формуляре указываетсяпорядковый номер читателя, который сохраняется за читателем до конца года.
В тех случаях, когдачитатель берет книги для членов своей семьи, на каждого из них заполняетсяформуляр читателя, на обороте которого член семьи указывает: «Поручаю братькниги (такому-то). Дата. Подпись».
При записи читателя вбиблиотеку библиотекарь проводят с ним индивидуальную беседу, в ходе которой,помимо данных для заполнения читательского формуляра, выявляют его читательскиеинтересы. Также библиотекарь должен провести экскурсию по библиотеке, в ходекоторой он знакомит читателя с «Правилами пользования библиотекой».
Формуляр читателярассчитан на использование в течение пяти лет. По мере заполнения вкладышзаменяется или дополняется новым, что позволяет наблюдать чтение отдельныхкатегорий читателей в течение ряда лет. Использованные формуляры хранятся вбиблиотеке, не менее одного года.
Число читателейопределяется по количеству читательских формуляров.
1.2     Этапыпроектирования БД
В базах данных отражается информация об определеннойпредметной области. В предметной области в процессе обследования и анализа, выделяютклассы объектов. Классом объектов называют совокупность объектов обладающиходинаковым набором свойств.
При отражении винформационной системе, каждый объект представляется идентификационным, которыйотличает один объект класса от другого, а каждый класс объекта представляетсясвоим именем. Каждый объект класса обладает определенным набором свойств. Дляобъектов одного класса набор этих свойств одинаков, а их значение естественноможет быть разным. При описании предметной области надо отобразить связи междуобъектом и характеризующим его свойством. Связь изображается в виде линиисоединяющей его свойства и объект. Связь между объектом и его свойством можетбыть различной, если объект обладает единственным значением свойства, то связьназывается единичной и изображается в виде стрелки. Если объект обладаетмножеством значений свойства, то связь называется множественной и изображаетсяв следующем виде. Кроме того, некоторые свойства являются постоянными, если ихзначения не меняются со временем. Такое свойство называется статическим, асвойства, значение которых может изменяться со временем, называется динамическим,и эти свойства обозначаются: S – статическое, D – динамическое.
/>/>/>Проектирование баз данныхпредставляет собой длительный, трудоемкий процесс, от которого зависитжизнеспособность и эффективность проектируемой базы данных, ее способность кразвитию. Важную роль при проектировании базы данных играет методологияпостроения концептуальных моделей предметной области, включающая методы исредства, позволяющие спроектировать базу данных, удовлетворяющую заданнымцелям и требованиям пользователей и прикладных программистов.
На этапе сбора данных проводятся наблюдения и измерения,собираются отчеты и различные документы, интервьюируются специалисты в даннойпредметной области, выявляется перечень задач организации и ее структурныхподразделений. Сбор применения баз данных должен определяться независимо отприкладных задач и охватывать все функциональные подразделения организации. Дляэтого проводятся собеседования с руководством организации с целью выявленияотделов данной организации и внешних организаций, связанных с информационнымобеспечением текущих и планируемых прикладных задач, а также возможных вбудущем изменений в деятельности организации. Далее проводятся дополнительныесобеседования в подразделениях организации с целью выявления совместно используемыхданных. На этом же этапе собранные данные реализуются на предмет устранениядублирования и противоречивости данных, неоднозначности их определений иописаний, выявляются и формулируются правила обработки информации и принятиярешений.
База данных – этонекоторая целевая модель предметной области, т. е. в БД находят отражениятолько те факты о ПО, которые необходимо для функционированияавтоматизированных систем, в состав которой входит БД. При проектировании БДпроектировщик должен выделить и описать эти ожидаемые факты, тем самым будеточерчена граница предметной области банка данных, затем необходимо выполнитьинтерпретацию описаний этих фактов с помощью допустимых конкретной СУБДструктур данных.
Проектирование БДначинается с предварительной структуризации предметной области: объектыреального мира подвергаются классификации, фиксируется совокупность подлежащихотображению в БД типов объектов. Для каждого типа объектов фиксируетсясовокупность свойств, посредством которых будут описываться конкретные объектыэтого типа в БД, виды отношений (взаимосвязей) между этими объектами. Затемрешаются вопросы о том, какая информация об этих объектах должна бытьпредставлена в БД, и как ее представить с помощью данных.
Инфологическаямодель: Цель инфологического моделирования –обеспечение наиболее естественных для человека способов сбора и представлениятой информации, которую предполагается хранить в создаваемой базе данных.Поэтому инфологическую модель данных пытаются строить по аналогии сестественным языком (последний не может быть использован в чистом виде из-засложности компьютерной обработки текстов и неоднозначности любого естественногоязыка). Основными конструктивными элементами инфологических моделей являютсясущности, связи между ними и их свойства (атрибуты).
/>Сущность– любой различимый объект (объект, который мы можем отличить от другого),информацию о котором необходимо хранить в базе данных. Сущностями могут бытьлюди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такиепонятия, как тип сущности и экземпляр сущности. Понятие тип сущности относитсяк набору однородных личностей, предметов, событий или идей, выступающих какцелое. Экземпляр сущности относится к конкретной вещи в наборе. />
Атрибут – поименованнаяхарактеристика сущности. Его наименование должно быть уникальным дляконкретного типа сущности, но может быть одинаковым для различного типасущностей.
Абсолютное различие междутипами сущностей и атрибутами отсутствует. Атрибут является таковым только всвязи с типом сущности. В другом контексте атрибут может выступать каксамостоятельная сущность.
/>Ключ –минимальный набор атрибутов, по значениям которых можно однозначно найтитребуемый экземпляр сущности. Минимальность означает, что исключение из наборалюбого атрибута не позволяет идентифицировать сущность по оставшимся.
Первичный ключ – атрибут(или группа атрибутов), позволяющий однозначным образом определить каждуюстроку в таблице.
Напротив, альтернативныйключ – атрибут (или группа атрибутов), не совпадающая с позволяющий первичнымключом и однозначным образом определяющий каждую строку в таблице.
Таблица – упорядоченнаяструктура, состоящая из конечного набора однотипных записей.
/>Связь –ассоциирование двух или более сущностей. Если бы назначением базы данных былотолько хранение отдельных, не связанных между собой данных, то ее структурамогла бы быть очень простой. Однако одно из основных требований к организациибазы данных – это обеспечение возможности отыскания одних сущностей позначениям других, для чего необходимо установить между ними определенные связи.А так как в реальных базах данных нередко содержатся сотни или даже тысячисущностей, то теоретически между ними может быть установлено более миллионасвязей. Наличие такого множества связей и определяет сложность инфологическихмоделей.
Даталогическая ифизическая модели: Модельданных логического уровня, поддерживаемую средствами СУБД, называют даталогическоймоделью. Эта модель представляет собой отображение логических связей междуэлементами данных безотносительно к их содержанию и среде хранения. Даталогическаямодель строится с учетом ограничений конкретной СУБД.
При построении даталогическоймодели учитываются особенности отображаемой предметной области. БД предполагаетинтегрированное и взаимосвязанное хранение данных, поэтому для проектирования даталогическоймодели необходимо иметь соответствующее описание предметной области. Описаниепредметной области, выполненное без ориентации на используемые в дальнейшемпрограммные и технические средства, называется инфологической моделью предметнойобласти. Иногда к инфологической модели относят и описание характераинформационных потребностей пользователей. Инфологическая модель предметнойобласти является исходной по отношению к даталогической модели БД.
Для привязывания даталогическоймодели в среде хранения данных используется модель данных физического уровня.Эта модель определяет используемое запоминающее устройство, способпредставления данных в среде хранения. Модель физического уровня строится такжес учетом возможности предоставленных СУБД. С появлением персональныхкомпьютеров на базе IBM этот этапфактически перестал существовать, так как операционная система, СУБДавтоматически проектирует физическую среду хранения информации.
1.3     Выбор программныхсредств
СУБД – это совокупностьязыковых и программных средств, предназначенных для создания, ведения исовместного применения БД многими пользователями.
Основная особенность СУБД– это наличие процедур для ввода и хранения не только самих данных, но иописаний их структуры. Файлы, снабженные описанием хранимых в них данных инаходящиеся под управлением СУБД, стали называть банки данных, а затем «Базы данных» (БД).
СУБД является пользовательскойоболочкой, ориентированной на немедленное управление запросов пользователя. Однакодля отечественного пользователя это представляет меньшую значимость вследствиетрудности овладения англоязычным интерфейсом. Наличие в СУБД языкапрограммирования позволяет создавать сложные системы обработки данных дляконкретных задач. Группа реляционных СУБД представлена на рынке программныхпродуктов достаточно широко. Это, например, такие системы как Paradox, Clipper, Visual FoxPro, С++ Builder,Delphi и другие.
Для наглядного примера мысравним два СУБД. Это поможет нам понять какую из них предпочтительнее выбрать.
Visual FoxPro 9.0представляет собой СУБД реляционного типа с развитыми средствами создания БД,организации запросов к ним, построения приложений с использованием визуального,объектно-ориентированного программирования.
В Visual FoxProреализованы все атрибуты реляционной СУБД. Так, в ней введено понятие базыданных как совокупности связанных таблиц, информация о которых хранится всловаре данных. В БД определяются условия ее целостности с помощью первичных ивнешних ключей таблиц. Все события (изменения), происходящие в БД, могутобнаруживаться и централизованно обрабатываться в связи с появлением в VisualFoxPro таких средств, как триггеры и встроенные процедуры
Visual FoxPro совместимас более ранними версиями FoxPro. Поэтому приложения, разработанные в болееранних версиях FoxPro, могут быть адаптированы с ее помощью в среду Windows 95.Visual FoxPro обладает высокой скоростью в обслуживании БД.
Используя стандарт ODBC иSQL-запросы Visual FoxPro позволяет работать с данными в формате СУБД Access,Paradox, dBase и т. д., с серверами БД — Microsoft SQL Server, Oracle и др.
Приложение Visual FoxProможет одновременно работать как с собственными, так и сетевыми таблицами,расположенными на других компьютерах локальной сети.
Builder – это среда, в которой можноосуществлять так называемое визуальное программирование, т. е. создаватьпрограммы, которые во время исполнения взаимодействуют с пользователемблагодаря многооконному графическому интерфейсу. Среда Builder позволяет работать как с простыми локальными удаленнымиБД, так и с многозвенными распределенными БД. В среде С++ Builder разработка программ ведется наоснове современного метода – объектно-ориентированного программирования. Нарынке программных продуктов есть много сред для автоматизации программирования.По мощности и удобству использования со средой Builder может соперничать Borland Delphi.
Перечислим некоторыесущественные особенности С++Builder 6.0:
–         С++Builder 6.0обеспечивает полный набор инструментов структурного программирования;
–         С++Builder 6.0предлагает необычно большой набор операций. Многие операции встроенного языкаС++Builder 6.0 соответствуют машинным командам и поэтому допускают прямуютрансляцию в машинный код. Разнообразие операций позволяет выбирать ихразличные наборы для минимизации результирующего кода;
–         С++Builder 6.0 поддерживает ссылки на формы и таблицыв этих формах. Ссылка на форму программы соответствует машинному адресу этогообъекта, посредством разумного использования связей можно создавать эффективновыполняемые программы, так как они позволяют ссылаться на объекты тем же самымпутем, как это делает ЭВМ.
В моемслучае для автоматизации системы ведения банковских счетов на основе чеков используетсяСУБД Borland С++Builder 6.0.
К выбору именно этогоязыка программирования меня подтолкнули следующие причины:
–  быстротаразработки объектно-ориентированных программ;
–  гибкость языкапрограммирования;
–  быстрота работыпрограмм;
–  минимальныеразмеры объемов программ при максимальных возможностях;
–  относительная недорогая стоимость пакета программ разработки;
–  минимальныетребования для запуска программ.
С++Builder 6.0 — этопрограмма общего назначения, хорошо известная своей эффективностью,экономичностью, и переносимостью. Указанные преимущества С++Builder 6.0обеспечивают хорошее качество разработки программ любого вида в любой отрасли.
1.4      Выбор технических средств
Чтокасается требований к вычислительной технике, для реализации моего проектаследует отметить, что компьютер должен иметь:
–     Процессор Intel Pentium IV;
–     Оперативнаяпамять 1 Гбайт. Этоминимальные потребности программы для нормальной работы. При желании памятьможно увеличить, т.к. компьютер постоянно обрабатывает данные (записывает,считает итоги), для увеличения скорости обработки он максимально загружаетпамять;
–     Материнская платаAsus-P4P800 + Видео 4МБ +Сетевая карта;
–     Жесткий диск(винчестер) 80 Гбайт;
–      Монитор LCD LG172 (17”);
–     Операционнаясистема Microsoft Windows 2000/XP;
–     Мышь;
–     Клавиатура;
–     Принтер HP LaserJet M1005

2         Проектная часть
2.1      ПроектированиеБД
Цель инфологического моделирования — создать точное иполное отображение реального мира, используемое в дальнейшем в качествеисточника информации для построения БД.
Инфологическая модель
«Учет абонентовбиблиотеки»
/> 

/>/>/>/>                          /> /> /> /> /> /> /> /> /> />

/>/> /> /> /> /> /> /> /> />

/>/>/>/>/>/>                          
/>/>/>/>/>                          
/>/>/>                          /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />

/>/>/>                          /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />

/>                          
/> 
/>                          
Даталогическая модель
«Учет абонентовбиблиотеки»
Даталогическая модель «Абонент» Fields Name Type Size 1 N_vidachi A 6 2 D_vidachi D 3 Kod_abon A 6 4 N_doc A 6 5 D_vozvrata D 6 Flag_vozvrata L 7 Shtraf $
Даталогическая модель «Кодабонента» Fields Name Type Size 1 Kod_abon A 6 2 Fam A 25 3 Im A 25 4 Otch A 25 5 D_R D 6 Adres A 25 7 Pasp_dan N
Даталогическая модель «Номердокумента» Fields Name Type Size 1 N_doc A 6 2 Nazvanie A 50 3 Avtor A 30 4 Type A 30 5 Izdatelstvo A 25 6 God_izdaniya A 10
Модель физического уровня
С помощью инструментов DataBase Desktop создаем файл таблиц БД. Задаем им имена – Abonent.db, Kod_abon.db и N_doc.db. Далее откроем таблицы в режиме структуризации и в окне Table Properties выберем Secondary Indexes. Нажимаем Define. Откроется окно, в котором слева расположены поля таблицы, а справапустое окно, в которое заносятся поля, по которым создается индекс. Зададимследующие индексы – по № выдачи, зададим имя N_vidachi; по кодуабонента, зададим имя Kod_abon и по номеру документа, зададим имя N_doc. После сохранения вторичных индексов, в окневысвечиваются их названия. Сохраним наши таблицы в папке «Наида» на диске D. Таким образом, путь к нашимтаблицам будет D: Наида.
2.2      Машиннаяреализация
Для удобства работы инаглядности вводимых данных создадим автоматизированную систему «Учетаабонентов библиотеки», которая должна выполнять следующие функции:
v   Операции:
–         Документы;
–         Фильтрация;
–         Поиск;
–         Просмотр;
v   Цвет фона
–         По умолчанию;
–         Черный;
–         Красный;
–         Синий;
–         Голубой;
–         Зеленый;
–         Желтый
v   Выход
Запускаем Borland C++ Builder.Создаем новое приложение File -> New-> Application. Далее появляется форма (Form1). Установим на нее компонент MainMenu из библиотеки Standart. Щелкаем на нее двойным щелчком, ипоявится окно для ввода меню. Введем в него наше выше перечисленное меню.

/>
Рис. 2
Создаем новуюформу (Form2) для ввода нового абонента, на которой будет осуществлятьсяввод нового абонента. Для этого устанавливаем на форму по 3 компоненты DataSourse, Table, DBGridи DBNavigator. В компоненте Table устанавливаем свойства DataBaseName – Abonent, а TableName – abonent.db, kod_abon.db и n_doc.db; в компоненте DataSourse свойство DataSet – Table; в компоненте DBGrid свойство DataSourse – DataSourse1,2,3. Для управления перемещениемиспользуем компоненту DBNavigator, причем используем только кнопки перемещения, заблокировав остальные (VisibleButton).Для работы установим основноесвойство DataSource — DataSource. Установим также две кнопки (TButton) для ввода и редактирования записей.
Для улучшениявнешнего вида расставим метки (Label)отображающие названия полей нашей таблицы на приложении, а также настроимтаблицу DBGrid. Для этого выполним двойной щелчокна компоненте Table, что приведет к открытию окна.Указав на поле окна, и нажав на правую кнопку мыши, выберем пункт «Добавить всеполя». Используя свойства Alignment, DisplayLabel (заголовок столбца), DisplayWidth (ширина столбца), DisplayValues(отображаемые значения), ReadOnly (только для чтения), Visible (видимость поля), делаем настройкуокна приложения.
Для фильтрации данных мысоздаем новую форму File -> New -> Form3. Далее устанавливаем на форму компоненты DataSourse, Table, DBGrid,DBNavigator, RadioGroup, Label, 2 компоненты Edit,.
Устанавливаем следующиесвойства:
·     ВкомпонентеDataSourse1: DataSet – Table1;
·     ВкомпонентеTable1: DatabaseName — Abonent; TableName – abonent.db;
·     ВкомпонентеDBGrid: DataSourse — DataSourse1;
·     ВкомпонентеDBNavigator: DataSourse – DataSourse1;
·     Вкомпоненте Label: Caption– “Фильтрацияданных”;
Далее в компоненте Table1 делаем свойство Active равным True.
Для поиска данных мысоздаем новую форму File -> New -> Form3. Далее устанавливаем на форму компоненты DataSourse, Table, DBGrid,DBNavigator, Label и Edit.
Устанавливаем следующиесвойства:
·     ВкомпонентеDataSourse1: DataSet – Table1
·     ВкомпонентеTable1: DatabaseName — Abonent; TableName – kod_abon.db
·     ВкомпонентеDBGrid: DataSourse — DataSourse1
·     ВкомпонентеDBNavigator: DataSourse — DataSourse1
·     Вкомпоненте Label: Caption– “Поиск данных”
Далее в компоненте Table1 делаем свойство Active равным True.
Для печати и просмотрасписка абонентов создаем новую форму File -> New -> Form5. В окно формы установим следующие компоненты: Table (DatabaseName — Abonent; TableName – kod_abon.db); QuickRep (DataSet – Table1);DataSourse (DataSet – Table1).
На верхней строке отчетаразмещаем компоненту QRSysData. В свойстве Data устанавливаемqrsData. C помощью QRLabelделаем заголовок (Caption – “Список абонентов”).Далее в отчет перенесем компоненту QRSubDetail, которая осуществляет циклический вывод записей на печать.Вставляем компоненты QRDTextи задаем им свойства DataSetи DataField – Table1, и имена соответствующих полей, с помощью QRLabel.
Далее создаем главнуюформу, с которой будет вызываться модуль печати. Перенесем на форму двекомпоненты Button, обозначим их как «Печать» и«Просмотр». Выполним команду Alt+F11, выберем модуль формы нашегоотчета и нажмем «ОК».
2.3     Описание работыпрограммы
На диске D находим папку «Наида» Щелкаем дваждына файле Project1.exe. Откроется главное окно нашейпрограммы:
/>
·         Дляввода нового абонента открываем пункт меню Операции -> Документы. Перед намиоткроется форма. Для того чтобы ввести данные о новом абоненте нажимаем накнопку «Вставить». Появится новая строка. После ввода нажимаем кнопку«Записать». Подтверждаем изменения кнопкой «Ок».

/>
·         Длятого чтобы найти интересующего нас абонента, мы выполняем команду Операции-> Поиск. Перед нами открывается окно с таблицей данных и окошками для вводакода абонента и фамилии. Для осуществления поиска просто вводим нужный нам кодабонента или фамилию абонента в эти окошки.
/>

Для того, чтобыпрофильтровать данные по дате выдачи и по коду абонента, выбираем команду Операции-> Фильтрация.
/>
·         Дляпросмотра или печати нужного нам документа выполняем команду Документы ->Просмотр и печать …. Кликаем на документ и перед нами открывается окно. Дляпросмотра списка нажимаем на кнопку «Просмотр», а для печати – «Печать».

/>
/>

/>
·         Дляпросмотра справки нажимаем на пункт меню «Справка»
/>
·         Длявыхода из программы нажимаем на пункт меню «Выход»

Заключение
В данном курсовом проектея ознакомилась с возможностями С++ Вuilder, как системы управления базамиданных разработанной мною программы “Учет абонентов библиотеки ”.
Также здесь разрабатываетсябаза данных, в которой хранится и обрабатывается информация об учете абонентов.
Сначала строитсяинфологическая модель, в которую входят БД, сущность, атрибуты. Далее строитсядаталогическая модель. В ней описываются размеры, типы, назначения,наименования. Следующим этапом является описание физической модели, в которойописывается физическое устройство хранения информации. Обработку информации вБД осуществляют такие методы как фильтрация, поиск и печать.
Программа выполняетследующие функции: позволяет редактировать БД, внести сведения о новом абоненте,найти по заданному пользователем ключу информацию, произвести фильтрацию ипросмотреть документы.

Литература
1.    Курс лекций по дисциплине “Базыданных”
2.     ДигоС… М. «Проектирование и использование БД». 1991 г.
3.    Хеннер Е.К., Могилев А.В., Пак Н.И.«Информатика». М.: «Учебное пособие для студентов пед. вузов», 1999 г.
4.    Основы языка С++ Builder 2004 г.
5.    Наумов А.Н «Системы управления базамиданных и знаний» 1991 г.

Программа
//—————————————————————————
#include
#pragmahdrstop
#include«Unit11.h»
#include«Unit1.h»
#include«Unit10.h»
#include«Unit2.h»
#include«Unit3.h»
#include«Unit4.h»
#include«Unit5.h»
#include«Unit6.h»
#include«Unit7.h»
#include«Unit8.h»
#include«Unit9.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TForm1 *Form1;
//—————————————————————————
__fastcallTForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//—————————————————————————
void__fastcall TForm1::N4Click(TObject *Sender)
{
Form1->Hide();
Form2->Show();
}
//—————————————————————————
void__fastcall TForm1::N5Click(TObject *Sender)
{
Form1->Hide();
Form3->Show();
}
//—————————————————————————
void__fastcall TForm1::N6Click(TObject *Sender)
{
Form1->Hide();
Form4->Show();
}
//—————————————————————————
void__fastcall TForm1::N7Click(TObject *Sender)
{
Form1->Hide();
Form5->Show();
}
//—————————————————————————
void__fastcall TForm1::N8Click(TObject *Sender)
{
Form1->Color=clBtnFace;
N8->Checked=true;
N9->Checked=false;
N10->Checked=false;
N11->Checked=false;
N12->Checked=false;
N13->Checked=false;
N14->Checked=false;
}
//—————————————————————————
void__fastcall TForm1::N9Click(TObject *Sender)
{
Form1->Color=clBlack;
N8->Checked=false;
N9->Checked=true;
N10->Checked=false;
N11->Checked=false;
N12->Checked=false;
N13->Checked=false;
N14->Checked=false;
}
//—————————————————————————
void__fastcall TForm1::N10Click(TObject *Sender)
{
Form1->Color=clRed;
N8->Checked=false;
N9->Checked=false;
N10->Checked=true;
N11->Checked=false;
N12->Checked=false;
N13->Checked=false;
N14->Checked=false;
}
//—————————————————————————
void__fastcall TForm1::N11Click(TObject *Sender)
{
Form1->Color=clBlue;
N8->Checked=false;
N9->Checked=false;
N10->Checked=false;
N11->Checked=true;
N12->Checked=false;
N13->Checked=false;
N14->Checked=false;
}
//—————————————————————————
void__fastcall TForm1::N12Click(TObject *Sender)
{
Form1->Color=clSkyBlue;
N8->Checked=false;
N9->Checked=false;
N10->Checked=false;
N11->Checked=false;
N12->Checked=true;
N13->Checked=false;
N14->Checked=false;
}
//—————————————————————————
void__fastcall TForm1::N13Click(TObject *Sender)
{
Form1->Color=clGreen;
N8->Checked=false;
N9->Checked=false;
N10->Checked=false;
N11->Checked=false;
N12->Checked=false;
N13->Checked=true;
N14->Checked=false;
}
//—————————————————————————
void__fastcall TForm1::N14Click(TObject *Sender)
{
Form1->Color=clYellow;
N8->Checked=false;
N9->Checked=false;
N10->Checked=false;
N11->Checked=false;
N12->Checked=false;
N13->Checked=false;
N14->Checked=true;
}
//—————————————————————————
void__fastcall TForm1::N3Click(TObject *Sender)
{
Form1->Close();
}
//—————————————————————————
void__fastcall TForm1::N15Click(TObject *Sender)
{
Form1->Hide();
Form11->Show();
}
//—————————————————————————
void__fastcall TForm1::N2Click(TObject *Sender)
{
Form1->Hide();
Form5->Show();
}
//—————————————————————————
void__fastcall TForm2::FormCreate(TObject *Sender)
{
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString;
Edit7->Text= Table2Kod_abon->AsString;
Edit8->Text= Table2Fam->AsString;
Edit9->Text= Table2Im->AsString;
Edit10->Text= Table2Otch->AsString;
Edit11->Text= Table2D_R->AsString;
Edit12->Text= Table2Adres->AsString;
Edit15->Text= Table3N_doc->AsString;
Edit16->Text= Table3Nazvanie->AsString;
Edit17->Text= Table3Avtor->AsString;
Edit18->Text= Table3Izdatelstvo->AsString;
Edit19->Text= Table3God_izdaniya->AsString;
}
//—————————————————————————
void__fastcall TForm2::ArialBlack1Click(TObject *Sender)
{
Form2->Font->Name=«ArialBlack»;
ArialBlack1->Checked=true;
TimesNewRoman1->Checked=false;
Cambria1->Checked=false;
Colibri1->Checked=false;
Monotypecorsiva1->Checked=false;
}
//—————————————————————————
void__fastcall TForm2::TimesNewRoman1Click(TObject *Sender)
{
Form2->Font->Name=«TimesNew Roman»;
TimesNewRoman1->Checked=true;
ArialBlack1->Checked=false;
Cambria1->Checked=false;
Colibri1->Checked=false;
Monotypecorsiva1->Checked=false;
}
//—————————————————————————
void__fastcall TForm2::Monotypecorsiva1Click(TObject *Sender)
{
Form2->Font->Name=«MonotypeCorsiva»;
TimesNewRoman1->Checked=false;
ArialBlack1->Checked=false;
Cambria1->Checked=false;
Colibri1->Checked=false;
Monotypecorsiva1->Checked=true;
}
//—————————————————————————
void__fastcall TForm2::Colibri1Click(TObject *Sender)
{
Form2->Font->Name=«Colibri»;
TimesNewRoman1->Checked=false;
ArialBlack1->Checked=false;
Cambria1->Checked=false;
Colibri1->Checked=true;
Monotypecorsiva1->Checked=false;
}
//—————————————————————————
void__fastcall TForm2::Cambria1Click(TObject *Sender)
{
Form2->Font->Name=«Cambria»;
TimesNewRoman1->Checked=false;
ArialBlack1->Checked=false;
Cambria1->Checked=true;
Colibri1->Checked=false;
Monotypecorsiva1->Checked=false;
}
//—————————————————————————
void__fastcall TForm2::Table1AfterScroll(TDataSet *DataSet)
{
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString;
}
//—————————————————————————
void__fastcall TForm2::Button1Click(TObject *Sender)
{
AnsiString s;
constAnsiString s1=”, “;
s=””;
if(Table1D_vidachi->AsString!= Edit1->Text)
{
if (s!=””) s+=s1;
s+= «Датавыдачи»;
}
if(Table1N_doc->AsString!=Edit2->Text)
{
if (s!=””) s+=s1;
s+=«Номердокумента»;
}
if(Table1D_vozvrata->AsString!=Edit3->Text)
{
if (s!=””) s+=s1;
s+=«Датавозврата»;
}
if(Table1Flag_vozvrata->AsString!=Edit4->Text)
{
if (s!=””) s+=s1;
s+=«Флагвозврата»;
}
if(Table1Shtraf->AsString!=Edit5->Text)
{
if (s!=””) s+=s1;
s+=«Штраф»;
}
if (s!=””)
{
if (Application->MessageBox(
(«Действительнохотите ввести новые данные?»+s+”?”).c_str(),
«Подтвердитеизменение»,
MB_YESNO+MB_ICONQUESTION)==IDYES)
{
Table1->Edit();
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString;
Table1->Post();//запись данных
}}
}
//—————————————————————————
void __fastcallTForm2::Button2Click(TObject *Sender)
{
Table1->Insert();
}
//—————————————————————————
void__fastcall TForm2::Button3Click(TObject *Sender)
{
if ( Application->MessageBox(
«Действительнохотите удалить запись?»,
«Подтвердитерешение»,
MB_YESNO+MB_ICONEXCLAMATION)==IDYES)
Table1->Delete();// удаление данных
}
//—————————————————————————
void__fastcall TForm2::N16Click(TObject *Sender)
{
Form2->Hide();
Form5->Show();
}
//—————————————————————————
void__fastcall TForm2::DBNavigator1Click(TObject *Sender,
TNavigateBtnButton)
{
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString;
}
//—————————————————————————
void__fastcall TForm3::RadioGroup1Click(TObject *Sender)
{
if(RadioGroup1->ItemIndex==0)
Table1->Filtered= false;
else
{
if(RadioGroup1->ItemIndex==1)
Table1->Filter=«D_vidachi=’»+ComboBox1->Text+”‘”;
else
{
if(RadioGroup1->ItemIndex==2)
Table1->Filter=«D_vozvrata=’»+ComboBox2->Text+”‘”;
Table1->Filtered= true;
}
} //фильтрация данных
}
//—————————————————————————
void__fastcall TForm3::ComboBox1Change(TObject *Sender)
{
if(RadioGroup1->ItemIndex==1)
Table1->Filtered= false;
else
{
if(RadioGroup1->ItemIndex==1)
Table1->Filter=«D_vidachi=’»+ComboBox1->Text+”‘”;
else
{
if(RadioGroup1->ItemIndex==2)
Table1->Filter=«D_vozvrata=’»+ComboBox2->Text+”‘”;}
{
Table1->Filtered= false;
Table1->Filter=”(D_vidachi='”+ComboBox1->Text+”‘)”;
Table1->Filtered= true;
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString;
}}
}
//—————————————————————————
void__fastcall TForm3::ComboBox2Change(TObject *Sender)
{
if(RadioGroup1->ItemIndex==2)
Table1->Filtered= false;
else
{
if(RadioGroup1->ItemIndex==1)
Table1->Filter=«D_vidachi=’»+ComboBox1->Text+”‘”;
else
{
if(RadioGroup1->ItemIndex==2)
Table1->Filter=«D_vozvrata=’»+ComboBox2->Text+”‘”;
{
Table1->Filtered= false;
Table1->Filter=”(D_vozvrata='”+ComboBox2->Text+”‘)”;
Table1->Filtered= true;
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString; }
}}
}
//—————————————————————————
void__fastcall TForm3::Table1AfterScroll(TDataSet *DataSet)
{
Edit1->Text= Table1D_vidachi->AsString;
Edit2->Text= Table1N_doc->AsString;
Edit3->Text= Table1D_vozvrata->AsString;
Edit4->Text= Table1Flag_vozvrata->AsString;
Edit5->Text= Table1Shtraf->AsString;
}
//—————————————————————————
void__fastcall TForm4::Button2Click(TObject *Sender)
{
TLocateOptionsSearchOptions;
Table1->Locate(«Fam»,Edit2->Text,SearchOptions

}
//—————————————————————————
void__fastcall TForm4::Button1Click(TObject *Sender)
{
TLocateOptionsSearchOptions;
Table1->Locate(«Kod_abon»,Edit3->Text,SearchOptions

}
//—————————————————————————
void__fastcall TForm4::FormCreate(TObject *Sender)
{
Edit7->Text= Table1Kod_abon->AsString;
Edit8->Text= Table1Fam->AsString;
Edit9->Text= Table1Im->AsString;
Edit10->Text= Table1Otch->AsString;
Edit11->Text= Table1D_R->AsString;
Edit12->Text= Table1Adres->AsString;
}
//—————————————————————————
void__fastcall TForm5::Button1Click(TObject *Sender)
{
if ( Application->MessageBox(
«Вы действительнохотите вывести на пeчать этот список?»,
«Потвердитерешение»,
MB_YESNO+MB_ICONEXCLAMATION)==IDYES)
{Form6->QuickRep1->Print();}
}
//—————————————————————————
void __fastcallTForm5::Button2Click(TObject *Sender)
{
Form6->QuickRep1->Preview();
}
//—————————————————————————

/>
/>
/>