Автор работы: Пользователь скрыл имя, 18 Января 2013 в 03:48, дипломная работа
Разработанная программа является программным средством для реализации учета, контроля, анализа и оптимизации учебных материалов на кафедре ИТ-4. Необходимо было создать гибкую систему, позволяющую легко адаптироваться к нуждам кафедры, а так же которая легко могла бы быть интегрирована в уже существующую инфраструктуру кафедры. Программа разработана для работы с базой данных MySQL. Информационный модуль работы с базой данных написан на языке программирования PHP с использованием Фреймворка CodeIgniter.
Цель программы - обеспечить персонал кафедры комплексным и качественным программным продуктом для работы как с уже имеющимися базами данных учебных материалов, так и для внесения и учета новых поступлений.
Введение 5
1 Исследовательский раздел 7
1.1 Анализ существующих форматов представления данных 7
1.2. Обоснование выбора программно-аппаратных средств 13
1.2.1 Технология SQL – выбор СУБД 13
1.2.2 Выбор языка программирования – PHP 18
1.2.3 Выбор среды программирования – Фреймворк CodeIgniter 21
1.3 Развернутое техническое задание 22
1.3.1 Общие сведения 22
1.3.2 Назначение программы 22
Состав работ проектирования программного модуля 23
1.3.4 Требования к программе или программному изделию 24
1.3.4.1 Требования к функциональным характеристикам 24
1.3.4.2 Исходные данные 24
1.3.4.3 Организация входных и выходных данных 25
1.3.4.4 Требования к надежности 25
1.3.4.5 Требования к составу и параметрам технических средств 25
1.3.4.6 Требования к программной совместимости 26
1.3.5 Требования к программной документации 26
2 Специальный раздел 27
2.1 Разработка структурной схемы программы 27
2.2 Разработка структуры базы данных программы 30
2.3 Разработка модели информационных потоков базы данных 34
2.4 Разработка алгоритмического обеспечения 36
2.5 Разработка интерфейса программы 39
3 Технологический раздел 44
3.1 Технология разработки программы 44
3.1.1 Создание веб-страниц с помощью языка HTML 44
3.1.2 Основы работы web-сервера 45
3.1.3 Объектно-ориентированный подход к программированию на PHP 46
3.1.5 Инструментарий совместной разработки Subversion 50
3.1.6 Интегрированная среда разработки Zend Studio 51
3.2 Технология тестирования программы 51
3.2.1 Отладка кода с помощью Zend Debugger 58
3.2.2 Автоматизированное тестирование программы – SimpleTest 60
4 Безопасность жизнедеятельности 64
4.1 Анализ опасных и вредных факторов, возникающих при работе на ПЭВМ 64
4.1.1 Физиологические опасные и вредные факторы, действующие на операторов ПЭВМ 64
4.1.2 Психофизиологические опасные и вредные факторы 65
4.2 Разработка технических, организационных и профилактических мероприятий по каждому опасному и вредному фактору 66
4.2.1 Организация рабочего места оператора ЭВМ. Профилактика СДСН 66
4.2.2 Эргономика дисплея. Профилактика СДЗН 68
4.2.3 Эргономика устройств ввода информации. Профилактика СЗКП 70
4.2.4 Оптимальный режим работы. Профилактика СДПН 72
4.2.5 Контроль микроклимата в помещениях оборудованных ПЭВМ. Профилактика СНИК 73
4.3 Экологическая оценка и переработка (утилизация) материалов используемых в помещениях, где установлена компьютерная техника 75
4.3.1 Утилизация и переработка ртути в люминесцентных лампах 77
5 Экономическая часть 80
5.1 Планирование разработки автоматизированной системы с построением графика выполнения работ 80
5.1.1 Определение этапов и работ по созданию программного средства 80
5.1.2 Расчет трудоемкости и продолжительности работ 82
5.1.3 Построение графика разработки программного продукта 85
5.2 Расчет затрат на разработку 87
5.2.1 Расчет затрат на разработку программного продукта 87
5.3 Расчет основных технико-экономических показателей и эффективности использования программного продукта 91
5.3.1 Оценка экономической эффективности проекта 97
Заключение 102
Список использованных источников 104
Приложение A. Исходный код программы с комментариями 106
Приложение Б. Графический материал 115
| APPPATH - The full server path to the "application" folder
|
*/
define('EXT', '.'.pathinfo(__FILE__, PATHINFO_EXTENSION));
define('FCPATH', __FILE__);
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
define('BASEPATH', $system_folder.'/');
if (is_dir($application_folder))
{
define('APPPATH', $application_folder.'/');
}
else
{
if ($application_folder == '')
{
$application_folder = 'application';
}
define('APPPATH', BASEPATH.$application_folder.'
}
/*
|-----------------------------
| LOAD THE FRONT CONTROLLER
|-----------------------------
|
|
*/
require_once BASEPATH.'codeigniter/
/* End of file index.php */
/* Location: ./index.php */
Листинг layout_main.php
<html>
<head>
<title><?php if (isset($title_for_layout)) { echo $title_for_layout;} ?></title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta http-equiv="content-type"
content="text/html;charset=
<!-- CSS for JQuery UI -->
<link rel="stylesheet" type="text/css" href="/theme/jquery-ui-1.7.
<!-- *******************-->
<link rel="stylesheet" type="text/css" href="/css/reset.css" />
<link rel="stylesheet" type="text/css" href="/css/ext.css" />
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript" src="/jquery.ui.js"></script>
<script type="text/javascript"
src="/ui.datepicker-ru.js"></
</head>
<body>
<div id="header_logo"> </div><
<div id="menu">
<a class="menu_item" href="/library/">Главная</a><
<a class="menu_item" href="/library/sprv">
<a class="menu_item" href="/library/books">Книги</
<a class="menu_item" href="/library/books/search">
</div>
<div id="content">
<?php echo $content_for_layout; ?>
</div>
<div id="footer"><?php echo date('Y'); ?> © ИТ-4 </div>
</body>
</html>
Листинг layout.php
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Layout
{
var $obj;
var $layout;
function Layout($layout = "layout_main")
{
$this->obj =& get_instance();
$this->layout = $layout;
}
function setLayout($layout)
{
$this->layout = $layout;
}
function view($view, $data=null, $return=false)
{
$loadedData = array();
$loadedData['content_for_
if($return)
{
$output = $this->obj->load->view($this->
return $output;
}
else
{
$this->obj->load->view($this->
}
}
}
?>
Листинг sprv.php
<?php
class Sprv extends Controller {
function Sprv()
{
parent::Controller();
$this->load->model('Sprv_db');
}
// Список справочников
function index()
{
$this->layout->view('sprv_
}
// Справочник разделов
function sections() {
$this->layout->view('sprv_
}
// Справочник дисциплин
function disciplines() {
$data['disciplines'] = $this->Sprv_db->get_
$this->layout->view('sprv_
}
function disciplines_add()
{
if ($this->input->post('name') != FALSE && $this->input->post('code') != FALSE)
$this->Sprv_db->add_
redirect('/sprv/disciplines');
}
function disciplines_del($id)
{
$this->Sprv_db->del_
redirect('/sprv/disciplines');
}
function disciplines_edit($id)
{
if ($this->input->post('name') != FALSE && $this->input->post('code') != FALSE) {
$this->Sprv_db->save_
redirect('/sprv/disciplines');
return;
}
$data['discipline'] = $this->Sprv_db->get_
if ($data['discipline'] === FALSE)
show_404('');
$this->layout->view('sprv_disc
}
// Справочник авторов
function authors() {
$this->layout->view('sprv_
}
// Справочник типов изданий
function publication_types() {
$this->layout->view('sprv_
}
}
Листинг sprv_db.php
<?php
class Sprv_db extends Model {
function Sprv_db()
{
parent::Model();
}
function get_disciplines()
{
$this->db->order_by("code", "asc");
$query = $this->db->get('disciplines');
return $query->result_array();
}
function add_discipline($name, $code)
{
$data = array(
'name' => $name,
'code' => $code,
);
$this->db->insert('
}
function del_discipline($id)
{
$this->db->delete('
}
function get_discipline_by_id($id)
{
$query = $this->db->get_where('
if ($query->num_rows() < 1)
return FALSE;
return $query->row_array();
}
function save_discipline($name, $code, $id)
{
$data = array(
'name' => $name,
'code' => $code
);
$this->db->where('id', $id);
$this->db->update('
}
}
Листинг sprv_disciplines.php
<h2>Добавить дисциплину</h2>
<div>
<form action="/library/sprv/
<strong>Название</strong><br /><input type="text" name="name" value="" /><br /><br />
<strong>Шифр</strong><br /><input type="text" name="code" value="" /><br /><br />
<input type="submit" name="submit" value="Добавить" />
</form>
</div>
<h2>Список дисциплин</h2>
<table width="100%" cellpadding="0" cellspacing="0" class="std_table" border="1px">
<tr><td><strong>Название</
<?php foreach($disciplines as $discipline): ?>
<tr>
<td><?php echo $discipline['name']; ?></td>
<td><?php echo $discipline['code']; ?></td>
<td><a href="/library/sprv/
</tr>
<?php endforeach; ?>
</table>
<br />
Листинг sprv_disciplines_edit.php
<h2>Редактирование дисциплины</h2>
<div>
<form action="/library/sprv/
<strong>Название</strong><br /><input type="text" name="name" value="<?php echo $discipline['name']; ?>" /><br /><br />
<strong>Шифр</strong><br /><input type="text" name="code" value="<?php echo $discipline['code']; ?>" /><br /><br />
<input type="submit" name="submit" value="Сохранить" />
</form>
</div>
<br />
Листинг sprv_list.php
<h2>Список справочников</h2>
<div>
<a href="/library/sprv/sections">
<a href="/library/sprv/
<a href="/library/sprv/authors">
<a href="/library/sprv/publicatio
</div>
<br />
Листинг welcome.php
<?php
class Welcome extends Controller {
function Welcome()
{
parent::Controller();
}
function index()
{
$this->layout->view('welcome_
}
}
Приложение Б