|
Дипломная работа: Подсистема визуальной генерации отчётов в рамках информационно-образовательного порталаРешение о величине инвестиций на разработку ПС было принято разработчиками, исходя из предполагаемой суммы единовременных, текущих затрат, затрат на маркетинг и прочих коммерческих расходов. Таблица 3 - Статьи затрат
Себестоимость 1 копии ПС: , С учетом цен конкурентов устанавливаем цену равной 5500 руб. ЗАКЛЮЧЕНИЕ В рамках преддипломной практики была поставлена задача разработки программного средства визуальной генерации отчётов в рамках информационного портала. В результате практической работы, разработан проект подсистемы визуальной генерации отчётов в виде веб-приложения, с возможностью внедрения его в информационный портал ВУЗа. В данной работе было выполнено: · разработана безопасная схема обработки данных конструктором запросов; · разработан модуль авторизации пользователя; · разработан модуль конструктора запросов к информационным ресурсам; · разработан модуль конструктора отчётов. Данное программное средство может быть использовано в средних и высших учебных заведениях, а так же в любой организации, хранящей большой количество информации. СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 1. Пётр Ташков, Веб-мастеринг на 100%: HTML, CSS, JavaScript, PHP, CMS, графика, раскрутка. СПБ.: Питер,2010. 2. Корн С.С. Теоретические основы информационной безопасности. – М.: Феникс, 2007. 3. Мишель Е. Дэвис и Джон А. Филипс. Изучаем PHP и MySQL. 2008. 4. Д. Колисниченко. Профессиональное программирование на PHP. 2007. 5. Информационная безопасность [Электронный ресурс]. – Режим доступа: http://security.ase.md/publ/ru/pubru59.html. 6. Системы защиты информации [Электронный ресурс] – Режим доступа: http://osp.ru/pcworld/2001/05/010.html. 7. Федеральный Закон РФ от 25 января 1995г. №24-ФЗ Об информации, информатизации и защите информации. 8. Структура базы данных [Электронный ресурс] – Режим доступа: http://www.intuit.ru/department/database/dbmdi/2/ 9. Конфиденциальность данных [Электронный ресурс] – Режим доступа: http://www.ab-solut.net/ru/articles/problemi_zashiti/. 10. Аутентификация и идентификация пользователя [Электронный ресурс] – Режим доступа: http://www.osp.ru/text/print/302/10050193.html. 11. Защита информации [Электронный ресурс] – Режим доступа: http://www.rnt.ru/to_content/action_desc/id_68/lang_ru/. 12. OLAP технология [Электронный ресурс] – Режим доступа: http://www.olap.ru 13. XML, JavaScript, Code Igniter, PostgreSQL [Электронный ресурс]- Режим доступа: http://ru.wikipedia.org/wiki/XML 14. Обзор возможностей PostgreSQL[Электронный ресурс] – Режим доступа: http://postgresql.ru.net/ 15. Г. Бех. Видео-уроки PHP, HTML, CSS. ПРИЛОЖЕНИЕ А Техническое задание на программное средствоСОГЛАСОВАНОУТВЕРЖДЕНО Асс. каф. «ПОВТ и АС» Зав. каф. «ПОВТ и АС» _______________ Жуков А.И. ___________ Нейдорф Р.А «___»___________2011 г. «____»___________2011 г. П.А.1 ВВЕДЕНИЕ Наименование разрабатываемого программного средства: «Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала». Область применения: информационно-образовательный портал ВУЗа. Объект применения: Донской государственный технический университет. П.А.2 ОСНОВАНИЯ ДЛЯ РАЗРАБОТКИ Разработка проводится на основании задания на преддипломную практику факультета «Информатика и вычислительная техника» (ИиВТ) Донского Государственного Технического Университета (ДГТУ) по направлению «Программное обеспечение вычислительной техники и автоматизированных систем (ПОВТ и АС)». Задание выдал преподаватель кафедры «ПОВТ и АС» ДГТУ Жуков А.И. П.А.3 НАЗНАЧЕНИЕ РАЗРАБОТКИ П.А.3.1 Функциональное назначение Функциональным назначением программы является реализация интерактивного интерфейса создания отчётов в рамках существующих подсистем информационно-образовательного портала ДГТУ. П.А.3.2 Эксплуатационное назначение Эксплуатационным назначением разрабатываемого программного средства является сокращение времени для реализации отчётов системы анализа и подсистемы «успеваемость», функционирующих в рамках информационно-образовательного портала. П.А.4 ТРЕБОВАНИЯ К ПРОГРАММЕ П.А.4.1 Требования к функциональным характеристикам Программа должна обеспечивать возможность выполнения перечисленных ниже функций: · иметь удобный и интуитивно понятный интерфейс для пользователя; · оперативно получать доступ к данным из базы данных университета; · автоматически сортировать данные по выбранным характеристикам; · конструирование отчётов по выбранным характеристикам; · возможность форматирования элементов отчёта; · вывод отчёта на печать; · ограниченный доступ (доступ к программному средству и БД получают только авторизованные пользователи); · выгрузка в популярные форматы (doc, docx, pdf и др.). П.А.4.2 Входные данные программы Входные данные вводятся с клавиатуры, либо выбираются пользователями и обрабатываются программным средством, и представляют собой различную совокупность текстовой информации. П.А.4.3 Выходные данные программы Выходные данные выводятся программным средством пользователям и представляют собой различную совокупность текстовой и графической информации и набор байт (файлов). П.А.4.4 Требования к надежности Надежное функционирование программы должно быть обеспечено выполнением совокупности нижеописанных мероприятий: · организацией бесперебойного питания технических средств; · использованием лицензионного программного обеспечения; · отсутствием вредоносных программ на технических средствах; · авторизацией пользователей; · контролем входных данных. П.А.4.5 Требования к составу и параметрам технических средств В состав технических средств должен входить IBM - совместимый компьютер, включающий в себя: 1) Процессор: не ниже Pentium 3 - 800 Mhz; 2) Оперативная память: не менее 128 Mb; 3) Место на жестком диске: не менее 100 Mb; 4) Монитор; 5) Мышь, клавиатура; 6) Доступ к локальной сети. П.А.4.6 Требования к информационной и программной совместимости Требования к информационной и программной совместимости программы не выдвигаются. П.А.4.7.1 Определение структуры входных и выходных данных Входные данные должны вводиться пользователем в текстовой форме. Проверка правильности введенных данных, а так же способы сохранения информации в необходимой форме реализованы в программном средстве. П.А.4.7.2 Язык программирования Для реализации программы «Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала» должен быть использован язык программирования PHP, JavaScript, HTML, XML, фреймоворк CodeIgniter, а также приложение для работы с базой данных Postgre SQL(версии 8.4 и выше). П.А.4.7.3 Операционная система Программа должна функционировать в любой операционной системе семейства Windows, Linux. Для работы с данным программным средством необходимо наличие программы-сервера с возможностью управления базами данных и обработкой SQL запросов(Postgre SQL 8.4.+), а также современного браузера(Internet Explorer 8+, Opera 10+,Mozilla Firefox 3.6+, Google Chrome) на стороне клиента. П.А.5 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ В состав программной документации должны входить следующие разделы: · задание; · техническое задание по ГОСТ 19.201; · текст программы по ГОСТ 19.401-78. П.А.6 СТАДИИ И ЭТАПЫ РАЗРАБОТКИ Системный анализ (с 15.12.2010 по 12.02.2011): · изучение предметной области; · определение области применения и целей использования; · поиск вариантов решения поставленных задач; · определение ограничений и диапазонов функционирования разрабатываемого программного средства; · определение структуры программного комплекса; · подготовка технического задания. Общесистемное проектирование (с 12.02.2011 по 25.02.2011): · определение структуры программного комплекса; · определение структуры алгоритмов и модулей; · создание функциональной модели программного средства. Подготовка технологических средств (с 25.02.2011 по 5.03.2011): · выбор языка программирования; · выбор и подготовка инструментальных средств и средств отладки; · разработка инструкций к применению методов. Программная реализация, рабочий проект (с 5.03.2011 по 23.03.2011): · разработка текстов программных модулей; · проектирование пользовательского интерфейса; · разработка программных единиц. Отладка программного средства в статике (с 23.04.2011 по 25.05.2011): · тестирование программных модулей; · локализация ошибок, корректировка исходных текстов, информационных потоков, компиляция; П.А.7 ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ Порядок и контроль приёмки определяются заведующим кафедрой «ПОВТ и АС». Главным требованием к приемке является наличие отчета, представленного в печатном виде. Разработал студент группы ВИ-51 Каныгин Дмитрий ______ (подпись)________(дата) Приложение Б Исходный код программыindex.php <?php include "blocks/bd.php";//Прикрепляем соединение с базой данных include "blocks/lock.php";//Прикрепляем файл авторизации $result = mysql_query("SELECT * FROM infopage WHERE page='index'"); $myrow = mysql_fetch_array ($result); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-1251" /> <title><?php echo $myrow['title']; //инклудим заголовок браузера?></title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="global_table"> <?php include"blocks/header.php"; //инклудим заголовок?> <tr> <td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <?php include"blocks/menu.php";//инклудим меню?> <td valign="top"><?php echo $myrow['text']; ?></td> </tr> </table></td> </tr> <?php include"blocks/footer.php";//инклудим нижнюю часть?> </table> </body> </html> add_obrab.php – модуль обработчика добавления информации в отчёт; <?php include "blocks/bd.php";//Прикрепляем соединение с базой данных include "blocks/lock.php";//Прикрепляем файл авторизации $result = mysql_query("SELECT * FROM infopage WHERE page='add_stud'"); $myrow = mysql_fetch_array ($result); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-1251" /> <title><?php echo $myrow['title']; ?></title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="global_table"> <?php include"blocks/header.php";?> <tr> <td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <?php include"blocks/menu.php";?> <td valign="top"><?php echo $myrow['text']; ?> <form action="add_stud_obrab.php" method="post" name="add_stud" class="add_stud_form"> <p> Фамилия студента:</p><p> <input name="fam" type="text" size="40" maxlength="255" /></p> <p> Имя студента:</p> <p> <input name="name" type="text" size="40" maxlength="255" /></p> <p> Отчество студента:</p><p> <input name="otchestvo" type="text" size="40" maxlength="255" /></p> <p> Дата рождения:</p><p> День <select name="den_rozh" size="1"> <?php for ($i=1; $i<=31; $i++) { echo "<option> $i </option> "; } ?> </select> Месяц <select name="m_rozh" size="1"> <?php for ($i=1; $i<=12; $i++) { echo "<option> $i </option> "; } ?> </select> Год <select name="g_rozh" size="1"> <?php for ($i=1940; $i<=2010; $i++) { echo "<option> $i </option> "; } ?> </select> </p> <?php /* ///////////////////////////////////////////////////////////////////// */?> <p> Дата поступления:</p><p> День <select name="den_postuplen" size="1"> <?php for ($i=1; $i<=31; $i++) { echo "<option> $i </option> "; } ?> </select> Месяц <select name="m_postuplen" size="1"> <?php for ($i=1; $i<=12; $i++) { echo "<option> $i </option> "; } ?> </select> Год <select name="g_postuplen" size="1"> <?php for ($i=1940; $i<=2010; $i++) { echo "<option> $i </option> "; } ?> </select> </p> <?php /* ///////////////////////////////////////////////////////////////////// */?> <p> Дата выпуска:</p><p> День <select name="den_vipusk" size="1"> <?php for ($i=0; $i<=31; $i++) { echo "<option> $i </option> "; } ?> </select> Месяц <select name="m_vipusk" size="1"> <?php for ($i=0; $i<=12; $i++) { echo "<option> $i </option> "; } ?> </select> Год <select name="g_vipusk" size="1"> <?php echo "<option> 0000 </option> "; for ($i=1940; $i<=2010; $i++) { echo "<option> $i </option> "; } ?> </select> </p> <p> Дата отчисления:</p><p> День <select name="den_otchislen" size="1"> <?php for ($i=0; $i<=31; $i++) { echo "<option> $i </option> "; } ?> </select> Месяц <select name="m_otchislen" size="1"> <?php for ($i=0; $i<=12; $i++) { echo "<option> $i </option> "; } ?> </select> Год <select name="g_otchislen" size="1"> <?php echo "<option> 0000 </option> "; for ($i=1940; $i<=2010; $i++) { echo "<option> $i </option> "; } ?> </select> </p> <p> Дата восстановления:</p><p> День <select name="den_vosstanov" size="1"> <?php for ($i=0; $i<=31; $i++) { echo "<option> $i </option> "; } ?> </select> Месяц <select name="m_vosstanov" size="1"> <?php for ($i=0; $i<=12; $i++) { echo "<option> $i </option> "; } ?> </select> Год <select name="g_vosstanov" size="1"> <?php echo "<option> 0000 </option> "; for ($i=1940; $i<=2010; $i++) { echo "<option> $i </option> "; } ?> </select> </p> <?php /* Выбор факультета */ ?> <p>Факультет:</p><p> <select name="fak" size="1"> <?php $result=mysql_query("SELECT * FROM fakultet ORDER BY name",$db); $myrow=mysql_fetch_array($result); do { echo "<option>".$myrow['name']." </option> "; } while ($myrow=mysql_fetch_array($result)); ?> </select> </p> <?php /* Выбор факультета */ ?> <p>Группа:</p><p> <select name="gruppa" size="1"> <?php $result2=mysql_query("SELECT * FROM gruppa ORDER BY name",$db); $myrow2=mysql_fetch_array($result2); do { echo "<option>".$myrow2['name']." </option> "; } while ($myrow2=mysql_fetch_array($result2)); ?> </select> </p> <p> Номер студенческого билета:</p><p> <input name="nomer_stud" type="text" size="40" maxlength="255" /></p> <p> Номер зачетной книжки:</p><p> <input name="nomer_zachetki" type="text" size="40" maxlength="255" /></p> <p> Адрес домашний:</p><p> <input name="adress_dom" type="text" size="40" maxlength="255" /></p> <p> Адрес проживания:</p><p> <input name="adress_projivani" type="text" size="40" maxlength="255" /></p> <p> Телефон домашний:</p><p> <input name="tel_dom" type="text" size="40" maxlength="255" /></p> <p> Телефон моб:</p><p> <input name="tel_mob" type="text" size="40" maxlength="255" /></p> <p>Академический отпуск</p><p> <select name="akadem" size="1"> <option>Нет</option> <option>Да</option> </select></p> <p>Основа обучения</p><p> <select name="budj" size="1"> <option>Бюджет</option> <option>Коммерция</option> </select></p> <p> Примечание:</p><p> <textarea name="primechanie" cols="35" rows="7"></textarea></p> <p><input name="submit" type="submit" value="Добавить" /></p> </form> </td> </tr> </table></td> </tr> <?php include"blocks/footer.php";?> </table> </body> </html> style.css /* CSS Document */ body { background-image:url(pic/fon.jpg); font:Verdana, Arial, Helvetica, sans-serif; font-size:12px; } textarea { /*background-color:#EDFFE1;*/ margin:10px; margin-left:0px; } /*option { background-color:#EDFFE1; } input { background-color:#EDFFE1; } */ hr { width:95%; color:#00CC00; border:1px solid #91E89F; font-weight: 100; } p { font:Verdana, Arial, Helvetica, sans-serif; font-size:16px; margin:10px; color:#003300; } global_table { background-color:#FFFFFF; border:solid 1px #333333; } niz_header { border-bottom:3px solid #006600; } top_niz { background-image: url(pic/footer_mini.jpg); background-repeat: no-repeat; background-position: right bottom; border-top:3px solid #006600; } menu_fon { background-image: url(pic/fon_men.jpg); background-repeat: repeat-y; background-position: left; border-right:1px solid #006600; font-size:14px; } left_zagolovok { text-align:center; font:Verdana, Arial, Helvetica, sans-serif; font-weight:bold; border-left:2px solid #006600; border-bottom:2px solid #009900; display:block; width:90%; } menu_link a:link { text-align:center; font:Verdana, Arial, Helvetica, sans-serif; font-weight:bold; border:1px solid #006600; display:block; width:90%; text-decoration:none; color:#003300; background-color:#D0FDC8; } menu_link a:visited { text-align:center; font:Verdana, Arial, Helvetica, sans-serif; font-weight:bold; border:1px solid #006600; display:block; width:90%; text-decoration:none; color:#003300; background-color:#D0FDC8; } menu_link a:active { text-align:center; font:Verdana, Arial, Helvetica, sans-serif; font-weight:bold; border:1px solid #006600; display:block; width:90%; text-decoration:none; color:#003300; background-color:#FFFF00; } menu_link a:hover { text-align:center; font:Verdana, Arial, Helvetica, sans-serif; font-weight:bold; border:1px solid #006600; display:block; width:90%; text-decoration:none; color:#003300; background-color:#00CC00; } zagolovok { font:Verdana, Arial, Helvetica, sans-serif; font-size:36px; text-align:center; color:#FF0000; } mini_table { border:1px solid #215909; } header_mini_table { font:Verdana, Arial, Helvetica, sans-serif; font-size:16px; background-color:#009900; color:#ffffff; text-align:left; font-weight:bold; margin-left:10px; } body_mini_table { font:Verdana, Arial, Helvetica, sans-serif; font-size:12px; background-color:#D0FDC8; color:#000000; text-align:left; } header_mini_table_text { margin-left:10px; } header_mini_table_text a:link { margin-left:10px; font:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#FFFFFF; text-align:left; font-weight:bold; } header_mini_table_text a:visited { margin-left:10px; font:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#FFFFFF; text-align:left; font-weight:bold; } header_mini_table_text a:hover { margin-left:10px; font:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#FFFF00; text-align:left; font-weight:bold; } body_mini_table_text { margin-left:10px; font:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#003300; text-align:left; margin-left:10px; margin-right:10px; margin-bottom:3px; margin-top:3px; } add_stud_form { text-align:left; font:Verdana, Arial, Helvetica, sans-serif; font-size:14px; font-weight:bold; } gruppa_text a:link { font:Verdana, Arial, Helvetica, sans-serif; font-size:14px; color:#006600; text-align:left; font-weight:bold; } gruppa_text a:visited { font:Verdana, Arial, Helvetica, sans-serif; font-size:14px; color:#006600; text-align:left; font-weight:bold; } gruppa_text a:hover { font:Verdana, Arial, Helvetica, sans-serif; font-size:18px; color:#FF0000; text-align:left; font-weight:bold; } stud_in_gruppa_text a:link { font:Verdana, Arial, Helvetica, sans-serif; font-size:14px; color:#006600; text-align:left; font-weight:bold; } stud_in_gruppa_text a:visited { font:Verdana, Arial, Helvetica, sans-serif; font-size:14px; color:#006600; text-align:left; font-weight:bold; } stud_in_gruppa_text a:hover { font:Verdana, Arial, Helvetica, sans-serif; font-size:14px; color:#FF0000; text-align:left; font-weight:bold; } mess { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #006600; text-decoration: blink; } Дополнительные модули, подключаемые к основным: bd.php – Модуль соединения с базой данных <?php $db = mysql_connect ("localhost","ok","123123"); //Функция соединения с сервером базы данных, где localhost - это адрес сервера (обычно по умолчанию он такой всегда, ОК - имя пользователя, 123123 - пароль , в переменную $db заносится результат выполнения этой функции. результатом является идентификатор сессии). mysql_select_db("students",$db);// функция соединения с самой базой. где students - это название базы, $db - это наш идентификатор сессии соединения с сервером БД. Причем если используется всего один сервер, то идентификатор в функции mysql_select_db можно не использовать. ?> footer.php <tr> <td align="center" valign="middle" class="top_niz"><div align="right"> <p> </p> </div></td> </tr> header.php <tr class="niz_header"> <td align="center" valign="middle" class="niz_header"><div align="left"><img src="pic/logo_mini.jpg" width="449" height="150" /></div></td> </tr> Menu.php <td width="200" align="left" valign="top" class="menu_fon"><p> <center> <div class="left_zagolovok">Меню</div><br /> <div class="menu_link"> <a href="index.php" >Главная страница</a> <a href="students_all.php">Список студентов</a> <a href="fak_all.php">Факультеты</a><br /> <a href="add_stud.php">Добавить студента</a> <br /> <a href="add_fak.php">Добавить факультет</a> <a href="edit_fak.php">Редактировать факультет</a> <a href="del_fak.php">Удалить факультет</a> </div> </center> </p> </td> lock.php – модуль авторизации пользователя. <?php include("blocks/bd.php"); if (!isset($_SERVER['PHP_AUTH_USER'])) { Header ("WWW-Authenticate: Basic realm=\"Отдел кадров студентов ВУЗа ДГТУ\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } else { if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']); } $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'"; $lst = @mysql_query($query); if (!$lst) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } if (mysql_num_rows($lst) == 0) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } $pass = @mysql_fetch_array($lst); if ($_SERVER['PHP_AUTH_PW']!= $pass['pass']) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } } ?> Приложение В Скриншот работы программного средстваНа рисунке В.1 представлен внешний вид программного средства «Генератор отчётов». Программное средство имеет приятный и интуитивно понятный интерфейс. Рисунок B.1 – Внешний вид программы «Генератор отчётов» (Авторизованный пользователь) При запуске приложения пользователю предлагается ввести логин и пароль (Рисунок B.2) для авторизации, иначе в доступе к работе с программой и базами данных будет отказано. Рисунок B.2 – Окно авторизации программы «Генератор отчётов» |
НОВОСТИ |
ВХОД |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |