Разработка Win-приложения для библиотеки, которая позволяло бы осуществлять операции выдачи книг и сдачи книг в соответствии со сроками

РЕФЕРАТ

Отчет о курсовой работе: 53 с., 21 рис., 1 табл., 2 приложения, 5 источников.

Объект исследования – работа библиотеки.

Цель работы – разработка Win-приложения для библиотеки, которая позволяло бы осуществлять операции выдачи книг и сдачи книг в соответствии со сроками.

Метод исследования – анализ возможностей языка С# для реализации поставленной задачи.

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

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

  • Администратор- может зайти под своим логином в приложение, проследить за работой пользователей системы(сотрудников), также администратор может создать нового пользователя(сотрудника), изменять их пароли, данные и выполнять все те же действия ,что и пользователь.

Разработанное Win-приложение может использоваться для различных разновидностей библиотек. Сложность пользованием приложение предусмотрено для пользователей, как с высоким уровнем владение ПК так и низким.

Дальнейшее развитие приложения связано с расширением функционала, в зависимости направленность библиотек.

WIN-ПРИЛОЖЕНИЕ , БД , ПК, UTF-8, ИСБ, MICROSOFT .NET FRAMEWORK, MICROSOFT VISUAL STUDIО .

СОДЕРЖАНИЕ

Введение 5

  1. Описание и анализ предметной области 8
  2. Постановка задачи 12
  3. Обоснование выбора программных и технических средств реализации 14
    1. Выбор языка программирования 14
    2. Выбор программных средств реализации 16
    3. Выбор технических средств реализации 18
    4. Требования к операциям 16
    5. Функции продукта 16
    6. Требования к пользователям продукта 17
    7. Требования к ограничениям 17
  4. Проектирование и разработка программного обеспечения информационной системы библиотеки 20
    1. Описание функциональных возможностей системы и взаимодействия её модулей 20
    2. Формат входных и выходных данных 22
    3. Разработка интерфейса системы, описание реализованных классов 23
  5. Тестирование информационной системы библиотеки 26
  6. Руководство пользователя 33

Выводы 36

Список ссылок 38

Приложение А.Экранные формы 39

Приложение Б.Фрагменты листинга программы 48

ВВЕДЕНИЕ

Тенденции развития современных информационных технологий приводят к постоянному возрастанию сложности информационных систем (ИС), создаваемых в различных областях деятельности человека. Под термином информационные системы мы будем понимать среду, составляющими элементами которой являются компьютеры, компьютерные сети, программные продукты, базы данных, люди, различного рода технические и программные средства связи и т.д. Основная цель информационной системы - организация хранения, обработки и передачи информации. ИС представляет собой человеко-компьютерную систему обработки информации.

Современные информационные технологии, основанные на использовании средств вычислительной техники и связи, нашли широкое применение и в библиотечной деятельности в виде автоматизированных библиотечно-информационных систем (АБИС), библиографических банков данных или электронных библиотек (ЭБ).

Основная задача библиотеки – всесторонняя информационная поддержка учебной и исследовательской деятельности, которая способствует эффективному функционированию школы, колледжа, ВУЗа. Информационная функция библиотеки существует с момента ее возникновения, и ресурсы библиотек всегда использовались для помощи в решении той или иной государственной задачи.

Проектирование ИС библиотеки характеризуется следующими особенностями:

  1. сложность описания (достаточно большое количество функций, процессов, элементов данных и сложные взаимосвязи между ними), требующая тщательного моделирования и анализа данных и процессов;
  2. отсутствие прямых аналогов, и поэтому ограниченные возможности использования типовых проектных решений;
  3. временная протяженность проекта, обусловленная, с одной стороны, ограниченными возможностями коллектива разработчиков, и, с другой стороны, масштабами организации-заказчика и различной степенью готовности отдельных ее подразделений к внедрению ИС.

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

На рабочие места сотрудников библиотеки устанавливаются компьютеры, т.е. создаются автоматизированные рабочие места (АРМ) библиотекарей. АРМ представляет собой сложный организационно-функциональный, технологический и программно-технический комплекс (требующий разнообразных средств обеспечения), предназначенный для осуществления в автоматизированном режиме библиотечно-информационных процессов, обслуживания пользователей библиотеки и обеспечения их доступа к внешним электронным информационным ресурсам.

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

Объектом исследования является библиотека как учреждение культуры, организующее сбор, хранение и общественное пользование произведениями печати и другими документами.

Предметом исследования являются процессы, происходящие в библиотеке, связанные с обслуживанием читателей и выдачей книг.

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


1 Описание и анализ предметной области

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

Основными направлениями работы любой библиотеки являются: комплектование и организация книжного фонда; обслуживание читателей.

Комплектование фондов библиотеки состоит из систематического выявления (путем просмотра библиографических источников и литературы) нужных для данной библиотеки изданий и приобретения их. От своевременности и полноты комплектования библиотеки в значительной мере зависит уровень обслуживания читателей.

Организация книжного фонда включает вопросы учета, расстановки, хранения литературы и доставки ее читателю.

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

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

Обслуживание читателей библиотеки осуществляется различными путём выдачи литературы и помощи отдельным читателям в подборе необходимой им литературы.

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

За нарушение правил пользования библиотекой читатели лишаются права пользования всеми пунктами обслуживания библиотеки на установленные администрацией сроки (1 месяц).

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

Библиотечная деятельность связана с учетом большого количества операций, множество книг и читателей серьезно замедляют работу библиотекарей. Сложность поиска нужной книги в каталоге занимает длительное время, и целиком опирается на компетентность работников библиотеки.

Для ведения библиотечных каталогов, организации поиска требуемых изданий и библиотечной статистики в базе должны храниться сведения, большая часть которых размещаются в аннотированных каталожных карточках

В библиотеку приходит много книг из различных издательств. Каждая книга, хранящаяся в библиотеке, имеет следующие параметры:

  • название книги;
  • уникальный шифр (ISBN);
  • библиотечно-библиографическая классификация (ББК);
  • автор;
  • издательство;
  • место издания (город);
  • год издания;
  • количество страниц.

Каждая книга может присутствовать в нескольких экземплярах.

Все книги различаются по своему уникальному шифру - ISBN.

Библиотечно-библиографическая классификация (ББК) распределяет издания по отраслям знания в соответствии с их содержанием. В ней используется цифробуквенные индексы ступенчатой структуры (например, ББК 32.973 Электронные вычислительные машины и устройства). Шифр ББК используется при выделении хранимым изданиям определенных комнат, стеллажей и полок, а также для составления каталогов и статистических отчетов. В библиотеке имеется база данных (БД). Она представляет собой совокупность данных обо всех происходящих процессах в библиотеке (книгах, читателях, проведенных мероприятиях и др.), построенную в хронологической последовательности, в виде таблиц и списков данных. Основное ее назначение - хранение данных, для их последующего целесообразного использования в будущем. БД находится на специальном компьютере в электронном виде, постоянно редактируется и изменяется работниками библиотеки. С базой данных библиотеки могут работать как руководители (администрация) библиотеки, так и работники библиотеки, заинтересованные в получении необходимой информации. При работе с системой библиотекарь должен иметь возможность решать следующие задачи:

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

В библиотеке ведется картотека читателей. О каждом читателе заносятся следующие сведения:

  • ФИО;
  • номер паспорта;
  • адрес;
  • контактный телефон.

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

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

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

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

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


2 Постановка задачи

Целью данной работы является создание автоматизированной ИС библиотеки. Система предназначена для повышения эффективности работы обслуживающего персонала библиотеки и быстрого обслуживания читателей за счёт услуги автоматизированного поиска книги, сокращения времени поиска и оформления выдачи необходимого издания читателю.

ИС библиотеки работает в двух режимах, в зависимости от типов пользователей: в режиме сотрудника библиотеки или администратора.

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

1. В режиме работы администратора и сотрудника библиотеки:

  • создание, загрузка, редактирование и сохранение БД читателей (ФИО, паспортные данные, адрес, номер читательского билета, контактный телефон);
    • создание, загрузка, редактирование и сохранение БД книг (название, ISBN, ББК, жанр, автор, издательство, место издания, год издания, количество страниц, количество экземпляров в библиотеке);
    • формирование и просмотр списка должников (название книги, автор, читатель, дата выдачи, срок, кем выдан, сколько дней прошло);
    • многоаспектный поиск данных по различным признакам и их сочетаниям;
    • автоматизированный учет и ведение статистики по всем процессам.
  1. Дополнительные возможности в режиме работы администратора:
    • создание, загрузка, редактирование и сохранение БД сотрудников (логин, пароль, ФИО, тип пользователя);
    • просмотр истории входов сотрудников (ФИО, дата входа, дата выхода).

Для достижения указанной цели курсовой работы ставятся и решаются следующие задачи:

1) анализ предметной области;

2)проектирование и разработка ПО автоматизированной ИС библиотеки;

3) тестирование системы.

Проектирование ИС библиотеки должно содержать:

  • описание функциональных возможностей разрабатываемого ПО;
  • описание формата входных-выходных данных.

Разработка ПО автоматизированной информационной системы библиотеки должна быть основана на результатах проектирования системы и включать обоснование выбора средств программной реализации и описание структур данных, классов, функций программного комплекса.

Тестирование и анализ результатов необходимы для выявления ошибок в структуре алгоритма или его программной реализации, структуре входных и внутренних данных, а также для ликвидации конфликтных ситуаций с другим ПО.


3 Обоснование выбора программных и технических средств реализации

3.1 Выбор языка программирования

Выбор языка программирования определяет разнообразие возможностей, которые программист может реализовать в приложении, а также то, насколько быстро он это сделает.

С# (произносится си-шарп) – объектно-ориентированный язык программирования, разработанный в компании Microsoft под руководством Андерса Хейльсберга в 1998-2001 годах как язык разработки приложения для Microsoft .NET framework. C# разрабатывался как язык программирования прикладного уровня для CLR (Common Language Runtime или общеязыковая среда выполнения) и, как таковой, зависит, прежде всего, от возможностей самой CLR.

Синтаксис С# подобен синтаксису C/C++, Java, поэтому этот язык называется C-подобным языком. C# является мультипарадигменным языком программирования, так как в нем поддерживается объектно-ориентированное и процедурное программирование. Однако, в отличие от C++ язык не поддерживает множественное наследование классов.

Объектно-ориентированное программирование (ООП) – основная концепция C#. Технология ООП неотделима от C#, поэтому все программы на C# являются объектно-ориентированными хотя бы в самой малой степени. Концепция ООП вносит в арсенал разработчика новое средство – классы. Классы наряду с объектами составляют краеугольный камень многих современных языков высокого уровня. Под классом подразумевается некая сущность, которая задает некоторое общее поведение для объектов. Таким образом, любой объект может принадлежать или не принадлежать определенному классу, то есть обладать или не обладать поведением, которое данный класс подразумевает. Помимо этого ООП дает подход к следующим важным свойствам классов.

  1. Абстракция данных. Объекты представляют собою упрощенное, идеализированное описание реальных сущностей предметной области. Если соответствующие модели адекватны решаемой задаче, то работать с ними оказывается намного удобнее, чем с низкоуровневым описанием всех возможных свойств и реакций объекта.
  2. Инкапсуляция. Инкапсуляция – это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик – пользователь класса должен видеть и использовать только интерфейсную часть класса (т. е. список декларируемых свойств и методов класса) и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимую реализацию и модификацию классов. Сокрытие данных – неотделимая часть ООП, управляющая областями видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта.
  3. Наследование. Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального мира, как иерархичность.
  4. Полиморфизм. Полиморфизмом называют явление, при котором функции (методу) с одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода. Полиморфизм обеспечивается тем, что в классе-потомке изменяют реализацию метода класса-предка с обязательным сохранением сигнатуры метода. Это обеспечивает сохранение неизменным интерфейса класса-предка и позволяет осуществить связывание имени метода в коде с разными классами – из объекта какого класса осуществляется вызов, из того класса и берётся метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием – в отличие от статического (раннего) связывания, осуществляемого на этапе компиляции.

Благодаря такой гибкости C# можно использовать практически для любой на сегодняшний день задачи, будь то системное программирование, проектирование БД, написание математических пакетов.

Назначение .NET Framework – служить средой для поддержки и выполнения сильно распределенных приложений. Она обеспечивает совместное использование разных языков программирования, а так же безопасность, переносимость программ и общую модель программирования для платформы Windows.

Среда CLR управляет выполнением кода .NET framework. Действует она по следующему принципу. Результатом компиляции программы на C# является не исполняемый код, а файл, содержащий особого рода псевдокод, называемый Microsoft Intermediate Language (MSIL). MSIL определяет набор переносимых инструкций, не зависящий от конкретного процессора.

По существу, MSIL определяет переносимый язык ассемблера. Всякая программа, скомпилированная в псевдокод MSIL, может выполняться на любом компьютере, где есть реализация CLR (Common Language Runtime).

3.2 Выбор программных средств реализации

В качестве платформы для разработки ИС библиотеки была выбрана операционная платформа WIN32, встречающаяся практически на всех современных настольных системах. Этот выбор обусловлен тем, что операционные системы Microsoft – семейство наиболее популярных систем, обладающее простым внешним оформлением, которое упрощает взаимодействие с конечным пользователем.

Компилятор Microsoft Visual Studio Express 2012 - продукт компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.

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

Линейка продуктов Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных.

Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов

Microsoft Visual Studio Express 2012 - это бесплатный набор сред для программирования для ОС MS Windows. Представлены все доступные версии, также включает пакет обновления.

С помощью Visual Studio Express 2012 для Windows Desktop можно разрабатывать функциональные настольные приложения на языке C#. В качестве целевых клиентских технологий можно выбирать Windows Presentation Foundation (WPF), Windows Forms и Win32.

При написании программного кода, тестировании и отладке можно повысить производительность благодаря использованию эффективных инструментов Visual Studio.

Microsoft Visual Studio Express-набор легковесных сред разработки, представляющих собой урезанную версию Visual Studio. Она включает в себя небольшой набор инструментов, в отличие от полных версий: отсутствует дизайнер классов и многие другие инструменты, а также поддержка плагинов и удалённых баз данных в дизайнере данных. Компиляторы в 64-битный код также недоступны в Express-редакциях до версий 2012 года.

Таким образом, среда Visual Studio Express 2012 представляет собой мощное профессиональное средство для создания приложений, которое обеспечивает разработчиков улучшенной функциональностью среды, оптимизирующим компилятором, множеством расширений и дополнений, поддержкой новейших платформ, технологий и стандартов.

3.3 Выбор технических средств реализации

Поскольку автоматизированная ИС библиотеки разрабатывалась под операционные системы Windows XP и выше, то на технические средства накладываются только те ограничения, которые обусловлены применением данной операционной среды.

Для нормальной работы программы требуется ПЭВМ со следующим минимальным набором характеристик:

  • процессор не менее 2 ГГц;
  • оперативная память не менее 512 Мб;
  • видеопамять не менее 32 Мб;
  • манипулятор «Мышь».

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


4 Проектирование и разработка программного обеспечения автоматизированной системы библиотеки

4.1 Описание функциональных возможностей системы и взаимодействия ее модулей

Разрабатываемая система предназначена для автоматизации технологических процессов в библиотеке, связанных с учетом библиотечного фонда и обслуживанием читателей. При проектировании системы в нее необходимо заложить следующие функции, приведенные на рисунке 4.1.

Рисунок 4.1 – Функциональная схема приложения

Рассмотрим интерфейсную часть и модульную связность, изображенную на рисунке 4.2.

Рисунок 4.2 – Функциональная схема взаимодействия модулей информационной системы библиотеки

Для обеспечения требуемых функциональных возможностей была разработана архитектура информационной системы библиотеки, содержащая 2 взаимосвязанных модуля.

Модуль работы с читателями наполняет данными БД: книг, читателей и базу данных по учету выдачи/возврата книг в библиотеку.

Модуль работы с сотрудниками, в свою очередь, наполняет все имеющиеся БД данными введенными пользователями.

Эти два модуля соединены с БД взаимно обратной связью, что позволяет модулям обращаться к БД и БД к модулям и вытягивать нужную информацию по определенным требования.

4.2 Формат входных и выходных данных

Как видно из рис. 4.2, входными и выходными данными системы является БД, заполняемая сотрудниками и администратором, состоящая из баз данных, хранящихся в текстовых файлах, подробно описанных ниже.

БД книг – база данных, представленная файлом в txt-формате, хранит информацию о книгах в полях: «Название», «Автор», «Количество», «Жанр».

БД читателей – база данных, представленная файлом в txt-формате, хранит информацию о читателях в полях: «ФИО», «Читательский билет», «Мобильный телефон», «Дополнительная информация».

БД учета выдачи книг – база данных, представлена файлом в txt-формате, хранит информацию о книгах в полях: «Дата возврата», «Дата выдачи», «Сотрудник», «Читатель», «Читательский билет», «Название книги», «Автор», «Количество экземпляров».

БД истории сотрудников – база данных, представленная файлом в txt-формате, хранит информацию об истории работы сотрудников, а именно, о дате и времени их входа/выхода в систему с помощью полей: «Логин», «Дата входа», «Дата выхода».

БД паролей входа – база данных, представленная файлом в txt-формате, хранит информацию о логинах и паролях в хода в систему сотрудников и администратора с помощью полей «Логин» и «Пароль».

4.3 Разработка интерфейса системы, описание реализованных классов

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

Form1 – главная форма, взаимодействующая с остальными формами через кнопки «Выдача книг», «Возврат книг», «Книги в библиотеке», «Читатели», «Админка».

AddBook – форма для добавления, поиска, изменения информации о книге в библиотеке. Форма разделена вертикально на две панели: на левой размещены поля для добавления учётных данных книги, на правой – элементы управления поиском, результат поиска отображается в виде списка книг с возможностью изменить/удалить данные о выбранной книге.

AddLibrian – форма добавления сотрудника в систему библиотеки.

AddReader – форма добавления читателя в систему библиотеки.

AdminForm – форма для работы администратора, в которую можно попасть только если зайти под логином администратора. Содержит доступ к формам «Сотрудники» и «История Работы Сотрудников». Есть функция резервной копии БД и её загрузки в систему библиотеки.

Debtors – форма для возврата книг читателей и выдача штрафа за превышение срока выдачи. Содержит в себе поля для поиска по разным критериям, результат выводится в виде списка.

EditBook – форма для изменения информации о книге.

EditLibrian – форма для изменения информации о сотруднике.

EditReadership – форма для изменения информации о читателе.

HistoryWork – форма истории входов. Содержит список дат входов и выходов каждого сотрудника по его логину с функцией очистки истории по кнопке.

IssueBook – форма для выдачи книг. Содержит элементы управления поиском книги по запросу читателя. Результат выводится в виде списка, содержащего информацию о книгах.

IssueReadship – форма для выдачи книг конкретному читателю. Содержит в себе информацию книге (название книги, автор, количество выданных экземпляров), о дате выдачи книги и сроках её возврата, о выдавшем её сотруднике, а также информацию о читателе (номер его читательского билета, список книг, которые читатель еще не вернул в библиотеку). Реализована возможность поиска по читателям, результат которого выводится в виде списка. Список результата поиска по читателям.

Librarian – форма, которая содержит в себе элементы управления поиском через combobox и поиском по сотрудникам, результат которого выводится в виде списка. Можно вывести данные о найденных сотрудниках. Содержит кнопки вызова форм «Добавить читателя» (AddLibrian) и «Изменить данные читателя» (EditLibrian).

Login – форма, которая является входом в систему библиотеки, необходима для идентификации сотрудника по логину и паролю. Содержит в себе поля для ввода логина и пароля, чек-бокс «Показать/скрыть пароль», а также кнопки «ОК» для входа и «Cancel» – для отмены действий.

ReaderShip – форма, которая содержит в себе элементы управления поиском с помощью combobox и поиском по читателям, результаты которого выводятся в виде списка с возможностью просмотра данных о читателях. Форма снабжена кнопками для вызова форм «Добавить читателя» (AddReader) и «Изменить данные читателя» (EditReadership).

Реализованные в программе классы приведены в таблице 4.1.

Таблица 4.1. Классы, реализованные в программном обеспечении ИС библиотеки

Имя класса

Назначение

GLOBALS

глобальный класс для настроек путей к файлам БД

Valid

класс валидации, содержит в себе функция для определения ошибок при заполнение каких-либо форм

Завершение таблицы - 4.1

Имя класса

Назначение

MultiSearch

класс, в котором реализованы необходимые виды поиска для системы библиотеки по файлам БД

Book

содержит в себе функции удаления, добавления, изменения, поиска книг

Issue

содержит в себе функции удаления из БД возврата книг, выдача штрафа за долг, выдача автоматического штрафа при входе в систему

LigStaff

содержит в себе функции удаления, добавления, изменения, поиска по сотрудникам

Reader

содержит в себе функции удаления, добавления, изменения, поиска по читателям

Log

содержит в себе функции записи в БД истории входов и выходов


5 ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ БИБЛИОТЕКИ

Комплексное тестирование необходимо для поисков несоответствия системы ее исходным целям. Разработанное ПО, благодаря дружественному интерфейсу, позволяет даже неопытному пользователю быстро разобраться в принципе работы системы. На стадии тестирования были проверены все «исключительные» ситуации, которые могут возникнуть при дальнейшем использовании данного программного продукта. В основе обработки «исключительных» ситуаций, были предприняты следующие меры: неверные шаги пользователей будут сопровождаться появлением модальных диалоговых окон с информацией об ошибках пользователя или отключением соответствующих элементов управления. Ниже приведено более детальное описание тестирования.

При попытке зарегистрированного в системе пользователя (сотрудника библиотеки) выдать книгу читателю, за которым числится штраф, система выдаёт сообщение (рис. 6.1) и блокирует действия пользователя по выдаче книг данному читателю.

При регистрации нового читателя в БД библиотеки необходимо заполнить все поля, в противном случае система выдаст сообщения об ошибках. Так, если в поле для заполнения номера телефона менее 12 цифр либо оно не заполнено, появится сообщение, показанное на рисунке 6.2. Если в поле «ФИО» (Фамилия Имя Отчество) не введены данные, то появится соответствующее сообщение (рис. 6.3).

Рисунок 6.1 – Сообщение системы при попытке выдать книгу читателю, за которым числится штраф

Рисунок 6.2 – Сообщение системы об ошибке при некорректном заполнении поля номера телефона читателя

Рисунок 6.3 – Сообщение системы об ошибке при отсутствующих данных в поле «ФИО»

При добавлении информации о книге в БД библиотеки все поля также должны быть заполнены, если же какое-либо поле пропущено, система выдаст сообщение об ошибке (рис. 6.4).

Рисунок 6.4 – Сообщение системы об ошибке в случае незаполненного поля при внесении информации о книге

При оформлении выдачи книг также предусмотрена защита от некорректно введённых данных либо их отсутствии. Так, в поле «Количество экземпляров» сотрудник обязан указать количество книг, которое берет читатель, иначе появится сообщение об ошибке (рис. 6.5). Кроме того, возможна ситуация, когда указано количество экземпляров больше, чем имеется в библиотеке. В этом случае появится сообщение, показанное на рисунке 6.6.

Если в поле «Срок выдачи» была указана дата, которая уже прошла на текущий момент или не в верном формате (требуется указать в последовательности день, месяц, год), система выдаст сообщение об ошибке, изображенное на рисунке 6.7.

Рисунок 6.5 – Сообщение системы об ошибке в случае незаполненного поля «Количество экземпляров»

Рисунок 6.6 – Сообщение системы об ошибке в случае некорректного заполнения поля «Количество экземпляров»

Рисунок 6.7 – Сообщение системы об ошибке в случае некорректно указанной даты возврата книги

Если при оформлении выдачи книг читателю в поле «Читатель» не была внесена информация, система не даст возможность оформить выдачу книги и выдаст сообщение об ошибке, показанное на рисунке 6.8.

При создании администратором новой учётной записи предусмотрена длина пароля не менее 6 символов без использования пробелов, иначе система выдаст сообщение об ошибке (рис. 6.8). Новая учётная запись не будет создана до тех пор, пока пароль не введён корректно.

Рисунок 6.8 – Сообщение системы об ошибке в случае незаполненного поля «Читатель»

Рисунок 6.9 – Сообщение системы об ошибке при создании новой учётной записи в случае некорректного пароля

Если при входе в систему зарегистрированный пользователь ввёл неверный логин или пароль, система выдаст ошибку (рис. 6.10).

Рисунок 6.10 – Сообщение об ошибке при входе в систему в случае неверно введённого логина или пароля зарегистрированного пользователя


6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Запуск программы осуществляется с помощью исполняемого файла Biblioteka.exe. В результате откроется окно авторизации пользователя (рис. А.1). После нажатия на кнопку «Ok» при верно введённых данных откроется главное окно программы, которое содержит следующие кнопки: «Выдача книг», «Возврат книг», «Книги в библиотеке», «Читатели». Если пользователь вошёл под логином администратора, то станет ещё активной кнопка «Админка» (рис. А.2). Далее программа работает по следующим сценариям.

1. Выдача книги читателю. Для этого необходимо кликнуть мышкой на кнопку «Выдача книг» и в открывшемся диалоговом окне «Выдача книг» (рис. А.3) заполнить поля поиска. В появившемся ниже списке, результате поиска, выбрать нужную книгу. Для выбранной книги на панели справа появится описание книги. С помощью щелчка правой кнопки мыши на элементе списка, соответствующем выбранной книге, вызвать контекстное меню, в котором выбрать опцию «Выдать». Появится диалоговое окно «Оформить выдачу книги» (рис. А.4). Выдача книг возможна только читателям, зарегистрированным в БД читателей. Окно оформления выдачи книги содержит элементы управления поиском читателя в БД по читательскому билету, а также поля для ввода информации о книге и сроках выдачи. После заполнения необходимых полей по нажатию на кнопку «Выдать» автоматически вносятся изменения в БД учета выдачи книг.

2. Возврат книги. Для того, чтобы оформить возврат книги, необходимо в главном окне программы (рис. А.2) нажать на кнопку «Возврат книг», после чего появится диалоговое окно, показанное на рисунке А.5, содержащее поля для поиска (по читательскому билету, по названию книги, по автору, по ФИО читателя, по сотруднику). В зависимости от выбранного критерия в нижнюю панель окна выведется результат поиска в виде списка. Записи, выделенные: желтым цветом отображают информацию о тех штрафниках, которые сдали книги, но пока не могут пользоваться услугами библиотеки, красным цветом – о тех штрафниках, за которыми числятся книги. Чтобы информация том, что читатель сдал книгу, попала в БД, достаточно кликнуть на соответствующую запись читателя правой кнопкой мыши и в контекстном меню выбрать пункт «Забрать» либо «Забрать и дать штраф». В любом случае, если читатель просрочил срок сдачи книги, высветится окно с предупреждением о штрафе.

3. Чтобы изменить данные о книге в БД, необходимо в главном окне программы (рис. А.2) нажать кнопку «Книги в библиотеке». Появится диалоговое окно, показанное на рисунке А.6. Оно содержит все поля, необходимые для добавления заполнения/редактирования уже имеющейся информации о книге. Для редактирования данных о книге, которые уже содержатся в БД, организован поиск, результаты которого представлены в виде списка, выведены в специальную панель (рис. А.7). При вызове на требуемом элементе списка контекстного меню и выборе опции «Изменить» появляется диалоговое окно (рис. А.8), содержащее поля, необходимые для ввода информации о книге. При выборе в контекстном меню опции «Удалить» запись о книге в соответствующей базе данных удаляется.

4. Для редактирования БД читателей нужно в пункте главного меню (рис. А.2) нажать на кнопку «Читатели». Появится диалоговое окно (рис. А.9) с элементами управления поиском по личным данным читателя. Результаты поиска выводятся в панель ниже в виде списка. При вызове контекстного меню на элементе списка данные о соответствующем читателе можно изменить или удалить. В первом случае появляется диалоговое окно (рис. А.10), содержащее поля, необходимые для ввода информации о читателе, во втором – запись о читателе в соответствующей базе данных удаляется.

Диалоговое окно «Читатели» (рис. А.9) содержит кнопку «Добавить», по нажатию на которую появляется диалоговое окно с тем же интерфейсом, что и окно для изменения данных о читателе (рис. А.11), куда вносятся данные о новом незарегистрированном читателе с целью добавления данных о нём в БД читателей.

5. Администратор может добавить/удалить учётную запись сотрудника библиотеки, а также просмотреть историю работы сотрудников в системе библиотеки. Для этого необходимо войти в систему под учётной записью администратора и в главном окне программы (рис. А.2) нажать кнопку «Админка». Появится диалоговое окно, показанное на рисунке А.12.

Для просмотра истории работы в системе необходимо нажать кнопку «История Работы», в появившемся диалоговом окне (рис. А.13) выведется список логинов, даты входа и даты выхода сотрудников. Историю можно очистить с помощью специальной кнопки «Очистить историю».

Для изменения учётных записей сотрудников служит кнопка «Сотрудники», по нажатию на которую вызывается окно, показанное на рисунке А.14. В нём содержатся элементы управления поиском, результаты которого выводятся в виде списка в панели «Список сотрудников». Нажатие на элементе списка правой кнопкой мыши вызывает контекстное меню, опция этого меню «Удалить» служит для удаления учётной записи сотрудника, опция «Изменить» – для вызова диалогового окна, показанного на рисунке А.15. и содержащего необходимые поля для внесения данных об учётной записи сотрудника.

Окно, показанное на рисунке А.14, содержит кнопку «Добавить», вызывающую окно для добавления учётной записи сотрудника (рис. А.16). Оно содержит необходимые поля для создания новой учётной записи сотрудника.

Интерфейс окна для работы администратора системы (рис. А.12) содержит элементы, позволяющие сделать копию БД (рис. А.17 б)) и загрузить её (рис. А.17 а)).


ВЫВОДЫ

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

  1. Создание информационных систем библиотек, обладающих интуитивно-понятным интерфейсом, реализующих максимально возможное число библиотечных технологических процессов и операций, которые в принципе поддаются автоматизации, является актуальной и перспективной задачей, решение которой позволит значительно повысить эффективность работы сотрудников.
    1. Для разработки автоматизированной информационной системы библиотеки в качестве языка программирования использовался С#, в качестве компилятора – Microsoft Visual Studio Express 2012.
    2. Разработанная информационная система библиотеки работает в двух режимах, в зависимости от типов пользователей: в режиме сотрудника библиотеки или администратора. Она содержит два взаимосвязанных модуля: модуль работы с читателями, модуль работы с сотрудниками. Через пользовательский интерфейс обеспечивает следующие возможности: создание, загрузка, редактирование и сохранение БД читателей, книг и сотрудников; формирование и просмотр списка должников; многоаспектный поиск данных по различным признакам и их сочетаниям; просмотр истории входов сотрудников.
    3. Тестирование ПО информационной системы библиотеки не выявило несоответствие системы ее исходным целям, ошибок в структуре алгоритма программы, структуре входных и внутренних данных, а также конфликтных ситуаций с другим ПО.

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

Дальнейшее развитие приложения связано с расширением его функциональности.


СПИСОК ССЫЛОК

  1. Общая информация о Microsoft Visual Studio [Электрон. ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Microsoft_Visual_Studio
  2. Работа с формами в Visual Studio C# [Электрон. ресурс]. – Режим доступа: http://csharp-and-i.ru/2011/04/rabota-s-formami-v-visual-studio-c/
  3. Основы работы с файлами и директориями в C# [Электрон. ресурс]. – Режим доступа: http://wladm.narod.ru/C_Sharp/filedir.html
  4. Работа с директориями в С# [Электрон. ресурс]. – Режим доступа: http://wladm.narod.ru/C_Sharp/directoryes.html
  5. Форум C# .NET [Электрон. ресурс]. – Режим доступа: http://www.cyberforum.ru/csharp-beginners/thread632161.html


ПРИЛОЖЕНИЕ А. ЭКРАННЫЕ ФОРМЫ

Рисунок А.1 – Окно авторизации пользователя для входа в приложение

Рисунок А.2 – Главное окно программы

Рисунок А.3 – Окно «Выдача книг»

Рисунок А.4 – Диалоговое окно для оформления выдачи книги читателю

Рисунок А.5 – Диалоговое окно для оформления возврата книги читателем

Рисунок А.6 – Диалоговое окно для редактирования БД о книгах

Рисунок А.7 – Диалоговое окно для изменения данных о книге

Рисунок А.8 – Диалоговое окно для изменения данных о книге

Рисунок А.9 – Диалоговое окно для редактирования БД читателей

Рисунок А.10 – Окно для изменения записи в БД читателей

Рисунок А.11 – Диалоговое окно для добавления нового читателя

Рисунок А.12 – Окно для работы администратора системы

Рисунок А.13 – Окно для просмотра и очистки истории работы сотрудников

Рисунок А.14 – Окно для изменения учётных данных сотрудника

Рисунок А.15 – Окно для изменения учётной записи выбранного сотрудника

Рисунок А.16 – Окно для добавления учётной записи сотрудника

а)

б)

Рисунок А.17 – а) сообщение системы при успешной загрузке копии БД; б) сообщение системы при успешном создании копии БД


ПРИЛОЖЕНИЕ Б. ФРАГМЕНТЫ ЛИСТИНГА

Login.cs – форма входа.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

namespace Biblioteka

{

public partial class Login : Form

{

bool boolPassword = false;

public bool b = false;

string[] ArrayStrings = File.ReadAllLines(@"D:\Librian.txt");

public Login()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

int index = 1;

string[] split;

while (index != ArrayStrings.Length)

{

split = ArrayStrings[index].Split('|');

if (split[1] == textBox1.Text && split[2] == textBox2.Text) { b = true; break; }

index++;

}

if (b == true)

{

Login.ActiveForm.Hide();

Form1 fmr = new Form1(textBox1.Text);

fmr.ShowDialog();

Close();

}

else

{

MessageBox.Show("Wrong login or password! ",

"Error",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

textBox1.Text = "";

textBox2.Text = "";

}

}

private void button2_Click(object sender, EventArgs e)

{

Close();

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

if (boolPassword)

{

textBox2.UseSystemPasswordChar = true;

boolPassword = false;

}

else

{

textBox2.UseSystemPasswordChar = false;

boolPassword = true; ;

}

}

}

}

MultiSearch.cs - класс поиска в библиотеке

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;

namespace Biblioteka

{

class MultiSearch

{

//Мулти поиск.Поиск принимает путь файла, столбец поиска, строку поиска

public string[] Search(string Path, string condition, string strSearch)

{ //флаг который необходим для того случая,если мы ничего не найдем

bool flag = false;

//получаем все строки из Файла Книги в массив строк

string[] ArrayStrings = File.ReadAllLines(Path);

//Создаем массив с результатом поиска

string[] ListView = new string[ArrayStrings.Length];

//Обнуляем созданный массив

for (int i = 0; i < ArrayStrings.Length; i++)

ListView[i] = "null";

int index=-1;//номер столбца поиска

int count = 0;//номер элемента массива ListView

string[] splitString;

//разбиваем строки и ищем необходимый нам столбец,после того как нашли делаем break

string[] splitCondition= ArrayStrings[0].Split('|');

for(int i=0; i<splitCondition.Length;i++)

{

if (splitCondition[i] == condition)

{

index = i;

break;

}

}

//разбиваем на каждой итерации кажду строку массива для того что бы сверить результат поиска.Если Результат найдет то записываем его в массив ListView.Флаг записи включаем

for (int i = 1; i < ArrayStrings.Length; i++)

{

splitString = ArrayStrings[i].Split('|');

if (splitString[index].ToLower() == strSearch.ToLower())

{

flag = true;

ListView[count] = ArrayStrings[i];

count++;

}

}

//Если есть хоть один резльутат поиска то возвращаем результат в виде массива

if(flag) return ListView;

//иначе возвращаем пусто

return null;

}

public string[] SearchTime()

{

string[] splitString;

int count = 0;

string[] ArrayStrings = File.ReadAllLines(GLOBALS.PathIssue);

string[] ListView = new string[ArrayStrings.Length];

for (int i = 0; i < ArrayStrings.Length; i++)

ListView[i] = "null";

for (int i = 1; i < ArrayStrings.Length; i++)

{

splitString = ArrayStrings[i].Split('|');

if (splitString[8] != "00.00.0000")

{

ListView[count] = ArrayStrings[i];

count++;

}

}

return ListView;

}

public string Unique(string Name, string Author)

{

string[] ArrayStrings = File.ReadAllLines(GLOBALS.PathBook);

string ListView = "null";

for (int i = 0; i < ArrayStrings.Length; i++)

{

string[] split = ArrayStrings[i].Split('|');

if (split[0].ToLower() == Name.ToLower() && split[1].ToLower() == Author.ToLower())

{

ListView = ArrayStrings[i];

}

}

return ListView;

}

}

}

Valid.cs – класс валидации в системе библиотека

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Biblioteka

{

class Valid

{

public bool Exists(string s, string[] str)

{

for (int i = 0; i < str.Length; i++)

{

if (str[i] == s) return true;

}

return false;

}

public bool Password(string s)

{

if (s.Contains(' ')) { return false; }

if (6 > s.Length) { return false; }

return true;

}

public bool NumberCompare(string s,int n)

{

char[] str = s.ToCharArray();

for (int i = 0; i < str.Length; i++)

if (!Char.IsNumber(str[i])) return false;

if (n == s.Length) {return true; }

return false;

}

public bool Number(string s)

{

char[] str = s.ToCharArray();

for (int i = 0; i < str.Length; i++)

if (!Char.IsNumber(str[i])) return false;

return true;

}

public bool DateNow(string s)

{

DateTime dtNow = DateTime.Today;

DateTime dtInput = DateTime.ParseExact(s, "dd.MM.yyyy", null);

if (dtNow > dtInput) return false;

return true;

}

}

}

GLOBALS.cs – класс содержащий пути к БД

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Biblioteka

{

//Глобальный класс для некоторых настроек, например для путей к файлам разного назначения

class GLOBALS

{

public static string PathBook = @"d:\Book.txt";//файл с книгами

public static string PathReadership = @"d:\Readership.txt";//файл с читателями

public static string PathLibrian = @"d:\Librian.txt";//файл с сотрудниками

public static string PathIssue = @"d:\return.txt";//файл с возвратом книг

public static string PathLog = @"d:\log.txt";//история входов

public static string Login;

}

}

PAGE \* MERGEFORMAT 2

Разработка Win-приложения для библиотеки, которая позволяло бы осуществлять операции выдачи книг и сдачи книг в соответствии со сроками