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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 29.01.2013
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

АВТОНОМНАЯ НЕКОММЕРЧЕСКАЯ ОБРАЗОВАТЕЛЬНАЯ ОРГАНИЗАЦИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ "ИНДУСТРИАЛЬНЫЙ ИНСТИТУТ"

Кафедра Информационных систем и программирования

КУРСОВАЯ РАБОТА

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

Выполнил студент группы

08ПВ IV курса БОТАВИНА А.Г.

Проверил преподаватель Маршала О.Ю.

Курск

Содержание

  • Основание для разработки
  • Введение
  • 1. Словесное описание предметной области
  • 2. Описание предметной области в виде диаграммы
  • 3. Составление словаря данных
  • 4. Составление структуры базы данных
  • 5. Составление программных запросов к базе данных
  • 5.1 Создание базы данных
  • 5.2 Выполнение фильтрации, индексации, поиск записей
  • 5.3 Поиск записей с помощью циклов WHILE и SCAN
  • 5.4 Построение меню и выдача сообщений
  • 5.5 Изучение графических возможностей
  • 5.6 Использование модулей (подпрограмм)
  • 5.7 Страховое копирование данных и реализация справки
  • 5.8 Создание новых таблиц и арифметические действия
  • Заключение
  • Список литературы
  • Приложения

Основание для разработки

Основанием для разработки является тема по дисциплине "Базы данных". Тема курсовой работы "Разработка базы данных для учета торгово-закупочной деятельности малого предприятия".

Задание содержит следующие основные этапы:

· разработка и описание структуры базы данных

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

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

Введение

Современное производство немыслимо без управляющих систем разной степени сложности. Но любой управляющей системе необходимо соответствующее информационное и программное обеспечение, иначе она не сможет продуктивно работать. Если рассматривать информационное обеспечение (базы данных), то современный рынок программного обеспечения может предложить довольно большой выбор систем управления базами данных (СУБД), ориентированных на различных пользователей: от мелких предпринимателей до крупных предприятий и корпораций. Наш выбор FoxPro обусловлен прежде всего разносторонностью этой СУБД, удобством как для разработчика приложений, так и для обычного пользователя. Наличие в ней языка программирования позволяет создавать сложные системы обработки данных, ориентированные на конкретные задачи и даже под конкретного пользователя. С другой стороны, в ней отражены и в разной мере используются многие современные технологии программирования: ActiveX, COM, SQL, ODBC, OLE, DCOM, API и ISAPI, и многое другое. При всем этом она сохранила совместимость со старыми версиями под DOS, созданными еще фирмой Fox Software. Если еще добавить, что FoxPro реализован также в средах Macintoch и Unix, то наш выбор становится обоснованным.

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

база программный запрос учет

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

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

Пример: объект "клавиатуры” входит в состав объектного множества "товары” и обладает следующими атрибутами: наименование (клавиатуры), цена за единицу товара (150 р.), количество единиц товара (3), единица измерения товара (штука), дата поступления (01.04.2001), качество товара (среднее), поставщик (Тайвань).

2. Описание предметной области в виде диаграммы

На основании предыдущего пункта составим концептуальную модель будущей базы данных в виде диаграммы "объекты-связи”.

Рисунок 1.1.1 - Диаграмма "объекты - связи”.

3. Составление словаря данных

На основании модели данных составим словарь данных. Словарь данных - это система, в которой хранятся сведения об объектах, их атрибутах, о значениях и форматах представления данных. Опишем назначение и свойства полей реляционной таблицы "товары”.

Наименование товара. Служит первичным ключом, по которому можно получить доступ к любой строке таблицы. Тип данных - строковый (Character), длина - 20 символов. Ширина поля - 20 символов. Возможные значения - названия товаров, имеющих отношение к офису.

Цена единицы товара. Хранит цену определенного вида товаров. Тип данных - денежный (Currency) точностью до 4 знаков после запятой. Ширина поля - 8 символов. Возможные значения ограничены шириной поля.

Количество единиц товара. Хранит число единиц товара, находящихся в данный момент на складе. Тип данных - целый (Integer). Ширина поля - 4 символа. Возможные значения ограничены шириной поля.

Единица измерения. Хранит название единицы измерения товара. Тип данных - строковый (Character), длина - 15 символов. Ширина поля - 15 символов. Возможные значения - в соответствии с первым полем таблицы.

Дата поступления. Хранит число, месяц и год поступления товара. Тип данных - выражение даты (Date). Ширина поля - 8 символов. Возможные значения записываются в формате: мм/дд/гггг, где мм - номер месяца (01.12), дд - день (01.31), гггг - номер года.

Качество товара. Хранит условную оценку качества поступившего товара. Тип данных - строковый (Character), длина - 7 символов. Ширина поля - 7 символов. Возможные значения - `высокое', 'среднее', 'низкое'.

Поставщик. Хранит название страны - производителя данного товара. Тип данных - строковый (Character), длина - 20 символов. Ширина поля - 20 символов. Возможные значения ограничены корректными названиями стран.

4. Составление структуры базы данных

На основании диаграммы и словаря данных составим структуру базы данных "Goods”. Поскольку на диаграмме изображено только одно объектное множество, то, следовательно, в базу данных будет входить только одна реляционная таблица. Перечислим и дадим названия полям таблицы "Table_Goods" в соответствии с диаграммой:

Таблица - Поля таблицы "Table_Goods”

Значение поля

Имя поля

Тип

Длина

Наименование

Name_unit

Character

20

Цена за единицу товара

Price_unit

Currency

Количество

Amount

Integer

Единица измерения

Unit_measure

Character

5

Дата поступления

Date_recep

Date

Качество товара

Quality_goods

Character

7

Поставщик

Supplier

Character

20

Общая сумма (вы - числяемое поле)

Sum=Amount*Price_unit

Numeric

5. Составление программных запросов к базе данных

Приступим к программной реализации базы данных. Вообще следует отметить, что в Visual FoxPro 7.0 существуют 2 пути реализации почти любой задачи: визуальный и программный. В первом случае необходимые действия выполняются с помощью команд меню самого FoxPro и специализированных мастеров. Во втором - с помощью встроенного языка программирования, унаследованного еще от ранних версий. Во всех случаях мы будем пользоваться вторым способом, кроме самого создания базы данных. Дело в том, что на первом этапе необходимо создать так называемый проект Visual FoxPro 7.0, в состав которого в дальнейшем будут входить все без исключения, используемые нами компоненты. Для большей наглядности желательно создавать проект "вручную”. Кроме того, существуют 2 вида таблиц FoxPro7.0: свободные и связанные, т.е. входящие в состав баз данных. Наша таблица относится ко второму типу, в то время как команда CREATE TABLE создает свободную таблицу. С учетом этого, создание базы данных проведем визуально, а все остальные манипуляции - программно.

5.1 Создание базы данных

База данных создается с помощью Диспетчера проектов Visual FoxPro7.0. Сначала создадим новый проект. Назовем его Kurs и разместим его в папке MyProject.

Рисунок 5.1.1 - Окно диспетчера проектов

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

Теперь можно создавать базу данных. Щелкнув правой кнопкой мыши на подраздел "Базы данных” раздела "Данные”. Необходимо ввести имя будущей базы данных. Новую базу данных сохраняем в папке проекта. После этого появляется окно Дизайнера баз данных. С его помощью можно добавлять в базу данных новые компоненты: таблицы, запросы, локальные и удаленные представления, соединения и внедренные процедуры.

Рисунок 5.1.2 - Окно Дизайнера баз данных

С помощью Дизайнера баз добавим в проект таблицу.

После присвоения имени новой таблице создаем ее структуру в соответствии с заданием. Структура таблицы представляет собой список полей и их характеристику: тип данных, размер, длину символьного представления (для типа Character) и др. В поле "Caption" можно указать надпись-заголовок столбца для каждого поля, которая будет высвечиваться при отображении таблицы.

Рисунок 5.1.3 - Создание структуры таблицы

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

Заполнить таблицу можно при помощи той же команды, если выбрать в меню "Edit” пункт "Append mode” ("Режим добавления”). Результат заполнения таблицы данными показан на рисунке 5.1.4.

Рисунок 5.1.4 - Записи таблицы Table_Goods.

5.2 Выполнение фильтрации, индексации, поиск записей

В FoxPro 7.0 есть команда

SET FILTER TO <условие>,

которая позволяет установить FOR-условие для всех без исключения команд обработки данных. Здесь <условие> указывает на то, какие именно записи могут быть доступны для обработки.

Выполним фильтрацию по полю "Поставщик”. Если после этого, например, написать команду BROWSE, то это будет эквивалентно BROWSE FOR supplier='Россия'.

Рисунок 5.2.1 - Результат фильтрации по полю supplier.

Создание индексных файлов в базах данных преследует цель ускорения поиска записей и для упорядочения записей в таблицах. Вообще в FoxPro 7.0 существуют 2 типа индексных файлов: *. idx (обычный индексный файл) и *. cdx (составной индексный файл, содержащий несколько индексов). В нашем случае требуется произвести индексацию по одному полю - полю "Количество товара”, поэтому создаем обычный индексный файл indtab. idx в папке проекта с помощью команды:

INDEX on amount to C: \MY_WORKS\TRANSF~1\MYPROJ~1\indtab

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

LIST amount, name_unit, price_unit

Полученный результат отображен на рисунке 5.2.1

Рисунок 5.2.1 - Результат индексирования.

Отобразим все записи о товарах низкого качества

BROWSE FOR quality_goods='низкое'

Рисунок 5.2.2 - Записи о товарах низкого качества.

Найдем номер первой из записей о товаре в количестве 10.

LOCATE FOR amount=10

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

Рисунок 5.2.3 - Строка состояния FoxPro.

Полный текст программы приведен в приложении А.

5.3 Поиск записей с помощью циклов WHILE и SCAN

Для последовательного поиска самой первой записи базы данных, удовлетворяющей заданному FOR-условию и до тех пор, пока соблюдается WHILE-условие (если есть), применяется команда LOCATE. Для продолжения поиска, начатого командой LOCATE, применяется команда CONTINUE.

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

DO WHILE <условие>

<команды>

ENDDO

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

SCAN [<границы>] [FOR <условие>]

<команды>

ENDSCAN

По заданию необходимо найти все товары, поставленные из России, а также общую стоимость всех товаров, поступивших на склад в период с 15.01.2001 по 15.03.2001. Каждый из этих запросов, в свою очередь, реализован в 2-х вариантах: с использованием цикла WHILE и с использованием цикла SCAN. Полный текст программы приведен в приложении Б, а результат работы - на рисунке 5.3.1.

Рисунок 5.3.1 - Результаты работы программы.

5.4 Построение меню и выдача сообщений

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

DEFINE POPUP <POPUP - меню>, куда входит еще довольно много параметров. Выдача меню производится по команде

ACTIVATE POPUP <POPUP-меню>.

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

ON KEY [LABEL< имя клавиши>] [команда].

По заданию требуется вывести POPUP-меню с полями Name_unit, Quality_goods, Supplier, если в таблице БД есть товары с ценой < 100 р. Кроме того, при нажатии Alt+ F1 необходимо вывести сообщение `Ошибка памяти'. Полный текст программы приведен в приложении В, а результат работы - на рисунках 5.4.1 и 5.4.2.

Рисунок 5.4.1 - POPUP-меню.

Рисунок 5.4.2 - Сообщение, выдаваемое по Alt+F1.

5.5 Изучение графических возможностей

FOX PRO 7.0 содержит средства создания изображений из элементов псевдографики:

@ <Y1, Х1,Y2, Х2> BOX <вырC>.

Команда формирует в заданных координатах рамку фон прямоугольника из любых символов, которые включены в <вырC>. Это символьное выражение может содержать до 9 символов (по 4 символа для углов и сторон прямоугольника, начиная с левого верхнего угла по часовой стрелке).

@ <Y1, Х1> TO <Y2,X2> [DOUBLE/PANEL/<окантовка>] -

команда формирует рамку с координатами X1, Y1 и X2, Y2.

@ <Y, Х> SAY <текст> -

команда выводит текст, начиная с координат X,Y.

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

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

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

Рисунок 5.5 - Диаграмма количества товаров.

5.6 Использование модулей (подпрограмм)

В языке FoxPro7.0 могут использоваться внешние и внутренние процедуры.

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

Обращение к процедуре выполняется командой DO:

DO <имя командного файла>

[WITH <список параметров>] [IN <файл>]

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

PARAMETERS <список параметров>

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

PROCEDURE <имя процедуры>

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

По заданию требуется, используя модули, вывести сведения о товарах, поступивших позже 15.02.2001, а также вывести сведения о товарах, у которых единица измерения - шт.

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

Рисунок 5.6 - Результаты работы программы.

5.7 Страховое копирование данных и реализация справки

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

Удобным представляется поддержка в программе специальной переменной (например, с именем NORMZ), фиксирующей нормальное /ненормальное завершение программы, а также переменной (NORMD) - даты текущего сеанса и сохранение их в специальном МЕМ-файле (NORM. MEM). Переменная NORMZ должна иметь значение `истина`, если последний сеанс работы завершился нормально, и `ложь` в противном случае. Тогда первым шагом прикладной системы должны быть считывание этого файла с диска и анализ переменной.

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

* - ---Использование страхового копирования данных

SET CLEAR OFF

SET SAFETY OFF

* Если файл NORM. MEM есть.

IF FILE ('C: \MY_WORKS\TRANSF~1\MYPROJ~1\norm. mem')

*. он загружается в память.

RESTORE FROM ('C: \MY_WORKS\TRANSF~1\MYPROJ~1\norm. mem')

* Если переменная завершения истинна.

IF normz

*. копируем все файлы таблиц в страховую директорию

! COPY C: \MY_WORKS\TRANSF~1\MYPROJ~1\*. dbf C: \MY_WORKS\TRANSF~1\MYPROJ~1\Insure\*. dbf>NUL

* иначе сообщение.

ELSE

WAIT normd+' было аварийное завершение. '+;

'Восстановить (ENTER) данные? ' WINDOW

* В случае нажатия Enter, файлы восстанавливаются из страховой директории.

IF LASTKEY () =13

! COPY C: \MY_WORKS\TRANSF~1\MYPROJ~1\Insure\*. dbf C: \MY_WORKS\TRANSF~1\MYPROJ~1\*. dbf>NUL

ENDIF

ENDIF

ENDIF

* Устанавливается переменная завершения, переменная текущей даты и обе запоминаются в файл.

normz=. T.

normd=DTOC (DATE ())

SAVE ALL LIKE norm? TO C: \MY_WORKS\TRANSF~1\MYPROJ~1\norm

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

Поскольку файлов в системе обычно довольно много, проще использовать не собственные команды копирования FoxPro 7.0, а выполнить (через знак!) соответствующие команды DOS, для которых можно указать маску. Чтобы системные сообщения команд не выводились на экран, они переадресованы на пустое устройство ДОС - NUL. Если NORMZ=. F., значит, предыдущий сеанс работы завершился аварийно. На экран выдаются сообщение и запрос о необходимости восстановления данных из страховой директории (нажатием клавиши Enter).

Такой запрос нужен для того, чтобы отказаться от копирования данных, если завершение программы было ненормальным, но данные, как знает пользователь, не пострадали. После завершения анализа переменной NORMZ она получает значение. F. и запоминается в файле NORM. MEM вместе с переменной NORMD. Далее идет тело собственно прикладной системы. Если при этом произойдет сбой, переменная NORMZ сохранит свое значение. При нормальном завершении программы этой переменной присваивается значение Т и она сохраняется в файле.

Кроме того, необходимо организовать систему контекстно-зависимой справки, вызываемой по F1. Текст помощи предварительно заносится в файл Table_Help. dbf, структура которого показана ниже.

Рисунок 5.7.1 - Таблица данных для помощи.

Для вызова процедуры помощи применена команда ON KEY LABEL. В процедуру Helper передается один параметр - имя поля исходной таблицы товаров, которое требуется пояснить. Функция VARREAD () возвращает имя переменной памяти, элемента массива или поля (прописными буквами), использованного для создания текущего элемента управления.

В процедуре осуществляется поиск по этому полю, и, если таковое найдено, соответствующее MEMO-поле выводится с помощью процедуры MESSAGEBOX.

Полный текст программы приведен в приложении Е, а пример экрана помощи, выдаваемого пользователю при нажатии клавиши F1 в тот момент, когда курсор находится в поле "Дата поступления" исходной таблицы, приведен на рисунке 5.7.2.

Рисунок 5.7.2 - Пример экрана помощи.

5.8 Создание новых таблиц и арифметические действия

При копировании открытого файла DBF в новый файл, который этой командой создаётся, используется команда

COPY TO <имя нового файла>

[<границы>] [FIELDS <поля>]

[FOR < условие>] [WHILE <условие>]

[TYPE <тип файла>] [WITH CDX]

В новый файл могут копироваться как все поля базы данных, так и только перечисленные в списке FIELDS. Копируемые поля могут находиться не только в файле из рабочей активной области, но и в любом другом файле БД из других рабочих областей. В этом случае имена полей - составные (имя базы и имя поля).

Существует команда, выполняющая физическое упорядочение файла:

SORT TO <имя нового файла>

[ASCENDING/DESСENDING]

ON <поле> [/A] [/D] [/C] [,<поле> [/A] [/D] [/C].]

[<границы>] [FOR <условие>] [WHILE <условие>]

[FIELDS <список полей>]

Команда создает из активной БД новый файл, в котором записи расположены в возрастающем (/А) или убывающем (/D) порядке относительно указанного поля /полей. Если параметр сортировки не указан, по умолчанию подразумевается /А - возрастание. Ключ /С означает, что при сортировке будет игнорироваться регистр букв (строчные /заглавные). Допускается соединение ключа С с другими ключами, например /DC.

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

COUNT [<границы >] [WHILE <условие>]

[FOR <условие>] [TO <переменная>]

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

SUM [<границы>] [WHILE <условие>]

[FOR <условие>] <список выражений>

[ТО <переменные>/ТО ARRAY <массив>]

По команде SUM суммируются значения перечисленных числовых полей указанные <переменные> или <массив>. В списке выражений разрешается указывать не только имена числовых полей, но и функции от них и функции от нескольких полей одновременно. Это значит, что можно воспользоваться функцией STR () и просуммировать символьные поля с цифровыми данными. Можно просуммировать квадратные корни величин и т.д. Если <переменных> не было к моменту исполнения команды, то они будут созданы, однако <массив> должен уже существовать.

AVERAGE [<границы>] [WHILE <условие>]

[FOR <условие>] <список выражений>

[TO <переменные>/TO ARRAY <массив>]

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

По условию требуется:

Создать файл New_goods с полями Name_unit, Price_unit, Amount, Unit_measure для всех товаров с ценой > 50;

Создать файл Sort_goods с полями Name_unit, Price_unit, Amount, Quality_goods. Файл отсортировать по полям: Price_unit - по возрастанию, Name_unit - по алфавиту;

Подсчитать число товаров на 'С…', общую сумму всех товаров и среднее арифметическое цены товаров.

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

Полный текст программы приведен в приложении Ж, а результаты работы программы - на рисунках 5.8.1 - 5.8.3.

Рисунок 5.8.1 - Структура таблицы New_Goods.

Рисунок 5.8.2 - Структура таблицы Sort_Goods.

Рисунок 5.8.3 - Результаты работы программы.

Заключение

Представленная работа "Разработка базы данных для учета торгово-закупочной деятельности малого предприятия" преследовала цель создания программного продукта, необходимого для оптимальной работы торгово-закупочной фирмы. Основной задачей являлось построение базы данных с помощью диалоговых окон и выполнение над ней заданных операций с помощью созданной программы. Выбор FoxPro 7.0 обусловлен разносторонностью этой СУБД, удобством её как для разработки приложений, так и для обычного пользователя. Присутствующий в ней язык программирования позволяет создавать сложные системы обработки данных, выполняет конкретно поставленные задачи для конкретного пользователя. При этом она сохраняет совместимость со старыми версиями DOS.

В данной курсовой работе были рассмотрены приемы проектирования и реализации реляционных баз данных и таблиц в СУБД Visual FoxPro 7.0. Была спроектирована структура реляционной таблицы, в нее были внесены данные с помощью специальных запросов. Операции над данными таблицы были выполнены программным путем с помощью создания автономных модулей *. prg, входящих в состав проекта Visual FoxPro 7.0, что обеспечивает удобство при работе с поставщиками и покупателями.

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

1. Попов А.А. Создание приложений для FoxPro 7.0 в DOS и WINDOWS. - М.: Издательство ”Калашников и К”, 1997. - 660 с.: илл.

2. FoxPro. Language Refrence. - Microsoft Corp., 1994.

3. Пинтер Лес. Разработка приложений в Microsoft FoxPro 7.0 - М.: ТОО Эдель, 1995.

4. Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988.

5. Бутанов Е.А., Методы создания качественного программного обеспечения. М.: Энергоатомиздат 1984г.

6. Мусина Т.В. Пушенко В.А. Visual FoxPro 7.0. Учебный курс - СПб.: КОРОНА принт., 2004

7. Базиян, Менахем и др. Использование Visual FoxPro6. Специальное издание: Пер. с англ. - М.: Издательский дом "Вильямс", 2000

8. Омельченко Л.Н. Самоучитель Visual FoxPro7.0 - СПб.: БХВ - Санкт-Петербург, 2000

Приложения

Приложение А

Текст программы фильтрации, индексации и поиска

* Очищаем экран

CLEAR

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Выполняем фильтрацию по полю 'Поставщик'

SET FILTER to supplier='Россия'

BROWSE

* Выполняем индексирование по полю 'Количество' (только по возрастанию)

INDEX on amount to C: \MY_WORKS\TRANSF~1\MYPROJ~1\indtab

* Выводим записи

LIST amount,name_unit,price_unit

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

BROWSE FOR quality_goods='низкое'

* Выбираем из таблицы первую запись о товаре в количестве 10

LOCATE FOR amount=10

Приложение Б

Текст программы поиска с помощью циклов WHILE и SCAN

* Очищаем экран

CLEAR

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Ищем все товары, поставленные из России, с помощью цикла WHILE

? 'Товары из России (цикл WHILE): '

* Ищем первый товар

LOCATE FOR supplier='Россия'

* Если нашли.

IF FOUND ()

* Печатаем название

? name_unit

ENDIF

* Продолжаем поиск до исчерпания записей

DO WHILE. NOT. EOF ()

CONTINUE

IF FOUND ()

? name_unit

ENDIF

ENDDO

* Ищем все товары из России с помощью SCAN-цикла

? 'Товары из России (цикл SCAN): '

SCAN FOR supplier='Россия'

* Выводим наименование, цену и количество товара

? name_unit+' '+STR (price_unit) +' '+STR (amount)

ENDSCAN

* С помощью WHILE находим общую цену товаров, поступивших

* в период с 15.01.2001 по 15.03.2001

* _SUM - переменная суммирования

_SUM=0

* Находим первую запись

LOCATE FOR date_recep>={^2001/01/15}. AND. date_recep<={^2001/03/15}

IF FOUND ()

* Если нашли - суммируем

_SUM=_SUM+NTOM (price_unit) *amount

ENDIF

* Продолжаем поиск

DO WHILE. NOT. EOF ()

CONTINUE

IF FOUND ()

_SUM=_SUM+NTOM (price_unit) *amount

ENDIF

ENDDO

? 'Общая стоимость искомых товаров равна (цикл WHILE): '+STR (_SUM)

* Вычисляем то же самое с помощью SCAN-цикла

_SUM=0

SCAN FOR date_recep>={^2001/01/15}. AND. date_recep<={^2001/03/15}

_SUM=_SUM+NTOM (price_unit) *amount

ENDSCAN

? 'Общая стоимость искомых товаров равна (цикл SCAN): '+STR (_SUM)

Приложение В

Текст программы построения меню и выдачи сообщений

* Очищаем экран

CLEAR

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Определяем параметры POPUP-меню:

DEFINE POPUP _Menu FROM 1,10 TO 15,70;

TITLE 'Наименование Качество Поставщик';

SCROLL;

PROMPT FIELD name_unit+' '+quality_goods+' '+supplier

* Определяем, нужно ли активизировать POPUP-меню

LOCATE FOR price_unit<100

* Если нашли хоть один требуемый товар.

IF FOUND ()

IF price_unit<>0

* и если это не нулевая строка, то

ACTIVATE POPUP _Menu

ENDIF

ENDIF

* Отслеживаем нажатие сочетания клавиш Alt+F1

ON KEY LABEL ALT+F1 MESSAGEBOX ("Ошибка памяти!")

ПРИЛОЖЕНИЕ Г

Текст программы построения диаграммы

* Очищаем экран

CLEAR

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Определяем количество записей в текущей таблице

_Number_records=RECCOUNT ()

* Заносим в соответствующие массивы наименования и количества товаров

DIMENSION _Names (_Number_records)

DIMENSION _Amounts (_Number_records)

* Переменная - max высота столбца

_Max_col_height=0

* Устанавливаемся на первую запись

GOTO 1

* Ищем самый дорогой и самый дешевый товары (_Max_price и _Min_price),

* а также их порядковые номера (_Number_max_price и _Number_min_price)

_Names (1) =name_unit

_Amounts (1) =amount

_Min_price=price_unit

_Max_price=0

_Number_min_price=1

_Number_max_price=1

* Цикл по всем записям

FOR I=2 TO _Number_records

* Устанавливаемся на I-ю запись

GOTO I

* Заносим имя и количество в массивы

_Names (I) =name_unit

_Amounts (I) =amount

* Если текущая цена>максимальной.

IF price_unit>_Max_price

* то делаем текущую максимальной

_Max_price=price_unit

* и запоминаем ее номер

_Number_max_price=I

ENDIF

* Если текущая цена<минимальной.

IF price_unit<_Min_price

* то делаем текущую минимальной

_Min_price=price_unit

* и запоминаем ее номер

_Number_min_price=I

ENDIF

IF amount>_Max_col_height

* Ищем max количество товара

_Max_col_height=amount

ENDIF

ENDFOR

* ==============Построение диаграммы=============

* Рисуем оси

@3,20 TO 25, 20

@25,20 TO 25,120

* Надписываем оси

@13,1 SAY 'Количество товара' COLOR B+/W*

@4,10 SAY _Max_col_height COLOR B+/W*

@28,60 SAY 'Номер товара'

* Рисуем легенду

@1,80 FILL TO 2,83 COLOR W/G*

@3,80 FILL TO 4,83 COLOR W/R*

@1,84 SAY 'Самый дешевый товар'

@3,84 SAY 'Самый дорогой товар'

* Расстояние между столбцами диаграммы

_Diagram_step_size=2

* Ширина одного столбца диаграммы

_Diagram_col_width= (100-_Diagram_step_size* (_Number_records+1)) /_Number_records

* Масштабный множитель

_Scale_factor=20/_Max_col_height

* Рисуем столбцы

FOR I=1 TO _Number_records

* Вычисляем координаты вершин для текущего столбца

_Y1=ROUND (25-_Amounts (I) *_Scale_factor,0)

_X1=ROUND (20+_Diagram_step_size*I+_Diagram_col_width* (I-1),0)

_Y2=25

_X2=ROUND (20+ (_Diagram_step_size+_Diagram_col_width) *I,0)

* Если высота нулевая. (из-за округления)

IF _Y1=25

* то делаем высоту = 1

_Y1=24

ENDIF

* Если рисуем столбец, соответствующий самому дешевому товару.

IF I=_Number_min_price

* то закрашиваем его зеленым цветом

@_Y1,_X1 FILL TO _Y2,_X2 COLOR W/G*

* Иначе если рисуем столбец, соответствующий самому дорогому товару.

ELSE

IF I=_Number_max_price

* то закрашиваем его красным цветом

@_Y1,_X1 FILL TO _Y2,_X2 COLOR W/R*

ELSE

* Иначе закрашиваем синим цветом

@_Y1,_X1 FILL TO _Y2,_X2 COLOR W/B*

ENDIF

ENDIF

* Ставим по оси X номера товаров

@26,_X1-ROUND (_Diagram_col_width/2,0) SAY I

END FOR

Приложение Д

Текст программы, использующей модули

* Очищаем экран

CLEAR

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Вызов процедуры, выводящей сведения об искомых товарах

DO Show_units_for_date

? ''

* Вызов процедуры, показывающей товары с единицей измерения 'шт. '

DO Show_units_for_measure

* Описание процедуры Show_units_for_date

PROCEDURE Show_units_for_date

? 'Товары, поступившие позже 15.02.2001. '

? ''

? 'Наименование цена количество'

SCAN FOR date_recep>{^2001/02/15}

* Выводим наименование, цену и количество товара

? name_unit+' '+STR (price_unit) +' '+STR (amount)

ENDSCAN

ENDPROC

* Описание процедуры Show_units_for_measure

PROCEDURE Show_units_for_measure

? 'Товары, у которых единица измерения - шт. '

? ''

? 'Наименование цена количество'

SCAN FOR unit_measure='Штука'

* Выводим наименование, цену и количество товара

? name_unit+' '+STR (price_unit) +' '+STR (amount)

ENDSCAN

ENDPROC

Приложение Е

Текст программы страхового копирования и контекстной справки

* - ---Использование страхового копирования данных

SET CLEAR OFF

SET SAFETY OFF

* Если файл NORM. MEM есть.

IF FILE ('C: \MY_WORKS\TRANSF~1\MYPROJ~1\norm. mem')

*. он загружается в память.

RESTORE FROM ('C: \MY_WORKS\TRANSF~1\MYPROJ~1\norm. mem')

* Если переменная завершения истинна.

IF normz

*. копируем все файлы таблиц в страховую директорию

! COPY C: \MY_WORKS\TRANSF~1\MYPROJ~1\*. dbf C: \MY_WORKS\TRANSF~1\MYPROJ~1\Insure\*. dbf>NUL

* иначе сообщение.

ELSE

WAIT normd+' было аварийное завершение. '+;

'Восстановить (ENTER) данные? ' WINDOW

* В случае нажатия Enter файлы восстанавливаются из страховой директории.

IF LASTKEY () =13

! COPY C: \MY_WORKS\TRANSF~1\MYPROJ~1\Insure\*. dbf C: \MY_WORKS\TRANSF~1\MYPROJ~1\*. dbf>NUL

ENDIF

ENDIF

ENDIF

* Устанавливается переменная завершения, переменная текущей даты и обе запоминаются в файл.

normz=. T.

normd=DTOC (DATE ())

SAVE ALL LIKE norm? TO C: \MY_WORKS\TRANSF~1\MYPROJ~1\norm

*=====================================================

* - ---Вызов контекстно-зависимой экранной подсказки по нажатию F1.

* - ---Esc - выход из программы.

* - ---Справка выдается по названию поля таблицы.

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* По нажатию F1 вызываем процедуру Helper

ON KEY LABEL F1 DO Helper WITH VARREAD ()

* Бесконечный цикл BROWSE

DO WHILE. T.

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Отображаем таблицу

BROWSE

* Если нажата клавиша Esc.

IF LASTKEY () =27

*. то на выход.

EXIT

ENDIF

ENDDO

* Описание процедуры Helper

PROCEDURE Helper

* Параметр процедуры - имя поля, которое требуется пояснить

PARAMETERS _Item

* Открываем базу помощи

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_Help

* Ищем нужное поле

LOCATE FOR index_help=_Item

* Если нашли нужное поле (оно одно) - выводим

IF FOUND ()

_Out_text=text_help

MESSAGEBOX (_Out_text)

ELSE

MESSAGEBOX ('Справка по данному разделу не предусмотрена. Извините. ')

ENDIF

RETURN

Приложение Ж

Текст программы создания новых таблиц и арифметических действий

* Очищаем экран

CLEAR

* Открываем таблицу из базы данных

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Создаем новую таблицу, вкоторую входят все товары с ценой>50

COPY TO C: \MY_WORKS\TRANSF~1\MYPROJ~1\New_Goods FIELDS name_unit,price_unit,amount,unit_measure FOR price_unit>50

* Обращаемся к новой таблице

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\New_Goods

* Просматриваем ее

BROWSE

* Создаем новый файл, отсортированный в соответствии с заданием

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

SORT TO C: \MY_WORKS\TRANSF~1\MYPROJ~1\Sort_Goods ON price_unit/A,name_unit/A

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Sort_Goods

* Выводим отсортированную таблицу

LIST OFF price_unit,name_unit

USE C: \MY_WORKS\TRANSF~1\MYPROJ~1\Table_goods

* Выводим количество товаров на букву 'С'

COUNT FOR (LEFT (name_unit,1) ='С') TO _Count

? 'В исходной таблице содержится'+STR (_Count) +' товара (-ов) на букву `С`'

* Выводим общую стоимость всех товаров

? 'Общая стоимость всех товаров равна'

SUM price_unit*amount

* Выводим среднее арифметическое цен всех товаров

? 'Среднее арифметическое цен всех товаров равно'

AVERAGE price_unit

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

Рецензия на курсовую работу

Студенткакурса

учебной группы __________________________________ специальность:

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

По дисциплине______________________________________

Базы данных

на тему

Ф. И.О. руководителя

Маршала О. Ю.

(фамилия, имя, отчество руководителя)

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Курсовая работа

(допускается / не допускается к защите)

________________________ ________________________ (дата) (подпись)

Отзыв на курсовую работу по дисциплине " Базы данных"

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

Выполнила студентка IV курса группы 08ПВ Ботавина А. Г.

__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Вывод

____________________________________________________________________________________________________________________________________

Курсовая работа защищена на оценку

_________ "_____"____________200___г.

______________________________________

(подпись, фамилия, имя, отчество)

Размещено на Allbest.ru

...

Подобные документы

  • Авторизация с каталогами проектирования базы данных магазина. Задачи базы данных: учет всех товаров, поиск и выдача данных о клиентах, адрес, телефоны, цена и наличие товара. Этапы проектирования базы данных. Схема данных, создание запросов и их формы.

    реферат [1,6 M], добавлен 22.10.2009

  • Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.

    курсовая работа [2,4 M], добавлен 06.02.2016

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

    курсовая работа [67,0 K], добавлен 23.02.2009

  • Создание таблиц базы данных с помощью MS Access "Страны Азии". Форма базы данных и запросы к выборкам данных. Модификация структуры таблиц, создания связей между главными таблицами, редактирование данных и проектирование форм для реальной базы данных.

    контрольная работа [723,9 K], добавлен 25.11.2012

  • Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.

    курсовая работа [1,7 M], добавлен 04.06.2015

  • Понятия банка и базы данных, ее компоненты. Многоуровневые модели предметной области, их представление в базе данных. Идентификация объектов и записей. Способы обращения к записям или отдельным элементам данных, их поиск. Определение структуры данных.

    контрольная работа [39,6 K], добавлен 10.04.2010

  • Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.

    курсовая работа [5,1 M], добавлен 13.12.2011

  • Понятие банка и базы данных, их назначение. Создание базы данных "Учет нарушений ПДД" с удобным пользовательским интерфейсом. Требования к функциональным характеристикам. Условия эксплуатации и программные требования. Описание входных и выходных данных.

    курсовая работа [2,9 M], добавлен 22.09.2012

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

    реферат [4,0 M], добавлен 03.02.2013

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

    курсовая работа [4,7 M], добавлен 26.02.2010

  • Структура простейшей базы данных. Режимы работы с ними и свойства полей. Создание таблиц, запросов, форм и отчетов в Microsoft Access. Язык описания и типы данных. Рекомендации и мероприятия по улучшению базы данных торгово-закупочной фирмы "Столица".

    курсовая работа [1,6 M], добавлен 24.05.2013

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

    лабораторная работа [5,9 M], добавлен 13.01.2010

  • Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.

    курсовая работа [1,8 M], добавлен 04.02.2013

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

    контрольная работа [648,7 K], добавлен 13.04.2012

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

    курсовая работа [424,1 K], добавлен 03.11.2014

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

    презентация [4,3 M], добавлен 12.11.2010

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

    курсовая работа [200,4 K], добавлен 02.03.2009

  • Создание базы данных, выполнение поиска, изменение и удаление записей, обработка, проектирование и обмен данными. Определение формул для вычисляемой части базы данных. Заполнение таблицы с помощью Мастера форм. Формы представления и анализ информации.

    учебное пособие [5,0 M], добавлен 12.08.2009

  • Разработка баз данных для предприятий. Процесс создания базы данных "Видеопрокат" в MS Access, содержащей сведения о выдаче кредита. Основные таблицы базы данных: "Выдача и возврат", "Фильм", "Кассета", "Жанр", "Клиент". Схема данных, отчет по запросу.

    курсовая работа [2,7 M], добавлен 07.06.2012

  • Создание базы данных при помощи Microsoft Access по ведению учета продукции склада, её стоимости при покупке и продаже продуктов. Проектирование таблиц "Клиенты", "Документы", "Товары", "Содержание документов". Реализация пользовательского интерфейса.

    курсовая работа [2,1 M], добавлен 30.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.