Практическая часть, написание калькулятора.



1. Используя программу Блокнот создать следующую форму. Замечания: используя атрибут ID, присвоить форме идентификатор calc, имена кнопок можно задать произвольно, чтобы все кнопки были одинакового размера (25x25), можно описать соответствующий класс CSS.

2. Описать функцию с именем zero(), в теле которой написать следующий код: идентификатор_формы.имя_текстовой_строки.value+=’0’, это означает, что мы хотим добавить в строку цифру 0; ту же запись можно было записать так: идентификатор_формы.имя_текстовой_строки.value= идентификатор_формы.имя_текстовой_строки.value+’0’. Можно пользоваться любой из записей, первая из них – это особенность языка Си.

3. Для кнопки с цифрой нуль обработать событие onClick, вызвав описанную выше функцию следующим образом: <input type="button" value="0" name="B10" onClick=zero()>.

4. Опробовать в действии Вашу страничку.

5. Аналогичным образом описать все цифры, описывая соответствующие функции и обрабатывая событие onClick для соответствующей кнопки, можно пользоваться любой из записей, но первая предпочтительней.

6. Немножко уменьшим объем нашей странички. Все 10 описанных выше функций выполняют одну и туже последовательность действий, а именно добавляет в строку один символ, значит все их можно объединить в одну функцию, в которую в качестве аргумента будем передавать символ. Для этого опишите новую функцию с именем add(d), где d – это аргумент, в котором мы будем передавать символ. В теле функции написать оператор, который в строку добавляет значение переменной d (смотри выше).

7. Изменить обработчики событий для кнопок с цифрами следующим образом, например для кнопки с цифрой 1 нужно написать onClick=add(‘1’). Для кнопки с запятой обработать событие onClick, вызвав функцию add, передавая в качестве параметра ‘,’.

8. Опишем функцию с именем znak(c), которая будет запоминать знак операции, первое число и очищать строку. Для этого выше всех функций описать три переменные с именами oper (знак операции), pervoe (первое число), vtoroe (второе число) следующим образом: var oper, pervoe, vtoroe, то есть мы описали переменные, значения которых будет известно во всех функциях. Теперь опишем функцию znak(c), где c – параметр для хранения знака операции. Сначала в переменную oper помещаем значение переменной c, затем, используя функцию eval для преобразования строки в число, в переменную pervoe помещаем значение текстовой строки и очищаем текстовую строку, помещая в нее значение, равное нулю. Обработать событие щелчок по кнопкам со знаками операций, вызвав описанную выше функцию.

9. Опишем функцию chet(), которая будет подсчитывать результат. Сначала переменной vtoroe присвоим значение, хранящееся в текстовой строке (смотри предыдущий пример), затем используя условный оператор можем вычислить результат, например, если знак «+», то условный оператор выглядит следующим образом: if (op = = '+') идентификатор_формы.имя_текстовой_строки.value=first+second;. Аналогично написать для всех знаков.

10. Сохранить документ и опробовать в действии.

11. Самостоятельно: добавить кнопку, которая бы очищала текстовую строку, кнопочку, которая бы меняла знак числа.


Практическая работа №1

«Обработка данных формы»

 

Цели:

1. приобретение навыков обработки данных текстовых полей;

2. ознакомление со структурой стандартной формы.

 

Порядок выполнения работы:

1. Создайте каталог php2 и в нем файл forma.html. Создайте форму по следующему образцу:

Создайте файл обработчик формы, который должен выполнять следующие действия:

· Проверку, все ли поля заполнены:

If ($_GET[‘nm’]==’ ‘ or ($_GET[‘pass’]==’ ‘ or ($_GET[‘email’]==’ ‘)

{echo “<font color=’red’>Вы ввели не все данные</font>”;

Exit; }

· Выводить приветствие с указанием имени;

· Формировать и отправлять письмо:

$komu=”xxx.ru”;

$tema=”Вопрос от “. $_GET[‘nm’].” “.$_GET[‘email’];

$text_p=$_GET[‘quest’];

mail($komu, $tema, $text_p);

echo “Ваш вопрос отправлен администратору”;

Вопросы для самоконтроля

  1. Какие типы переменных поддерживает язык PHP?
  2. В чем отличие php-страницы и html-страницы?

Практическая работа №2

«Создание счетчика посещений»

Цели:

1. приобретение навыков использования функций обработки файлов;

2. ознакомление со структурой стандартной формы.

fopen (имя файла, режим работы) – возвращает число – дескриптор открытого файла, по которому можно обращаться к открытому файлу.

Режим работы имеет 2 составляющие:

- способ работы с информацией (текстовый (t) и бинарный(b));

- способ работы с файлом:

Способ Описание
r Файл открывается для чтения, указатель текущей позиции в начале файла. Если файла не существует, возникает ошибка
r+ Файл открывается для чтения и записи, указатель текущей позиции в начале файла. Если файла не существует, возникает ошибка
w Создается пустой файл и открывается для записи, указатель текущей позиции в начале файла. Если файл существует, он перезаписывается
w+ Создается пустой файл и открывается для чтения и записи, указатель текущей позиции в начале файла. Если файл $, он перезаписывается
a Файл открывается для записи, указатель текущей позиции в конце файла. Если файла не существует, он создается
a+ Файл открывается для записи и чтения, указатель текущей позиции в конце файла. Если файла не существует, он создается

flock (дескриптор файла, режим блокировки) – блокирует файл для использования других пользователей.

Режимы блокировки:

2- устанавливает блокировку;

3- снятие блокировки;

 

fgets (дескриптор файла) – считывает данные из файла.

 

ftruncate (дескриптор файла, размер) – обрезает данные из файла до заданного размера (указывается в байтах). Возвращает TRUE (при успешном выполнении) или FALSE.

 

fputs (дескриптор файла, данные) – осуществляет запись данных в файл.

 

fclose (дескриптор файла) – закрытие файла.

 

die (текст сообщения об ошибке) – выводит текст, переданный в качестве параметра, и осуществляет выход из программы.

 

Одновременное использование двух функций:

fopen() or die() – если результат выполнения первой функции FALSE, то в этом случае выполняется вторая функция.

 

Порядок выполнения работы

Количество посещений любой страницы хранится в текстовом файле с именем counter.txt.

1. Ввести код программы-счетчика посещений counter.php

<?php

$f=fopen(“counter.txt”, “a+t”) or die(“Невозможно открыть файл”);

flock( $f, 2);

$s = fgets($f);

$s+=1; // $s=$s+1;

ftruncate ($f, 0);

fputs ($f, $s);

flock ($f, 3);

fclose($f);

echo $s;

?>

2. Открыть код страницы forma.html первой практической работы.

3. Добавить код для подключения счетчика в нижней части левой панели:

<?php

echo “Количество посещений – “; require_once(“counter.php”);

?>

Require_once(имя файла) – подключает модуль, имя которого указано в параметре. В качестве модуля используют программы PHP или HTML.

4. Заменить расширение файла: forma.php


Практическая работа №3

«Вычисление значения функции»

 

Цели:

1. закрепление навыков отладки PHP-кода;

2. ознакомление со структурой стандартной формы.

Описание и вызов функций:

<?php
function first_function() {
echo "<h4>Первая пользовательская функция</h4>";
function second_function() {
echo "<h5>Вторая пользовательская функция</h5>";
}}
first_function();
second_function();
?>

3. Порядок выполнения работы:

1. Создать форму следующего содержания:

 

2. Написать обработчик данных формы, который представляет результаты в виде следующей таблицы:


Практическая работа №4

«Использование массивов»

 

Цели:

1. закрепление навыков обработки данных формы;

2. закрепление навыков использования массива в программе.

 

В PHP существуют различные методы инициализации массивов:

Простое присвоение значений

<? $ car[] = "passenger car"; $car[] = "land-rover"; echo($car[1]); // выводит "land-rover"?>

2. явное указание индекса массива:

<? $ car[0] = "passenger car"; $car[1] = "land-rover"; echo($car[1]); // выводит "land-rover"?>

3. использование конструкции array():

<? $car = array("passenger car", "land-rover"); echo($car[1]); // выводит "land-rover"?>

4. явное указание индексов (в этом случае применяется оператор =>)

<? $car = array("passenger car", 5 => "land-rover", "station-wagon","victoria"); echo($car[0]); echo("<br>"); // выводит "passenger car"   echo($car[5]); echo("<br>"); // выводит "land-rover" echo($car[6]); echo("<br>"); // выводит "station-wagon" echo($car[7]); // выводит "victoria"?>

5. индексами массива могут быть и строки:

<? $car = array("pc" => "passenger car", "lr" => "land-rover"); echo($car["lr"]); echo("<br>"); // выводит "land-rover"    echo($car["pc"]); // выводит "passenger car"?>

 

Для обработки элементов массива используют:

1. цикл FOREACH

foreach (array as [$key =>] $value){ statements;}

Пример :

<? $car = array("passenger car", "land-rover", "station-wagon", "victoria"); foreach($car as $index => $val){ echo("$index -> $val <br>"); }?>

Как видно из синтаксиса, переменная $key необязательна и может быть опущена:

<? echo( "available cars: <br> <ul>" ); $car = array("passenger car", "land-rover", "station-wagon","victoria"); foreach($car as $val) { echo("<li>$val</li>\n");} echo("</ul>");?>

Порядок выполнения работы

1. Создать новую страницу с формой следующего вида:

 

<h2> Форма для регистрации студентов</h2>

<form action=”1.php” method=POST>

Имя <br> <input type=text name=”first_name” value=”Введите ваше имя”> <br>

Фамилия <br> <input type=text name=”last_name” ><br>

E-mail <br> <input type=text name=”email” ><br>

<p> Выберите курс, который будете посещать: <br>

<input type=checkbox name=’kurs[]’ value=’PHP’> PHP <br>

<input type=checkbox name=’kurs[]’ value=’LISP’> LISP <br>

<input type=checkbox name=’kurs[]’ value=’C++’> C++ <br>

<input type=checkbox name=’kurs[]’ value=’UNIX’> UNIX <br>

<p> Что Вы хотите, чтобы мы знали о Вас? <br>

<textarea name=”comment” cols=32 rows=5></textarea>

<input type=submit value=”Отправить”>

<input type=reset value=”Отменить”>

</form>

В файле action.php, обрабатывающем эту форму, можно написать следующее:

<?php $str = "Здравствуйте,".$_POST ["first_name"]." ".$_POST ["last_name"] ."!<br>";$str.= "Вы выбрали для изучения курс по ". $_POST["kurs"];echo $str; ?>

2. Написать обработчик формы 1.php для регистрации участников заочной школы программирования и после регистрации отправить участнику сообщение. По полученным сведениям от зарегистрировавшегося человека, скрипт генерирует соответствующее сообщение. Если человек выбрал какие-то курсы, то ему выводится сообщение о времени их проведения и о лекторах, которые их читают. Если человек ничего не выбрал, то выводится сообщение о следующем собрании заочной школы программистов.

<?

// создадим массивы соответствий «курс-время» и «курс-лектор»

$time = array(“PHP”=>”14.30”, “LISP”=>”12.00”, “C++”=>”15.00”, “UNIX”=>”14.00”);

$lector= array(“PHP”=>”Васильев”, “LISP”=>”Иванов”, “C++”=>”Петров”, “UNIX”=>”Сидоров”);

define(“SIGN”, “С уважением, администрация”);// определяем подпись как константу

define(“MEETING_TIME”, “18.00”);   //  задаем время собрания

$date=”12 мая”;

$str=”Здравствуйте, уважаемый “.$_POST[“first_name”]. “ “. $_POST[“last_name”].”!<br>”;

$str .= “<br> Сообщаем Вам, что “;

$lect =””;

$kurses=$_POST[“kurs”];

If (!isset($kurses)) {

$event= “следующее собрание студентов”;

$str .= “$event состоится $date “. MEETING_TIME . “<br>”;

} else {

  $event= “выбранная Вами лекция состоится $date <ul>”;

  For ($i=0; $i < count($kurses); $i++) {

       $k=$kurses[$i];

       $lect = $lect . “<li> лекция по $k в $time[$k]”;

       $lect . =” ваш лектор, $lector[$k])”

}

$event = $event . $lect . “</ul>”;

$str . =”$event”;

}

$str .= “<br>” . SIGN;

echo $str

?>

3. Реализуйте тест: ЗНАЕТЕ ЛИ ВЫ СЕБЯ.

Ученые установили, что если из двух полушарий ведущим является правое полушарие мозга, то у человека преобладает эмоциональная сфера. Если ведущим оказывается левое полушарие, то у человека аналитический склад ума преобладает над эмоциональностью. Предлагаемый тест как раз и позволяет выявить ведущее полушарие. Это является признаком врожденным и, как правило, не меняется до конца жизни.

Вопрос N 1. Переплетите пальцы рук и вы заметите, что сверху всегда оказывается один и тот же палец, если левый - вы человек эмоциональный, правый - у вас преобладает аналитический склад ума.

Вопрос N 2. Попробуйте "прицелиться", выбрав себе мишень и глядя на нее через своеобразную мушку - карандаш или ручку. Правый ведущий глаз говорит о твердом, настойчивом, более агрессивном характере, левый - о мягком и уступчивом.

Вопрос N 3. Если при переплетении рук на груди наверху оказывается левая рука, то вы способны к кокетству, правая - склонны к простоте и простодушию.

Вопрос N 4. Если удобнее хлопать правой рукой, можно говорить о решительном характере, левой - вы часто колеблетесь, прежде чем принять решение.

ПППП - для вас характерен консерватизм, ориентация на общепринятое мнение (на стереотип). Вы не любите конфликтовать, спорить и ссориться.

ПППЛ - определяющая черта вашего характера - нерешительность.

ППЛП - для вас характерны кокетство, решительность, чувство юмора, артистизм. При общении с вами необходимы юмор и решительность. Очень контактный тип характера. Этот тип у женщин встречается наиболее часто.

ППЛЛ - редкий тип характера. Мягкий. Наблюдается некоторое противоречие между нерешительностью (левое аплодирование) и твердостью характера (правый ведущий глаз).

ПЛПП - тип характера, сочетающий аналитический склад ума и мягкость. Чаще встречается у женщин - тип "деловой женщины". Медленное привыкание, осторожность, в отношениях терпимость и некоторая холодность.

ПЛПЛ - слабый и самый редкий тип характера. Обладатели такого харак- тера беззащитны, подвержены различному влиянию. Встречается, как правило, у женщин.

ЛППП - такое сочетание встречается очень часто. Основная черта - эмоциональность, сочетающаяся с недостаточной настойчивостью.

ЛППЛ - для вас характерны мягкость, наивность. Требуете особого, внимательного отношения к себе - тип "маленькой королевы".

ЛЛПП - вам присущи дружелюбие и простота, некоторая разбросанность интересов, склонность к самоанализу.

ЛЛПЛ - в вашем характере преобладают простодушие, мягкость, доверчивость. Очень редкий тип характера, практически не встречается у мужчин.

ЛЛЛП - вы эмоциональный, энергичный и решительный человек, но часто наспех принимаете решения, которые приносят серьезные осложнения. Очень важен дополнительный тормозной механизм. Мужчины с таким характером менее эмоциональны.

ЛЛЛЛ - у вас антиконсервативный тип характера. Способны на старые вещи взглянуть по-новому. Характерны эмоциональность, эгоизм, упрямство, иногда переходящее в замкнутость.

ЛПЛП - самый сильный тип характера. Вас трудно в чем-либо убедить. Вы с трудом меняете свою точку зрения. Но в то же время вы энергичны, упорно добиваетесь поставленных целей.

ЛПЛЛ - вы настойчивы в достижении поставленных целей. Обладатели такого характера - люди неуступчивые, переубедить их порой оказывается невозможно. Они склонны к самоанализу, с трудом находят себе новых друзей.

ПЛЛП - у вас легкий характер. Вы счастливо умеете избегать конфликтов, любите путешествовать. Легко находите друзей. Однако вы часто меняете свои увлечения.

ПЛЛЛ - вам присущи непостоянство и независимость, желание все сделать самому. Способность анализировать помогает вам успешно решать сложные задачи. Обычно вы кажетесь мягким, но становитесь требовательным и даже жестоким, когда доходит до дела.


Практическая работа №5

«Разработка базы данных»

Цели:

1. приобретение навыков создания и управления базой данных с помощью программы phpMyAdmin;

2. закрепление навыков использования MySQL.

 

Структура базы данных TOVARS:

  1. Таблица tovar, содержит учетные записи товаров
Название поля Описание Тип
1 id Поле-счетчик INT
2 name Название товара VARCHAR (20)
3 cost Стоимость INT
4 kol Количество товара INT
5 date Дата реализации DATE

 

Пример записей:

 

id name cost kol date
1 Хлеб столовый 24 100 25.03.10
2 Хлеб ржаной 20 50 27.03.10

 

Выбор данных:

SELECT column1,… FROM table WHERE definition ORDER BY col_name

 

Добавление данных:

INSERT INTO table VALUES (value1, …)

 

Удаление данных:

DELETE FROM table WHERE definition

 


Дата добавления: 2020-04-08; просмотров: 185; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!