Курсовая работа: Разработка программы генерации тестов из базы данных на языке РНР
Значения хранящиеся в таблицах можно посмотреть в приложении 1.
Веб-приложение состоит из трех html-страниц: главная, тестовая и страница проверки.
Главная страница, содержит приветственное слово и кнопку-ссылку для перехода на следующую страницу и начала теста.
Код страницы:
<html>
<head>
<title> Генератор тестов :: Главная </title>
</head>
<body bgcolor="#D9ECFF">
<div align="center">
<font size="6">Главная</font> <p> </p><p> </p>
<table border="1" width="50%" cellpadding="7" bgcolor="#BFDFFF" align="center">
<tr> <td> Приветствуем Вас в генераторе тестов.
</td></tr>
<tr> <td height="10%">
Пожалуйста, нажмите на кнопку, чтобы начать.
</td></tr>
<tr><td height="29">
<a title="Жмите, не бойтесь :)"href="index.php">
<font size="4">Начать</font></a>
</td></tr>
</table> </div>
</body>
</html>
Графическое представление (интерфейс пользователя):
Тестовая страница страница, содержащая код на языке РНР, который непосредственно и генерирует вопросы из БД и ответы к ним, а также выводит вопросы с ответами на экран.
Рассмотрим РНР код:
<?php
ERROR_REPORTING(E_ALL & ~E_NOTICE & ~E_WARNING);
$mysql_host="localhost";
$mysql_user="tanushka";
$mysql_password="******";
$mysql_database="Gener";
/* Соединяемся, выбираем базу данных */
$link = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or die("Could not connect:".mysql_error());
mysql_select_db("$mysql_database") or die("Could not select database");
echo "<FORM method=\"POST\" action='proverka.php'>";
$num = 1; // переменная, отвечающая за номер вопроса;
while ($num<=5) {
$query = "SELECT * FROM Vopr WHERE Block='$num'";
$q=@mysql_query ($query);
if(!$q) break;
while ($row=@mysql_fetch_array($q))
{$quest[]=$row;}
$current=$quest[rand(0,count($quest)-1)];
echo "<hr>";
echo $current['Vopros'];
echo "</hr>";
echo "<input type='hidden' name='q[$num]'
value='".$current['ID']."'>";
$query2= "SELECT * FROM Otv WHERE
ID_vopr='".$current['ID']."'";
$a=@mysql_query ($query2);
while ($arow=@mysql_fetch_array($a))
{ echo "<p><input type='radio' name='a[$num]' value='".$arow ['ID']."'> ".$arow ['Otvet']." </p>";
}
echo "<br><br>";
unset($quest);
$num++; // переходим к следующему вопросу
}
echo "<INPUT TYPE=submit VALUE='Отправить'>";
echo " </FORM>";
/* Закрываем соединение */
mysql_close($link);
?>
Страница проверки страница, содержащая РНР код, сравнивающий правильный ответ с ответом пользователя, если они совпадают, пользователю начисляется балл.
РНР код:
<?
if (!isset ($_POST['q'])||!isset($_POST ['a']))
exit(0);
$q=$_POST['q'];
$a=$_POST['a'];
$ball=0;
$mysql_host="localhost";
$mysql_user="tanushka";
$mysql_password="******";
$mysql_database="Gener";
/* Соединяемся, выбираем базу данных */
$link = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or die("Could not connect:".mysql_error());
mysql_select_db("$mysql_database") or die("Could not select database");
for ($i=1; $i<=count($q); $i++)
{$query="SELECT * FROM Otv WHERE ID_vopr='".$q[$i]."' AND
Znach='T'";
$p=@mysql_query($query);
$row=@mysql_fetch_array($p);
$answer = $row['ID'];
if($a[$i]==$answer) $ball++;
unset($query,$p,$row);
}
echo "Ваш балл ".$ball." Из ".count($q).";
?>
Заключение
В настоящее время в нашу жизнь широко внедряются информационные технологии. На сегодняшний день, наверное, не осталось такой области, где бы они ни применялись. Компьютеры является неотъемлемой частью работы людей. Они используются в школах и университетах.
В данном курсовом проекте был создан: “Генератор тестов на языке РНР”. Он представляет собой веб-приложение, которое выбирает произвольным образом 5 вопросов и ответов к ним из базы данных, выводит их на экран и проверяет, сколько правильных ответов дал пользователь.
Пользовательский интерфейс приложения делает его простым, понятным и доступным.
Данное веб-приложение может быть усовершенствовано до полноценной системы тестового контроля знаний пользователей. Его пользовательский интерфейс может быть улучшен за счет разделения списка вопросов на страницы, т.е. каждый новый вопрос выводился бы на новой странице. Также данное приложение можно сделать межпредметным, т.е. добавить возможность выбора дисциплины, по которой будет проводиться тестирование.
Список использованных источников
1. Интернет Университет Информационных Технологий – дистанционное образование [Электронный ресурс]. Режим доступа: http:// www.intuit.ru. - Загл. с экрана. Яз. Рус.
2. Википедия – свободная библиотека [Электронный ресурс]. Режим доступа: http://ru.wikipedia.org/wiki - Загл. с экрана. Яз. Рус.
3. Сайт компании “Softwerk”[Электронный ресурс]. Режим доступа: http://www.softwerk.ru - Загл. с экрана. Яз. Рус.
4. Котеров, Д.В. Самоучитель PHP4/ Д.В. Котеров – СПб.: БХВ-Петербург, 2001.
5. Кузнецов, М.В. РНР 5 на примерах / М.В. Кузнецов, И.В. Симдянов, С.В. Голышев. – СПб.: БХВ-Петербург, 2005. – 575 с.
Приложение 1.
Описание таблиц хранящихся в базе данных “Gener”:
Таблица вопросов “Vopr”
ID | Vopros | Block |
1 | 2*2 | 1 |
2 | 3*3 | 1 |
3 | 4*4 | 1 |
4 | 7*8 | 2 |
5 | 9*5 | 2 |
6 | 5*4 | 2 |
7 | 11*7 | 3 |
8 | 15*3 | 3 |
9 | 16*2 | 3 |
10 | 44:4 | 4 |
11 | 42:7 | 4 |
12 | 56:7 | 4 |
13 | 512:2 | 5 |
14 | 1024:2 | 5 |
15 | 256:2 | 5 |
Таблица ответов “Otv”
ID | Otvet | ID_vopr | Znach |
1 | 4 | 1 | T |
2 | 5 | 1 | F |
3 | 6 | 1 | F |
4 | 7 | 1 | F |
5 | 11 | 2 | F |
6 | 12 | 2 | F |
7 | 9 | 2 | T |
8 | 10 | 2 | F |
9 | 5 | 3 | F |
10 | 12 | 3 | F |
11 | 15 | 3 | F |
12 | 16 | 3 | T |
13 | 56 | 4 | T |
14 | 63 | 4 | F |
15 | 58 | 4 | F |
16 | 55 | 4 | F |
17 | 40 | 5 | F |
18 | 45 | 5 | T |
19 | 55 | 5 | F |
20 | 48 | 5 | F |
21 | 15 | 6 | F |
22 | 18 | 6 | F |
23 | 20 | 6 | T |
24 | 24 | 6 | F |
25 | 77 | 7 | T |
26 | 76 | 7 | F |
27 | 87 | 7 | F |
28 | 79 | 7 | F |
29 | 46 | 8 | F |
30 | 45 | 8 | T |
31 | 30 | 8 | F |
32 | 35 | 8 | F |
33 | 30 | 9 | F |
34 | 34 | 9 | F |
35 | 32 | 9 | T |
36 | 36 | 9 | F |
37 | 10 | 10 | F |
38 | 11 | 10 | T |
39 | 12 | 10 | F |
40 | 13 | 10 | F |
41 | 8 | 11 | F |
42 | 7 | 11 | F |
43 | 6 | 11 | T |
44 | 5 | 11 | F |
45 | 6 | 12 | F |
46 | 7 | 12 | F |
47 | 9 | 12 | F |
48 | 8 | 12 | T |
49 | 1028 | 13 | F |
50 | 266 | 13 | F |
51 | 256 | 13 | T |
52 | 117 | 13 | F |
53 | 512 | 14 | T |
54 | 522 | 14 | F |
55 | 507 | 14 | F |
56 | 519 | 14 | F |
57 | 127 | 15 | F |
58 | 129 | 15 | F |
59 | 128 | 15 | T |
60 | 132 | 15 | F |