отчет по лабораторной работе №4

advertisement
Федеральное агентство по образованию
ГОУ ВПО Уфимский государственный авиационный технический университет
Кафедра информатики
ОТЧЕТ
ПО ЛАБОРАТОРНОЙ РАБОТЕ №4
по дисциплине:
«Компьютерные технологии в науке и производстве»
на тему:
«ОСНОВЫ КЛИЕНТ-СЕРВЕРНЫХ ТЕХНОЛОГИЙ»
Выполнил:
магистрант гр.АД-525М
Агзамов Д.В.
« 16 » января 2010 г.
Проверил:
канд.техн.наук, доцент
Минасов Ш.М.
« 16 » января 2010 г.
Оценка «
»
Уфа – 2010
ОГЛАВЛЕНИЕ
Введение ....................................................................................................................... 3
1.Цель работы .............................................................................................................. 3
2.Индивидуальное задание ......................................................................................... 3
2.1.Постановка задачи............................................................................................. 3
2.2.Фрагменты программного кода ....................................................................... 3
2.3.Экранные формы реализованного проекта .................................................... 9
Выводы ....................................................................................................................... 11
Список литературы ................................................................................................... 12
2
ВВЕДЕНИЕ
Применение web-технологий для создания PHP-приложения.
1. ЦЕЛЬ РАБОТЫ
Целью настоящей работы является: Получение навыков по установке и
настройке интерпретатора серверных сценариев PHP.
Ход выполнения работы
1. В соответствии с методическими указаниями по лабораторной работе
[1] была произведена установка и настройка программного продукта PHP.
2. Выполнены
и
проанализированы
примеры,
приведенные
в
методических указаниях [1].
3. Выполнено индивидуальное задание для самостоятельной работы.
2. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ
2.1. Постановка задачи
В качестве индивидуального задания выдано задание №1.
Создайте приложение, реализующее анализ продаж литературы научной
тематики. Данные о продукции и продажах находятся в отдельном файле.
Анализ проводится по критериям, вводимым пользователем путем выбора
соответствующего пункта в форме.
2.2. Фрагменты программного кода
Файл: index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"
/>
3
<title>Лабораторная работа № 4</title>
<style>
table {
background:#ccc;
}
</style>
</head>
<?php
if(isset($_POST["login"])&&isset($_POST["pass"]))
{
$login=$_POST["login"];
$pass=$_POST["pass"];
}
?>
<body background="bg.jpg" text="#111" link="#FFFF00" vlink="#FFFF00"
alink="#FFFF00">
<div align="center">
<form method="post">
<input type="text" name="login">
<input type="password" name="pass">
<input type="submit" value="Войти">
</form>
</div>
<?php
global $login;
include 'library.php';
foreach ($loginpass as $user=>$info){
if ($login==$info[0] and $pass==$info[1]) { ?>
<?php
if(!isset($_GET['asd'])){
echo '<form action="katalog.php" method="get">
<br/><br/>
<table width="600" align=center>
<tr>
<td><label>
<input type="radio" name="asd" value="1" id="asd_0" />
Сравнение оборачивамости книг по сравнению с прошлым
годом.</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="asd" value="2" id="asd_0" />
Сравнение оборачивамости книг по сравнению с прошлым
меясцем.</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="asd" value="3" id="asd_1" />
Cоотношение числа книг в библиотечном фонде с числом обращений
читателей.</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="asd" value="4" id="asd_2" />
Топ 10 книг по популярности.</label></td>
</tr>
<tr align=center><td colspan="2"><input name="button" type="submit"
value="Показать" /></td></tr>
4
</table></form>';
}
else{
$act=$_GET['asd'];
switch($act){
case 1: include '1.php'; break;
case 2: include '2.php'; break;
case 3: include '3.php'; break;
case 4: include '4.php'; break;
}
}
?>
</h4>
<?php };
}
?>
<center>
<a href="../../lab.html">Вернуться к списку лабораторных работ</a><br/>
<a href="../../index.html">Вернуться на главную</a>
</center>
</body>
</html>
Файл: library.php (файл с данными)
<?php
$library=array(
"Дейч М.Е Техническая газодинамика. — М.: Энергия, 1974."=>
array('13','21','10','5','2'),
"Дейч М. Е. Газодинамика решёток турбомашин. — М.: Энергоатомиздат,
1996."=> array('44','32','40','7','8'),
"Стечкин Б. С. Избранные труды. Теория тепловых двигателей. — М.:
Наука, 1977."=> array('21','22','25','4','1'),
"Кулагин В. В. Теория, расчёт и проектирование АД и ЭУ. - М.:
Машиностроение, 2003."=> array('0','2','1','1','1'),
"Клячкин А. Л., Теория воздушно-реактивных двигателей. - М.:
Машиностроение, 1969."=> array('11','13','10','0','2'),
"Справочник молодого обмотчика электрических машин. 6-е изд. — М.:
Высш. школа, 1985 ."=> array('32','32','15','2','0'),
"Очков В.Ф. 128 советов начинающему программисту. 2-е изд. — М.:
Энергоатомиздат, 1992."=> array('14','1','10','1','0'),
"Ратнер С.Б. Физическая механика пластмасс: Как прогнозируют
работоспособность? — М.: Химия, 1992."=> array('15','21','2','2','1'),
"Лосев К.С. Вода. — Л.: Гидрометеоиздат, 1989."=>
array('36','32','11','3','4'),
"Классен В.И. Вода и магнит. — М.: Наука, 1973."=>
array('15','9','7','1','1'),
"Райков Е.И. Справочник молодого монтажника лифтов. — М.: Высшая
школа, 1990."=> array('51','39','15','3','2'),
"Никифоров Н.И. Справочник молодого газосварщика и газорезчика. — М.:
Высшая школа, 1990."=> array('31','33','13','3','3'),
"Литвинов В.Н. Справочник молодого рабочего по монтажу
электропроводок. — М.: Высш.школа, 1971."=> array('2','4','1','1','1'),
"Наерман М.С. Справочник молодого шлифовщика. — М.: Высшая школа,
1985."=> array('13','12','40','2','4'),
5
"Сергеев Н.П. Справочник молодого сварщика на контактных машинах. —
М.: Высшая школа, 1984."=>array('15','22','8','2','5'),
"Колесниченко В.В. Справочник молодого машиниста
бульдозера,скрепера,грейдера. — М.: Высшая школа,
1988."=>array('114','113','67','10','11'),
"Сильвестров Б. Н. Справочник молодого зуборезчика. — М.: Высшая
школа, 1981."=>array('16','15','3','1','1'),
);
$loginpass=array(
"user1"=> array ('login1','pass1'),
"user2"=> array ('login2','pass2'),
"admin"=> array ('admin','admin'),
);
?>
Файл: katalog.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"
/>
<title>Лабораторная работа № 4</title>
<style>
table {
background:#ccc;
}
</style>
</head>
<?php
if(isset($_POST["login"])&&isset($_POST["pass"]))
{
$login=$_POST["login"];
$pass=$_POST["pass"];
}
?>
<body background="bg.jpg" text="#111" link="#FFFF00" vlink="#FFFF00"
alink="#FFFF00">
<br /><br /><br />
<h4>
<?php
if(!isset($_GET['asd'])){
echo '<form action="katalog.php" method="get">
<table width="600" align=center>
<tr>
<td><label>
<input type="radio" name="asd" value="1" id="asd_0" />
Сравнение оборачивамости книг по сравнению с прошлым
годом.</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="asd" value="2" id="asd_0" />
Сравнение оборачивамости книг по сравнению с прошлым
меясцем.</label></td>
</tr>
6
<tr>
<td><label>
<input type="radio" name="asd" value="3" id="asd_1" />
Cоотношение числа книг в библиотечном фонде с числом обращений
читателей.</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="asd" value="4" id="asd_2" />
Топ 10 книг по популярности.</label></td>
</tr>
<tr align=center><td colspan="2"><input name="button" type="submit"
value="Показать" /></td></tr>
</table></form>';
}
else{
$act=$_GET['asd'];
switch($act){
case 1: include '1.php'; break;
case 2: include '2.php'; break;
case 3: include '3.php'; break;
case 4: include '4.php'; break;
}
}
?>
</h4>
</body>
</html>
Файл: 1.php
<?php
echo '<h3 align=center>Сравнение оборачивамости книг по сравнению с
прошлым годом.</h3>
<table width="80%" border="1" cellspacing="0" cellpadding="3"
align="center"><tr><th width="50">№</th><th >Книга</th><th width="70">В
этом году</th><th width="70">В прошлом году</th><th
width="200">Изменение</th></tr>';
include 'library.php';
$n=0;
foreach ($library as $book=>$add){
echo '<tr><td>'.++$n.'</td><td>'.$book.'</td><td
align=center>'.$add[1].'</td><td align=center>'.$add[0].'</td>';
$q=($add[1]-$add[0]);
if($q>0) echo ("<td><font
color=\"green\">$q</font></td></tr>");
if($q<0) echo ("<td><font color=\"red\">$q</font></td></tr>");
if($q==0) echo ("<td><font
color=\"yellow\">$q</font></td></tr>");
}
echo '</table>';
echo ("<h4 align=center><a href=\"javascript:history.back()\"
onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>");
?>
7
Файл: 2.php
<?php
echo '<h3 align=center>Сравнение оборачивамости книг по сравнению с
прошлым месяцем.</h3>
<table width="80%" border="1" cellspacing="0" cellpadding="3"
align="center"><tr><th width="50">№</th><th >Книга</th><th width="70">В
этом месяце</th><th width="70">В прошлом месяце</th><th
width="200">Изменение</th></tr>';
include 'library.php';
$n=0;
foreach ($library as $book=>$add){
$q=($add[3]-$add[4]);
echo '<tr><td>'.++$n.'</td><td>'.$book.'</td><td
align=center>'.$add[3].'</td><td align=center>'.$add[4].'</td>';
if($q>0) echo ("<td><font
color=\"green\">$q</font></td></tr>");
if($q<0) echo ("<td><font color=\"red\">$q</font></td></tr>");
if($q==0) echo ("<td><font
color=\"yellow\">$q</font></td></tr>");
}
echo '</table>';
echo ("<h4 align=center><a href=\"javascript:history.back()\"
onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>");
?>
Файл: 3.php
<?php
echo '<h3 align="center">Отношение числа книг в библиотечном фонде к
числу обращений читателей составляет:';
include 'library.php';
$n=0;
$c=0;
foreach ($library as $book=>$add){
$n=$n+$add[2];
$c=$c+$add[1];
}
echo $n/$c;
echo '.</h3>';
echo '<h4 align=center>Общее количество книг: '.$n.'. Общее
количество обращений: '.$c.'</h4>';
echo ("<h4 align=center><a href=\"javascript:history.back()\"
onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>");
?>
Файл: 4.php
<?php
echo '<h3 align="center"> Топ 10 книг по популярности</h3>
8
<table width="50%" border="1" cellspacing="0" cellpadding="3"
align="center"><tr><th width="50">Место</th><th>Название книги</th><th
width="90">Оборачиваемость</th></tr>';
include 'library.php';
foreach ($library as $book=>$add){
$t[$book]=$add[1];
}
arsort($t);
reset($t);
for ($i=1;$i<11;$i++){
$key = key ($t); next ($t);
echo
'<tr><td>'.$i.'</td><td>'.$key.'</td><td>'.$t[$key].'</td></tr>';
}
echo '</table>';
echo ("<h4 align=center><a href=\"javascript:history.back()\"
onMouseOver=\"window.status='Назад';return true\">Назад</a></h4>");
?>
2.3. Экранные формы реализованного проекта
На рис. 1 представлена экранная форма созданного мной приложения.
9
Рисунок 1. Внешний вид страницы index.php
При запросе выводится следующее окно на котором можно увидеть
список книг и данные об их продажах по указанным критериям.
10
ВЫВОДЫ
В
результате
выполнения
лабораторной
работы
была
решена
поставленная в рамках самостоятельной работы задача: «Создание phpприложения». В процессе решения задачи были получены навыки по установке
программного продукта PHP, а так же изучены основы работы динамических
приложений. Получено приложение в соответствии с индивидуальным
заданием.
11
СПИСОК ЛИТЕРАТУРЫ
1. Разработка распределенных интерактивных приложений на базе
Интернет- технологий: Лабораторный практикум по дисциплине
«Основы Интернет технологий» Часть 1 / Уфимск. гос. авиац. техн. ун-т;
Сост. Ш.М. Минасов. – Уфа, 2007. – 15 с.
2. РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий
Еловой. — Мн.: Новое знание, 2003. — 480 с.: ил.
12
Download