База данных, запросы, сортировка и фильтрация, добавление и удаление дисков.
Целью курсовой работы является разработка автоматизированного рабочего места для продавца компакт дисков, в среде Borland C++ Builder.
Объект исследования - магазин по продажи компакт дисков.
Предмет исследования - процесс учета продукции в магазине.
Результатом моей курсовой работы является приложение c графическим интерфейсом на языке С++, реализующее работу с базой данных. Данное приложение может считаться полноценной программой со свойственными ей основными операциями. Программа позволяет сортировать, фильтровать, добавлять новые записи и удалять существующие.
Содержание
Введение
1. Описание предметной области
1.1 Общие положения
1.2 Сведения из теории
1.2.1 Классификация баз данных
1.2.2 Форма - Form
1.2.3 Свойства компонента Edit (поле редактирования текста)
1.2.4 Свойства компонента Label (поле вывода текста)
1.2.5 Свойства компонента DBGrid
1.2.6 Свойства компонента CheckBox
1.2.7 Свойства компонента Button
1.2.8 Свойства компонента TTabSheet
1.3 Постановка задачи
1.3.1 Название и назначение разрабатываемого приложения
1.3.2 Спецификация входных и выходных данных
1.3.3 Обоснование выбора средства программирования
1.3.4 Требования к аппаратной части и ПО
2. Технология разработки приложения
2.1 Макет приложения
2.1.1 Описание экранных форм
2.1.2 Описание файлов проекта
2.2 Описание программы
2.3 Результаты работы программы
3. Руководство пользователя
Заключение
Список использованных источников
Приложения
Введение
Современные информационные технологии - это методы и средства для сбора, хранения, обработки и получения информации на основе современных средств вычислительной техники.
Составными частями любой информационной системы являются БД и приложение для обработки данных. Появление персональных машин класса Pentium, семейства операционных систем Windows фирмы Microsoft и различного программного обеспечения позволяют автоматизировать ручные операции, вести любые виды работ по накоплению информации, ее обработки и получению различных выходных форм.
В курсовой работе ставится задача -- разработать проект базы данных для накопления необходимой информацией. Разработать приложение, позволяющее вести учет и контроль за базой данных. База данных должна быть спроектирована с учетом реализации запросов различного типа по получению информации.
Одной из широко используемых сред разработки является Borland C++Builder, который позволяет создавать различные приложения: от простейших однооконных приложений до программ распределения баз данных, поэтому именно с помощью его я и решил разработать своё приложение которое назвал “Автоматизированное рабочее места для продавца компакт дисков“.
Объект курсовой работы - магазин по продаже компакт дисков.
Предмет курсовой работы - процесс учета продукции в магазине.
Целью курсовой работы является разработка автоматизированного рабочего места продавца компакт дисков в среде Borland C++ Builder.
Исходя из цели работы, я определил для себя следующие задачи:
1) Разработать и описать предметную область программы;
2) Разработать алгоритм на языке С++;
3) Показать возможности применения автоматизированного рабочего менеджера (т.е. осуществить программную реализацию и протестировать разработанное приложение);
Содержательная часть данной работы разделена на 3 главы:
в первой главе:
Ш обосновывается актуальность темы, формулируется объект, предмет и цель;
Ш общие сведения по использованию БД;
Ш название и назначение разработанного приложения; обосновывается и описывается выбор средства программирования; описывается требуемое оборудование и ПО.
Ш последовательно описывается решение сформулированных задач и этапов работы.
во второй главе:
Ш даётся подробное описание технологии работы с разработанным приложением.
в третьей главе:
Ш сформулировано заключение, содержащее основные выводы по результатам исследования, отражающее практическую значимость работы, предложения по использованию результатов;
Ш представлен список источников, которые были использованы в ходе курсовой работы;
Ш представлены приложения: листинг программного продукта.
1. Описание предметной области
1.1 Общие положения
При проектировании базы данных решаются две основные проблемы:
1.Отображение объектов предметной области в абстрактные объекты модели данных таким образом, чтобы это отображение не противоречило семантике предметной области, и было по возможности лучшим (эффективным, удобным и т.д.). Часто эту проблему называют проблемой логического проектирования баз данных;
2.Обеспечение эффективного выполнения запросов к базе данных, т.е. рациональное расположение данных во внешней памяти, создание полезных дополнительных структур (например, индексов) с учетом особенностей конкретной БД. Эту проблему называют проблемой физического проектирования баз данных.
Проблема проектирования реляционной базы данных состоит в обоснованном принятии решений о том, из каких отношений (таблиц) должна состоять БД и какие атрибуты (характеристики и свойства) должны быть у этих отношений.
Классическим является подход, при котором весь процесс проектирования производится в терминах реляционной модели данных методом последовательных приближений к удовлетворительному набору схем отношений.
Исходной точкой является представление предметной области в виде одного или нескольких отношений, и на каждом шаге проектирования производится некоторый набор схем отношений, обладающих лучшими свойствами. Процесс проектирования представляет собой процесс нормализации схем отношений, причем каждая следующая нормальная форма обладает свойствами лучшими, чем предыдущая.
Объект курсовой работы - магазин по продажи компакт дисков.
Предмет курсовой работы - процесс учета продукции в магазине.
Целью курсовой работы является разработка автоматизированного рабочего места продавца компакт дисков в среде Borland C++ Builder.
Исходя из цели работы, я определил для себя следующие задачи:
1) Разработать и описать предметную область программы;
2) Разработать алгоритм на языке С++;
3) Показать возможности применения менеджера
(осуществить программную реализацию и протестировать разработанное приложение);
1.2 Сведения из теории
1.2.1 Классификация Баз данных
Иерархическая модель базы данных состоит из объектов с указателями от родительских объектов к потомкам, соединяя вместе связанную информацию. Иерархические базы данных могут быть представлены как дерево, состоящее из объектов различных уровней. Верхний уровень занимает один объект, второй -- объекты второго уровня и т. д. Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможно, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами.
К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Узел -- это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. В сетевой структуре каждый элемент может быть связан с любым другим элементом. Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию. Несмотря на то, что эта модель решает некоторые проблемы, связанные с иерархической моделью, выполнение простых запросов остается достаточно сложным процессом. Также, поскольку логика процедуры выборки данных зависит от физической организации этих данных, то эта модель не является полностью независимой от приложения. Другими словами, если необходимо изменить структуру данных, то нужно изменить и приложение.
Реляционная база данных -- база данных, основанная на реляционной модели данных. Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими». Объектно-ориентированная база данных -- база данных, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями. Результатом совмещения возможностей (особенностей) баз данных и возможностей объектно-ориентированных языков программирования являются Объектно-ориентированные системы управления базами данных (ООСУБД). ООСУБД позволяет работать с объектами баз данных также, как с объектами в программировании на ООЯП. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.
Так же к основным моделям данных относятся: Многомерные, Объектные, Объектно-реляционные и т.д.
1.2.2 Форма - Form
Форма является самым основным компонентом программы, на которую программистом размещаются другие объекты приложения. Свойства формы необходимо знать, так как от этого зависит дизайн программы, т.е. цвет, стиль, размер текста, размещение рисунков, ширина и длина кнопок и других объектов. Форма появляется сразу же после запуска RAD - системы С++Builder.
Таблица 1.1 - Свойства формы
Свойство
Описание
Font
Шрифт, используемый «по умолчанию» компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности формы. То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование)
Caption
Текст заголовка для управления формой и доступа к компонентам формы
ClientWidth
Ширина рабочей (клиентской) области формы, т.е. без учёта ширины левой и правой границ
ClientHeight
Высота рабочей (клиентской) области формы, т.е. без учёта высоты заголовка и ширины нижней границы формы
Icon
Значок в заголовке окна
BorderIcons
Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы приложения. Значение свойства задаётся путём присвоения значений уточняющим свойствам biSystemMenu, biMinimize, biMaximize, и biHelp. Свойство biSystemMenu определяет доступность кнопки системного меню, biMinimize - кнопки свернуть, biMaximize - развернуть, biHelp - кнопки вывода справочной информации
Color
Цвет фона. Цвет можно задать, указав название цвета и привязку к текущей цветовой схеме операционной системы.
Canvas
Поверхность, на которую можно вынести графику
1.2.3 Свойства компонента Edit (поле редактирования текста)
Компонент Edit используется для считывания информации, вводимой с клавиатуры.
Таблица 1.2 - Свойства Edit
Свойство
Описание
Name
Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности для доступа к тексту, введенному в поле редактирования
Text
Текст, находящийся в поле ввода и редактирования
Left
Расстояние от левой границы компонента до левой границы формы
Top
Расстояние от верхней границы компонента до верхней границы формы
Height
Высота поля
Width
Ширина поля
Font
Шрифт, используемый для отображения вводимого текста
ParentFont
Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно true, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента
Enabled
Используется для ограничения возможности изменить текст в поле редактирования. Если значение свойства равно false, то текст в поле редактирования изменить нельзя
Visible
Позволяет скрыть компонент (false) или сделать его видимым (true)
1.2.4 Свойства компонента Label (поле вывода текста)
Данный компонент предназначен для вывода теста на поверхность формы, его свойства определяют вид и расположение текста.
Таблица 1.2 - Свойства Label
Свойство
Описание
Name
Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Caption
Отображаемый текст
Left
Расстояние от левой границы поля вывода до левой границы формы
Top
Расстояние от верхней границы поля вывода до верхней границы формы
Height
Высота поля вывода
Width
Ширина поля вывода
AutoSize
Признак того, что размер поля определяется его содержимым
Wordwrap
Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть false)
Alignment
Задает способ выравнивания текста внутри поля. Текст может быть выровнен по левому краю (taLeftJustify), по центру (taCenter) или по правому краю (taRight Justify)
Font
Шрифт, используемый для отображения текста. Уточняющие свойства определяют шрифт (Name), размер (size), стиль (style) и цвет символов (Color)
Parent Font
Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно true, то текст выводится шрифтом, установленным для формы
Color
Цвет фона области вывода текста
Visible
Позволяет скрыть текст (false) или сделать его видимым (true)
1.2.5 Свойства компонента DBGrid
Компонент DBGrid отображает набор данных в формате электронной таблицы.
Таблица 1.3 - Свойства компонента DBGrid
DataSource
Источник данных (компонент Table или Query)
Columns
Отображаемая информация (поля записей)
Options.dgTitles
Разрешает вывод строки заголовка столбцов
Options.dglndicator
Разрешает вывод колонки индикатора. Во время работы с базой данных текущая запись помечается в колонке индикатора треугольником, новая запись -- звездочкой, редактируемая -- специальным значком
Options.dgColumnResize
Разрешает менять во время работы программы ширину колонок таблицы
Options.dgColLines
Разрешает выводить линии, разделяющие колонки таблицы
Options.dgRowLines
Разрешает выводить линии, разделяющие строки таблицы
1.2.6 Свойства компонента CheckBox
Компонент CheckBox представляет собой независимую кнопку (переключатель).
Таблица 1.4 - Свойства CheckBox
Свойство
Описание
Caption
Текст, который находится справа от флажка
Checked
Состояние, внешний вид флажка: если флажок установлен (в квадратике есть «галочка»), то значение Checked равно true; если флажок сброшен (нет «галочки»), то значение Checked равно false
State
Состояние флажка. В отличие от свойства Checked, позволяет различать установленное, сброшенное и промежуточное состояния. Состояние флажка определяет одна из констант: cbChecked (установлен); cbGrayed (серый, неопределённое состояние); cbUnChecked (сброшен)
AllowGrayed
Свойство определяет, может ли флажок быть в промежуточном состоянии: если значение AllowGrayed равно false, то флажок может быть только установленным или сброшенным; если значение AllowGrayed равно true, то допустимо промежуточное состояние
Font
Шрифт, используемый для отображения поясняющего текста
1.2.7 Свойства компонента Button
Компонент Button представляет собой кнопку, при нажатии которой будет происходить какое - либо событие.
Таблица 1.5 - Свойства Button
Свойство
Описание
Name
Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Caption
Текст на кнопке
Left
Расстояние от левой границы кнопки до левой границы формы
Top
Расстояние от верхней границы кнопки до верхней границы формы
Height
Высота кнопки
Width
Ширина кнопки
Enabled
Признак доступности кнопки. Если значение свойства равно true, то кнопка доступна. Если значение свойства равно false, то кнопка недоступна например, в результате щелчка на кнопке, событие Click не возникает
Visible
Позволяет скрыть кнопку (false) или сделать ее видимой (true)
Height
Высота кнопки
Width
Ширина кнопки
1.2.8 Свойства компонента TTabSheet
Компонент TTabSheet представляет собой кнопку, при нажатии которой будет происходить какое - либо событие.
Таблица 1.5 - Свойства TTabSheet
Свойство
Описание
Name
Имя, по которому можно ссылаться на страницу
Caption
Надпись, которая появляется на ярлычке закладки
PageIndex
Индекс страницы, по которому можно ссылаться на страницу
ImageIndex
Индекс изображения, которое может появляться на ярлычке закладки
Style
Определяет стиль отображения компонента
Images
Ссылка на компонент ImageList
ScrollOpposite
Определят способ перемещения закладок при размещении их в несколько рядов
ActivePage
Имя активной страницы
PageCount
Количество страниц. Свойство только для чтения
1.3 Постановка задачи
1.3.1 Название и назначение разрабатываемого приложения
Я назвал своё приложение “Автоматизированное рабочее место для продавца компакт дисков”.
Разработанная программа предназначена для ведения учета и контроля за базой данных, спроектированной с учетом реализации запросов различного типа по получению информации.
1.3.2 Спецификация входных и выходных данных
Входной информацией для данной программы являются:
o Наименование диска;
o Группа, к которой относятся диски;
o Количество;
o Закупочная цена;
o Цена продажи;
Выходной информацией для данной программы является
o Сортировка данных по убыванию и возрастанию;
o Добавление данных о дисках вновь поступающих в базу;
o Фильтрация данных по некоторым полям;
o Поиск и возврат дисков;
o Визуализация приложения в удобной форме
1.3.3 Обоснование выбора средства программирования
Я выбрал RAD - систему Borland C++ Builder 6.0, потому что она изучена в течение семестра, а также является удобным и мощным средством для разработки как простых консольных приложений, так и обширных комплексных приложений с графическим интерфейсом.
1.3.4 Требования к аппаратной части и ПО
Персональный компьютер фирмы IBM серии PC (или совместимый с этими моделями), работающий под управлением операционной системы (ОС) Windows 98/XP/Vista, оперативная память объемом не менее 32 Мбайт, процессор с тактовой частотой не менее 133 MHz, клавиатура, мышь.
2. Технология разработки приложения
2.1 Макет приложения
2.1.1 Описание экранных форм
При запуске программы появляется форма 1
При нажатии на TabSheet2 появится следующая вкладка, в которой можно будет добавить информацию о дисках.
При нажатии на TabSheet3 появится следующая вкладка, в которой можно
При нажатии на TabSheet4 появится следующая вкладка, в которой можно будет удалять информацию о дисках с базы предварительно отфильтровав.
При нажатии кнопки “О программе” появляется форма, в которой содержится информация о программе.
2.1.2 Описание файлов проекта
Важно отметить, что программа состоит из следующих файлов:
- файл проекта (файл с расширением . cbproj);
- файл описания класса формы (файл с расширением .h);
- файл исходного текста (файл с расширением .cpp);
- файл с описанием окон формы (файл с расширением .dfm);
В файле проекта находится информация о модулях, составляющих данный проект.
Файл исходного текста - программный модуль, предназначенный для размещения текстов программ на языке С++.
Проект содержит следующие файлы Project1. cbproj - файл проекта, 2 модуля Unit1.cpp, Unit2.cpp и соответствующие им 2 формы.
2.2 Описание программы
Программа состоит из 2-х модулей:
Unit1
void __fastcall TForm1::N1Click(TObject *Sender)// Открытия формы2 показ информации о программе
void __fastcall TForm1::Button1Click(TObject *Sender)// Добавление информации о дисках в БД.
void __fastcall TForm1::TabSheet1Show(TObject *Sender)// Отображение данных БД в DBGrid1.
void __fastcall TForm1::Button2Click(TObject *Sender)// Сортировка данных по убыванию или возрастанию.
void __fastcall TForm1::Button3Click(TObject *Sender)// Фильтрация данных по значениям полей базы данных.
void __fastcall TForm1::Button4Click(TObject *Sender)// Поиск данных в таблице по наименованию для удаления из БД.
void __fastcall TForm1::Button5Click(TObject *Sender)// Удаление записи из БД.
Unit2
void __fastcall TAboutBox::OKButtonClick(TObject Sender)//закрытие формы №2
2.3 Результаты работы программы
Результатом курсовой работы является полноценное приложение с графическим интерфейсом, которое может считаться полноценной программой. После её запуска пользователю предоставляется возможность просмотреть существующую БД компакт дисков, отсортировать её по возрастанию или убыванию со следующим параметрам: наименование, группа, количество, закупочная цена и цена продажи. Так же пользователь имеет возможность самостоятельно добавить запись в базу данных, отфильтровать и удалить указанные записи.
3. Руководство пользователя
Установка приложения производится посредством копирования всех файлов в любой каталог.
Внимание: Обязательно присутствие в одном и том же каталоге всех файлов!
Работа программы начинается с окна запуска программы Project1.exe
После запуска программы появляется следующая форма
В результате приложение предоставляет пользователю полный доступ к базе данных компакт дисков. Для того чтобы отсортировать данные по какому либо из признаков необходимо выбрать все указанные поля и нажать кнопку выполнить. Для того чтобы добавить информацию о дисках необходимо обязательно заполнить все указанные поля и нажать кнопку добавить, иначе будет выведено на экран сообщение об ошибке.
Также приложение позволяет осуществить фильтрацию и удаление дисков из базы данных, что тоже требует определенной внимательности при заполнении существующих полей, иначе можно встретить следующие сообщения об ошибке.
Заключение
База данных - это совокупность структурированных и взаимосвязанных данных и методов, обеспечивающих добавление, выборку и отображение информации.
В ходе выполнения курсовой работы были выполнены все поставленные задачи и разработано работоспособное приложение “Автоматизированное рабочее место для продавца компакт дисков”. В частности, разработана и описана предметная область программы, разработан и реализован алгоритм на языке С++, проведено тестирование, которое не выявило существенных ошибок, однако это не исключает возможности их появления при проведении более глубокого и длительного тестирования.
Так же в процессе выполнения работы были получены и закреплены практические навыки разработки программ с использованием SQL запросов и баз данных в написании программ в среде визуального программирования Borland C++ Builder 6.0.
Список использованных источников
1. Бобровский С. Самоучитель програмирования на языке C++ в среде Borland C++ Builder
2. Культин Н.Б. С++ Buider в задачах и примерах - СПб.:БХВ-Петербург, 2007. - 336с.: ил.
3. Лаптев В.В. C++. Экспресс-курс . 2004г.
4. Послед Б.С. Borland C++ Builder 6. Разработка приложений баз. 2003г. -360ст.
5. Технология разработки приложения на языке С++. Методическое указание к лабораторным работам для студентов первого курса специальности 080801.65 “Прикладная информатика” (по областям)
6. Учебник по программированию в среде С++ Builder 5, Д. Холингворт, Б. Сворт, Д. Баттерфилд 865 с.
7. Б., Эллисон Ч. Философия С++. Практическое программирование. С.Петербург 2004г. 608 с.:ил.