Professional Documents
Culture Documents
Kurs Scoundrel
Kurs Scoundrel
ЕЛЕКТРОМЕХАНІЧНИЙ ФАКУЛЬТЕТ
ПОЯСНЮВАЛЬНА ЗАПИСКА
На тему:
Автоматизація роботи
методичного кабінету кафедри КІС
КРЕМЕНЧУК 2004
РЕФЕРАТ
1. Вступ........................................................................................................................................
2. Основна частина.....................................................................................................................
2.1 Постановка задачі.......................................................................................................
2.2 Проектування інформаційної моделі предметної області......................................
2.3 Вимоги до апаратної частини та програмного оточення.. .....................................
2.3.1 Апаратна частина. .................................................. .....................................
2.3.2 Програмна частина. .................................................. ..................................
2.4 Опис структури додатку................................................. .........................................
2.5. Програмна частина. ................................................. ...............................................
2.5.1. Структура бази даних. ................................................. .............................
2.5.1.1. Як зв’язувались таблиці...................................................................
2.5.1.2. Організація підключення до бази даних........................................
2.5.2 Інтерфейс користувача.................................................................................
2.5.3. Короткий опис внутрішньої структури додатку........................................
2.5.4. Організація запуску додатку......................................................................
2.6.Інструкція користувачу..........................................................................................
3. Висновок..................................................................................................................................
4. Список використаної літератури..........................................................................................
Додаток А
Лист
3
Зм. Лист № докум. Підпис Дата
ВСТУП
Бібліотечні Видавництво
фонди кафедри униіверситету
Користувачі
Методичний Методичного
кабінет Кабінету
Вхідні дані :
Список студентів та викладачів кафедри (відновлення і внесення
поправок виконується в міру необхідності):
Лист
5
Зм. Лист № докум. Підпис Дата
- Прізвище користувача;
- І.Б. користувача;
- Група користувача;
- Адреса користувача;
- № телефону;
- E-Mail користувача;
- Нотатки.
Лист
6
Зм. Лист № докум. Підпис Дата
- Інформацію про методичні матеріали (загальна кількість,
кількість виданих, кому видано та ін.);
- Інформацію про журнал обліку методичних матеріалів.
2.2 Проектування інформаційної моделі предметної області
Список користувачів
№ користувача П.І.Б. Група ...
1
2
…
7
Зм. Лист № докум. Підпис Дата
Крім цієї інформації, є також, облікова інформація. Для даної
предметної області це ”Журнал обліку методичних матеріалів”
Лист
8
Зм. Лист № докум. Підпис Дата
Журнал обліку Список користувачів
Список “методичок”
№ Студента № користувача
№ метод. мат. № Метод. Мат.
Прізвище;
Кількість
Назва І.Б.
Дата видачі
Автор(и) Група
Термін
Тип Адреса
Документ
Дата видання Телефон
Кількість E-Mail
Нотатки
Лист
8
Зм. Лист № докум. Підпис Дата
2.3 Вимоги до апаратної частини та програмного оточення
Клієнт:
• Процесор Pentium 100 (або 133) MHz.
• Оперативна пам’ять 16Mb.
• Жорсткий диск 1,02 GB.
• Кольоровий монітор SVGA.
• Microsoft Serial Mouse.
• NIC Realtek 8029 (10Mbps)
9
Зм. Лист № докум. Підпис Дата
стандартами CGI-програмування, виконанує скрипт на веб-сервері та
повертає сформовану HTML-сторінку, яку можна переглядати будь-яким
браузером.
На комп’ютері-клієнті, параметри якого розглянуті вище може бути
встановлена будь-яка операційна система, в якій є браузер, що сумісний зі
стандартом HTML 4.01 та JavaScript 1.3 для перегляду WEB-сторінок і
присутній TCP/IP-зв’язок з комп’ютером-сервером (LAN, WAN та ін.).
Лист
9
Зм. Лист № докум. Підпис Дата
2.4 Опис структури додатку
Лист
10
Зм. Лист № докум. Підпис Дата
2.5 Програмна частина
Лист
11
Зм. Лист № докум. Підпис Дата
3. Таблиця “accounting” являє собою журнал обліку та має таку структуру:
CREATE TABLE accounting (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
userid int(10) unsigned DEFAULT '0' NOT NULL,
metodid int(10) unsigned DEFAULT '0' NOT NULL,
acctnumber int(8) unsigned DEFAULT '1' NOT NULL,
acctmaxdays int(4) unsigned DEFAULT '7' NOT NULL,
acctstartdate date DEFAULT '0000-00-00' NOT NULL,
acctstopdate date DEFAULT '0000-00-00' NOT NULL,
acctdocument varchar(20),
PRIMARY KEY (id),
KEY userid (userid,acctstartdate,acctstopdate),
KEY metodid (metodid)
);
Лист
12
Зм. Лист № докум. Підпис Дата
2.5.1.1 Зв’язок таблиць
13
Зм. Лист № докум. Підпис Дата
2.5.1.2 Підключення до бази даних
Лист
14
Зм. Лист № докум. Підпис Дата
2.5.2 Інтерфейс користувача
Лист
Лист
$sel_user = html_decode($sel_user);
$sel_metod = html_decode($sel_metod);
$sel_acctnumber = html_decode($sel_acctnumber);
$sel_acctmaxdays = html_decode($sel_acctmaxdays);
$sel_acctstartdate = html_decode($sel_acctstartdate);
$sel_acctstopdate = html_decode($sel_acctstopdate);
$sel_acctdocument = html_decode($sel_acctdocument);
$inv_dir=($direct=="asc")?"desc":"asc";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<script language="JavaScript" type="text/javascript">
<!--
function view_metod(id) {
myWin=window.open('view_metod.php?id='+id,0,
"width=300,height=250,status=no,toolbar=no,menubar=no,scrollbars=yes,
resizable=no");
}
function view_user(id) {
myWin=window.open('view_user.php?id='+id,0,
"width=300,height=250,status=no,toolbar=no,menubar=no,scrollbars=yes,
resizable=no");
}
function filter_user(user) {
document.acct_filter.txt_user.value=user;
document.acct_filter.submit();
}
function filter_metod(metod) {
document.acct_filter.txt_metod.value=metod;
document.acct_filter.submit();
}
-->
</script>
</head>
<?
$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to
MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB
if($id != "") {
mysql_query("INSERT INTO archive SELECT * FROM accounting WHERE
id='$id'") and
mysql_query("UPDATE archive SET acctstopdate=CURDATE() WHERE
id='$id'") and
mysql_query("DELETE FROM accounting WHERE id='$id'");
}
$where = "1";
Лист
if (mysql_num_rows($result) == 0) {
echo "<tr><td align='center' colspan='13'><b><font color='red'>No rows
found, nothing to print so am exiting</font></b></td></tr>";
} else {
while ($row = mysql_fetch_assoc($result)){
$bgcolor = ($row["debtor"])?"#FFDFDF":"#DFDFDF";
?>
<tr bgcolor='<? echo $bgcolor; ?>'>
<td align='left'>
<table border="0">
<tr>
<td width="150"><? echo $row["user"]; ?></td>
<td width="20" align="right">
<a title="Просмотр параметров пользователя"
href="javascript:view_user(<? echo $row["userid"]; ?>)"><img border="0"
alt="Properties" src="img/button_properties.png"></a><br><br>
<a title="Фильтр по имени пользователя"
href="javascript:filter_user(<? echo
"'".htmlspecialchars($row["user"])."'"; ?>)"><img border="0" alt="Filter"
src="img/button_find.png"></a>
</td>
</tr>
</table>
</td>
<td align='left'>
<table border="0">
<tr>
<td width="250"><? echo $row["metod"]; ?></td>
<td width="20" align="right">
<a href="javascript:view_metod(<? echo
$row["metodid"]; ?>)"><img border="0" alt="Properties"
src="img/button_properties.png"></a><br><br>
<a href="javascript:filter_metod(<? echo
"'".htmlspecialchars($row["metod"])."'"; ?>)"><img border="0" alt="Filter"
src="img/button_find.png"></a>
</td>
</tr>
</table>
</td>
<td align='center'><? echo $row["acctnumber"]; ?></td>
<td align='center'><? echo $row["acctmaxdays"]; ?></td>
<td align='center' nowrap><? echo $row["acctstartdate"]; ?></td>
<td align='center' nowrap><? echo $row["acctstopdate"]; ?></td>
<td align='left'><? echo $row["acctdocument"]; ?></td>
<td align='center'> <a href='edit_accounting.php?id=<? echo
$row["id"]; ?>'><img alt="Edit accounting" title="Редактирование
методического пособия" border="0" src="img/button_edit.png"></a> </td>
<td align='center'> <a href="javascript:if (confirm('Вы
действительно хотите удалить эту запись?'))
{document.location='accounting.php?id=<? echo $row["id"]; ?>';}"><img
alt="Delete accounting" title="Возврат методического пособия" border="0"
src="img/button_drop.png"></a> </td>
</tr>
<?}
Лист
$sel_name = html_decode($sel_name);
$sel_author = html_decode($sel_author);
$sel_type = html_decode($sel_type);
$sel_mdate = html_decode($sel_mdate);
$sel_num = html_decode($sel_num);
$inv_dir=($direct=="asc")?"desc":"asc";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>
Лист
<?
$dbh = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD); // Connect to
MySQL
mysql_select_db($DB_NAME, $dbh); // Select our DB
$where = "1";
if (mysql_num_rows($result) == 0) {
echo "<tr><td align='center' colspan='13'><b><font color='red'>No rows
found, nothing to print so am exiting</font></b></td></tr>";
} else {
$i = 0;
while ($row = mysql_fetch_assoc($result)){
if ((++$i)%2) $bgcolor="#DFDFDF"; else $bgcolor="#EFEFEF";
?>
<tr bgcolor='<? echo $bgcolor; ?>'>
<td align='left'>
<a href="add_accounting?<? echo
"metod_id=".$row["id"]."&txt_metodid=".urlencode($row["name"]." -
".$row["author"]); ?>">
<? echo $row["name"]; ?>
</a>
</td>
<td align='left'><? echo $row["author"]; ?></td>
<td align='center'><? echo $row["type"]; ?></td>
<td align='center' nowrap><? echo $row["mdate"]; ?></td>
<td align='center'><? echo $row["num"]; ?></td>
<td align='center'> <a href='edit_metod.php?id=<? echo
$row["id"]; ?>'><img alt="Edit metod" title="Редактирование методического
пособия" border="0" src="img/button_edit.png"></a> </td>
<td align='center'> <a href="javascript:if (confirm('Вы
действительно хотите удалить эту запись?'))
{document.location='metods.php?id=<? echo $row["id"]; ?>';}"><img alt="Delete
metod" title="Удаление методического пособия" border="0"
src="img/button_drop.png"></a> </td>
</tr>
Лист
extract($_GET);
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<title> Данные о методическом материале</title>
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<?
$res = mysql_query("SELECT * FROM metods WHERE id='$id'");
$row = mysql_fetch_assoc($res);
mysql_free_result($res);
mysql_close($dbh);
?>
<table border='0' cellspacing='1' cellpadding='2' width="100%">
<tr bgcolor="#CFCFCF"><th colspan="2"><b> Автор(ы):</b></th></tr>
<tr bgcolor="#FFFFFF"><td><b> Название: (û):</b></td><td><? echo
$row["author"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Тип материала:</b></td><td><? echo $row["name"];
?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Дата публикации::</b></td><td><? echo
$row["type"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Количество: </b></td><td><? echo
$row["mdate"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b> Количество: :</b></td><td><? echo $row["num"];
?></td></tr>
<tr bgcolor="#FFFFFF"><td colspan="2" align="center"><input type="Submit"
value=" Close " onclick='javascript:window.close()'></td></tr>
</table>
</center>
</body>
</html>
extract($_GET);
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<title>Данные о пользователе</title>
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<?
$res = mysql_query("SELECT * FROM users WHERE id='$id'");
$row = mysql_fetch_assoc($res);
mysql_free_result($res);
mysql_close($dbh);
?>
<table border='0' cellspacing='1' cellpadding='2' width="100%">
<tr bgcolor="#CFCFCF"><th colspan="2"><b>Данные о пользователе</b></th></tr>
<tr bgcolor="#FFFFFF"><td><b>Фамилия:</b></td><td><? echo $row["name"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Инициалы:</b></td><td><? echo
$row["initials"]; ?></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Группа:</b></td><td><? echo $row["group"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Адрес:</b></td><td><? echo $row["address"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Телефон:</b></td><td><? echo $row["phone"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>E-Mail:</b></td><td><? echo $row["email"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td><b>Заметки:</b></td><td><? echo $row["note"]; ?
></td></tr>
<tr bgcolor="#FFFFFF"><td colspan="2" align="center"><input type="Submit"
value=" Close " onclick='javascript:window.close()'></td></tr>
</table>
</center>
</body>
</html>
$sel_name = html_decode($sel_name);
$sel_initials = html_decode($sel_initials);
$sel_group = html_decode($sel_group);
$sel_address = html_decode($sel_address);
$sel_phone = html_decode($sel_phone);
$sel_email = html_decode($sel_email);
$sel_note = html_decode($sel_note);
$inv_dir=($direct=="asc")?"desc":"asc";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>
$where = "1";
Лист
if (mysql_num_rows($result) == 0) {
echo "<tr><td align='center' colspan='13'><b><font color='red'>No rows
found, nothing to print so am exiting</font></b></td></tr>";
} else {
$i = 0;
while ($row = mysql_fetch_assoc($result)){
if ((++$i)%2) $bgcolor="#DFDFDF"; else $bgcolor="#EFEFEF";
?>
<tr bgcolor='<? echo $bgcolor; ?>'>
<td align='left' nowrap>
<a href="add_accounting.php?<? echo
"user_id=".$row["id"]."&txt_userid=".urlencode($row["name"]."
".$row["initials"]); ?>">
<? echo $row["name"]; ?>
</a>
</td>
<td align='left'><? echo $row["initials"]; ?></td>
<td align='center' nowrap><? echo $row["group"]; ?></td>
<td align='center'><? echo $row["address"]; ?></td>
<td align='center'><? echo $row["phone"]; ?></td>
<td align='center'><? echo $row["email"]; ?></td>
<td align='center'><? echo $row["note"]; ?></td>
<td align='center'> <a href='edit_users.php?id=<? echo
$row["id"]; ?>'><img alt="Edit users" title="Редактирование информации о
пользователе" border="0" src="img/button_edit.png"></a> </td>
<td align='center'> <a href="javascript:if (confirm('Вы
действительно хотите удалить эту запись?'))
{document.location='users.php?id=<? echo $row["id"]; ?>';}"><img alt="Delete
users" title="Удаление пользователя" border="0"
src="img/button_drop.png"></a> </td>
</tr>
<?
}
}
mysql_free_result($result);
mysql_close($dbh); // Close connection
?>
</table>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<!-- Header start -->
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap><b>Функция</b></td>
<td align='center' nowrap><b>Значение</b></td>
</tr>
<form method="get">
<?
print_txt_field("Фамилия", "name");
print_txt_field("Инифиалы", "initials");
print_txt_field("Группа:", "group");
Лист
extract($_GET);
if ($action == "save") {
$val =
"'$txt_name','$txt_initials','$txt_group','$txt_address','$txt_phone','$txt_e
mail','$txt_note'";
$sql = "INSERT INTO
users(id,name,initials,`group`,address,phone,email,note) VALUES('',$val)";
// var_dump($sql);
mysql_query($sql);
header("Location: users.php");
exit;
}
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<br>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap"><b>Значение</b></td>
</tr>
<form method="get"">
<input type="hidden" name="action" value="save">
<?
print_empty_field("Фамилия", "name", $row["name"]);
print_empty_field("Инициалы", "initials", $row["initials"]);
print_empty_field("Группа", "group", $row["group"]);
print_empty_field("Адрес", "address", $row["address"]);
print_empty_field("Телефон", "phone", $row["phone"]);
print_empty_field("E-Mail", "email", $row["email"]);
print_empty_field("Заметки", "note", $row["note"]);
?>
<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Submit"
value="Применить"></tr>
Лист
extract($_GET);
if ($action == "save" && $id != "") {
$set = "name='$txt_name', initials='$txt_initials',
`group`='$txt_group', address='$txt_address', phone='$txt_phone',
email='$txt_email', note='$txt_note'";
$sql = "UPDATE users SET $set WHERE id=".$id;
mysql_query($sql);
header("Location: users.php");
exit;
}
?>
<html>
<head>
<link href="style.css" group="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
</head>
<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>
<center>
<br>
<br>
<br>
<table border='0' cellspacing='1' cellpadding='2'>
<tr bgcolor='#c0c0c0'>
<td align='center' nowrap><b>Поле</b></td>
<td align='center' nowrap"><b>Значение</b></td>
</tr>
<?
$sql= "select * FROM users WHERE id='$id'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
?>
<form method="get"">
<input type="hidden" name="id" value="<? echo $id; ?>">
<input type="hidden" name="action" value="save">
<?
print_field("Фамилия", "name", $row["name"]);
print_field("Инициалы", "initials", $row["initials"]);
print_field("Группа", "group", $row["group"]);
print_field("Адрес", "address", $row["address"]);
print_field("Телефон", "phone", $row["phone"]);
print_field("E-Mail", "email", $row["email"]);
print_field("Заметки", "note", $row["note"]);
?>
<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Submit"
value="Применить"></tr>
<tr bgcolor="#dfdfdf"><td colspan="2" align="center"><input type="Reset"
Лист
# mysql–u root –p
Enter password: <admin password here>
…
> CREATE kis_metod;
> GRANT ALL PRIVILIGES ON kis_metod.* to kis_metod
IDENTIFIED BY ‘<kis_metod password here>’;
> flush privileges;
> quit
#
2) Створити таблиці в базі даних kis_metod:
Лист
Лист
Лист
1. Пеньковий А.П., Хабло Т.В., Хабло Г.П. Методичні вказівки до лабораторних робіт з
курсу “СУБД Visual FoxPro”, частина 1,2 – Кременчук: КДПУ, 2000 – 59с., 70с.
2. Хабло Т.В.,Грищенко Л.О., Олійников І.М. Методичні вказівки до до виконання
курсових робіт з дисципліни “Організація баз данних та знань” – Кременчук: КДПУ,
2002 – 85с.
3. Official Perl 5 Documentation (http://www.perldoc.com/).
4. Documentation for DBI perl module (perldoc DBI).
Лист