Uploaded by faxridin kuchkarov

Курсовая работа по программировании

advertisement
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1.
ТЕОРЕТИЧЕСКИЕ
ОСНОВЫ
РАЗРАБОТКИ
ПРИЛОЖЕНИЯ
«МАГАЗИН ПО»
1.1 Основы разработки приложений в среде C++ Builder
1.2 Создание приложений в C++ Builder
1.3 Работа с файлами базы данных в С++ Builder
1.3.1 Механизмы доступа приложения
1.3.2 Варианты архитектуры для BDE
1.4 Описание используемых компонент.
2. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
2.1 Структура базы данных
2.2 Создание базы данных
2.3 Схема данных
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ «МАГАЗИН ПО»
3.1 Структура проекта
3.2 Разработка форм приложения
3.2.1 Главная форма
3.2.2 Форма «Об авторе»
3.2.3 Форма «Справка»
3.2.4 Форма «Чек»
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ
Размещено на http://www.allbest.ru/
ВВЕДЕНИЕ
Информационные технологии - это методы и средства для сбора,
хранения, обработки и получения информации на основе современных
средств вычислительной техники.
В
условиях
упорядочения
современного
сведений
на
информационного
каком-либо
общества
производстве
для
необходима
автоматизация рутинной бумажной работы. Поэтому автоматизация работы
магазина ПО является актуальной задачей.
В курсовой работе ставится основная задача — разработать проект
базы данных для автоматизации формирования заказа
на покупку
программного обеспечения. Разработать приложение, позволяющее вести
учет и контроль базы данных. База данных должна быть спроектирована с
учетом реализации запросов различного типа по получению информации.
Одной из широко используемых сред разработки является Borland
C++Builder, которая позволяет создавать многоформенные приложения.
Поэтому именно с помощью Borland C++Builder я решил разрабатывать своё
приложение для работы с базой данных «Магазин ПО».
Объект курсовой работы – магазин по продаже программного
обеспечения.
Целью курсовой работы является разработка автоматизированного
рабочего места продавца программного обеспечения в среде Borland C++
Builder.
Исходя из цели работы, можно выделить следующие задачи:
1) Разработать и описать предметную область программы;
2) Разработать алгоритм на языке С++;
3) Показать возможности применения автоматизированного рабочего
менеджера (т.е. осуществить программную реализацию и протестировать
разработанное приложение).
Размещено на http://www.allbest.ru/
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ
РАЗРАБОТКИ ПРИЛОЖЕНИЯ
«МАГАЗИН ПО»
C++ Builder представляет собой SDI-приложение, главное окно
которого содержит настраиваемую инструментальную панель и палитру
компонентов. Формы являются основой приложений C++ Builder. Создание
пользовательского интерфейса приложения заключается в добавлении в окно
формы элементов объектов C++ Builder, называемых компонентами.
Компоненты
C++
Builder
располагаются
на
палитре
компонентов,
выполненной в виде многостраничного блокнота. Важная особенность C++
Builder состоит в том, что он позволяет создавать собственные компоненты и
настраивать палитру компонентов, а также создавать различные версии
палитры компонентов для разных проектов.
1.1 Основы разработки приложений в среде C++ Builder
Компоненты разделяются на видимые (визуальные) и невидимые
(невизуальные). Визуальные компоненты появляются во время выполнения
точно так же, как и во время проектирования. Примерами являются кнопки и
редактируемые поля. Невизуальные компоненты появляются во время
проектирования как пиктограммы на форме. Они никогда не видны во время
выполнения, но обладают определенной функциональностью (например,
обеспечивают доступ к данным, вызывают стандартные диалоги Windows и
др.) Для добавления компонента в форму можно выбрать мышью нужный
компонент в палитре и щелкнуть левой клавишей мыши в нужном месте
проектируемой формы. Компонент появится на форме, и далее его можно
перемещать, менять размеры и другие характеристики.
Каждый
компонент
C++
Builder
характеристик: свойства, события и методы.
имеет
три
разновидности
Размещено на http://www.allbest.ru/
Свойства являются атрибутами компонента, определяющими его
внешний вид и поведение. Свойства компонента отображаются на странице
свойств (Properties). Инспектор объектов отображает опубликованные
(published) свойства компонентов. Помимо published-свойств, компоненты
могут и чаще всего имеют общие (public), опубликованные свойства, которые
доступны только во время выполнения приложения. Инспектор объектов
используется для установки свойств во время проектирования. Список
свойств располагается на странице свойств инспектора объектов. Можно
определить свойства во время проектирования или написать код для
видоизменения свойств компонента во время выполнения приложения.
Страница событий (Events) инспектора объектов показывает список
событий,
распознаваемых
компонентом
(программирование
для
операционных систем с графическим пользовательским интерфейсом, в
частности, для Windows 95 или Windows NT пре полагает описание реакции
приложения на те или иные события, а сама операционная система
занимается
наступления
постоянным
какого-либо
опросом
события).
компьютера
Каждый
с
целью
компонент
выявления
имеет
свой
собственный набор обработчиков событий. В C++ Builder следует писать
функции, называемые обработчиками событий, и связывать события с этими
функциями. Создавая обработчик того или иного события, вы поручаете
программе выполнить написанную функцию, если это событие произойдет.
Метод является функцией, которая связана с компонентом, и которая
объявляется как часть объекта. Создавая обработчики событий, можно
вызывать методы, используя следующую нотацию: ->, например: Form1>Show();
По умолчанию проект первоначально содержит файлы для одной
формы и исходного кода одного модуля. Однако большинство проектов
содержат несколько форм и модулей. Чтобы добавить модуль или форму к
проекту, нужно щелкнуть правой кнопкой мыши и выбрать пункт New Form
из контекстного меню. Можно также добавлять существующие формы и
Размещено на http://www.allbest.ru/
модули к проекту, используя кнопку Add контекстного меню менеджера
проектов и выбирая модуль или форму, которую нужно добавить. Формы и
модули можно удалить в любой момент в течение разработки проекта.
Однако, из-за того, что форма связаны всегда с модулем, нельзя удалить одно
без удаления другого, за исключением случая, когда модуль не имеет связи с
формой. Удалить модуль из проекта можно, используя кнопку Remove
менеджера проектов. [Виктор Алексанкин, Наталия Елманова, КомпьютерПресс, 2007, N 4.].
C++ Builder представляет собой SDI-приложение, главное окно
которого содержит настраиваемую инструментальную панель и палитру
компонентов. Формы являются основой приложений C++ Builder. В таблице
1 показаны основные свойства форм.
Таблица 1 «Свойства формы»
Свойство
Описание
Font
Шрифт, используемый «по умолчанию» компонентами, находящимися на поверхности
формы. Изменение свойства Font формы приводит к автоматическому изменению
свойства Font компонента, располагающегося на поверхности формы. То есть
компоненты наследуют свойство Font от формы (имеется возможность запретить
наследование)
Caption
Текст заголовка для управления формой и доступа к компонентам формы
ClientWidth
Ширина рабочей (клиентской) области формы, т.е. без учёта ширины левой и правой
границ
ClientHeight
Высота рабочей (клиентской) области формы, т.е. без учёта высоты заголовка и ширины
нижней границы формы
Icon
Значок в заголовке окна
BorderIcons
Кнопки управления окном. Значение свойства определяет, какие кнопки управления
окном будут доступны пользователю во время работы приложения. Значение свойства
задаётся путём присвоения значений уточняющим свойствам biSystemMenu, biMinimize,
biMaximize, и biHelp. Свойство biSystemMenu определяет доступность кнопки системного
меню, biMinimize – кнопки свернуть, biMaximize – развернуть, biHelp – кнопки вывода
справочной информации
Color
Цвет фона. Цвет можно задать, указав название цвета и привязку к текущей цветовой
схеме операционной системы.
Canvas
Поверхность, на которую можно вынести графику
Размещено на http://www.allbest.ru/
1.2 Создание приложений в C++ Builder
приложение файл база данные
Первым шагом в разработке приложения C++ Builder является создание
проекта. Файлы проекта содержат сгенерированный автоматически исходный
текст, который становится частью приложения, когда оно скомпилировано и
подготовлено к выполнению. Чтобы создать новый проект, нужно выбрать
пункт меню File/New Application.
C++ Builder создает файл проекта с именем по умолчанию Project1.cpp,
а также make-файл с именем по умолчанию Project1.mak. При внесении
изменений в проект, таких, как добавление новой формы, C++ Builder
обновляет файл проекта.
Проект или приложение обычно имеют несколько форм. Добавление
формы к проекту создает следующие дополнительные файлы:

Файл формы с расширением.DFM, содержащий информацию о
ресурсах окон для конструирования формы

Файл модуля с расширением.CPP, содержащий код на C++.

Заголовочный файл с расширением.H, содержащий описание
класса формы.
Для того, чтобы просто откомпилировать текущий проект, из меню
Compile
нужно
выбрать
пункт
меню
Compile.
Для
того
чтобы
откомпилировать проект и создать исполняемый файл для текущего проекта,
из меню Run нужно выбрать пункт меню Run. Компоновка проекта является
инкрементной (перекомпилируются только изменившиеся модули).
Если при выполнении приложения возникает ошибка времени
выполнения, C++ Builder делает паузу в выполнении программы и
показывает редактор кода с курсором, установленным на операторе,
являющемся источником ошибки. Прежде чем делать необходимую
коррекцию, следует перезапустить приложение, выбирая пункт меню Run из
контекстного меню или из меню Run, закрыть приложение и лишь затем
вносить изменения в проект. В этом случае уменьшится вероятность потери
Размещено на http://www.allbest.ru/
ресурсов Windows. [Виктор Алексанкин, Наталия Елманова, КомпьютерПресс, 2007, N 4.].
1.3 Работа с файлами базы данных в С++ Builder
1.3.1 Механизмы доступа приложения
Одно- и двухуровневые приложения С++ Builder могут осуществлять
доступ к локальным и удаленным БД с использованием следующих
механизмов:
1)
BDE (Borland Database Engine — процессор баз данных фирмы
Borland), предоставляющий развитый интерфейс API для взаимодействия с
базами данных;
2)
ADO (ActiveX Data Objects — объекты данных ActiveX)
осуществляет доступ к информации с помощью OLE DB (Object Linking and
Embedding Data Base — связывание и внедрение объектов баз данных);
a)
dbExpress обеспечивает быстрый доступ к информации в базах
данных с помощью набора драйверов;
b)
InterBase Express реализует непосредственный доступ к базам
данных сервера InterBase.
1.3.2 Варианты архитектуры для BDE
BDE представляет собой совокупность динамических библиотек и
драйверов, обеспечивающих доступ к данным. Процессор BDE должен
устанавливаться на всех компьютерах, на которых выполняются приложения
С++ Builder, осуществляющие работу с БД.
Приложение через BDE передает запрос к базе данных, а обратно
получает требуемые данные. Механизм BDE до 6-й версии системы С++
Builder получил самое широкое распространение ввиду широкого спектра
предоставляемых им возможностей. Идеологи фирмы Borland планируют
более широкое применение других механизмов как более эффективных. Мы
Размещено на http://www.allbest.ru/
приводим множество примеров и описание технологии применения BDE для
работы с базами данных в связи с тем, что накоплено большое количество
приложений с использованием этого подхода.
Локальные БД располагаются на том же компьютере, что и
работающие
с
ними
приложения.
В
этом
случае
говорят,
что
информационная система имеет локальную архитектуру (рис. 1).
Приложение
База данных
BDE
Компьютер пользователя
Рис. 1. Структура взаимодействия приложений с базами данных.
Работа с БД происходит, как правило, в однопользовательском режиме.
При необходимости можно запустить на компьютере другое приложение,
одновременно осуществляющее доступ к этим же данным. Для управления
совместным доступом к БД необходимы специальные средства контроля и
защиты. Каждая разновидность БД осуществляет подобный контроль своими
способами и обычно имеет встроенные средства разграничения доступа. [2,
8-10]
1.4 Описание используемых компонент
При
разработке
приложения
будут
использоваться
следующие
компоненты Borland C++ Builder 6.0
TMainMenu
Создает панель команд главного меню и соответствующие им
выпадающие меню для формы. Идентификаторы всех команд меню
Размещено на http://www.allbest.ru/
определяются свойством Items, которое имеет доступ к любой конкретной
команде меню.
TLabel
Отображает на форме прямоугольную область статического текста,
который нельзя редактировать. Обычно текст представляет собой название
другой компоненты. Текст названия является значением свойства Caption.
Свойство Alignment определяет способ выравнивания текста. Чтобы размер
шрифта автоматически соответствовал максимальному заполнению области,
установите значение true свойства AutoSize.
TEdit
Отображает прямоугольную область редактируемого ввода одиночной
строки
информации
на
форме.
Начальное
содержимое
области
редактирования определяет строка, являющаяся значением свойства Text.
TEdit является прямой производной от класса TCustomEdit, полностью
наследуя его свойства, методы и события.
TDBEdit
TDBEdit- компонент просмотра и редактирования полей БД.
TButton
Создает прямоугольную кнопку с надписью. Нажатие на кнопку
инициирует некоторое действие в программе. Кнопка по умолчанию,
выбранная значением true свойства Default, запускает обработчик события
OnClick всякий раз, когда нажимается клавиша Enter в окне диалога. Кнопка
прерывания,
выбранная
значением
true
свойства
Cancel,
запускает
обработчик события OnClick всякий раз, когда нажимается клавиша Escape в
окне диалога.
TBitBtn
Графическая
кнопка
TBitBtn
представляет
собой
популярную
разновидность стандартной кнопки TButton. Ее можно использовать для
ввода команд в формы и диалоговые окна.
TPanel
Размещено на http://www.allbest.ru/
Создает пустую панель, которая может содержать другие компоненты.
Вы можете использовать TPanel для создания на вашей форме панелей
инструментов или строк состояния. TPanel является производной от класса
TCustomPanel, полностью наследуя его свойства, методы и события.
TDataSource
Представляет собой интерфейс между прочими компонентами доступа
к наборам данных и видимыми компонентами управления, размещенными на
форме. Именно посредством соединения с источником данных пользователь
получает
возможность
отображения,
навигации
и
редактирования
содержимого баз данных. Каждый набор данных должен ассоциироваться с
источником, чтобы манипулировать данными посредством компонент
управления. С другой стороны, каждая компонента управления должна
ассоциироваться с источником, чтобы она могла принимать данные и
манипулировать
ими.
Компоненты
TDataSource
также
способны
организовать парные связи таблиц между собой по принципу master-detail и
поддерживать синхронизацию обмена. Установка значения false свойства
AutoEdit запрещает режим редактирования набора данных. Свойство DataSet
указывает, с каким набором данных (таблицей, запросом) связан их
источник.
ADOConnection
Компонент «ADOConnection» используется для создания соединения с
базой
данных
другой
системы.
Чтобы
добавить
новый
сервис
«ADOConnection», нужно выбрать группу, в которую будет входить этот
сервис в дереве сервисов, и воспользоваться командой контекстного меню
дерева сервисов [Новый] ->[ADOConnection].
ADOTable
ADOTable - таблица ADO, обеспечивает доступ к одной таблице ADOисточника данных и позволяет другим компонентам управлять этими
данными,
связываясь
с
компонентом
ADOTable
через
компонент
DataSource.При использовании компонента доступа ADOTable к данным по
Размещено на http://www.allbest.ru/
технологии ADO установление соединения с хранилищем данных можно
выполнить с помощью компонента ADOConnection, для которого с помощью
его свойства ConnectionString нужно установить соединение с хранилищем
данных.
TDBGrid
Осуществляет отображение и редактирование записей, содержащихся в
наборе данных и представляемых на регулярной сетке. Совместное
использование сетки с компонентой TDBNavigator позволяет наилучшим
способом организовать просмотр и редактирование содержимого базы
данных Вы должны связать TDBGrid с набором данных посредством
компоненты источника TDataSource, который идентифицируется значением
свойства DataSource. Свойство Columns содержит редактируемый список
названий заголовков столбцов в сетке. Окно редактора столбцов открывается
кнопкой в графе значений этого свойства или опцией Columns Editor из
контекстного меню компоненты.
Свойство Fields содержит массив всех полей набора данных,
изображаемых в сетке во время работы программы, свойство FieldCount - их
число, а свойство SelectedField - поле, выбранное в данный момент. Значение
true свойства ReadOnly запрещает, а значение false разрешает редактирование
данных при условии, что набор данных находится в режиме редактирования.
Прервать редактирование можно нажатием клавиши Esc или аналогичной
кнопки на панели навигатора. Фактическое изменение данных в полях
происходит только после того, как выбрана новая запись, или при выходе из
программы.
TDBNavigator
Навигатор базы данных TDBNavigator используется для перемещений
по записям набора данных и выполнения операций по их просмотру и
редактированию. Панель управления навигатора размещается на форме
вместе с другими компонентами визуализации данных, как правило с сеткой.
Когда пользователь нажимает одну из кнопок на панели навигатора,
Размещено на http://www.allbest.ru/
выполняется надлежащее действие над записью в наборе данных, с которым
связан навигатор. Например, при нажатии кнопки "+" пустая запись
вставляется в таблицу перед текущей записью.
Таким
образом,
Borland
C++
Builder
6.0
-
это
система
программирования общего назначения, которая может использоваться для
быстрой разработки любых приложений, в том числе одних из самых
сложных — систем управления базами данных.
Размещено на http://www.allbest.ru/
2. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
2.1 Структура базы данных
Моя База Данных содержит 1 таблицу- Программы.
В таблице в режиме конструктора указываются первичные или
внешние ключи.
Хранимые в базе данные имеют определенную логическую структуру –
иными словами, описываются некоторой моделью представления данных
(моделью данных), поддерживаемой СУБД. К числу классических
относятся
следующие модели данных:
• иерархическая,
• сетевая,
• реляционная.
При разработке базы данных «Магазин ПО» мною использовалась
реляционная модель представления данных. Реляционная модель данных
(РМД) некоторой предметной области представляет собой набор отношений,
изменяющихся во времени. При создании информационной системы
совокупность отношений позволяет хранить данные об объектах предметной
области и моделировать связи между ними. [1, 29]
2.2 Создание базы данных
Для создания данной базы данных использовалось приложение MS
Access. Оно имеет широкий спектр функций, включая связанные запросы,
связь с внешними таблицами и базами данных. Благодаря встроенному языку
VBA, в самом Access можно писать приложения, работающие с базами
данных. Данная база данных представлена на рис.2.
Размещено на http://www.allbest.ru/
Рис. 2 База данных
2.3 Схема данных
Схема данных – объединённая по ключевым полям таблица, которая
обеспечивает связь и целостность данных при их редактировании,
добавлении и удалении. Схема данных данного курсового представлена на
рис.3.
Рис. 3. Схема данных
Размещено на http://www.allbest.ru/
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ «МАГАЗИН ПО»
В качестве среды реализации для программы «Автоматизация
формирования заказа на покупку программного обеспечения» была выбрана
среда Borland C++ Builder – как средство визуального программирования.
Это обстоятельство является одним из основных преимуществ C++ Builder.
C++ Builder предлагает мощный инструментарий для создания интерфейса
пользователя. Ни одно из инструментальных средств предыдущих поколений
не представляло столь широких возможностей, и такого уровня удобства для
программиста, как C++ Builder. Среда C++ Builder - это сложный механизм,
обеспечивающий высокоэффективную работу программиста. Визуально она
реализуется несколькими одновременно раскрытыми на экране окнами. C++
Builder.
Borland C++ Builder относится к классу RAD – систем (Rapid
Application Development) – среда быстрой разработки приложений. Ядром
визуальных средств программирования C++ Builder является Visual
Component
Library
(VCL)
–
объектно-ориентированная
библиотека
компонентов, предназначенная для создания пользовательского интерфейса и
доступа к системным ресурсам как операционной системы (DOS), так и
графической оболочки (Windows), а также для работы с БД.
3.1 Структура проекта
Структура проекта «Магазин ПО», представлена на рис.4.
Размещено на http://www.allbest.ru/
Рис. 4. Дерево форм
3.2 Разработка форм приложения
3.2.1 Главная форма
Для удобства работы приложение будет открываться с главной формы,
на которой расположено меню (компонент MainMenu). Формы связываются с
главной формой функцией ShowModal() (например, Form3->ShowModal()) и
подключением к главной форме файлов:
#include "Unit3.h"
Оформим внешний вид формы с помощью фонового рисунка:
Image1->Picture->LoadFromFile("background.jpg");
И панели StatusBar, на которой будет отображаться текущая дата и
время:
StatusBar1->Panels->Items[2]->Text=Now().DateString();
StatusBar1->Panels->Items[1]->Text=Now().TimeString();
Расположим на главной форме такие компоненты как: DBGrid,
DBMemo, ADOTable, ADOConnection, DataSourse, DBNovigator. Чтобы
связать эти компоненты нужно установить целую цепочку связей.
Для начала добавим компоненты доступа к БД, которые расположены
на вкладках ADO (ADOTable) и DataAccess (DataSource, DBGrid). Щелкаем
по DataSource1 и в DataSet выбираем ADOTable1. Щелкаем по ADOTable1 и
в свойстве Connection выбираем ADOConnection1.
Для компонента ADOTablе связь с файлом данных установливается с
помощью строки ConnectionString, при двойном щелчке по кнопке обзор
Размещено на http://www.allbest.ru/
этого свойства открывается окно рис.5.
Рис. 5.
В
котором
выбираем
способ
подключения
прямым
заданием
параметров (ConnectionString, ).
При нажатии кнопки Build открывается окно связь с данными рис.6.
Рис. 6
Размещено на http://www.allbest.ru/
Выбрав поставщика Microsoft Jet 4.0 OLE DB Provider, переходим к
соединению и выбираем нужную базу данных.
Теперь, в Object Inspector ставим Connected в true, в User Name
напишем "Admin", поле пароля оставим пустым. Чтобы больше не повторять
эту процедуру, установите LoginPrompt в false. Щелкаем по DBGrid и в
DataSource выбираем DataSource1. Тоже самое повторяем и для DBNavigator.
Щелкаем
по
ADOTable1
в
TableName
выбираем
нашу
таблицу.
Устанавливаем Active в true.
Организуем поиск по названию. Для этого расположим компонент
ввода и кнопку. Свяжем их в тексте приложения, для этого двойным
щелчком мышки откроем обработчик кнопки и запишем код:
DBGrid1->ReadOnly=false;
TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions <<loPartialKey;
if(ADOTable1->Locate("Программное
обеспечение",
Edit1->
SearchOptions))
ShowMessage("Результат поиска");
else
ShowMessage("Товар по запросу не найден");
DBGrid1->ReadOnly=true;
Аналогично сделаем для поиска по коду товара:
DBGrid1->ReadOnly=false;
TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions <<loPartialKey;
if(ADOTable1->Locate("Код", Edit2->Text, SearchOptions))
ShowMessage("Результат поиска");
else
ShowMessage("Товар по запросу не найден");
Text,
Размещено на http://www.allbest.ru/
DBGrid1->ReadOnly=true;
Организуем фильтр в данном приложении, для этого расположим
компонент ввода и две кнопки. Первая кнопка будет отвечать за запуск
фильтрации, а вторая за её отмену. Пропишем код для первой кнопки, открыв
её обработчик двойным щелчком мышки:
ADOTable1->Filtered=false;
ADOTable1->Filter="[Программное
обеспечение]
LIKE
'%"+Edit3-
>Text+"%'";
ADOTable1->Filtered=true;
Затем пропишем код для второй кнопки:
ADOTable1->Filtered=false;
Edit3->Clear();
Вид главной формы на рис.7.
Рис. 7. Главная форма
3.2.2 Форма «Об авторе»
Создадим форму для просмотра cведений об авторе. Для этого выберем
File->New->Other->Forms->AboutBox. Вид этой формы расположен на рис.8
Размещено на http://www.allbest.ru/
Рис. 8
3.2.3 Форма «Справка»
Создадим форму справки приложения и расположим на ней компонент
Memo1. Для того чтобы растянуть этот компонент зайдём в его свойство
Align и выберем alClient. Зайдя в его свойство Lines->Strings введём нужный
нам текст. Добавим кнопку выхода. Форма справки на рис.9.
Рис. 9
Размещено на http://www.allbest.ru/
3.2.4 Форма «Чек»
Создадим форму для чека. Для этого расположим на ней компонент
Memo1. Для того чтобы растянуть сверху этот компонент зайдём в его
свойство Align и выберем alTop. Затем сделаем кнопку для печати и
пропишем ей код:
TPrinter *Prntr = Printer();
Prntr->BeginDoc();
for(int i = 0; i < Memo1->Lines->Count; i++)
{
Prntr->Canvas->TextOut(200, 200 +
(i*Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])),
IntToStr(i+1)+" "+Memo1->Lines->Strings[i]);
Prntr->EndDoc();
}
Сделаем кнопку очистки компонента Memo1, прописав её код:
Memo1->Clear();
Сделаем кнопку выхода, прописав её код:
Close();
Форма для печати чека располагается на рис.10.
Рис. 10
Размещено на http://www.allbest.ru/
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
После запуска программа «Магазин ПО» отображает главную форму,
содержащую меню программы (рис. 11).
Рис. 11 Главная форма
При выборе любого программного обеспечения из таблицы и нажатия
кнопки добавить в корзину, название программного обеспечения и его цена
заносятся в корзину рис.12
Рис. 12
При поиске по названию, вводим название любого программного
обеспечения и нажимаем кнопку поиск по названию. Если данная программа
находит данное ПО, то всплывает сообщение рис.13
Размещено на http://www.allbest.ru/
Рис. 13
И курсор указывает на выбранное программное обеспечение рис.14.
Рис.14
Если же приложение не находит данное программное обеспечение, то
всплывает окно рис.15.
Рис.15
Аналогично для поиска товара по его коду.
Запустим фильтрацию базы данных в приложении, для этого введём в
окно ввода фильтра название или первые буквы ПО и запустим фильтр
рис.16.
Размещено на http://www.allbest.ru/
Рис. 16
При нажатии кнопки «Убрать фильтр» база данных возвращается к
первоначальному виду.
При добавлении нескольких программных обеспечений в корзину
нажимаем кнопку корзина и открывается новая форма в которой мы можем
просмотреть выбранное программное обеспечение и его цену рис.17
Рис. 17
Размещено на http://www.allbest.ru/
При нажатии кнопки сбросить выбор, происходит сброс выбранных
элементов рис.18.
Рис. 18
При нажатии кнопок компонента DBNovigator курсор перемещается по
базе данных рис.19
Рис. 19
Размещено на http://www.allbest.ru/
ЗАКЛЮЧЕНИЕ
В процессе создания информационной системы были изучены
материалы по предметной области. В результате было создано приложение,
которое включает в себя программу и файлы базы данных.
Была разработана прикладная программа управления базой данных в
заданной предметной области. Прикладная программа может выполнять
следующие функции: а) поддержание целостности информации созданной
базы данных. Для реализации этих функций были разработаны специальные
формы представления информации базы данных для пользователя; б) выбор
информации из базы данных по запросам пользователя.
Так же в процессе выполнения работы были получены и закреплены
практические навыки разработки программ с использованием SQL запросов
и баз данных в написании программ в среде визуального программирования
Borland C++ Builder 6.0.
Размещено на http://www.allbest.ru/
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.
Лапина Т.И. Управление данными / Т.И.Лапина [Текст]: Курск, ЮЗГУ,
2011. 360с.
2.
Хомоненко А.Д. Работа с базами данных в C++ Builder. [Текст] / А.Д.
Хомоненко, С.Е. Ададуров. СПб.: БХВ-Петербург, 2006. 496с.
3.
Хомонепко А. Д. Базы данных: Учебник для высших учебных
заведений [Текст] / А. Д. Хомонепко, В. М.Цыганков, М. Г. Мальцев. - 6-е
изд., доп. - СПб.: КОРОНА-Век, 2009. - 736 с.
4.
Послед Б.С. Borland C++ Builder 6. Разработка приложений баз данных/
Б.С.Послед [Текст]. - СПб.: ООО ДиаСофтЮП, 2003. - 320 с.
5.
Компьютер-Пресс. — М.: Компьютер Пресс, 2007, N 4.
6.
Архангельский А.Я. Программирование в С++ Builder 6.0 [Текст ]/
А.Я.Архангельский – М.:ЗАО «Издательство БИНОМ», 2006.-1162с.
7.
Голицына О. Л. Программное обеспечение [Текст]: учебное пособие. -
3-е изд., перераб. и доп. - М.: Форум, 2010. Гриф: Рекомендовано
Министерством образования и науки РФ.
8.
http://www.intuit.ru/
Туманов
В.Е.
Основы
проектирования
реляционных баз данных. Учебное пособие.// Издательство: Интернетуниверситет информационных технологий– 2007. – ISBN 978-5-94774-713-3.
9.
http://www.am.rusimport..ru/ Приемы разработки приложений MsAccess.
10.
http://www.cyberforum.ru/cpp-builder/
разработчиков баз данных.
Форум
программистов
и
Размещено на http://www.allbest.ru/
ПРИЛОЖЕНИЕ
Размещено на http://www.allbest.ru/
Текст программы:
Unit 1
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
//-------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//-------------------------------------void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{
AboutBox->ShowModal();
}
//-------------------------------------void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
Form3->ShowModal();
}
//-------------------------------------void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Размещено на http://www.allbest.ru/
Form4->ShowModal();
Form4->Memo1->Lines->Add(DBEdit2->Text);
Form4->Memo1->Lines->AddStrings(DBMemo2->Lines);
}
//-------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
StatusBar1->Panels->Items[2]->Text=Now().DateString();
StatusBar1->Panels->Items[1]->Text=Now().TimeString();
}
//-------------------------------------void __fastcall TForm1::N8Click(TObject *Sender)
{
Form4->ShowModal();
}
//-------------------------------------void __fastcall TForm1::N9Click(TObject *Sender)
{
Form3->ShowModal();
}
//-------------------------------------void __fastcall TForm1::N10Click(TObject *Sender)
{
AboutBox->ShowModal();
}
//-------------------------------------void __fastcall TForm1::BitBtn5Click(TObject *Sender)
{
Form4->Memo1->Lines->Add(DBEdit2->Text);
Form4->Memo1->Lines->AddStrings(DBMemo2->Lines);
Размещено на http://www.allbest.ru/
DBMemo3->Lines->Add(DBEdit2->Text);
DBMemo3->Lines->AddStrings(DBMemo2->Lines);
}
//-------------------------------------void __fastcall TForm1::BitBtn6Click(TObject *Sender)
{
Form4->ShowModal();
}
//-------------------------------------void __fastcall TForm1::BitBtn7Click(TObject *Sender)
{
DBMemo3->Clear();
}
//-------------------------------------void __fastcall TForm1::BitBtn8Click(TObject *Sender)
{
DBGrid1->ReadOnly=false;
TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions <<loPartialKey;
if(ADOTable1->Locate("Программное
обеспечение",
SearchOptions))
ShowMessage("Результат поиска");
else
ShowMessage("Товар по запросу не найден");
DBGrid1->ReadOnly=true;
}
//-------------------------------------void __fastcall TForm1::BitBtn9Click(TObject *Sender)
{
Edit1->Text,
Размещено на http://www.allbest.ru/
DBGrid1->ReadOnly=false;
TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions <<loPartialKey;
if(ADOTable1->Locate("Код", Edit2->Text, SearchOptions))
ShowMessage("Результат поиска");
else
ShowMessage("Товар по запросу не найден");
DBGrid1->ReadOnly=true;
}
//-------------------------------------void __fastcall TForm1::N7Click(TObject *Sender)
{
Close();
}
//-------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
{
ADOTable1->Filter="[Программное
обеспечение]
>Text+"%'";
ADOTable1->Filtered=true;
}
//-------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender)
{
ADOTable1->Filtered=false;
Edit3->Clear();
}
//-------------------------------------Unit 4:
LIKE
'%"+Edit3-
Размещено на http://www.allbest.ru/
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit4.h"
//-------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//-------------------------------------__fastcall TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
}
//-------------------------------------void __fastcall TForm4::BitBtn3Click(TObject *Sender)
{
Close();
}
//-------------------------------------void __fastcall TForm4::BitBtn1Click(TObject *Sender)
{
TPrinter *Prntr = Printer();
Prntr->BeginDoc();
for(int i = 0; i < Memo1->Lines->Count; i++)
{
Prntr->Canvas->TextOut(200, 200 +
(i*Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])),
IntToStr(i+1)+" "+Memo1->Lines->Strings[i]);
Prntr->EndDoc();
}
Размещено на http://www.allbest.ru/
}
//-------------------------------------void __fastcall TForm4::BitBtn2Click(TObject *Sender)
{
Memo1->Clear();
}
//-------------------------------------Размещено на Allbest.ru
Download