Автор: Пользователь скрыл имя, 16 Июня 2014 в 13:58, магистерская работа
Несмотря на широкую распространенность в природе и исключительно важную роль в самых различных областях науки и техники: от источников света до термоядерного синтеза и нанотехнологий – плазма, исследования которой продолжаются уже второе столетие, остается до конца не понятым объектом. Даже для простейших случаев газового разряда в инертных газах теоретики не могут предложить четкого алгоритма расчета внутренних параметров плазмы и ее эмиссионных характеристик на основе произвольно устанавливаемых экспериментатором факторов (размер среды, напряжение питания, род и давление газа). Тем не менее, не прекращаются попытки построить модели значительно более сложных экзотических плазменных сред. Так в 70-х и начале 80-х годов прошлого века появляются работы, в которых на основе классической статистической механики с использованием численных методов решения соответствующих уравнений методом Монте-Карло исследуются свойства однокомпонентной полностью ионизованной плазмы гелия при температуре около 108 К и плотности вещества 1029 cм-3.
Рис. 4. Общий вид раздела «Пользователи».
Для того, чтобы добавить статью, необходимо выбрать, например, раздел «Эксперимент» (рис. 5).
Рис. 5. Раздел «Эксперимент».
На рисунке можно видеть подразделы в выбранном разделе, а ниже – статьи, которые есть в данном разделе.
Перейдем на страницу с формой для добавления статьи (рис. 6).
Рис. 6. Форма для добавления статьи.
После нажатия кнопки «Сохранить» файл будет передан на сервер, обработан программой и затем откроется страница, на которой будет отображена данная статья. После добавления статью можно переместить в другой раздел. Хотелось бы обратить внимание на то, что имеется возможность передачи на сервер DOC-файла, заархивированного программой ZIP. Такая возможность предусмотрена для сокращения времени передачи данных на сервер.
Перейдем в раздел «База данных» (рис. 7). Открывшаяся страница предоставляет пользователям следующие возможности, в зависимости от их прав доступа:
Рис. 7. Раздел «База данных».
Существует два способа добавления записей:
Рассмотрим каждый из них более подробно.
После того, как откроется страница добавления записи, будет предложено заполнить все поля записи вручную (дата проведения, средний размер частиц, выбрать форму частиц, способ ввода частиц и т.д.). Чтобы можно было выбрать нужную форму частицы, необходимо ее добавить на странице «Вспомогательные записи». Для этого необходимо перейти по ссылке «Вспомогательные записи», а затем выбрать «Добавить…», например, в строке «Форма частиц» и ввести новую форму частиц. После того, как нужная форма частиц добавлена, ее можно выбрать на странице «Новая запись». После того, как поля заполнены, необходимо нажать кнопку «Добавление записи», находящуюся внизу страницы, и запись будет добавлена в базу данных. Любую запись из имеющихся в базе данных можно редактировать, выбрав ее на странице «Все записи» и нажав на ссылку «Редактировать».
Для загрузки отчета необходимо указать имя файла, в котором содержатся данные отчета (имя файла можно ввести вручную или выбрать его, нажав на кнопку «Обзор…»). После того, как файл отчета будет загружен на сервер и обработан, будет предложена в точности такая же страница, как и при добавлении с помощью страницы «Новая запись», но уже с частично заполненными полями (будут заполнены те поля, которые указаны в отчете). При этом, если указанной в отчете формы частиц в базе данных нет, то будет предложено ее добавить автоматически. Таким образом, отсутствует необходимость входить на страницу «Вспомогательные записи» и добавлять запись вручную.
Разработанная база данных экспериментов поможет в изучении такого объекта, как плазменный кристалл, и в дальнейшем планируется продолжить работу по наполнению БД экспериментальными данными. Возможно усовершенствование системы для хранения данных других экспериментов с плазмой.
<?
require_once("include/
setlocale(LC_ALL, 'ru_RU.CP1251');
session_start();
if (isset($_GET['debugging'])) {
switch ($_GET['debugging']) {
case "on":
if (!isset($_SESSION['debugging']
break;
default:
unset($_SESSION['debugging']);
break;
}
}
if (isset($_SESSION['debugging']) && $_SESSION['debugging']) {
ini_set('display_errors', 1);
error_reporting(E_ALL);
} else {
ini_set('display_errors', 0);
error_reporting(0);
}
$body=$left=$center=$right="";
$database=parse_ini_file("
$db=@mysql_connect($database['
@mysql_select_db($database['
// Проверка наличия таблиц и считывание настроек
verify_tables();
// Проверка данных о пользователе
require_once("module/class/
$setup=new Setup();
require_once("module/class/
$user=new User();
$logged_uid=isset($_SESSION['
if ((isset($_COOKIE['logged_uid']
$logged_gid=$user->
if ($logged_gid==$settings['
// Формирование меню для группы logged_gid
$menu=$setup->ShowMenu($
require_once("module/class/
$main=new Main();
$right_and_left=$main->
if (isset($right_and_left['right'
else $right="";
if (isset($right_and_left['left']
else $left="";
// Проверка передаваемых через адресную строку данных
if (isset($_GET['t'])) $t=preg_replace("([^a-z])", "", strtolower($_GET['t'])); else $t="";
if (!$setup->SectionExists($
$t="main";
$secid=$setup->GetSectionSID($
}
if (isset($_GET['a'])) $a=preg_replace("([^a-z])", "", strtolower($_GET['a'])); else $a="";
if (isset($_GET['с'])) $с=preg_replace("([^a-z])", "", strtolower($_GET['с'])); else $с="";
// Подключаем модуль, который выполняет запрошенную
// операцию и заносит результат в переменную $body,
// в которой находится тело страницы
include("module/$t.php");
// Титульное название
$title=$GLOBALS['settings']['
$user_agent=get_user_agent();
include("theme/index.htm");
if (isset($result)) mysql_free_result($result);
mysql_close($db);
?>
<?
function mquery($query) {
$result=@mysql_query($query) or safe_exit("Не могу
выполнить запрос: \n".$query."\n".mysql_error())
return $result;
}
function check_mysql() {
if (isset($GLOBALS['result'])) @mysql_free_result($GLOBALS['
if (isset($GLOBALS['db'])) @mysql_close($GLOBALS['db']);
}
function safe_header($url) {
check_mysql();
header($url);
exit;
}
function safe_exit($message="") {
if ($message) {
// error_log(); - письмо с ошибкой.
$GLOBALS['body']=parse_file("
$message=str_replace("\n", "<BR>", $message);
$GLOBALS['body'].="<BR><BR>$
}
$menu=$GLOBALS['menu'];
$body=$GLOBALS['body'];
$left=$right=$about="";
$title=$GLOBALS['settings']['
check_mysql();
$user_agent=get_user_agent();
include("theme/index.htm");
exit;
}
function parse_file($filename, $array=NULL) {
$file_contents=file_get_
if (count($array)) foreach ($array as $key=>$value) $file_contents=str_replace("<?
return $file_contents;
}
function get_modules() {
$mod=trim(`ls module | grep .php`);
if ($mod) {
$modules=explode("\n", $mod);
foreach($modules as $module) {
if (file_exists($file="module/".
else $desc=str_replace(".php", "", $module);
$exist_modules[$module]=trim($
}
} else $exist_modules=NULL;
return $exist_modules;
}
function class_exist($check_class) {
if (!$check_class) return false;
$class=trim(`ls module/class | grep .php`);
if ($class) {
$classes=explode("\n", $class);
if (in_array("$check_class.php", $classes)) return true;
}
return false;
}
function format_date(&$date, &$time) {
if (isset($date) && $date) $date=date("d.m.Y", strtotime($date)); else $date="";
if (isset($time) && $time) $time=date("H:i", strtotime($time)); else $time="";
}
function get_pages_link($onpage, $count, $action, $p) {
$page_count=ceil($count/$
$links="";
if ($page_count>1) {
unset($page);
$disp=5;
$begin=$p-$disp;
$end=$p+$disp;
if ($begin<1) $begin=1;
if ($end>$page_count) $end=$page_count;
for ($i=$begin; $i<=$end; $i++) {
if ($p==$i) $links.="$i ";
else $links.=parse_file("theme/
}
if ($links) {
if ($p!=1) $links=parse_file("theme/page/
if ($p!=$page_count) $links.=parse_file("theme/
}
$links=parse_file("theme/page/
}
return $links;
}
function get_short($content, $module="article") {
$count=$GLOBALS['settings'][$
$content=strip_tags($content);
$content=str_replace("\n", " ", $content);
$content=preg_replace("/\s+/", " ", $content);
if (strlen($content)>$count) {
preg_match("/.{1,$count}\s/", $content, $match);
return trim($match[0])."...";
} else return $content;
}
function verify_tables() {
if (@mysql_query("SELECT value FROM setup WHERE setting='setup'")) {
$result=mquery("SELECT * FROM setup WHERE setting<>'setup'");
if (mysql_num_rows($result))
while($row=mysql_fetch_assoc($
$GLOBALS['settings'][$row['
return true;
}
$result=mquery("SHOW TABLES");
if (mysql_num_rows($result)) while ($row=mysql_fetch_row($result)
else $table_exist=array();
mysql_free_result($result);
if (!in_array("setup", $table_exist)) mquery("CREATE TABLE setup (setting varchar(255) default NULL, value varchar(255) default NULL) TYPE=MyISAM");
$modules=get_modules();
$date=date("Y-m-d");
$time=date("H:i:s");
$aliases=array('diagnostics', 'experiment', 'history', 'rule', 'theory', 'use');
foreach ($modules as $module=>$title) {
$module=str_replace(".php", "", $module);
require_once("module/class/$
$class=new $module;
$tables=$class->
foreach ($tables as $table=>$query) {
if (!in_array($table, $table_exist)) {
$table_exist[]=$table;
if ($query['create']) mquery($query['create']);
foreach ($query['insert'] as $insert_query) if ($insert_query) mquery($insert_query);
}
}
}
mquery("INSERT INTO setup VALUES ('setup', 'done')");
$result=mquery("SELECT * FROM setup WHERE setting<>'setup'");
if (mysql_num_rows($result))
while($row=mysql_fetch_assoc($
$GLOBALS['settings'][$row['
return true;
}
function get_user_agent() {
$user_agent=strtolower($_
if (strstr($user_agent, "opera")!==false) $user_agent="opera";
elseif (strstr($user_agent, "msie")!==false) $user_agent="ie";
elseif (strstr($user_agent, "netscape")!==false) $user_agent="nc";
else $user_agent="default";
return $user_agent;
}
function strprep($str) {
if (get_magic_quotes_gpc()) $str=stripslashes($str);
$str=htmlspecialchars($str, ENT_QUOTES);
return $str;
}
?>
<?
require_once("module/class/
$article=new Article();
Информация о работе Создание базы данных экспериментов с плазменным кристаллом