Автор работы: Пользователь скрыл имя, 26 Июня 2013 в 13:46, дипломная работа
Таким образом, необходимо автоматизировать процесс создания различных анкет и опросов для проведения анкетирования среди учащихся, студентов, преподавателей и сбора информации для анализа.
Для достижения поставленной цели дипломного проекта необходимо решить следующие задачи:
-анализ решаемой задачи;
-выбор языка программирования, наиболее полно отвечающего требованиям поставленной задачи;
-разработка интерфейса программы;
-разработка алгоритма функционирования как программы в целом, так и отдельных ее элементов, представляющих собой логически законченные функциональные блоки;
-разработка программы на алгоритмическом языке и ее отладка;
-разработка документации – создание описания принципов работы программы, описание ее составных частей, принципов их взаимодействия, классов.
Для создания интуитивного и удобного интерфейса был применен набор стандартных элементов управления (в частности, ссылки и кнопки). Важной частью стала универсальность программного средства по отношению к пользователям с различным уровнем навыков работы за компьютером: интерфейс разработан интуитивно понятным, чтобы было как можно меньше неправильных действий со стороны пользователей.
Разработанное программное средство нетребовательно к ресурсам компьютера. Кроме того, оно довольно надежно: все наиболее вероятные ошибки обрабатываются.
Также следует заметить, что разработанное программное средство экономически целесообразно для внедрения на предприятие: затраченные ресурсы окупаются менее чем через год после начала его эксплуатации.
Список использованных источников
Приложение А
(обязательное)
Листинг программы
Файл index.php:
<?php
session_start();
include_once './db/connect.php';
//запуск сессии,процесс логинизации
if(isset($_REQUEST['login']))
{
if(isset($_REQUEST['password']
{
$log_q=mysql_query("SELECT
* FROM users where name='".$_REQUEST['user']."' AND password='".$_REQUEST['passwor
$log=mysql_fetch_assoc($log_q)
if(!empty($log))
{
//передача переменных в сессию
$_SESSION['id']=$log['id'];
$_SESSION['name']=$log['name']
$_SESSION['logged']=true;
$_SESSION['acc_type']=$log['
$_SESSION['msg_log']='Вы успешно вошли как '.$_SESSION['name'].'
<a href="'.$_SERVER['PHP_SELF'].'
}
}
}
//подключение
верхней части страницы,она
include_once './top.php';
//проверка на вход
if(isset($_SESSION['logged']))
{
if(isset($_SESSION['acc_type']
{
include_once './admin/admin.php';
}
elseif(isset($_SESSION['acc_
{
print('Доброе время суток '.$_SESSION['name'].'.<br>');
include_once './public/users.php';
}
endif;
}
//проверка флага регистрации
elseif(isset($_REQUEST['do'])&
{
include_once './public/registration/reg.
}
else:
{
print('Для прохождения
опросов вам необходимо <a href="./index.php?do=reg">
}
endif;
//подключение
нижней части страницы,она
include_once './down.php';
?>
Файл connect.php:
<?php
$server="localhost";
$rootpass="1230123";
$dbname="anketa";
$rootuser="root";
$user="guest";
$pass="devils";
function renewtables() {
mysql_query("CREATE TABLE `list` (
`list_id` INTEGER NOT NULL auto_increment,
`name` varchar(60) default NULL,
PRIMARY KEY (`list_id`)
) DEFAULT CHARSET=UTF8");
mysql_query("CREATE TABLE `answers` (
`answer_id` int(6) NOT NULL auto_increment,
`a_text` varchar(200) default NULL,
`quest_id` int(6) default NULL,
PRIMARY KEY (`answer_id`)
) DEFAULT CHARSET=UTF8");
mysql_query("CREATE TABLE `questions` (
`quest_id` int(6) NOT NULL auto_increment,
`q_text` varchar(200) default NULL,
`list_id` int(6) default NULL,
PRIMARY KEY (`quest_id`)
) DEFAULT CHARSET=UTF8");
mysql_query("CREATE TABLE `users` (
`id` int(8) NOT NULL auto_increment,
`name` varchar(16) NOT NULL,
`password` varchar(16) NOT NULL,
`acc_type` varchar(6) NOT NULL default 'user',
PRIMARY KEY (`id`)
) DEFAULT CHARSET=UTF8");
mysql_query("insert into users (name,password,acc_type)
values ('admin','123','admin')");
}
function createnewdb($create,$server,$
if(!mysql_connect($server, $rootuser, $rootpass)) die (mysql_error());
//создаём нового юзера и базу, делаем доступной для него на полный доступ
if ($create)
{
mysql_query("CREATE USER $user IDENTIFIED BY '$pass'");
}
mysql_query("CREATE DATABASE $dbname");
mysql_query("GRANT ALL PRIVILEGES ON `$dbname`.* TO '$user' IDENTIFIED BY '$pass' WITH GRANT OPTION");
}
if(!mysql_connect($server, $user, $pass))
{
createnewdb(true,$server,$
mysql_close();
if(!mysql_connect($server, $user, $pass)) die (mysql_error());
renewtables();
}
if(!mysql_select_db($dbname))
{
mysql_close();
createnewdb(false,$server,$
mysql_close();
if(!mysql_connect($server, $user, $pass)) die (mysql_error());
mysql_select_db($dbname) or die (mysql_error());
renewtables();
}
Файл admin.php:
<?php
//проверка на логинизацию
if(isset($_SESSION['logged'])&
{
print("Доброе
время суток ".$_SESSION['name'
//установка соединения с БД
include_once './db/connect.php';
//Удаление опроса
if(isset($_REQUEST['do'])&&$_
{
$listid=$_REQUEST['list_id'];
$curr=mysql_query("SELECT * FROM list WHERE list_id=".$listid);
$dels=mysql_fetch_row($curr);
mysql_query("DELETE FROM list WHERE list_id=$listid") or die (mysql_error());
//print_r($dels);
if(mysql_query("DROP TABLE `list_".$dels[1]."`"))
{
print("Опрос ".$dels[1]." успешно удалён<br>");
}
else
{
die(mysql_error());
}
//die(mysql_error());
$ques=mysql_query("SELECT
* FROM questions WHERE list_id=".$_REQUEST['list_id']
while($q=mysql_fetch_row($ques
{
mysql_query("DELETE FROM answers WHERE quest_id=".$q[0]) or die(mysql_error());
mysql_query("DELETE FROM questions WHERE quest_id=".$q[0]) or die(mysql_error());
}
print("Вы успешно удалили опрос вернитесь на <a href='./'>главную</a><br>");
}
//Создание формы для изменения опроса
if(isset($_REQUEST['do'])&&$_
{
$list_id=$_REQUEST['list_id'];
print("Редактирование опроса:
<form action='".$_SERVER['PHP_SELF']
$res=mysql_query("SELECT * FROM list WHERE list_id=$list_id");
$oprosik=mysql_fetch_row($res)
print("<input type='hidden' name='oldopros' value='$oprosik[1]'>
<input type='text' name='list_".$_REQUEST['list_
$ques=mysql_query("SELECT * FROM questions WHERE list_id=".$_REQUEST['list_id']
while($q=mysql_fetch_row($
{
print("<br>Вопрос
№$q[0]:<textarea name='q_$q[0]'>$q[1]</
$q_res=mysql_query("SELECT * FROM answers WHERE quest_id=".$q[0]);
print("Ответы :");
while($a=mysql_fetch_row($q_
{
print("<input type='text' name='a_$a[0]' value='$a[1]'>");
}
}
print("<br><input type='submit' name='edit' value='Изменить'></form>");
}
//внесение изменение в таблицы
if(isset($_REQUEST['edit']))
{
$a=$_REQUEST;
$old=$_REQUEST['oldopros'];
mysql_query("DROP TABLE `list_".$old."`") or die(mysql_error());
foreach($a as $k=>$v)
{
$key=explode('_',$k);
if($key[0]=='list'):
{
$opros=$v;
$oprid=$key[1];
}
elseif($key[0]=='q'):
{
$ques[]=$v;
$qid[]=$key[1];
}
elseif($key[0]=='a'):
{
$answ[]=$v;
$aid[]=$key[1];
}
endif;
}
//изменение таблицы опросов
//$ques=mysql_query("SELECT * FROM questions WHERE list_id=".$oprid);
mysql_query("UPDATE list SET name='".$opros."' WHERE list_id=".$oprid) or die(mysql_error());
//изменение таблицы вопросов
for($i=0;$i<count($ques);$i++)
{
mysql_query("UPDATE questions SET q_text='".$ques[$i]."' WHERE quest_id=".$qid[$i]) or die(mysql_error());
}
//изменение таблицы ответов
for($i=0;$i<count($ques);$i++)
{
mysql_query("UPDATE answers SET a_text='".$answ[$i]."' WHERE answer_id=".$aid[$i]) or die(mysql_error());
}
//создания новой таблицы опросов
$sql="CREATE TABLE `list_$opros` ( `id` INT(3) primary key auto_increment, `users` INT(6)";
for($i=0;$i<count($ques);$i++)
{
$sql=$sql.", `$ques[$i]` TEXT(200) NOT NULL";
}
$sql=$sql." )";
echo $sql;
if(mysql_query($sql))
{
print("Вы успешно обновили опрос- $opros");
}
else
{
die(mysql_error());
}
}
//Вывод списка опросов
if (!isset($_REQUEST['add'])&&!
{
print("Список всех опросов:<br>");
$o=mysql_query("SELECT * FROM list");
while($res=mysql_fetch_row($o)
{
print("$res[1] <a
href='".$_SERVER['PHP_SELF']."
<a href='".$_SERVER['PHP_SELF']."
}
//Вывод статистики для всех опросов
print("Статистики по всем опросам:<br>");
$o=mysql_query("SELECT * FROM list");
while($res=mysql_fetch_row($o)
{
print("Опрос ".$res[1].":<br>");
//$sql="SELECT * FROM questions WHERE list_id=".$res[0];
$ques=mysql_query("SELECT * FROM questions WHERE list_id=".$res[0]) or die(mysql_error());
while($q=mysql_fetch_row($
{
print("На вопрос -".$q[1]." отвечали следующим образом :");
$ans=mysql_query("SELECT ".$q[1]." FROM list_".$res[1]) or die(mysql_error());
while($a=mysql_fetch_row($ans)
{
$result=mysql_query("SELECT * FROM list_".$res[1]." WHERE ".$q[1]."='".$a[0]."'") or die(mysql_error());
$count=mysql_num_rows($result)
Информация о работе Программа Анкетирование на PHP с возможностью создания и редактирования анкет