Автор работы: Пользователь скрыл имя, 06 Мая 2012 в 20:45, курсовая работа
Данный проект был реализован в рамках курсовой работы по предмету "Базы данных". Проект представляет из себя разработку информационной системы с использованием клиент-серверной технологии.
Введение.
1. Проектирование информационной системы.
1.1. Проектирование информационного обеспечения.
1.1.1. Выбор СУБД.
1.1.2. Системный анализ предметной области.
1.1.3. Инфологическое проектирование БД.
1.1.4. Даталогическое проектирование БД.
1.2. Проектирование программного обеспечения.
1.2.1. Выбор инструментальных средств для создания ПО.
1.2.2. Определение задач решаемых информационной системой.
2. Разработка информационной системы.
2.1. Разработка информационного обеспечения.
2.1.1. Физическое проектирование БД.
2.1.2. Программирование на стороне SQL-сервера.
2.2. Разработка программного обеспечения.
2.2.1. Создание Win-приложения.
2.2.2. Создание Web-приложения.
3. Тестирование информационной системы.
3.1. Пользовательский интерфейс.
3.1.1. Интерфейс Win-приложения.
3.1.2. Интерфейс Web-приложения.
Заключение.
Список использованных источников.
Приложение.
Рисунок
18. Результат изменения и
Для
удаления информации необходимо выделить
запись и щелкнуть кнопку «Удалить».
Например удалим только что добавленную
запись
Рисунок 19. Результат удаления данных
Также
может осуществляться поиск клиентов
по фамилии. Для этого необходимо
заполнить соответствующее
Рисунок 20. Поиск информации в БД
Также
можно осуществлять фильтрацию. Например
вывести данные о клиентах, фамилии
которых начинаются с букв А-М.
Рисунок 21. Фильтрация данных
Также
в разработанной программе
Рисунок
22. Создание электронного отчета
3.1.2. Интерфейс web-приложения
Используя
web-приложение также можно осуществлять
доступ к БД. Результат вывода и сортировки
данных изображен на рисунке 23.
Рисунок 23. Вывод отсортированных данных
Для
добавления записи в таблицу необходимо
нажать на кнпоку «Добавить клиента».
Тогда появляется следующая форма.
Рисунок 24. Добавление клиента
После
подтверждения добавления можно
просмотреть все записи. Как видно
из рисунка 25 запись была добавлена.
Рисунок 25. Успешное добавление клиента
Для
изменения данных необходимо нажать
на кнопку с изображение карандаша
возле соответствующей записи. Дл изменения
данных также появится соответствующая
форма. Изменим только что добавленную
запись.
Рисунок 26. Форма для изменения данных о клиенте
После
подтверждения изменений
Рисунок 27. Успешное изменение данных
Для
удаления данных необходимо щелкнуть
на кнопку с изображением красного
крестика возле соответствующей
записи.
Рисунок 28. Удаление информации из БД
Для
осуществления поиска клиентов по фамилии
необходимо ввести критерий для поиска
в соответствующее поле и нажать кнопку
«Найти». Например усли ввести критерием
поиска «Кра» появится следующий результат.
Рисунок
29. Поиск клиентов
ЗАКЛЮЧЕНИЕ
В результате выполнения данной работы были закреплены практические навыки по работе с СУБД Firebird, использование языка PHP, навыки работы с средой Borland C++ Builder. В данной работе конечно же нельзя было обойтись без навыков полученных в ранее изучаемых предметах. Результаты работы говорят о том, что поставленные цели были достигнуты, а задачи выполнены.
Было разработано два приложения, которые осуществляют доступ к одной и той же базе данных, в которой хранится информация о клиентах, сотрудниках, товара и заказах в магазине электротоваров. Оба приложения разработаны с использованием клиент-серверной технологии и могу работать одновременно с разных компьютеров, подключенных к одной локальной и глобальной вычислительной сети.
В
результате выполнения курсового проекта
приобретены навыки работы с учебной,
справочной и методической литературой,
что помогло в выполнении практической
части курсовой работы.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ДЛЯ СОЗДАНИЯ БД
Создание таблицы «Товары»
CREATE GENERATOR
GEN_TOVARI_ID;
CREATE TABLE TOVARI (
ID_TOVARA D_KLUCH NOT NULL /* D_KLUCH = INTEGER NOT NULL CHECK (VALUE>=0) */,
NAIM_TOVARA D_NN_30 /* D_NN_30 = VARCHAR(30) NOT NULL */,
ID_TIPA_TOV D_KLUCH /* D_KLUCH = INTEGER NOT NULL CHECK (VALUE>=0) */,
CENA_TOV D_CENA /* D_CENA = DECIMAL(15,2) NOT NULL */,
ID_FIRMI D_KLUCH /* D_KLUCH = INTEGER NOT NULL CHECK (VALUE>=0) */,
KOLVO_TOV NEW_DOMAIN /* NEW_DOMAIN = INTEGER DEFAULT 1 */
);
ALTER TABLE
TOVARI ADD CONSTRAINT PK_TOVARI PRIMARY KEY (ID_TOVARA);
ALTER TABLE TOVARI ADD CONSTRAINT FK_TOVARI_1 FOREIGN KEY (ID_TIPA_TOV) REFERENCES TIPI_TOVARA (ID_TIPA_TOV) ON UPDATE CASCADE;
ALTER TABLE
TOVARI ADD CONSTRAINT FK_TOVARI_2 FOREIGN KEY (ID_FIRMI) REFERENCES
FIRMI (ID_FIRMI) ON UPDATE CASCADE;
CREATE INDEX
"_IDX1" ON TOVARI (NAIM_TOVARA);
Представление для вывода информации о товарах
CREATE VIEW TOVAR(
"Номер",
"Наименование",
"Тип",
"Фирма",
"Цена",
"Количество")
AS
select tovari.id_tovara, tovari.naim_tovara,tipi_
from tovari, tipi_tovara, firmi
where tovari.id_tipa_tov=tipi_
order by id_tovara;
Хранимая процедура для добавления товара
create procedure ADD_TOVAR (
NAIM varchar(30),
TIP integer,
CENA decimal(9,0),
FIRMA integer,
KOLVO integer)
as
begin
if (:naim is null
or (:tip is null)
or (:cena is null)
or (:firma is null)
) then EXCEPTION no_dan;
else
begin
INSERT INTO tovari (tovari.naim_tovara, tovari.id_tipa_tov, tovari.cena_tov, tovari.id_firmi, tovari.kolvo_tov)
VALUES (:naim, :tip, :cena, :firma, :kolvo);
when sqlcode - 530 do EXCEPTION vn_kl;
end
suspend;
end
Хранимая процедура для поиска товаров
create procedure POISK_TOV (
PO varchar(30))
returns (
ID integer,
NAIM varchar(30),
TIP varchar(30),
FIRMA varchar(30),
CENA decimal(15,2),
KOLVO integer)
as
begin
for SELECT tovari.id_tovara, tovari.naim_tovara, tipi_tovara.naim_tip_tov, firmi.name_firmi, tovari.cena_tov, tovari.kolvo_tov
from tovari, tipi_tovara, firmi
WHERE tovari.id_tipa_tov=tipi_
INTO :id, :naim, :tip, :firma, :cena, :kolvo
DO
suspend;
end
ПРИЛОЖЕНИЕ 2. ЛИСТИНГ WIN-ПРИЛОЖЕНИЯ
void __fastcall TForm1::Button1Click(TObject *Sender)
{
LabeledEdit5->Text="";
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->IBTable1->
DataModule2->IBTable1->
}
//------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
LabeledEdit5->Text="";
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->IBTable1->
DataModule2->IBTable1->
}
//------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
LabeledEdit5->Text="";
DataModule2->
DataModule2->
DataModule2->
DataModule2->IBTable1->
DataModule2->IBTable1->
}
//------------------------
void
__fastcall TForm1::LabeledEdit2KeyPress(
{
if (Key!=VK_BACK && Key<48 || Key>57){
Key = 0;
}
}
//------------------------
void
__fastcall TForm1::LabeledEdit4KeyPress(
{
if (Key!=VK_BACK && Key<48 || Key>57){
Key = 0;
}
}
//------------------------
void
__fastcall TForm1::RadioButton2Click(
{
LabeledEdit5->Text="";
DataModule2->IBTable1->
DataModule2->IBTable1->
DataModule2->IBTable1->Open();
}
//------------------------
void
__fastcall TForm1::RadioButton1Click(
{
LabeledEdit5->Text="";
DataModule2->IBTable1->
DataModule2->IBTable1->
DataModule2->IBTable1->Open();
}
//------------------------
void
__fastcall TForm1::LabeledEdit5Change(
{
if(Edit1->Text==""){
DataModule2->IBTable1->Close()
DataModule2->IBTable1->Open();
Form1->DBGrid1->DataSource=
}
DataModule2->IBTable1->Close()
DataModule2->IBQuery1->Close()
DataModule2->IBQuery1->
DataModule2->IBQuery1->Open();
Form1->DBGrid1->DataSource=
}
//------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form3->QuickRep1->Preview(