На сегодняшний день, стремительно развиваются информационные технологии, которые улучшают условия жизни людей. Значительно повышается уровень знаний, в связи с этим становится необходимым эффективно организовывать, сохранять и управлять доступом к ним.
Курсовая работа посвящена разработке приложения «Учет книг», являющейся оболочкой для работы с базой данных литературы и данных о студентах. Приложение должно предоставлять пользователю средства для просмотра базы литературы, ее редактирования и поиска по базе.
Базами данных называется набор логически связанных данных, который предназначен для удовлетворения информационных потребностей организации. Для решения, поставленного в курсовой работе задания, необходимо освоить проектирование баз данных, работу с базами данных в выбранной среде программирования.
В настоящее время все программное обеспечение ПК рассчитано, на применение операционной системы Windows. Поэтому данную программу целесообразно написать на языке программирования С++ Builder, предварительно спроектировав базу данных в системе управления базами данных.
Среда разработки С++ Builder предоставляет разработчику поистине великолепный набор простых в использовании инструментов, позволяющих быстро разрабатывать сложные проекты, создавая приятный и удобный пользовательский интерфейс. В этой среде очень просто работать с любым современным сервером баз данных, для которого есть соответствующий драйвер.
Системы управления базами данных – это основа построения информационных систем, которые используются при автоматизации всех сфер деятельности.
При решении поставленной задачи необходимо определить, как хранить информацию и как ее обрабатывать.
Классы С++ Builder предоставляют прекрасный механизм для создания библиотеки структур данных. В стандарт С++ Builder входит собственная встроенная библиотека классов-контейнеров. Она называется Стандартной библиотекой шаблонов. Она может использоваться для хранения и обработки данных.
Контейнер – способ организации хранения данных. Они подключаются к программе с помощью шаблонных классов, а значит, можно легко изменять тип хранимых в них данных. Рассмотрим достоинства и недостатки некоторых контейнеров.
Векторы – последовательный контейнер. Занимается автоматическим размещением себя в памяти, расширением и сужением своего размера по мере вставки или удаления данных. Случайный доступ (по индексу), вставка и изъятие данных из хвоста выполняется очень быстро. Медленная вставка и изъятие данных из середины.
Контейнер под названием список представляет собой дважды связный список, в котором каждый элемент хранит указатель на соседа слева и справа. Контейнер содержит адрес первого и последнего элементов, поэтому доступ к обоим концам списка осуществляется очень быстро. Медленный случайный доступ.
Очередь с двухсторонним доступом представляет собой нечто похожее и на вектор, и на связный список. Как и вектор, этот тип контейнера поддерживает производный доступ. Как и к списку, доступ может быть получен к началу и к концу очереди. Для векторов и двухсторонних очередей память резервируется по-разному. Вектор всегда занимает смежные участки памяти. Поэтому при его разрастании резервируется новый участок памяти, где контейнер может разместиться целиком. С другой стороны, очередь с двухсторонним доступом может размещаться в нескольких сегментах памяти, не обязательно смежных. В этом есть и плюсы, и минусы. Очередь практически всегда будет гарантированно размещена в памяти, но доступ к сегментированным объектам всегда осуществляется с более медленной скоростью.
Для создания структуры данных будем использовать классы. Необходимо будет создать класс, содержащий всю необходимую информацию о литературе и данных о студентах. Эту информацию будем хранить в бинарном файле. Использование для этих целей форматированного файлового ввода/вывода нецелесообразно: дополнительные трудности при обработке файла при большом количестве данных.
Обращаться к файлу необходимо будет два раза. Первый раз при запуске программы – для чтения информации из файла в оперативную память, второй – при закрытии ее для сохранения данных в файле. Поэтому необходимо использовать объекты ifstream и ofstream, а не объект fstream. Используемые объекты будут связаны с одним и тем же файлом, поэтому один поток должен быть закрыт до того, как откроется второй. Для этого будем использовать метод close().
В оперативной памяти данные будут размещены в виде динамической структуры данных. Так как информация хранится в классах, то элементом этой структуры является экземпляр класса. Использование для этих целей последовательного контейнера – вектор обусловлено следующим:
- пользователю необходимо предоставлять информацию о любой выбранной им литературе, вне зависимости от места ее расположения (в конце или в начале структуры);
- необходима быстрая вставка данных в конец структуры;
- обращение к элементам должно осуществляться по индексу.
При добавлении, удалении информации необходимо предусмотреть отмену последовательности действий. Пользователь должен иметь возможность отменить действия, которые он совершил при работе с программой. Чтобы это реализовать, необходимо сохранять информацию проделанных пользователем действий. То есть о том, что пользователь добавил, удалил. После закрытия программы данную информацию необходимо удалить, поэтому сохранять ее в файле нет необходимости. Отмена последовательности действий должна производиться в обратном порядке. Первое совершенное действие должно отмениться последним, а последнее первым.
Для решения поставленной задачи был разработан класс Book, в котором хранится структура со следующими полями:
- fio (ФИО студента);
- faculty (факультет студента);
- group (группа студента);
- lit (название книги);
- dBook (срок сдачи книги).
Разработанный класс в дальнейшем будет решать ряд задач на примере хранения данных в файле, добавления, изменения, удаления данных. Создание файла с указанием его названия, удаление созданного файла, отображение существующих данных, отображение студентов, у которых присутствуют задолженности по сдаче литературы, поиск и вывод информации о студентах по заданной книге.
Для решения поставленной задачи был разработан класс Person, который содержит в себе информация о литературе и данных о студентах. Данный класс позволяет производить различные операции, такие как вывод литературы, на экран, добавление новой книги и информации к ней, удаление литературы и др. У этого класса присутствует большое количество методов и атрибутов. Рассмотрим этот класс, его методы и атрибуты.
Также был создан класс uMain, который предназначен для обработки всех поставленных задач. На главное форме программы расположены компоненты, выполняющие различные функции, которые описаны в классе uMain. Например, для создания файла в первую очередь необходимо объявить переменную, в которой будет храниться название файлу и переменную, в которой будет храниться длина структуры класса Book. После чего непосредственно переходим к созданию обработчика «btnCreateFileClick()». Код обработчика представлен ниже.
4. ОПИСАНИЕ АЛГОРИТМОВ РЕШЕНИЯ ЗАДАЧИ
Схема алгоритма программы представлена на рисунке 4.1. Описание алгоритмов решения задачи будет выполняться в форме последовательных шагов (1-ый шаг начало программы, 2-ой шаг объявление переменных и т.д.).
Разработанная программа предназначена для учета книг. Она позволяет:
- хранить информацию о книгах и данных о студентах;
- просматривать литературу и информацию к ней;
- добавлять, изменять, удалять книги;
- отображать студентов, у которых присутствую задолженности по сдаче книг.
К достоинствам данной программы можно отнести:
- удобный пользовательский интерфейс и простота в обращении;
- не требует как-либо дополнительных знаний от пользователя;
- разработанная программа не требовательна к ресурсам компьютера;
- возможность хранить информацию о большом количестве книг.
Для запуска программы необходимо запустить файл Project1.exe. В папке с данным файлом должны находиться файл book.txt, содержащий информацию следующую информацию:
- ФИО студента;
- факультет;
- группа;
- название книги;
- срок сдачи.
При отсутствии данных файлов, предусмотрена возможность создания файла вручную через пользовательский интерфейс программы.
Данная программа продемонстрировала хорошую работоспособность. Имеет интуитивно понятный интерфейс и не должна вызывать затруднений в работе конечного пользователя. Для корректной работы исполняемый файл должен находиться в каталоге с программой.
Объектно-ориентированный подход к проектированию базируется на представлении конкретной сферы задачи в виде большого количества моделей для независимой от языка создания системы программы на основе ее прагматики. В базе объектно-ориентированного языка программирования заложены два главных понятия: объект и класс.
Объектом является определяемая опознаваемая сущность, которая имеет необходимо действующее назначение в конкретной области. Классом в объектно-ориентированном программировании является абстрактный тип данных, состоящий из данных, функций и процедур.
Современный объектно-ориентированный язык состоит из следующего набора синтаксических средств:
- объявление классов с полями и методами;
- механизм расширения класса;
- полиморфные переменные и параметры функций;
- полиморфное поведение экземпляров классов.
Любая организация или в отдельности взятый человек нуждается в своевременном доступе к информации. Ценность информации в современном мире очень высока. Роль распорядителей информации в современном мире чаще всего выполняют базы данных.
Базы данных обеспечивают надежное хранение информации, структурированном виде и своевременный доступ к ней. Практически любая современная организация нуждается в базе данных, удовлетворяющей те или иные потребности по хранению, управлению и администрированию данных.
СКРИНШОТЫ РАБОТЫ


