Разработка информационной системы "Магазин электротоваров" с использованием клиент-серверной технологии

Автор работы: Пользователь скрыл имя, 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-приложения.
Заключение.
Список использованных источников.
Приложение.

Файлы: 1 файл

курсовая работа.doc

— 3.06 Мб (Скачать файл)

Рисунок 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. Хелен Борри «Firebird: руководство разработчика баз данных» изд. «БХВ-Петербург» 2006 г. - 1105 с.
  2. Архангельский А. Я. C++Builder 6 Справочное пособие. Книга 2. Классы и компоненты. – М.: Бином-Пресс, 2004г. – 528с.
  3. Хомоненко А. Д., Ададуров С. Е.  Работа с базами данных в C++ Builder. — СПб.: БХВ-Петербург,  2006.—496 с: ил.
  4. В.М. Михелёв. «Базы данных и СУБД» – Белгород: Издательство БелГУ, 2007. – 200 с.
 
 

    ПРИЛОЖЕНИЕ 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_tovara.naim_tip_tov, firmi.name_firmi,tovari.cena_tov,tovari.kolvo_tov

from tovari, tipi_tovara, firmi

where tovari.id_tipa_tov=tipi_tovara.id_tipa_tov and tovari.id_firmi=firmi.id_firmi and tovari.kolvo_tov!=0

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_tovara.id_tipa_tov and tovari.id_firmi=firmi.id_firmi and tovari.naim_tovara like '%'||:po||'%'

  INTO :id, :naim, :tip,  :firma, :cena,  :kolvo

  DO

  suspend;

end

ПРИЛОЖЕНИЕ 2. ЛИСТИНГ WIN-ПРИЛОЖЕНИЯ

    void __fastcall TForm1::Button1Click(TObject *Sender)

    {

    LabeledEdit5->Text="";

    DataModule2->IBStoredProc1->ParamByName("fio")->AsString=LabeledEdit1->Text;

    DataModule2->IBStoredProc1->ParamByName("nomer_pasporta")->AsString=LabeledEdit2->Text;

    DataModule2->IBStoredProc1->ParamByName("adres")->AsString=LabeledEdit3->Text;

    DataModule2->IBStoredProc1->ParamByName("telefon")->AsString=LabeledEdit4->Text;

    DataModule2->IBStoredProc1->Prepare();

    DataModule2->IBStoredProc1->ExecProc();

    DataModule2->IBTable1->Close();

    DataModule2->IBTable1->Open(); 

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button2Click(TObject *Sender)

    {

    LabeledEdit5->Text="";

    DataModule2->IBStoredProc3->ParamByName("adres")->AsString=LabeledEdit3->Text;

    DataModule2->IBStoredProc3->ParamByName("phone")->AsString=LabeledEdit4->Text;

    DataModule2->IBStoredProc3->ParamByName("nom_kli")->AsString=DataModule2->IBTable1->FieldByName("Номер  клиента")->AsInteger;

    DataModule2->IBStoredProc3->Prepare();

    DataModule2->IBStoredProc3->ExecProc();

    DataModule2->IBTable1->Close();

    DataModule2->IBTable1->Open(); 

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button3Click(TObject *Sender)

    {

    LabeledEdit5->Text="";

    DataModule2->IBStoredProc2->ParamByName("ID")->AsString=DataModule2->IBTable1->FieldByName("Номер клиента")->AsInteger;

    DataModule2->IBStoredProc2->Prepare();

    DataModule2->IBStoredProc2->ExecProc();

    DataModule2->IBTable1->Close();

    DataModule2->IBTable1->Open(); 

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::LabeledEdit2KeyPress(TObject *Sender, char &Key)

    {

      if (Key!=VK_BACK && Key<48 || Key>57){

        Key = 0;

      }

    }

    //--------------------------------------------------------------------------- 
 

    void __fastcall TForm1::LabeledEdit4KeyPress(TObject *Sender, char &Key)

    {

      if (Key!=VK_BACK && Key<48 || Key>57){

        Key = 0;

      }

    }

    //--------------------------------------------------------------------------- 
 

    void __fastcall TForm1::RadioButton2Click(TObject *Sender)

    {

    LabeledEdit5->Text="";

    DataModule2->IBTable1->Close();

    DataModule2->IBTable1->TableName="KLIENT2";

      DataModule2->IBTable1->Open();

    }

    //--------------------------------------------------------------------------- 

    void __fastcall TForm1::RadioButton1Click(TObject *Sender)

    {

    LabeledEdit5->Text="";

    DataModule2->IBTable1->Close();

    DataModule2->IBTable1->TableName="KLIENT";

      DataModule2->IBTable1->Open();

    }

    //--------------------------------------------------------------------------- 

    void __fastcall TForm1::LabeledEdit5Change(TObject *Sender)

    {

    if(Edit1->Text==""){

      DataModule2->IBTable1->Close();

      DataModule2->IBTable1->Open();

      Form1->DBGrid1->DataSource=DataModule2->DataSource1;

    }

      DataModule2->IBTable1->Close();

      DataModule2->IBQuery1->Close();

      DataModule2->IBQuery1->ParamByName("po")->AsString=LabeledEdit5->Text;

      DataModule2->IBQuery1->Open();

      Form1->DBGrid1->DataSource=DataModule2->DataSource2;

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button4Click(TObject *Sender)

    {

    Form3->QuickRep1->Preview();

Информация о работе Разработка информационной системы "Магазин электротоваров" с использованием клиент-серверной технологии