2.6 Кодування і тестування програмного забезпечення
База даних “Репозиторій ПЗ” була розроблена у середовищі MySQL + php. Вона реалізована за допомогою таблиць, форм, запитів та звітів. Також для нормального функціонування бази даних було написано програмний код, який представлено у Додатку А.
При тестуванні бази даних “Репозиторій ПЗ ” не було виявлено помилок в роботі. Для запуску бази даних , використовуючи браузер mozilla, заходимо на адресу http://217.77.222.218. При запуску бази даних відкрилася форма “Репозиторій ПЗ”, в якій було натиснуто кнопку “Додати/видалити автора”, потім відкрилася форма “Додати/видалити автора”, в якій було заповнено поля ім”я, по-батькові, та прізвише автора, його email-адресу значеннями (імя1,побатькові1,прізвище1,name1@mail.ru). Після натискання кнопки “Додати автора” внесені дані з’являються в таблиці нижче. Відповідне звернення фіксується в журналі бази даних. Повторюємо дану операцію 4 рази для різних авторів. Далі вибираємо будь-якого автора з таблиці нижче та натискаємо кнопку “Видалити автора”. Вибраний автор зникає з таблиці. Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”.
Також у формі “Репозиторій ПЗ” було натиснуто кнопку “Додати/видалити дистрибутив”, після цього відкрилася форма “Додати/видалити дистрибутив”, де було заповнено поля Назва, Версія, ftp-адреса. Після натискання кнопки “Додати дистрибутив” дані про внесений до бази даних дистрибутив з’являються в таблиці нижче “Наявні дистрибутиви”. Повторюємо вищевказані операції 3 рази. Введені дистрибутиви з’являються в таблиці “Наявні дистрибутиви”. Вибираємо рядок таблиці та натискаємо кнопку “Видалити дистрибутив”. Вибраний рядок (а отже і дистрибутив) зникає з таблиці. Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”. Відкривається форма “Репозиторій ПЗ”.
Натиснувши в формі “ Репозиторій ПЗ ” кнопку “Додати/видалити ПЗ”, відкрилася форма «Додати/видалити ПЗ», в якій було заповнено поля назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми. Також обрано автора та дистрибутив із вже наявних у базі даних. Дані про внесене ПЗ з’являються у таблиці “Наявне ПЗ”. Повторюємо операцію 5 разів. Інформація про все ПЗ введене в базу з’являється в таблиці “Наявне ПЗ”. З таблиці вибираємо 2 рядка, які, відповідно, описують два екземпляра ПЗ. Після натискання кнопки “Видалити ПЗ” вибрані рядки зникають з таблиці “Наявне ПЗ”. Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”.
Натиснувши в формі “ Репозиторій ПЗ ” кнопки “Пошук ПЗ за датою”, “Пошук ПЗ за автором”, “Пошук ПЗ за назвою”, “Пошук автора”, “Звіт” було виведено запит за відповідним критерієм. Після введення необхідного критерію з’являвся звіт, у якому було представлено кортежі бази даних, які задовольняють заданий критерій.
Для пошуку програмного забезпечення за приблизною датою створення натискаємо в формі “Репозиторій ПЗ” кнопку “Пошук ПЗ за датою”. З’являється форма “Пошук ПЗ за датою” в якій з випадаючих списків вибираємо початкову та кінцеву дату. Після натискання кнопки “Пошук” в таблиці “Звіт ПЗ” нижче з’являється інформація про програмне забезпечення, яке сворене пізніше початкової та раніше кінцевої дати. Для отримання вихідних файлів ПЗ натискаємо на посилання в колонці ftp-адреса та переходимо за відповідною адресою.Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”.
Висновки
Підчас розробки проекту бази даних „Репозиторій ПЗ” були проведені обстеження та детальний аналіз предметної області, були створені функціональна, концептуальна, логічна та фізична моделі бази даних. Також були детально проаналізовані усі елементи, з яких складається даний програмний продукт та залежності між ними. Для розробки даного програмного продукту було використано MySQL та php – відкриті, прозорі, безкоштовні та переносимі рішення.
Створена електронна база даних значно підвищує ефективність праці у процесі обліку програмного забезпечення, оскільки дозволяє швидко реалізувати можливості пошуку ПЗ: за автором, назвою, датою створення; можливість реєстрації дистрибутива, а саме фіксування таких даних, як: назва, версія, ftp-адреса дистрибутива; можливість реєстрації автора, а саме занесення до бази даних такої інформації: ім”я, по-батькові, та прізвише автора, його email-адресу; можливість реєстрації програмного забезпечення, а саме занесення до бази даних такої інформації: назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми, автора та дистрибутив із вже наявних у базі даних.; можливість редагування інформації про вже зареєстроване програмне забезпечення; можливість переглядати статистичні дані про все наявне програмне забезпечення.
Програма має зручний інтерфейс та меню користувача, проста у використанні, враховує найважливіші потреби користувача, який працює з великою базою даних, має інструкцію для користувача. Програма максимально переносима оскільки потребує тільки підключення до мережі інтернет та браузер. Програма підтримує використання багатьма користувачами в реальному часі.
Отже, розроблене програмне забезпечення повністю задовольняє поставлені до нього вимоги. Може бути використане за призначенням як примітивний репозиторій та як приклад для інших проектів.
Список використаних джерел
1. Гарсиа-Молина, Гектор, Ульман, Джеффи, Д., Уидом, Джениффер. Системы баз данных. Полний курс.: Пер. с англ. – М.: Издательский дом «Вильямс», 2004. -1088 с.
2. Кирилов В.В. Основи проектирования реляционних баз даних. Учебное пособие. –СПб.:ИТМО, 1994. – 90 с.
Додаток А – Текст програми
index.php
<?php include ("header.inc.html"); echo myheader(); ?>
<?php
function myhref($href) {
$style = " style=\"border: 1px solid black; cursor:pointer\"";
$href = " onclick=\"location.href='$href'\"";
$rollover = " onmouseover=\"this.style.background='#c0c0c0'\" onmouseout=\"this.style.background='#d3d3d3'\"";
return $style.$rollover.$href;
}
?>
<table align=center border=0 cellpadding=10 cellspacing=10 class="text" style="border: 1px solid black">
<tr class=h1 bgcolor="#c0c0c0">
<td align="center" colspan=2>=[ Репозиторій ]=</td>
</tr>
<tr class="h2" bgcolor="#c0c0c0">
<td align="center">Пошук</td>
<td align="center">Адміністрування</td>
</tr>
<tr onmouseover="this.style.backgroundcolor=lightgreen";>
<td align="center" <?php echo myhref("./scripts/sDate.php") ?> >ПЗ по даті</td>
<td align="center" <?php echo myhref("./scripts/pz.php") ?> >ПЗ</td>
</tr>
<tr>
<td align="center" <?php echo myhref("./scripts/sAuthor.php") ?> >ПЗ по автору</td>
<td align="center" <?php echo myhref("./scripts/distr.php") ?> >Дістр</td>
</tr>
<tr>
<td align="center" <?php echo myhref("./scripts/sName.php") ?> >ПЗ по назві</td>
<td align="center" <?php echo myhref("./scripts/afftar.php") ?> >Автор</td>
</tr>
<tr>
<td align="center" <?php echo myhref("./scripts/sAName.php") ?> >Автора по імені</td>
<td> </td>
</tr>
<tr>
<td align="center" <?php echo myhref("./scripts/sAll.php") ?> >Все!</td>
<td align=center class=foo> <div style="cursor:pointer" onclick="location.href='lic.php'">license</a></td>
</tr>
</table>
<?php $printLink=1; include("footer.inc.html"); ?>
header.inc.html
<?php
function myheader( $title="Репозиторій" ) {
$header = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
$header = $header . "<html>\n<head>\n<title>".$title."</title>\n";
$header = $header . "<link rel=\"stylesheet\" type=\"text/css\" href=\"/styles.css\">\n";
$header = $header . "</head>\n\n<body bgcolor=\"#d3d3d3\"\n>";
return $header;
}
?>
footer.inc.html
<table cellpadding="10" cellspacing="10" border=0 class=foo align="center">
<tr valign="middle">
<td align="center">
<?php
if ( !$printLink == 1 ) echo "<a href=/index.php>= Повернутися на головну сторінку =</a><br><br><br>";
?>
[ June, 03..04, 2007 (c) ]
</td>
</tr>
</table>
</body>
</html>
styles.css
a {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
color: Navy;
font-size: 9pt;
text-decoration: none;
}
a:hover { color: #ff0000; }
.h1 {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 16pt;
font-weight: bold;
vertical-align: middle;
}
.h2 {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12pt;
font-weight: bold;
vertical-align: middle;
}
.text {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 10pt;
}
.foo {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 8pt;
color: #A9A9A9;
}
db.php
<?php
class db {
var $dbl;
var $res;
function db($host="localhost",$user="lus",$pass="1")
{
$this->dbl = mysql_pconnect($host,$user,$pass);
mysql_select_db("lus", $this->dbl);
}
function query($q)
{
$this->res = mysql_query($q, $this->dbl);
return $this->res;
}
function num_rows()
{
return mysql_num_rows($this->res);
}
function fetch_row()
{
return mysql_fetch_row($this->res);
}
function fetch_array()
{
return mysql_fetch_array($this->res,MYSQL_ASSOC);
}
function fetch_object()
{
return mysql_fetch_object($this->res);
}
function insert_id()
{
return mysql_insert_id($this->dbl);
}
function is_result()
{
return $this->res ? 1 : 0;
}
}
?>
forms/afftar.html
<form action="../scripts/afftar.php">
<table class=text>
<tr>
<td colspan=2 align="center" class=h1>Додати/видалити автора<br><br></td>
</tr>
<tr>
<td>Ім'я</td>
<td><input type="text" name="fname" size="15" maxlength="30"></td>
</tr>
<tr>
<td>По-батькові:</td>
<td><input type="text" name="lname" size="15" maxlength="30"></td>
</tr>
<tr>
<td>Прізвище:</td>
<td><input type="text" name="sname" size="15" maxlength="30"></td>
</tr>
<tr>
<td>email:</td>
<td><input type="text" name="address" size="15" maxlength="30"></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" name="add" value="Додати автора"></td>
</tr>
</table>
</form>
scripts/afftar.php
<?php include("../header.inc.html"); echo myheader("Автор") ?>
<div align=center>
<?php
require "../db.php";
include "../forms/afftar.html";
$db = new db();
if(isset($_GET['add'])) {
$fn = $_GET['fname'];
$ln = $_GET['lname'];
$sn = $_GET['sname'];
$a = $_GET['address'];
$db->query("INSERT INTO dev(first_name, last_name, surname, addr)
VALUES ('$fn','$ln','$sn','$a') ");
} elseif(isset($_GET['del'])) {
foreach($_GET['delarr'] as $arr){
$db->query("DELETE FROM dev
WHERE id = $arr ");
}
}
?>
<div class=h2>Зареєстровані автори</div>
<form action=<?php print $PHP_SELF; ?> >
<table style="border: 1px solid black; " cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0">
<td> </td>
<td align="center">Ім'я</td>
<td align="center">По-батькові</td>
<td align="center">Прізвище</td>
<td align="center">email</td>
</tr>
<?php
$db->query("SELECT id, first_name,last_name,surname,addr FROM dev");
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val){
if($key=='id') $val = "<input type=checkbox name=delarr[] value=$val>";
if ($key=='addr') $val = "<a href=\"mailto:$val\">$val</a>";
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>";
}
echo "</tr>";
}
?>
<tr><td colspan="5" align="center"><input type="submit" name="del" value="Видалити автора"></td></tr>
</table>
</form>
</div>
<?php include("../footer.inc.html"); ?>
forms/distr.html
<form action="../scripts/distr.php">
<table class=text>
<tr>
<td colspan=2 align="center" class=h1>Add/Del distr<br><br></td>
</tr>
<tr>
<td>Ім'я</td>
<td><input type="text" name="name" size="15" maxlength="30"></td>
</tr>
<tr>
<td>Версія:</td>
<td><input type="text" name="version" size="15" maxlength="30"></td>
</tr>
<tr>
<td>Адрес:</td>
<td><input type="text" name="address" size="15" maxlength="30"></td>
</tr>
<tr>
<td><input type="submit" name="add" value="Додати distr"></td>
<td><input type="submit" name="del" value="Видалити distr"></td>
</tr>
</table>
</form>
scripts/distr.php
<?php include("../header.inc.html"); echo myheader("Дістр") ?>
<div align=center>
<?php
include "../forms/distr.html";
require ("../db.php");
$db = new db();
if(isset($_GET['add'])) {
$n = $_GET['name'];
$v = $_GET['version'];
$a = $_GET['address'];
$db->query("INSERT INTO distr(name, version, addr)
VALUES ('$n','$v','$a') ");
} elseif(isset($_GET['del'])) {
foreach($_GET['delarr'] as $arr){
$db->query("DELETE FROM distr
WHERE id = $arr ");
}
}
?>
<div class=h2>Наявні дистрибутиви</div>
<form action=<?php print $PHP_SELF; ?> >
<table style="border: 1px solid black; " cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0">
<td align="center"> </td>
<td align="center">Назва</td>
<td align="center">Версія</td>
<td align="center">ftp-адреса</td>
</tr>
<?php
$db->query("SELECT id,name,version,addr FROM distr");
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val) {
if ($key=='id') $val = "<input type=checkbox name=delarr[] value=$val>";
if ($key=='addr') $val = "<a href=\"ftp://$val\">$val</a>";
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>\n";
}
echo "</tr>";
}
?>
<tr><td align="center" colspan=4><input type="submit" name="del" value="Видалити відмічені"></td></tr>
</table>
</form>
</div>
<?php include("../footer.inc.html"); ?>
forms/pz.html
<<form action="../scripts/pz.php">
<table class=text>
<tr>
<td colspan=2 align="center" class=h1>Додати/Видалити ПЗ<br><br></td>
</tr>
<tr>
<td>Назва</td>
<td><input type="text" name="name" size="15" maxlength="30"></td>
</tr>
<tr>
<td>Версія:</td>
<td><input type="text" name="version" size="15" maxlength="30"></td>
</tr>
<tr>
<td>Дата:</td>
<td><input type="text" name="date" size="15" maxlength="30"></td>
</tr>
<tr>
<td>Дистрибутив:</td>
<td>
<select name=distr>
<?php
$db->query("SELECT id,name,version FROM distr");
while ( $arr = $db->fetch_array() ) {
$tmp = $arr['id'];
$tmpname = $arr['name']." - ".$arr['version'];
echo "<option value=$tmp>$tmpname";
}
?>
</select>
</td>
</tr>
<tr>
<td>Автор:</td>
<td>
<select name=author>
<?php
$db->query("SELECT id,first_name,surname FROM dev");
while($arr=$db->fetch_array()) {
$tmp = $arr['id'];
$tmpname = $arr['first_name']." ".$arr['surname'];
echo "<option value=$tmp>$tmpname";
}
?>
</select>
</td>
</tr>
<tr>
<td>Ліцензія:</td>
<td><input type="text" name="licence" size="15" maxlength="30"></td>
</tr>
<tr>
<td>ftp-адреса:</td>
<td><input type="text" name="address" size="15" maxlength="30"></td>
</tr>
<tr>
<td colspan=2 align="center"><input type="submit" name="add" value="Додати ПЗ"></td>
</tr>
</table>
</form>
scripts/pz.php
<?php include("../header.inc.html"); echo myheader("ПЗ") ?>
<?php
require ("../db.php");
$db = new db();
?>
<div align="center">
<?php
include "../forms/pz.html";
if(isset($_GET['add'])) {
$n = $_GET['name'];
$v = $_GET['version'];
$d = $_GET['date'];
$l = $_GET['licence'];
$n_d=$_GET['distr'];
$n_a=$_GET['author'];
$a = $_GET['address'];
$db->query("INSERT INTO pz(name, version, dev_id, distr_id, date, licence, addr)
VALUES ('$n','$v', '$n_a', '$n_d', DATE '$d', '$l', '$a') ");
} elseif(isset($_GET['del'])) {
foreach($_GET['delarr'] as $arr){
$tmp = explode (":",$arr);
$db->query("DELETE FROM pz
WHERE name = '$tmp[0]'
AND version = '$tmp[1]' ");
}
}
?>
<div class=h2>Наявне ПЗ</div>
<form action=<?php print $PHP_SELF; ?> >
<table style="border: 1px solid black" cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0" class=>
<td> </td>
<td align="center">Назва</td>
<td align="center">Версія</td>
<td align="center">Датa</td>
<td align="center">Ліцензія</td>
<td align="center">ftp-адреса</td>
<td align="center" colspan=2>Розробник</td>
<td align="center">Дистрибутив</td>
<td align="center">ftp-aдреса дистрибутива</td>
</tr>
<?php
$db->query("SELECT pz.name, pz.version,pz.date,pz.licence,pz.addr, dev.first_name,
dev.surname,distr.name AS name1, distr.addr AS address
FROM pz,dev, distr
WHERE (pz.dev_id=dev.id AND pz.distr_id=distr.id )");
while($arr=$db->fetch_array()){
echo "<tr>";
$tmp=$arr['name'].":".$arr['version'];
$val = "<input type=checkbox name=delarr[] value=\"$tmp\">";
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>\n";
foreach($arr as $key=>$val){
if (($key=='addr') || ($key=='address')) $val = "<a href=\"ftp://$val\">$val</a>";
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>\n";
}
echo "</tr>";
}
?>
<tr><td colspan=10 align=center><input type="submit" name="del" value="Видалити ПЗ"></td></tr>
</table>
</form>
</div>
<?php include("../footer.inc.html"); ?>
if(isset($_GET['add'])) {
$n = $_GET['name'];
$v = $_GET['version'];
$d = $_GET['date'];
$l = $_GET['licence'];
$n_d=$_GET['distr'];
$n_a=$_GET['author'];
$a = $_GET['address'];
$db->query("INSERT INTO pz(name, version, dev_id, distr_id, date, licence, addr)
VALUES ('$n','$v', '$n_a', '$n_d', DATE '$d', '$l', '$a') ");
} elseif(isset($_GET['del'])) {
$db->query("DELETE FROM distr
WHERE name = '$n'
AND version = '$v' ");
}
?>
</div>
<?php include("../footer.inc.html"); ?>
forms/sAName.html
<form action="../scripts/sAName.php">
<table class=text>
<tr>
<td colspan=2 align="center" class=h1>Пошук авторa<br><br></td>
</tr>
<tr>
<td>Прізвище автора:</td>
<td><input type="text" name="surname" maxlength="60"></td>
</tr>
<tr>
<td colspan=2 align=center>
<input type="submit" name="search" value="Пошук!">
</td>
</tr>
</table>
</form>
scritps/sAName.php
<?php include("../header.inc.html"); echo myheader("Пошук по автору") ?>
<div align="center">
<?php
include "../forms/sAName.html";
$name = $_GET['surname'];
require ("../db.php");
$db =new db();
##########
$db->query("SELECT dev.first_name, dev.last_name, dev.surname,dev.addr
FROM dev
WHERE dev.surname = \"$name\" ");
?>
<table style="border: 1px solid black; " cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0">
<td align="center">Ім'я</td>
<td align="center">По-батькові</td>
<td align="center">Прізвище</td>
<td align="center">Адреса</td>
</tr>
<?php
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val)
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>";
echo "</tr>";
}
?>
</table>
</div>
<?php include("../footer.inc.html"); ?>
forms/sAuthor.html
<form action="../scripts/sAuthor.php">
<table class=text>
<tr>
<td colspan=2 align="center" class=h1>Пошук по автору<br><br></td>
</tr>
<tr>
<td>Ім'я:</td>
<td><input type="text" name="first_name" maxlength="60"></td>
</tr>
<tr>
<td>Прізвище:</td>
<td><input type="text" name="surname" maxlength="60"></td>
</tr>
<tr>
<td colspan=2 align=center>
<input type="submit" name="add" value="Пошук!">
</td>
</tr>
</table>
</form>
scritps/sAuthor.php
<?php include("../header.inc.html"); echo myheader("Пошук по автору") ?>
<div align="center">
<?php
include "../forms/sAuthor.html";
$firstname = $_GET['first_name'];
$surname = $_GET['surname'];
require ("../db.php");
$db =new db();
##########
$db->query("SELECT pz.name, pz.version,pz.date,pz.licence,pz.addr, dev.first_name, dev.surname,dev.addr AS address
FROM pz,dev
WHERE (pz.dev_id=dev.id )
AND (dev.first_name = \"$firstname\")
AND (dev.surname = \"$surname\") ");
?>
<table style="border: 1px solid black; " cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0">
<td align="center">Ім'я</td>
<td align="center">Версія</td>
<td align="center">Датa</td>
<td align="center">Ліцензія</td>
<td align="center">ftp-адреса</td>
<td align="center" colspan=2>Розробник</td>
<td align="center">Адреса розробника</td>
</tr>
<?php
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val)
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>";
echo "</tr>";
}
?>
</table>
</div>
<?php include("../footer.inc.html"); ?>
forms/sDate.html
<form action="../scripts/sDate.php">
<table class=text>
<tr>
<td colspan=2 align="center" class=h1>Пошук по даті<br><br></td>
</tr>
<tr>
<td>Дата:</td>
<td>
з
<select name=from_day>
<?php
echo "<option selected value=01>01\n";
for ($i=2; $i<=31; $i++) {
echo "<option value=";
if ($i<10)
echo "0".$i.">"."0".$i;
else
echo $i.">".$i;
echo "\n";
}
?>
</select>
<select name=from_month>
<option selected value=01>січень
<option value=02>лютий
<option value=03>березень
<option value=04>квітень
<option value=05>травень
<option value=06>червень
<option value=07>липень
<option value=08>серпень
<option value=09>вересень
<option value=10>жовтень
<option value=11>листопад
<option value=12>грудень
</select>
<select name=from_year>
<?php
echo "<option selected value=1970>1970\n";
for ($i=1971; $i<=2010; $i++) {
echo "<option value=".$i.">".$i."\n";
}
?>
</select>
по
<select name=to_day>
<?php
echo "<option selected value=01>01\n";
for ($i=2; $i<=31; $i++) {
echo "<option value=";
if ($i<10)
echo "0".$i.">"."0".$i;
else
echo $i.">".$i;
echo "\n";
}
?>
</select>
<select name=to_month>
<option selected value=01>січень
<option value=02>лютий
<option value=03>березень
<option value=04>квітень
<option value=05>травень
<option value=06>червень
<option value=07>липень
<option value=08>серпень
<option value=09>вересень
<option value=10>жовтень
<option value=11>листопад
<option value=12>грудень
</select>
<select name=to_year>
<?php
echo "<option selected value=1970>1970\n";
for ($i=1971; $i<=2010; $i++) {
echo "<option value=".$i.">".$i."\n";
}
?>
</select>
<input type="submit" name="add" value="Пошук!">
</td>
</table>
</form>
scritps/sDate.php
<?php include("../header.inc.html"); echo myheader("Пошук по даті") ?>
<div align="center">
<?php
include "../forms/sDate.html";
require ("../db.php");
$db =new db();
$fromDate = $_GET['from_year'].'-'.$_GET['from_month'].'-'.$_GET['from_day'];
$toDate = $_GET['to_year'].'-'.$_GET['to_month'].'-'.$_GET['to_day'];
$db->query("SELECT pz.name, pz.version,pz.date,pz.licence,pz.addr, dev.first_name, dev.surname,distr.name AS distr
FROM pz,dev,distr
WHERE (pz.dev_id=dev.id AND pz.distr_id=distr.id)
AND (pz.date > DATE \"$fromDate\")
AND (pz.date < DATE \"$toDate\") ");
?>
<div class=h2>Звіт ПЗ з <?php echo $_GET['from_day'].'.'.$_GET['from_month'].'.'.$_GET['from_year'].'р.'; ?>
по <?php echo $_GET['to_day'].'.'.$_GET['to_month'].'.'.$_GET['to_year'].'р.'; ?>:</div>
<table style="border: 1px solid black; " cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0">
<td align="center">Ім'я</td>
<td align="center">Версія</td>
<td align="center">Датa</td>
<td align="center">Ліцензія</td>
<td align="center">ftp-адреса</td>
<td align="center" colspan=2>Розробник</td>
<td align="center">Дістрібутив</td>
</tr>
<?php
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val)
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>";
echo "</tr>";
}
?>
</table>
</div>
<?php include("../footer.inc.html"); ?>
forms/sName.html
<form action="../scripts/sName.php">
<table class="text">
<tr>
<td colspan=2 align="center" class=h1>Пошук по автору<br><br></td>
</tr>
<tr>
<td>Назва ПЗ:</td>
<td><input type="text" name="name" maxlength="60"></td>
</tr>
<tr>
<td colspan=2 align=center>
<input type="submit" name="search" value="Пошук!">
</td>
</tr>
</table>
</form>
scripts/sName.php
<?php include("../header.inc.html"); echo myheader("Пошук по назві") ?>
<div align="center">
<?php
include "../forms/sName.html";
$name = $_GET['name'];
require ("../db.php");
$db =new db();
##########
$db->query("SELECT pz.name, pz.version,pz.date,pz.licence,pz.addr, dev.first_name,
dev.surname,distr.name AS name1, distr.addr AS address
FROM pz,dev, distr
WHERE (pz.dev_id=dev.id AND pz.distr_id=distr.id )
AND (pz.name = \"$name\") ");
?>
<table style="border: 1px solid black" cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0" class=>
<td align="center">Ім'я</td>
<td align="center">Версія</td>
<td align="center">Датa</td>
<td align="center">Ліцензія</td>
<td align="center">ftp-адреса</td>
<td align="center" colspan=2>Розробник</td>
<td align="center">Дистрибутив</td>
<td align="center">ftp-aдреса дистрибутива</td>
</tr>
<?php
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val)
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>";
echo "</tr>";
}
?>
</table>
</div>
<?php include("../footer.inc.html"); ?>
scripts/sAll.php
<?php include("../header.inc.html"); echo myheader("Все!") ?>
<div align="center">
<?php
require ("../db.php");
$db =new db();
$db->query("SELECT pz.name, pz.version,pz.date,pz.licence,pz.addr, dev.first_name,
dev.last_name, dev.surname,dev.addr AS address, distr.name AS distr,
distr.version AS vers, distr.addr AS distr_addr
FROM pz,dev,distr
WHERE pz.dev_id=dev.id AND pz.distr_id=distr.id ");
?>
<div class=h1>Звіт по базі даних</div><br><br>
<table style="border: 1px solid black; " cellpadding=3 cellspacing=1 class=text>
<tr bgcolor="#c0c0c0">
<td align="center">Назва програми</td>
<td align="center">Версія</td>
<td align="center">Датa</td>
<td align="center">Ліцензія</td>
<td align="center">ftp-адреса</td>
<td align="center" colspan=3>Розробник</td>
<td align="center">Адреса розробника</td>
<td align="center">Дістрібутив</td>
<td align="center">Версія листрибутиву</td>
<td align="center">ftp-aдреса дистрибутиву</td>
</tr>
<?php
while($arr=$db->fetch_array()){
echo "<tr>";
foreach($arr as $key=>$val)
echo "<td bgcolor=\"#dcdcdc\" align=\"center\">".$val."</td>";
echo "</tr>";
}
?>
</table>
</div>
<?php include("../footer.inc.html"); ?>
Додаток Б – Інструкція для користувача
Базу даних “Репозиторій ПЗ” реалізовано в вигляді web-додатку.Відкрити базу даних можна скориставшись посиланням http://217.77.222.218 . Після відкриття бази даних з’явиться меню(рис. 5):
Рисунок 5 – Головна форма бази даних «Репозиторій ПЗ»
За допомогою меню можна обирати необхідні операції: “Додати/видалити ПЗ”, “Додати/видалити дистрибутив”, “Додати/видалити автора”, “Пошук ПЗ за датою”, “Пошук ПЗ за автором”, “Пошук ПЗ за назвою”, “Пошук автора”, “Звіт”
Якщо потрібно додати до бази інформацію про новий дистрибутив потрібно натиснути в меню кнопку “Додати/видалити дистрибутив”, після цього зявиться вікно вказане на
рисунку 6:
Рисунок 6 –форма «Додати/видалити дистрибутив»
У вище приведеному вікні потрібно заповнити поля “Назва ”, “Версія”, “ftp-адреса”. Та натиснути кнопку “Додати дистрибутив” для додавання. Або вибрати мишкою дистрибутив з таблиці “Наявні дистрибутиви” та натиснути кнопку “Видалити відмічені” для видалення.
Якщо потрібно додати до бази інформацію про нове програмне забезпечення потрібно натиснути в меню кнопку “Додати/видалити ПЗ”, після цього зявиться вікно вказане на рисунку 7:
Рисунок 7 – форма «Додати/видалити ПЗ»
У вище приведеному вікні потрібно заповнити поля “Назва ”, “Версія”, “ftp-адреса”, “Дата”,”Ліцензія” та обрати значення з випадаючих списків “Дистрибутив” та “Автор”. Та натиснути кнопку “Додати ПЗ” для додавання. Або вибрати мишкою ПЗ з таблиці “Наявне ПЗ” та натиснути кнопку “Видалити відмічені” для видалення.
Для отримання загальної інформації по базі даних треба натиснути кнопку “Звіт” в головному меню (рис. 8)
Рисунок 8– форма «Звіт»
Для пошуку програмного забезпечення за назвою потрібно натиснути кнопку «Пошук ПЗ по назві» в головному меню. Виведеній формі (рис. 9) ввести назву ПЗ та натиснути кнопку «Пошук!» Результати пошуку отримуємо тут же.
Рисунок 9– форма «Пошук ПЗ по назві»
Для пошуку програмного забезпечення за датою потрібно натиснути кнопку «Пошук ПЗ по даті» в головному меню. Виведеній формі (рис. 10) вибрати початкову та кінцеву дату написання ПЗ, та натиснути кнопку «Пошук!» Результати пошуку отримуємо тут же.
Рисунок 10– форма «Пошук ПЗ по даті»
Для пошуку програмного забезпечення за автором потрібно натиснути кнопку «Пошук ПЗ по автору» в головному меню. Виведеній формі (рис. 11) ввести ім»я та прізвище автора ПЗ та натиснути кнопку «Пошук!» Результати пошуку отримуємо тут же.
Рисунок 11– форма «Пошук ПЗ по автору»
Рисунок12– форма «Пошук автора»
Для отримання даних про автора потрібно натиснути кнопку «Пошук автора» в головному меню. Виведеній формі (рис. 12) ввести прізвище автора ПЗ та натиснути кнопку «Пошук!» Результати пошуку отримуємо тут же.
... . Розділ “Керівництво користувача” призначений для вивчення , використання і засвоєння пакету програм по вирішенню задачі “Облік наявності та руху кадрiв”. Далі цей пакет програм буде називатися ПП “Кадр”. У розділі наведені основні відомості для роботи у середовищі автоматизованої системи, поданий опис режимів і функцій ПП, порядку дій користувача. Сукупність програмних засобів забезпечує ...
... ів. Це досить велика цифра для України. Сучасні інформаційні Інтернет-технології розвиваються за двома напрямками: - надання доступу до корпоративних каталогів організацій; - створення інформаційних Web-сайтів. Ці напрямки автоматизації процесів каталогізації спираються на два варіанти рішень: - автоматизація внутрішніх процесів документообігу, пов'язаних із технологічним циклом традиційної ...
... ється вибором параметрів змішувача, числа оборотів мішалки, які забезпечують рівномірність концентрації суміші в резервуарі з заданою інтенсивністю ( за заданий час). Задача розробки системи автоматизації забезпечити в умовах дії зовнішніх і внутрішніх збурень в процесі, заданих характеристик якості продукту. 1.2. Теоретичні основи технологічного процесу в окремих технологічних ...
... і; · оцінку слід проводити по окремих специфічних робочих навиках, а не загалом; · працівникам слід надавати можливість ознайомитися з думками щодо їх якостей. 1.3. Система оцінки персоналу на підприємстві Система оцінки результативності праці повинна забезпечувати точні і достовірні дані. Чим вона строже і точниша, тим вища вірогідність одержати достовірні і точні дані. ...
0 комментариев