Автоматизации библиотечного обслуживания

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Оглавление

Введение

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

1.1 Анализ существующих систем

1.1.1 Национальная библиотека Украины имени Вернадского

1.1.2 Электронная библиотека Наука и Техника

1.1.3 Научно-техническая библиотека ХАИ

1.1.4 Результаты анализа

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

1.3 Сравнительный анализ средств разработки WEB-приложений

1.3.1 Преимущества технологии Java Server Pages

1.3.2. Преимущества технологии PHP

1.3.3. Преимущества технологии ASP. NET

1.3.4 Результаты анализа

2. Разработка моделей

2.1 Карта сайта

2.2 UML диаграммы

2.2.1 Разработка Use Case диаграммы

2.2.2 Разработка диаграммы классов

3. Разработка алгоритмов

3.1 Алгоритмы поиска

3.1.1 Алгоритм поиска по названию книги и методички

3.1.2 Алгоритм поиска по ФИО автора

3.1 Алгоритмы сортировки

4. Инструментальные средства

4.1 Требования к исходным кодам и языкам программирования

4.2 Требования к составу и параметрам технических средств

4.3 Разработка структуры базы данных

Заключение

Список литературы

Приложение, А (листинг программы и экранные формы)

ВВЕДЕНИЕ

web сайт алгоритм программирование

Данная работа направлена на решение вопросов автоматизации библиотечного обслуживания на основе технологии ASP. NET.

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

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

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

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

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

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

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

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

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

1.1 Анализ существующих систем

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

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

1.1.1 Национальная библиотека Украины имени Вернадского

Эта библиотека состоит из трех основных разделов: «Информационные ресурсы», «Интернет-путеводители», «Национальные доклады НАН Украины».

В разделе «Информационные ресурсы» содержаться большое число подразделов, связанных с непосредственной деятельностью библиотеки (Система каталогов, Предоплаченные ресурсы, Реферативная база данных, Электронные научные профессиональные издания, Электронный фонд, Научная периодика Украины, Тематические собрания, Научные учреждения, Аналитические материалы СИАЗ, Научные биографии ученых, Библиотечные новости, Информация о Библиотеке). Следует отметить, что при переходе в некоторые из выше указанных подразделов открывается окно поиска, и дальше пользователь ищет интересующую его информацию в базе данных библиотеки, такая возможность будет реализована и в ниже приведенных разделах.

Раздел «Интернет-путеводители» даёт возможность получить ссылки на самые различные интернет ресурсы. Назначение ресурсов легко можно понять из названий подразделов (Поисковые системы, Органы государственной власти, Библиотеки Украины, Национальные университеты, Национальные библиотеки, Энциклопедии и словари, Электронные библиотеки, Газеты и Интернет-издания).

Раздел «Национальные доклады НАН Украины» в его подразделах содержится информация об острых социально политических аспектах жизни государства (Новый курс: реформы в Украине. 2010−2015, Социально-экономическом состоянии Украины: последствия для народа и государства).

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

Недостатком является нечеткая каталогизация, из-за чего сложно определить в каком разделе находиться необходимая книга.

1.1.2 Электронная библиотека Наука и Техника

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

— реализована возможность работы на нескольких языках;

— разбита на сравнительно небольшое число разделов (Книги, Статьи, Журналы, Нобелевские лауреаты, Подписка, Карта сайта, Аудитория, Награды, Организация, Издания, Для авторов, Для редакторов). Что делает её хорошо структурированной;

— на главной странице реализованы разделы новых поступлений и ссылки на интересные издания;

— существует возможность поиска.

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

1.1.3 Научно-техническая библиотека ХАИ

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

Раздел о библиотеке даёт возможность узнать непосредственно о деятельности библиотеки, разбит на несколько подразделов (О библиотеке, История, Структура библиотеки, Правила библиотеки, Режим работы).

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

Раздел интернет-ресурсы (Полезные ссылки, Патентные ресурсы, Открытый доступ).

Раздел услуги. В подразделах вы сможете найти информацию об услугах, которые предоставляет библиотека (Виртуальная справка, Виртуальные выставки, Системы МБА и ЭДД, Литературная гостиная).

Раздел обменный фонд (Книги в читательском формуляре, Буккроссинг).

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

1.1.4 Результаты анализа

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

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

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

Как было уже сказано ранее, целью этой работы является разработка проекта (и последующая его реализация) электронной библиотеки для малой структуры.

Система должна включать следующие возможности:

— хранить электронные книги:

1) книга;

2) краткое описание.

— хранить электронные методички:

1) методичка;

2) краткое описание.

— добавление и постоянное обновление материалов связанных с учебным процессом:

1) добавление вопросов к модулям и экзаменам:

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

— скачивание электронных книг и методичек

— 1.3 Сравнительный анализ средств разработки WEB-приложений.

На сегодняшний день существует большое количество средств разработки Web-приложений. Предлагаю остановиться на трёх лидерах этого рынка, а именно Java Server Pages (JSP), PHP, ASP. NET.

Рис. 1 Средства разработки Web-приложений

1.3.1 Преимущества технологии Java Server Pages

Преимущества:

— Кросплатформенность

— Разделение ролей.

— Многократно используемые компоненты и библиотеки тэгов.

— Разделение динамического и статического содержимого.

— Поддержка скриптинга и акций.

Недостатки:

— сложность освоения

— неудобства при разработке

— малое количество хостингов

1.3.2 Преимущества технологии PHP

Преимущества:

— Кроссплатформенность

— Широкая распространенность

— Открытый исходный код

— Большое количество готовых решений и библиотек

— Низкая стоимость поддержки приложений

Недостатки:

— Недостаточно развитое ООП

— Несогласованный синтаксис встроенных функций и порядок их параметров

— Отсутствие многопоточности

1.3.3 Преимущества технологии ASP. NET

Преимущества:

— Кроссплатформенность

— Полноценный язык.

— Компиляция программ.

— Идентичность среды разработки и деплоймента.

— Полная поддержка юникода.

— Большое количество стандартных библиотек

— Использование MS SQL очень мощного и удобного инструмента при работе с базами данных

— Поддержка Microsoft

Недостатки:

— большой размер готовой html страницы

— возможны неудобства в работе с Javascript и Ajax

1.3.4 Результаты анализа

Были исследованы самые популярные на сегодняшний день средства разработки Web-приложений. Очевидно, что технология ASP. NET гораздо лучше подходит для решения поставленной задачи. Это обусловлено рядом экономических и технических аспектов. Так как при выборе этой технологии на сторону разработчика становится весь коммерческий аппарат Microsoft. Это же обуславливает и преимущества с технологической стороны вопроса. Более подробный анализ будет приведен в главе № 4 при обосновании выбора инструментальных средств.

2. РАЗРАБОТКА моделЕЙ

2.1 Карта сайта

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

Рис. 2.1 Карта сайта

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

Страница login. aspx (страница авторизации). На ней пользователь может ввести свой логин и пароль для входа в систему под определённой ролью. При нажатии на кнопку входа (при условии что логин и пароль введены верно) пользователь переходит на страницу default. aspx. При нажатии на кнопку регистрации переход происходит на страницу registration. aspx.

Рис. 2.2 Страница входа

Страница registration. aspx (страница регистрации). Здесь пользователь, введя свои данные, может пройти регистрацию. Для этого необходимо правильно заполнить все поля формы (фамилия, имя, логин, пароль, e-mail) и, нажав кнопку, зарегистрироваться, после чего вся информация о нём будет занесена в базу данных, а сам пользователь перейдёт на страницу default. aspx.

Рис. 2.3 Страница регистрации

Страница default. aspx (главная страница). Содержит краткую информацию о кафедре. На ней расположены кнопки с названиями главных разделов библиотеки. При нажатии на эти кнопки можно перейти на соответствующие им страницы, такие как специальная литература (specialliterature. aspx), художественная литература (artliterature. aspx), новости кафедры (news. aspx).

Здесь же реализована функция поиска. Если в специальное окно ввести название книги или Ф.И.О автора, то после нажатия функциональной кнопки произойдёт переход на страницу с результатами поиска search. aspx.

Рис. 2.4 Главная страница

Страница specialliterature. aspx (страница специальной литературы). Содержит ряд разделов, в которых хранится литература и информация о ней. Названия разделов соответствуют названию предметов. Напротив них приведены ФИО преподавателей.

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

Рис. 2.5 Страница специальной литературы

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

Рис. 2.6 Страница предмета

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

Рис. 2.7 Страница художественной литературы

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

Рис. 2.8 Страница жанра

Страница news. aspx (страница новостей). Здесь пользователь может узнать о последних новостях из жизни кафедры. Посмотреть даты готовящихся мероприятий. Реализована навигационная панель.

Рис. 2.9 Страница новостей

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

Рис. 2. 10 Страница поиска

2.2 UML диаграммы

UML (Unified Modeling Language -- унифицированный язык моделирования) -- язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем.

Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.

Также он позволяет разработчикам программного обеспечения достигнуть соглашения в графических обозначениях. Для этого выработано представление общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение). В результате можно больше сконцентрироваться на проектировании и архитектуре.

После анализа UML были выделены его основные преимущества:

— UML объектно-ориентированный, в результате чего методы описания результатов анализа и проектирования семантически близки к методам программирования на современных объектно-ориентированных языках;

— UML позволяет описать систему практически со всех возможных точек зрения и разные аспекты поведения системы;

— Диаграммы UML сравнительно просты для чтения после достаточно быстрого ознакомления с его синтаксисом;

— UML расширяет и позволяет вводить собственные текстовые и графические стереотипы, что способствует его применению не только в сфере программной инженерии;

— UML получил широкое распространение и динамично развивается.

2.2.1 Разработка Use Case диаграммы

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

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

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

Рис. 3 Use Case диаграмма

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

Как видно из разработанной диаграммы система рассчитана на три вида пользователей («актёров») с разными уровнями доступа: преподаватель, студент, модератор.

Студент обладает правами просмотра, поиска и скачивания данных с сервера.

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

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

Следует отметить, что, по сути, все преподаватели являются администраторами системы.

Разработка этой диаграммы решила следующие задачи:

— определены общие границы и контекст моделируемой предметной области;

— сформулированы общие требования к функциональному поведению проектируемой системы;

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

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

2.2.2 Разработка диаграммы классов

Центральное место в объектно-ориентированном программировании занимает разработка логической модели системы в виде диаграммы классов. Диаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывать их внутреннюю структуру и типы отношений.

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

Прежде чем приступать к разработке диаграммы следует понимать, что такое класс в языке UML. Он служит для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами других классов, разновидности отношений приведены в таблице (рис 13). Графически класс изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции. В этих разделах могут указываться имя класса, атрибуты (переменные) и операции (методы).

Рис. 4 Мощность отношений

Рис. 5 Диаграмма классов

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

Гость. У этого класса одна операция (просмотр). Служит для просмотра данных библиотеки. Связь от одного ко многим с классом «данные библиотеки». Атрибутов нет.

Студент. Атрибуты это информация о студенте (фамилия, имя, e-mail), а операции это скачивание и поиск. Связан с классами «вход в систему» и «литература», а также с классом «гость» (по принципу наследования), благодаря чему ему доступна операция просмотра.

Модератор. Атрибуты это информация о модераторе (id, имя, фамилия, логин, пароль, e-mail). Связан с классом «редактирование х/л» (связь один ко многим), а также с классом «студент» (принцип наследования), что позволяет наследовать операции студента и гостя (просмотр, скачивание, поиск).

Преподаватель. Атрибуты это информация о преподавателе (id, имя, фамилия, e-mail), связан с классом «редактирование с/л» (связь один ко многим) и с классом «модератор» (показывает наследование) соответственно по принципу описанному выше он наследует все операции и свойства модератора.

Вход в систему. Операции это авторизация. При входе в систему пользователи получают свои права доступа (Студент — простой пользователь, модератор — назначенный из числа студентов, преподаватель — обладающий правами администратора). Атрибутов нет.

Данные библиотеки. Операции это получение данных (получает данные от класса «литература», передавая их запрашивающему гостю). Связан с классом «литература» (связь один ко многим)

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

Художественная литература. Атрибуты это информация о книгах (автор, жанр, название книги). Связана с классом «< перечисление> жанры» (связь один к одному)

< перечисление> Жанры. Класс перечисления жанров не имеет атрибутов и операций (по сути это список имеющихся жанров).

Редактирование х/л. Не обладает операциями и атрибутами. Связан с классом «художественная литература» (связь от многого к одному) и с интерфейсным классом редактирования «„interface“ редактирование».

Специальная литература. Атрибуты это информация о предметах, книгах и методичках (предмет, название методички, название книги, автор) связан с классом «< перечисление> предметы» (связь от одного к одному).

< перечисление> Предметы. Не обладает операциями и атрибутами (по сути это перечисление существующих предметов)

Редактирование с/л. Класс редактирования связан с классом «специальная литература» (связь от много к одному) и интерфейсным классом редактирования «„interface“ редактирование» (по тому же принципу что и класс «редактирование х/л»).

«interface» Редактирование. Операции это удаление, добавление, изменение. Суть заключается в том, что модератор, делая запрос через класс «редактирование х/л,» может редактировать класс «художественная литература». В свою очередь преподаватель, делая запрос через класс «редактирование с/л,» может производить те же операции с классом «специальная литература». Это сделано для того что бы каждый мог работать с данными библиотеки в соответствии со своим уровнем доступа.

3. Разрабока Алгоритмов

3.1 Алгоритмы поиска

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

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

В этой работе рассмотрены два возможных критерия поиска:

— Поиск по названию книги или методички

— Поиск по ФИО Автора.

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

— Алгоритм Гровера GSA (Grover search algorithm) -- быстрый квантовый алгоритм решения задачи перебора, то есть нахождения решения уравнения (1)f (x) = 1 где f есть булева функция от n переменных. Предполагается, что функция f задана в виде черного ящика, или оракула, то есть в ходе решения мы можем только задавать оракулу вопрос типа: «чему равна f на данном x», и после получения ответа использовать его в дальнейших вычислениях). То есть задача решения уравнения (1) является общей формой задачи перебора; здесь требуется отыскать «пароль к устройству f», что классически требует прямого перебора всех N = 2n вариантов.

— Поиск A* в информатике и математике, алгоритм поиска по первому наилучшему совпадению на графе, который находит маршрут с наименьшей стоимостью от одной вершины (начальной) к другой (целевой, конечной). Порядок обхода вершин определяется эвристической функцией «расстояние + стоимость» (обычно обозначаемой как f (x)). Эта функция -- сумма двух других: функции стоимости достижения рассматриваемой вершины (x) из начальной (обычно обозначается как g (x) и может быть как эвристической, так и нет) и эвристической оценкой расстояния от рассматриваемой вершины к конечной (обозначается как h (x)). Функция h (x) должна быть допустимой эвристической оценкой, то есть не должна переоценивать расстояния к целевой вершине. Например, для задачи маршрутизации h (x) может представлять собой расстояние до цели по прямой линии, так как это физически наименьшее возможное расстояние между двумя точками.

— Алгоритм поиска по ключевым словам именно он был выбран для решения поставленной задачи. Не самый быстрый, но очень простой в реализации.

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

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

Ниже алгоритм приведен в виде блок-схемы.

Рис. 6 Алгоритм поиска по ключевым словам

3.1.1 Алгоритм поиска по названию книг и методичек

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

Рис. 7 Алгоритм поиска по названию книги и методички

3.1.2 Алгоритм поиска по ФИО автора

Этот алгоритм реализуется схожим образом с предыдущем. Точно также когда он начинает выполнятся, происходит запрос на сервер по всем книгам и методичкам написанных заданным автором (ФИО которого было введено в поле поиска). Он, как и в предыдущем случае, выполняется по алгоритму поиска ключевых слов. После того как выбраны все совпадения, на странице поиска отображаются все поля соответствующие критериям выбора (названия книг и методичек написанных заданным автором) и алгоритм завершается. Ниже он представлен в виде блок-схемы.

Рис. 8 Алгоритм поиска по ФИО автора

3.2 Алгоритмы сортировки

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

Алгоритмы сортировки оцениваются по скорости выполнения и эффективности использования памяти:

Время -- основной параметр, характеризующий быстродействие алгоритма. Называется также вычислительной сложностью. Для упорядочения важны худшее, среднее и лучшее поведение алгоритма в терминах мощности входного множества A. Если на вход алгоритму подаётся множество A, то обозначим n = | A |. Для типичного алгоритма хорошее поведение -- это O (n log n) и плохое поведение -- это O (n*n) идеальное поведение для упорядочения -- O (n).

Память -- ряд алгоритмов требует выделения дополнительной памяти под временное хранение данных. Как правило, эти алгоритмы требуют O (log n) памяти. При оценке не учитывается место, которое занимает исходный массив и независящие от входной последовательности затраты, например, на хранение кода программы (так как всё это потребляет O (1)). Алгоритмы сортировки, не потребляющие дополнительной памяти, относят к сортировкам на месте.

Также существует классификация алгоритмов сортировки:

— Устойчивость -- устойчивая сортировка не меняет взаимного расположения равных элементов.

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

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

Ещё одним важным свойством алгоритма является его сфера применения. Здесь основных типов упорядочения два:

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

— Внешняя сортировка оперирует с запоминающими устройствами большого объёма, но с доступом не произвольным, а последовательным (упорядочение файлов), т. е. в данный момент мы 'видим' только один элемент, а затраты на перемотку по сравнению с памятью неоправданно велики. Это накладывает некоторые дополнительные ограничения на алгоритм и приводит к специальным методам упорядочения, обычно использующим дополнительное дисковое пространство. Кроме того, доступ к данным на носителе производится намного медленнее, чем операции с оперативной памятью.

Основываясь на этих критериях, для рассматриваемого случая был выбран алгоритм сортировки пузырьком. Он очень прост и используется, как правило, только в учебных целях, но для решаемой задачи подходит. Его сложность O (n*n).

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

Булевая переменная t используется для того, чтобы определить, был ли произведён хотя бы один обмен на очередной итерации внешнего цикла. Алгоритм останавливается, когда таких обменов не было.

Можно показать, что для сортировки требуется сделать не более n? 1 итераций внешнего цикла, поэтому в некоторых реализациях внешний цикл всегда выполняется ровно n? 1 или n раз, и не отслеживается, были ли обмены или нет на каждой итерации.

Алгоритм можно немного улучшить следующими способами:

— Внутренний цикл можно выполнять для j = 1,2,…, n? i, где i -- номер итерации внешнего цикла (нумерация с единицы), так как на i-й итерации последние i элементов массива уже будут правильно упорядочены.

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

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

Возьмём массив с числами «5 1 4 2 8» и отсортируем значения по возрастанию, используя сортировку пузырьком. Выделены те элементы, которые сравниваются на данном этапе.

Первый проход:

(5 1 4 2 8) (1 5 4 2 8), Здесь алгоритм сравнивает два первых элемента и меняет их местами.

(1 5 4 2 8) (1 4 5 2 8), Меняет местами, так как 5 > 4

(1 4 5 2 8) (1 4 2 5 8), Меняет местами, так как 5 > 2

(1 4 2 5 8) (1 4 2 5 8), Теперь, ввиду того, что элементы стоят на своих местах (8 > 5), алгоритм не меняет их местами.

Второй проход:

(1 4 2 5 8) (1 4 2 5 8)

(1 4 2 5 8) (1 2 4 5 8), Меняет местами, так как 4 > 2

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

Теперь массив полностью отсортирован, но алгоритм не знает так ли это. Поэтому ему необходимо сделать полный проход и определить, что перестановок элементов не было.

Третий проход:

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

Теперь массив отсортирован и алгоритм может быть завершён.

4. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА

4.1 Требования к исходным кодам и языкам программирования

Система должна быть реализована при помощи технологии ASP. NET 4.0. В качестве интегрированной среды следует использовать MS Visual Studio 2008.

Серверная часть должна быть реализована на языке ms-sql .В качестве интегрированной среды разработки нужно использовать MS Managed Studio Express 2005.

Выбор этих средств обусловлен рядом преимуществ. Основные из них приведены ниже.

Надежность сайта. Для современного бизнеса, где простой в несколько часов может привести к очень большим убыткам и потере деловой репутации, надежность и устойчивость к атакам Internet-сайта имеет огромное значение. Технология ASP. NET имеет встроенную защиту от многих видов хакерских атак на web-сайта: XSS, SQL Injection, DDoS, переполнение буфера, изменение скрытых полей и многие другие. Сайты, построенные на технологии ASP. NET, имеют очень высокую устойчивость к различным видам атак и вредоносных действий.

Скорость работы и производительность сайта. Технология ASP. NET построена таким образом, что все страницы и программный код компилируются. К примеру, в PHP код интерпретируется, что значительно медленнее. Использование сторонних продуктов, таких как Zend и PHP accelerator, не дает такого же эффекта по производительности, особенно при активном использовании концепции ООП при разработке сайта. В ASP. NET встроена возможность работы сайта на серверном кластере, что обеспечиваем масштабируемость сайта при увеличении посещаемости.

Интеграция с другими информационными системами и приложениями. ASP. NET является частью платформы Microsoft. NET, в которую уже встроено множество технологий для интеграции различных приложений и информационных систем, таких как web-службы, WCF, WS-*, MSMQ, remoting, JSON, XML и многие другие. Такое многообразие решений позволяет выбрать для каждого случая оптимальную технологию, обеспечивающую наилучшую производительность, безопасность и масштабируемость.

Высокая скорость разработки. Разработка на ASP. NET осуществляется в среде Microsoft Visual Studio 2008, являющейся одним из самых лучших средств. Microsoft Visual Studio 2008 ускоряет и упрощает создание web-приложений т.к. использует усовершенствованный конструктор web-форм, богатый набор стандартных и коммерческих элементов управления и поддержку ASP. NET AJAX. Visual Studio интегрируется со средствами коллективной разработки Team Foundation Server и SourceSafe для эффективной организации взаимодействия и совместной работы группы, повышения качества создаваемого программного обеспечения и обеспечения наглядность процесса разработки и управления жизненным циклом приложений. Использование встроенного модульного тестирования повышает надежность и безопасность приложений. Microsoft Visual Studio 2008 имеет встроенную поддержку новейших технологий AJAX, Silverlight, Windows Presentation Foundation, Windows Communications Foundation и Windows Workflow Foundation.

Существует несколько заблуждений об ASP. NET. Во-первых, то, что это очень дорого из-за необходимости использования платного программного обеспечения как на хостинге, так и при разработке программ. В действительности стоимость Windows-хостинга уже почти сравнялась с хостингом Linux. Разработчики также не обязательно должны использовать платные инструменты, существует, например, бесплатный Visual Web Developer, ограничения которого — невозможность использования для написания программ под Windows (что не является необходимостью для Web-проэктов) и невозможность компиляции программ (сайт будет автоматически откомпилирован на хостинге, при первой загрузке страниц). Во-вторых, то, что asp. net сайты медленно работают. Они работают достаточно быстро, если квалифицированно разработаны, медленно страницы загружаются только в первый раз, если для них требуется компиляция.

4.2 Требования к составу и параметрам технических средств

В состав технических средств должен входить IBM-совместимый персональный компьютер (ПК), отвечающий системным требованиям для установки и эксплуатации платформой Microsoft. NET Framework 3. 5:

— Поддерживаемые операционные системы: Windows Server 2003; Windows Server 2008; Windows XP; Процессор: Pentium с тактовой частотой от 1 ГГц и более.

— ОЗУ: от 256 МБ.

— Жесткий диск: может потребоваться до 100 Мб дискового пространства для установки программы и всех её компонентов.

— Экран: разрешение от 800×600, 256 цветов и более.

— СУБД MS SQL Server 2005 или выше

4.3 Разработка структуры базы данных

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

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

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

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

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

Рис. 18 Структура базы данных

Ниже приведено описание разработанной структуры базы данных. А именно названия таблиц, названия полей, их типы и описание.

Prepodavatel. Содержит данные о преподавателе необходимые для его авторизации и определения прав доступа. Они хранятся в следующих полях:

ID — тип int. Идентификационный номер преподавателя

Name — тип varchar (50). Содержит имя преподавателя

Sername — тип varchar (50). Содержит фамилию преподавателя.

Login — тип varchar (50). Содержит логин преподавателя

Pasword — тип varchar (50) Содержит пароль преподавателя

E-mail — тип varchar (50) Содержит e-mail преподавателя

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

Student. Содержит данные о студенте необходимые для его авторизации и определения прав доступа. Они хранятся в следующих полях:

ID — тип int. Идентификационный номер студента

Name — тип varchar (50). Содержит имя студента

Sername — тип varchar (50). Содержит фамилию студента

Login — тип varchar (50). Содержит логин студента

Pasword — тип varchar (50) Содержит пароль студента

E-mail — тип varchar (50) Содержит e-mail студента

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

Litirature. Содержит в себе информацию литературе. Состоит из следующих полей:

ID — тип int. Идентификационный номер (служит для обращения).

LitiratureType — тип varchar (50). Содержит информацию о типах литературы

Cвязана с таблицами «Predmet» и «Genre», связь один ко многим, так как один из типов взаимодействует либо с большим количеством жанров либо с большим количеством предметов.

Genre. Содержит в себе информацию о жанрах. Состоит из следующих полей:

ID — тип int. Идентификационный номер (служит для обращения)

NameGenre — тип varchar (50). Содержит название жанров

Cвязана с таблицей Autor, связь один ко многим, так как один жанр может соответствовать нескольким авторам.

Predmet. Содержит в себе поля с информацией о предмете. Состоит из следующих полей:

ID — тип int. Идентификационный номер (служит для обращения)

NamePredmet — тип varchar (50). Содержит название предмета

FIO — тип varchar (50). Содержит Ф.И.О преподавателя

NameMetod — тип varchar (50). Содержит название методички

BookName — тип varchar (50). Содержит название книги

Autor. Содержит в себе поля с информацией авторе. Состоит из следующих полей:

ID — тип int. Идентификационный номер (служит для обращения)

FIO — тип varchar (50). Содержит Ф.И.О автора

BookName — тип varchar (50) Содержит название книги

ЗАКЛЮЧЕНИЕ

В рамках данной курсовой работы было спроектировано Web — приложение, предназначенное для упрощения работы с учебными пособиями, а также предоставляющее новые возможности студентам и преподавателям по их редактированию и доступа к ним. По сути была создана электронная библиотека. Для хранения данных была использована технология SQL Server. А связь с ней осуществлялась при помощи технологии ASP. NET. Основной особенностью Web-службы является способность участников взаимодействовать друг с другом даже при использовании ими различных информационных систем. Также Web-службы зависят от способности предприятий использовать различные вычислительные платформы для взаимодействия друг с другом. Это требование делает платформу. NET Framework, программы в которой являются переносимыми, естественным выбором для разработки Web-служб.

СПИСОК ЛИТЕРАТУРЫ

1. С. И. Дворецкий, Ю. Л. Муромцев, В. А. Погонин, А. Г. Схиртладзе — Моделирование систем, Академия, 2009 г

2. В. Д. Мятлев, Л. А. Панченко, Г. Ю. Ризниченко, А. Т. Терехин — Теория вероятностей и математическая статистика. Математические модели, Академия, 2009 г.

3. Пол Нильсен — SQL Server 2005 Библия пользователя, Москва, Санкт-Петербург, Киев 2008 г.

4. Д. Рейли — Создание приложений ASP. NET, Москва 2006 г.

Стивен Смит — ASP. NET в примерах, Москва 2006 г.

5. Ю. Е. Купцевич — Альманах программиста, Москва 2008 г.

6. Метью Мак-Дональд, Марио Шпушта. Microsoft ASP. NET 2.0 с примерами на C# 2005 для профессионалов, Москва, Санкт-Петербург, Киев 2006 г.

7. Jesse Liberty — Programming C#, O’Reilly 2008 г.

8. Адамовский Д. В. Новейшие автоматизированные библиотечные системы России [Текст] /Д.В. Адамовский. — СПб., 2007

9. Александрова М. В. — Электронный каталог в системе каталогов библиотеки.

10. Анурина Т. М. — формирование информационной культуры студентов Университетская книга. — 2007.

11. Гончаров М. В. О стратегии развития библиотечных Интернет — серверов НТВ.- 2009.

12. Дворкина М. Я. Библиотечное обслуживание в вузе: проблемы и новые ориентиры Екатеринбург, 2009.

13. Еременко Т. В. Информационная культура студентов: вузовские библиотеки Университетская книга. — 2009.

14. Рощин А. Л. Автоматизация библиотек на современном этапе. — М., 2006

ПРИЛОЖЕНИЕ, А (ЛИСТИНГИ И ЭКРАННЫЕ ФОРМЫ)

Листинг № 1

< %@ Page Language="C#" AutoEventWireup="true" CodeBehind="Vhod. aspx. cs" Inherits="Kursovoy. Vhod" %>

< !DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http: //www. w3. org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

< html xmlns="http: //www. w3. org/1999/xhtml" >

< head runat="server">

< title>Untitled Page< /title>

< style type="text/css">

. style1

{

width: 100%;

height: 118px;

}

. style2

{

width: 151px;

}

< /style>

< /head>

< body>

< form id="form1″ runat="server">

< div>

& nbsp;                                                              

Электронная Библиотека Кафедры № 302

< br />

& nbsp;    

< asp: ValidationSummary ID="ValidationSummary1″ runat="server"

ShowMessageBox="True" />

< /div>

< table class="style1">

< tr>

< td class="style2">

Логин: </td>

< td>

< asp: TextBox ID="txtLogin" runat="server"> </asp:TextBox>

< asp: RequiredFieldValidator ID="RequiredFieldValidator1″ runat="server"

ControlToValidate="txtLogin" ErrorMessage="Введите логин"> *</asp:RequiredFieldValidator>

< /td>

< /tr>

< tr>

< td class="style2">

Пароль: </td>

< td>

< asp: TextBox ID="txtPasword" runat="server"> </asp:TextBox>

< asp: RequiredFieldValidator ID="RequiredFieldValidator2″ runat="server"

ControlToValidate="txtPasword" ErrorMessage="Введите пароль"> *</asp:RequiredFieldValidator>

< /td>

< /tr>

< tr>

< td class="style2">

< asp: Button ID="btnInput" runat="server" onclick="btnInput_Click1″</p><p>Text="Вход" />

< /td>

< td>

< asp: Button ID="btnReg" runat="server" Text="Регистрация"

CausesValidation="False" onclick="btnReg_Click"/></p><p></td></p><p></tr></p><p></table></p><p></form></p><p></body></p><p></html></p><p>using System;</p><p>using System. Collections;</p><p>using System.Configuration;</p><p>using System. Data;</p><p>using System.Linq;</p><p>using System. Web;</p><p>using System.Web.Security;</p><p>using System. Web. UI;</p><p>using System.Web.UI.HtmlControls;</p><p>using System. Web. UI. WebControls;</p><p>using System.Web.UI.WebControls.WebParts;</p><p>using System. Xml. Linq;</p><p>namespace Kursovoy</p><p>{</p><p>public partial class Vhod:System.Web.UI.Page</p><p>{</p><p>protected void Page_Load(object sender,EventArgs e)</p><p>{</p><p>}</p><p>protected void btnInput_Click1(object sender, EventArgs e)</p><p>{</p><p>Page.Response.Redirect(@"~Default. aspx");

}

protected void btnReg_Click (object sender, EventArgs e)

{

Page. Response. Redirect (@"~Registracij. aspx");

}

}

}

Экранная форма № 1

При нажатии на кнопку входа (при условии что логин и пароль введены верно) пользователь переходит на страницу отображённую на экранной форме № 2. При нажатии на кнопку регистрации переход происходит на страницу отображенную на экранной форме № 3.

Листинг № 2

< %@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default. aspx. cs" Inherits="Kursovoy. _Default" %>

< !DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http: //www. w3. org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

< html xmlns="http: //www. w3. org/1999/xhtml" >

< head runat="server">

< title>Untitled Page< /title>

< style type="text/css">

. style1

{

width: 100%;

height: 540px;

}

. style3

{

width: 133px;

height: 304px;

}

. style4

{

height: 304px;

}

. style6

{

height: 304px;

width: 398px;

}

. style7

{

width: 133px;

height: 47px;

}

. style8

{

width: 398px;

height: 47px;

}

. style9

{

height: 47px;

}

. style10

{

width: 133px;

height: 46px;

}

. style11

{

width: 398px;

height: 46px;

}

. style12

{

height: 46px;

}

< /style>

< /head>

< body>

< form id="form1″ runat="server">

< div>

& nbsp;                                                                         

ПоказатьСвернуть
Заполнить форму текущей работой