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

Автор работы: Пользователь скрыл имя, 24 Сентября 2013 в 01:39, курсовая работа

Описание работы

Клиент-серверная СУБД позволяет обмениваться клиенту и серверу минимально необходимыми объёмами информации. При этом основная вычислительная нагрузка ложится на сервер. Клиент может выполнять функции предварительной обработки перед передачей информации серверу, но в основном его функции заключаются в организации доступа пользователя к серверу.
К целям и задачам проекта можно отнести:
закрепление практических навыков программирования, полученных на лабораторных занятиях;
углубление теоретических и практических знаний в области методологии и программирования и разработки приложений баз данных;
развитие навыков самостоятельного планирования и выполнение научно-исследовательской работы;
получение опыта сбора и обработки исходного материала, анализа научно-технической литературы, справочников, стандартов и технической документации

Содержание работы

Введение ………………………………………………………………………….3
Проектирование информационной системы .………………………….....4
Проектирование информационного обеспечения ……………………..4
Выбор СУБД ……………………………………………….……...4
Системный анализ предметной области …………………………..4
Инфологическое проектирование БД ……………………………...5
Даталогическое проектирование БД ………………………...…….5
Проектирование программного обеспечения ………………………….7
Выбор инструментальных средств для создания ПО……………..7
Определение задач решаемых информационной системой………8
Разработка информационной системы……………………………………9
Разработка информационного обеспечения ….………………………...9
Физическое проектирование БД……………...…………………….9
Программирование на стороне SQL-сервера……………………..10
Разработка программного обеспечения ..……...………………………12
Создание Win-приложения .……………………………………….12
Создание Web-приложения ..……………...………………………16
Тестирование информационной системы .…………...…………………20
Пользовательский интерфейс ……………………..………………….20
Интерфейс Win-приложения…………………...………………….20
Интерфейс Web-приложения…………...…………………………23
Заключение……………………………………………………………………….27
Список использованных источников …..…………………………

Файлы: 1 файл

Моя курсовая.docx

— 60.83 Кб (Скачать файл)

 "Количество")

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(); 

}    

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

void __fastcall TForm1::Button5Click(TObject *Sender)     

{    

Form3->QuickRep1->Print();    

}    

void __fastcall TForm1::Button6Click(TObject *Sender)     

{    

Form4->Show();}                          

ПРИЛОЖЕНИЕ 3. ЛИСТИНГ WEB-ПРИЛОЖЕНИЯ

Klienti.php

<html>

<head>

<title>Магазин электротоваров</title>

<link href=style.css type=text/css rel=stylesheet>

</head>

<body>

<table width=980 align=center border=0 cellspacing=0 cellpadding=0 border=0>

<tr>

<td colspan=7 height=201 background="images/01.jpg"></td></tr>

<tr>

<td height=34 width=200 background="images/02.jpg"></td>

<td width=130 background="images/04.jpg" class=menu><a href='index.html'>Главная<a></td>

<td width=130 background="images/04.jpg" class=menu><a href='klienti.php'>Клиенты</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sotrudniki.php'>Сотрудники</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='tovari.php'>Товары</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='zakazi.php'>Заказы</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sozdatel.html'>О создателе</a></td>

</tr>

<tr>

<td valign=top height=645><img src="images/03.jpg"></td>

<td colspan=6 valign=top><img src="images/05.jpg" align=center> 

<h1>РАБОТА  С КЛИЕНТАМИ</h1>

<form name=form1 action='' method=POST>

Сортировать по:

<select name='sort'>

<option value='klient'>Номеру клиента</option>

<option value='klient2'>ФИО</option>

</select> < input type=submit value="Сортировать">

</form>

<?php

$sort=$_POST['sort'];

include_once("connect.php");

if($sort)

$query="select * from $sort";

else

$query="select * from klient";

$result=ibase_query($query);

echo '<table class=tab width=100% align=center cellspacing=0 cellpadding=0>';

echo '<tr><th width=50><b>№</b></th>'.

'<th><b>ФИО</b></th>'.

'<th><b>Паспорт</b></th>'.

'<th><b>Адрес</b></th>'.

'<th><b>Телефон</b></th>'.

'<th width=16></th>'.

'<th width=16></th></tr>';

$i=0;

while($row = ibase_fetch_row($result))

{

$i++;

if($i%2==1){

$col='white';

}

if($i%2==0){

$col='#e6e6e6';

}

echo "<tr bgcolor=$col><td class=nya><b>$row[0]</b></td>

<td class=nya>$row[1]</td>

<td class=nya>$row[2]</td>

<td class=nya>$row[3]</td>

<td class=nya>$row[4]</td>

<td class=nya width=20> <a href='upd_kl.php?up=$row[0]'><img src='images/up.png' border=0 alt='Изменить'></a></td>

<td class=nya width=20> <a href='del_kl.php?del=$row[0]'><img src='images/del.png' border=0 alt='Удалить'></a></td></tr>";

}

?>

</table>

<h1>НАЙТИ  КЛИЕНТА</h1>

<form action='search_kl.php' method=post>

<table align=center class=q border=2>

<tr><td>Введите ФИО: < /td>

<td><input name=fio></td></tr>

<tr><td colspan=2><input type=submit value='Найти'></td></tr>

</table>

</form>

<h1>ФИЛЬТРАЦИЯ  ПО ФАМИЛИИ</h1>

<form action='filtr_kl.php' method=post>

<table align=center class=q border=2>

<tr><td>Фильтровать  от: </td>

<td><input name=po></td><td>до:</td><td><input name=po2></td></tr>

<tr><td colspan=2><input type=submit value='Фильтровать'></td></tr>

</table>

</form>

<p align=right><a href='ins_kl.html' class=op>Добавить клиента</a></p>

</td>

</tr>

<tr><td colspan=7 height=220 background="images/06.jpg">

</td></tr>

</table>

</body>

</html>

Ins_kl.html

<html>

<head>

<title>Магазин  электротоваров</title>

<link href=style.css type=text/css rel=stylesheet>

</head>

<body>

<table width=980 align=center border=0 cellspacing=0 cellpadding=0 border=0>

<tr>

<td colspan=7 height=201 background="images/01.jpg"></td></tr>

<tr>

<td height=34 width=200 background="images/02.jpg"></td>

<td width=130 background="images/04.jpg" class=menu><a href='index.html'>Главная<a></td>

<td width=130 background="images/04.jpg" class=menu><a href='klienti.php'>Клиенты</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sotrudniki.php'>Сотрудники</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='tovari.php'>Товары</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='zakazi.php'>Заказы</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sozdatel.html'>О  создателе</a></td>

</tr>

<tr>

<td valign=top height=645 background="images/03.jpg"></td>

<td colspan=6 valign=top><img src="images/05.jpg" align=center>

<form action='ins_kl.php' method=post>

<h1>ДОБАВЛЕНИЕ  КЛИЕНТА</h1>

<table align=center class=q border=2>

<tr><td>Введите ФИО: < /td>

<td><input name=fio></td></tr>

<tr><td>Введите номер паспорта: </td>

<td><input name=pasp></td></tr>

<tr><td>Введите адрес: < /td>

<td><input name=adres></td></tr>

<tr><td>Введите телефон: < /td>

<td><input name=telefon></td></tr>

<tr><td><input type=submit value='Добавить'></td><td style="text-align:right;"><input type=reset value='Отменить'></td></tr>

</table>

</form>

</td>

</tr>

<tr><td colspan=7 height=220 background="images/06.jpg"></td></tr>

</table>

</body>

</html>

Ins_kl.php

<html>

<head>

<title>Магазин  электротоваров</title>

<link href=style.css type=text/css rel=stylesheet>

</head>

<body>

<table width=980 align=center border=0 cellspacing=0 cellpadding=0 border=0>

<tr>

<td colspan=7 height=201 background="images/01.jpg"></td></tr>

<tr>

<td height=34 width=200 background="images/02.jpg"></td>

<td width=130 background="images/04.jpg" class=menu><a href='index.html'>Главная<a></td>

<td width=130 background="images/04.jpg" class=menu><a href='klienti.php'>Клиенты</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sotrudniki.php'>Сотрудники</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='tovari.php'>Товары</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='zakazi.php'>Заказы</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sozdatel.html'>О  создателе</a></td>

</tr>

<tr>

<td valign=top height=645><img src="images/03.jpg"></td>

<td colspan=6 valign=top><img src="images/05.jpg" align=center>

<h1>ДОБАВЛЕНИЕ  КЛИЕНТА</h1>

<?php

include_once("connect.php");

$fio=$_POST['fio'];

$pasp=$_POST['pasp'];

$adres=$_POST['adres'];

$telefon=$_POST['telefon'];

if(!$fio||!$pasp||!$telefon){echo '<hr>Необходимо заполнить обязательные поля!<hr>';}

else{

$query="EXECUTE PROCEDURE ADD_KLIENT('$fio', $pasp, '$adres', '$telefon')";

$it=ibase_trans();

$result=ibase_query($query);

$ic=ibase_commit();

if($result)

echo'<hr>Клиент успешно добавлен<hr>';

else

echo'<hr>При добавлении произошла ошибка<hr>';}

?>

<a href='klienti.php' class=op>Просмотр</a><br>

<a href='ins_kl.html' class=op>Добавить еще</a>

</td>

</tr>

<tr><td colspan=7 height=220 background="images/06.jpg">

</td></tr>

</table>

</body>

</html>

Search_kl.php

<html>

<head>

<title>Магазин  электротоваров</title>

<link href=style.css type=text/css rel=stylesheet>

</head>

<body>

<table width=980 align=center border=0 cellspacing=0 cellpadding=0 border=0>

<tr>

<td colspan=7 height=201 background="images/01.jpg"></td></tr>

<tr>

<td height=34 width=200 background="images/02.jpg"></td>

<td width=130 background="images/04.jpg" class=menu><a href='index.html'>Главная<a></td>

<td width=130 background="images/04.jpg" class=menu><a href='klienti.php'>Клиенты</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sotrudniki.php'>Сотрудники</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='tovari.php'>Товары</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='zakazi.php'>Заказы</a></td>

<td width=130 background="images/04.jpg" class=menu><a href='sozdatel.html'>О  создателе</a></td>

</tr>

<tr>

<td valign=top height=645><img src="images/03.jpg"></td>

<td colspan=6 valign=top><img src="images/05.jpg" align=center>

<h1>РАБОТА С КЛИЕНТАМИ</h1>

<?php

include_once("connect.php");

$fio=$_POST['fio'];

$query="select * from POISK_KL('$fio')";

$result=ibase_query($query);

echo '<table class=tab width=100% align=center cellspacing=0 cellpadding=0>';

echo '<tr><th width=50><b>№</b></th>'.

'<th><b>ФИО</b></th>'.

'<th><b>Паспорт</b></th>'.

'<th><b>Адрес</b></th>'.

'<th><b>Телефон</b></th>'.

'<th width=16></th>'.

'<th width=16></th></tr>';

$i=0;

while($row = ibase_fetch_row($result))

{

$i++;

if($i%2==1){

$col='white';

}

if($i%2==0){

$col='#e6e6e6';

}

echo "<tr bgcolor=$col><td class=nya><b>$row[0]</b></td>

<td class=nya>$row[1]</td>

<td class=nya>$row[2]</td>

<td class=nya>$row[3]</td>

<td class=nya>$row[4]</td>

<td class=nya width=20> <a href='upd_kl?up=$row[0].php'><img src='images/up.png' border=0 alt='Изменить'></a></td>

<td class=nya width=20> <a href='del_kl?del=$row[0].php'><img src='images/del.png' border=0 alt='Удалить'></a></td></tr>";

}

?>

</table>

<h1>НАЙТИ КЛИЕНТА</h1>

<form action='search_kl.php' method=post>

<table align=center class=q border=2>

<tr><td>Введите ФИО: < /td>

<td><input name=fio></td></tr>

<tr><td colspan=2><input type=submit value='Найти'></td></tr>

</table>

</form>

<h1>ФИЛЬТРАЦИЯ ПО ФАМИЛИИ</h1>

<form action='filtr_kl.php' method=post>

<table align=center class=q border=2>

<tr><td>Фильтровать от: < /td>

<td><input name=po></td><td>до:</td><td><input name=po2></td></tr>

<tr><td colspan=2><input type=submit value='Фильтровать'></td></tr>

</table>

</form>

<p align=right><a href='ins_kl.html' class=op>Добавить клиента</a></p>

</td>

</tr>

<tr><td colspan=7 height=220 background="images/06.jpg">

</td></tr>

</table>

</body>

</html>


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