Создание программы электронного учета успеваемости студентов с дальнейшим выводом ее в Интернет

Министерство образования и науки Украины

Николаевский государственный университет

Имени В.А.Сухомлинского

	Физико-математический факультет

	

	

	

	

	

	

	

	

	

Создание программы электронного учета успеваемости студентов с дальнейшим выводом ее в Интернет. Предоставление информации успеваемости студентов в локальной сети

	

	

	

	Курсовую работу выполнила:

	Студентка 362 группы

	Физико-математического факультета

	Специальность «Информатика»

	Чернецкая Ольга

	Проверил:

	Кошкин К.В.

	





Николаев 2005


Аннотация



Целью нашей работы является разработка программы по учету студенческой успеваемости и посещаемости, которая призвана автоматизировать работу деканата по работе с данными сопровождающими учебный процесс групп студентов. Программа должна обеспечивать формирование необходимых отчетов для анализа успеваемости и посещаемости учебных групп и каждого студента в отдельности. Работа изложена на 31-й странице, содержит 2 приложения и 5 рисунков.


Содержание



Анализ предметной области и постановка задачи

Формулирование проблемы

	1.2 Анализ существующих решений

	1.2.1 Технологии построения распределенных приложений

	1.2.2 Сервер Zope

																	1.2.3 PHP

	1.2.4 Выбор технологии

1.3 Постановка задачи

2. Проект программы 

2.1 Выбор технологии проектирования

2.2 Разработка моделей

2.3 Спецификации

	2.4 Кодирование

2.5 Тестирование

Выводы

Приложение А

Приложение Б


1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ



1.1 Формирование проблемы 



Одной из проблем современного ВУЗа есть контроль. В связи с большим количеством студентов университета и множеством дисциплин есть необходимость вести учет за данными, сопровождающими учебный процесс групп и студентов. В настоящее время существуют множество видов учета и контроля за данными про студентов, которые ведутся старостами групп, кураторами, преподавателями, проректорами по учебной работе и деканами факультетов. Это такие виды контроля как: текущая успеваемость студента, информация про успеваемость студента за каждый месяц, сведения об академической задолженности и абсолютной успеваемости студентов по состоянию на последний день сессии, результаты экзаменов и зачетов, приказы о зачислении студентов на стипендию на следующий после экзаменационной сессии семестр, учет посещаемости студентами лекций, семинаров, лабораторных работ и другие. Эти данные хранятся в журналах групп, экзаменационных и зачетных ведомостях, справках, приказах, списках и т.д. Данные о студентах одновременно могут понадобиться старосте, преподавателю, декану. Сложности учета успеваемости обусловливают:

- значительное количество документации;

- распределенность потребителей и информации.



1.2 Анализ существующих решений



1.2.1 Технологии построения распределенных приложений

Исходя из распределенности пользователей, информации удобными средствами доступа могут быть средства Интернет. В настоящее время для создания Интеренет документов используется два подхода:

статическая генерация страниц (выполняется разработчиком документа);

динамическая генерация страниц (выполняется программой).

С учетом того, что информация об успеваемости часто обновляется, целесообразным будет применение динамической генерации страниц.

В настоящее время в качестве средств динамической генерации страниц широко используется PHP и ZOPE:

PHP - это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. ;

																ZOPE – это сервер приложений, предназначенный для создания динамических web-приложений и интерактивных сайтов. 

С целью выбора средства разработки рассмотрим указанные продукты более подробно.



1.2.2 Сервер Zope

																Zope - это объектно-ориентированная платформа, сервер приложений, предназначенный для создания динамических web-приложений и интерактивных сайтов. 

																	У выражения "объектно-ориентированный" здесь несколько сторон. Во-первых, Zope написан на языке Python, объектно-ориентированном языке со множественным наследованием. 

	Во-вторых, Zope построен вокруг идеи "публикации объектов" - URL, к которому обращается браузер, является ссылкой на объект (экземпляр класса), вызываемый на выполнение.

																	В-третьих, сами объекты (сериализованные экземпляры классов) хранятся в объектно-ориентированной базе данных ZODB.

																	Еще одно неотъемлемое свойство - модульность. Zope - это не цельный кусок софта, а богатый набор модулей, называемых компонентами.

																	Zope написан на портабельном языке Payton и работает во всех Unix системах и в Windows; основной формат базы данных ZODB - файл Data.fs - полностью независим от платформы и ОС), масштабируемость и распределенность.

																	Протоколы WWW (HTTP, CGI и т.д.) часто неадекватны задачам и могут делать публикацию динамических данных неоправданно сложной. Их низкий уровень недостаточен для непосредственного создания многих классов web-приложений на их основе.

																	Zope создает объектно-ориентированную оболочку вокруг этих низкоуровневых средств. С его помощью решение задачи происходит обычным путем - программист пишет набор иерархий классов, являющийся абстракцией предметной области, а Zope берет на себя труд по предоставлению доступа к экземплярам этих классов.

																C Zope работают следующие категории пользователей:

																администратор хоста - компилирует и инсталлирует программы и дополнительные компоненты

																программист - пишет компоненты, то есть классы, на языке Python

																webмастер - расставляет эти компоненты (то есть экземпляры классов) на сайте, пользуясь менеджерским web-интерфейсом

																администратор сайта - заводит записи о пользователях, создает роли, ставит их в соответствии друг другу, назначает кому (какой роли) к каким объектам можно иметь доступ, и какой именно доступ (создание объекта, редактирование, удаление, просмотр и т.д.)

																Это, конечно, не обязательно разные люди - это роли. На маленьком сайте эти роли может выполнять один человек. Для больших сайтов Zope предоставляет механизмы делегирования полномочий администраторам участков сайтов, верстальщикам, редакторам.

					Что дает Zope Программисту:

																механизм шаблонов (DTML)

																набор компонентов (ZODB, ZCatalog и прочие)

																API для создания своих компонентов

																API для доступа к Zope минуя www-интерфейс, прямо по HTTP и/или XML-RPC некоторые базовые компонентов (Zserver, ZPublisher, ZODB, DTML, Catalog) можно использовать вообще вне Zope, просто в программах на Python.

																web-мастеру:

																механизм шаблонов (DTML)

																www-интерфейс для управления сайтом

																администратору:

																www-интерфейс для управления сайтом простой, и в то же время мощный инструментарий для администрирования пользователей, прав и прочих механизмов безопасности

																Недостатки Zope:

																отсутствие хорошей документации и литературы

																недостаточная поддержка локалей: сортировка в цикле dtml-in осуществляется совершенно без учета локали, индексация и поиск в Catalog требует компонента Splitter.

																тяжело отлаживать питоновские компоненты - Zope надо перезапускать, чтобы он подхватил изменения в коде, а это неудобно и долго (секунд 20-30); Z-классы не имеют такого ограничения, но и возможностей у них поменьше

																Недостатки Zope в основном являются продолжением достоинств этой

																платформы.

																сервер, все время сидит в памяти

																отсутствие возможности держать историю объектов в CVS

																язык программирования - Питон; для программирования обещано добавление PerlMethods и может быть других языков

																сам написан на Питоне, у которого есть свои собственные недостатки. Например, глобальный lock для всех нитей. Это значит, что Питон (и соответственно Zope) не смогут извлечь все преимущества многопроцессорной машины

																Некоторые особенности имеют отдельные компоненты Zope.

																не рекомендуется хранить много объектов в одной папке - поиск

																Сессии реализованы отложенными транзакциями; в результате объект, редактируемый в Версии, запирается в ней, и его нельзя редактировать ни вне Версии, ни тем более в другой Версии.

																

																1.2.3 PHP

PHP это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. PHP очень похож на ASP, но приспособлен к unix-like системам и чаще всего употребляется с web-сервером apache, хотя может работать и с MS IIS и в принципе с любым другим веб-сервером. Кроме того, PHP является объектно-ориентированным. Основное преимущество PHP - простота, гибкость и скорость выполнения. Теперь, чтобы выложить на сайт новую статью или просто новость, я всеголишь добавляю новую запись на sql сервере с помощью MS Access или web-интерфейса sql, написанного кстати тоже на php, а при запросе страницы пользователем соответствующий php-скрипт выуживает из sql то, что ему надо и выдает уже красиво оформленную, готовую страницу. SQL. Вот это является еще одним преимуществом PHP, такое впечатление, что PHP просто рожден существовать в связке apache+php+sql. 

На PHP можно сделать все, что можно сделать с помощью CGI-программ. Обрабатывать данные из форм, генерировать динамические страницы, получать и посылать cookies, загружать файлы, создавать файлы и папки, рисовать динамические картинки, отсылать электронную почту, и т.д. и т.п. Кроме того, в PHP включена поддержка многих баз данных (databases), что серьёзно расширяет возможности написания по-настоящему динамических Web-приложений. Плюс ко всему вышесказанному, PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и HTTP, а также имеет возможность работать с сокетами и общаться по другим протоколам.

Синтаксис PHP имеет легкую читабельность и в целом понятен для восприятия. Те, кому приходилось программировать, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению (или освобождению) памяти. Программы, написанные на PHP, достаточно просты для понимания. Написанный PHP - код, легко зрительно прочитать и понять, в отличие от Perl-программ. Плюс ко всему, достаточно высокая скорость работы, что особенно сказалось при переходе на четвертую версию, а уже вышла и пятая.

Преимущества PHP WEB-разработчикам нет необходимости говорить, что web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: всевозможные голосования, поиск информации, продажа продуктов, конференции, форум и т.п. Традиционно все это реализовывалось CGI-скриптами, написанными на Perl. Но CGI- скрипты очень плохо масштабируемы. То есть, каждый новый вызов CGI, требует от ядра порождения нового процесса, а это занимает процессорное время и существенно тратит оперативную память. Большое кол-во хакерских атак на сервера, основываются именно на многократных вызовах CGI, что приводит к загрузке ядра процессора и оперативной памяти. PHP предлагает другой вариант - он работает как часть Web-сервера, и этим самым похож на ASP от Microsoft.

Недостатки PHP:

1. PHP является интерпретируемым языком, и, вследствие этого, не может сравниться по скорости с компилируемым С. Однако при написании небольших программ, что, в общем-то, присуще проектам на PHP, когда весь проект состоит из многих небольших страниц с кодом, вступают в силу накладные расходы на загрузку в память и вызов CGI-программы, написанной на С.

2. Не такая большая база готовых модулей, как, например, СPAN у Perl. С этим ничего нельзя поделать это дело времени. В PHP разработчики предусмотрели специальный архив, аналогичный CPAN, и я думаю, очень скоро будет написано достаточное количество модулей для его наполнения.

4. Нет поддержки сессий (session), как, например, в ASP. В PHP этот недостаток будет устранен.



1.2.4 Выбор технологии 

Рассмотрев все достоинства и недостатки языков web-програм-мирования Zope и php мы остановили свой выбор на Php. Синтаксис PHP очень похож на синтаксис C или Perl. Люди, знакомые с программированием, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению памяти. Программы, написанные на PHP, читаются достаточно легко. В отличие от Perl-программ PHP-код легко зрительно прочитать и понять. В дополнение к своей бесплатности (MySQL требует приобретения лицензии при использовании ее в коммерческих целях) связка PHP-MySQL является кросс-платформенной. Это значит, что вы можете, работая в Windows, разрабатывать приложения, предназначенные для работы под Unix. Кроме того, PHP может работать как внешний CGI-процесс, либо как обычный интерпретатор скриптов, либо как модуль, подключаемый к web-серверу Apache или IIS. И наконец, так как данный продукт разрабатывается совместными усилиями, существует огромное количество документации и списков рассылки, к которым можно обратиться в случае возникновения каких-либо вопросов. Найденные ошибки исправляются достаточно быстро, ваши предложения и замечания всегда выслушают, рассмотрят, и если они окажутся ценными - реализуют в новой версии.

В В нескольких словах - на PHP можно сделать все, что можно сделать с помощью CGI-программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies). Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием БД до невозможности простым. Вдобавок ко всему PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с сокетами (sockets) и общаться по другим.



1.3 Постановка задачи



На основе вышеизложенного и с учетом актуальности проблемы учета в ВУЗе а поставлена задача разработки программы с возможностью просмотра оценок студентов, учета промежуточных аттестаций, итоговых, экзаменационных оценок, учета посещаемости студентами занятий, информацию о группах и студентах. Программа «Учет успеваемости студентов» должна служить для оперативного просмотра данных о студентах, а доступ к ней должен осуществляться с любого компьютера университета, подключенного к сети. Подключение к программе должно осуществлятся посредством какого-либо браузера. Сейчас в университете в сети находятся 8 компьютерных классов и 7 деканатов. Локальная сеть с пропускной способностью от 10 до 100 Мб/сек. Число пользователей в сети ограничений не имеет. Операционная система ОС S.u.S.E Linux/Apache

В основу программы «Учет успеваемости студентов» должно быть заложено два постулата: 

Первое- информационное единство баз данных в университете. Вся информация должна находиться на одном месте, на одном компьютере.

Второе- информационная доступность, при которой можно получить информацию с любого компьютера, находящегося в сети.


2. ПРОЕКТ ПРОГРАММЫ



2.1 Выбор технологии проектирования



В отличие от большинства других языков, PHP предоставляет возможность использовать при программировании как объектно-ориентированный, так и процедурный подходы. Большинство PHP-программистов по умолчанию используют последний, поскольку сами веб-страницы обрабатываются именно в процедурном подходе (одни тег, затем другой, затем следующий и т.д.). Код, написанный в процедурном подходе, гораздо проще комбинируется с HTML и, как следствие, программисты зачастую вырабатывают свой собственный стиль, основанный на таком подходе. 

У обоих подходов есть свои преимущества и недостатки, заставляющие их приверженцев обмениваться незамысловатыми репликами вида "Объекты - это плохо!" или "Объекты - это хорошо!". Кратко рассмотрим преимущества и недостатки каждого.

Вот пример процедурного кода, выводящего строку 



<?php 

print "Hello, world."; ?> 



Вот пример объектно-ориентированного кода, который делает то же самое: 



<?php 

class helloWorld { 

 function myPrint() { 

 print "Hello, world."; 

} 

$myHelloWorld = new helloWorld(); 

} $myHelloWorld->myPrint(); 

?> 



Основным аргументом в пользу процедурного подхода является тот факт, что PHP является интерпретатором. Это означает, что в отличие от многих других языков он не компилируется в бинарный код для исполнения, а интерпретируется и исполняется "на лету". Это язык сценариев и каждый сценарий хранится как обычный текст (естественно, за исключением инструментов компилирования Zend). 

Еще одним аргументов против использования объектно-ориентированного подхода в PHP4 является тот факт, что подобная функциональность не была полностью продумана в этой и более ранних версиях. Если послушать Расмуса (Расмус Лердорф - автор первых версий PHP), то получается, что поддержка ООП была добавлена уже после окончания основных работ над ядром языка. Из этого следует, что использование объектов в PHP4 не настолько рационально и эффективно, как могло бы быть. Как бы то ни было, эта ситуация должна измениться с выходом новой версии PHP5. 

С использованием процедурного подхода написаны такие популярные приложения как osCommerce и phpMyAdmin. Они появились достаточно быстро и обладают относительно высокой скоростью работы. Оба проекта сильно привязаны к HTML, который без ограничений комбинируется с PHP. 

Объектно-ориентированное программирование - это подход к разработке программного обеспечения, основанный на объектах, а не на процедурах. Этот подход позволяет максимизировать принципы модульности и "сокрытия информации". Объектно-ориентированное программирование базируется на связывании или инкапсуляции структур данных и процедуры, которая работает с данными в структуре, с модулем.

Объектно-ориентированное программирование представляет собой метод программирования, который весьма близко напоминает наше поведение. Оно является естественной эволюцией более ранних нововведений в разработке языков программирования. Объектно-ориентированное программирование является более структурным, чем все предыдущие разработки, касающиеся структурного программирования. Оно также является более модульным и более абстрактным, чем предыдущие попытки абстрагирования данных и переноса деталей программирования на внутренний уровень. Объектно-ориентированный язык программирования характеризуется тремя основными свойствами: 

Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.

Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.

Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.

Одним из основных аргументов в пользу объектно-ориентированного подхода является расширяемость и модульность полученного кода

Объектно-ориентированный принцип разработки дает много преимуществ. Например, каждый объект инкапсулирует его структуру данных с процедурой, используемой для работы с экземплярами структуры данных. Это позволяет устранить в коде программы внутренние зависимости, которые могут быстро привести к тому, что этот код будет трудно обслуживать. Объекты могут также наследовать из порождающего объекта структуры данных и другие характеристики, что позволяет сэкономить усилия и обеспечить прозрачное использование для многих целей больших фрагментов кода.

И нужно не забывать, что используя PHP у нас всегда есть возможность комбинировать оба подхода.

Рассмотрев преимущества и недостатки объектно-ориентированного и процедурного подхода программирования на PHP, мы решили использовать в нашей программе процедурный подход. Этот подход является наиболее подходящим для решения нашей задачи, поскольку сама веб-страница обрабатывается именно в процедурном подходе и код, написанный в процедурном подходе проще комбинируется с HTML.



2.2 Разработка модели



Мы хотим разработать программу, которая бы имела бы структуру указанную на рисунке 2




Главная страница

Ссылка «контроль студентов»

Ссылка «О программе»

Ссылка «Инструкция»

Ссылка «Разработчики»

«контроль студентов»

Radio-box

Кнопка «Назад»

Кнопка «На главную»

«О программе»

Кнопка «Назад»



«Инструкция»





Кнопка «Назад»



Кнопка «Выполнить»



«Разработчики»

Кнопка «Назад»



















































Рисунок 2.1 – модель программы


2.3 Спецификация





main.php







   infa1.php

   infa2.php



control_stud_form.php

   infa.php





	

control_stud.php

	

Рисунок 2.2 модульная схема программы



Модуль main.php

Входные данные: отсутствуют

Выходные данные: ссылки

Выполняемое действие: формирование ссылок

Модуль control_styd_form.html

Входные данные: отсутствуют 

Выходные данные: Radio-box, кнопка, ссылка

Выполняемое действие: формирование Radio-box, кнопки, ссылки

Модуль control_stud.php

Входные данные: файл соответствующий номеру группы 

Выходные данные: содержимого файла

Выполняемое действие: по номеру выбранной группы определяется соотвтствующийся файл и его выводится его содержание

Модуль infa.php

Входные данные: файл infa.php

Выходные данные: содержимое файла

Выполняемое действие: выводит содержимое файла

Модуль infa1.php

Входные данные: файл infa1.php

Выходные данные: содержимое файла

Выполняемое действие: выводит содержимое файла

Модуль infa2.php

Входные данные: файл infa2.php

Выходные данные: содержимое файла

Выполняемое действие: выводит содержимое файла



2.4 Кодирование



Кодирование программы можно осуществлять в встроенном редакторе, находящимся в mc, блокноте, текстовом редакторе, а также при помощи программы Quanta Plus.

Quanta Plus – это среда разработки документов на языках разметки, которая также поддерживает популярные скриптовые языки, CSS и некоторые другие форматы, разработанные W3C.

Нужно отметить, что Quanta Plus есть продукт выдающихся достижений сообщества KDE. Quanta Plus поддерживает идею open source «Зачем делать что-то, что другие уже сделали? » Это, и большее, стало возможным благодаря структуре KDE. 

 Quanta Plus обеспечивает веб-разработчиков интуитивным и мощным многооконным интерфейсом (Multiple Document Interface, MDI ). С ее помощью вы можете увеличить свою производительность. Благодаря возможности добавления пользовательских действий, скриптов, панелей инструментов, вы можете автоматизировать свою работу. С помощью Kommander вы можете расширить Quanta Plus, вам не нужно будет каждый раз вспоминать функции скриптов и их синтаксис.

 Quanta Plus состоит из нескольких ключевых компонентов. Рабочая область разделена на три сферы действия: глобальную, локальную и проект. В зависимости от того, какая из них используется, меняется набор отображаемых элементов.

Глобальные элементы

Глобальные элементы доступны всегда. Всё, от панелей инструментов до действий, отмеченное как глобальное, находится в общем дереве каталогов Quanta Plus. Например, администратор может создавать панели инструментов, действия, шаблоны и пометить их как общие, что позволяет обращаться к ним другим пользователям.

Локальные элементы

Общие элементы – это объекты, образующие личную коллекцию веб-инструментов пользователя – панели инструментов, шаблоны и т.д. Они хранятся в одном каталоге пользователя.

Элементы проекта

Элементы проекта – это объекты, которые доступны только в конкретном проекте. Это может быть что угодно, начиная с шаблона CSS и заканчивая панелью инструментов со специальными действиями над функциями проекта.

В соответствии с моделью программы (Рисунок 1) и спецификацией (Пункт 2.3.) мы делаем кодирование. Результаты кодирования представлены в Приложении А. Инструкция пользователя приведена в приложении Б.



2.5 Тестирование



Мы запускаем Web-браузер, в поле Адрес (Address) вводим http://localhots/~student/proga/main.php и нажимаем клавишу Enter. В рабочем окне браузера появится главная страница нашей программы. Это форма (Рисунок 2.1), которая содержит 4 ссылки: 

«Программа «Контроль студентов» »

«О программе»

«Инструкция»

«Разработчики»





Рисунок 2.3 –Страница программы http://localhots/~student/proga/main.php



При нажатии на ссылку «Программа «Контроль студентов»» мы попадаем на страницу http://localhots/~student/proga/control_stud_form.html , которая содержит группу переключателей Номер группы, кнопку Показать результат и ссылку Вернуться на главную (Рисунок 2.2). 





Рисунок 2.4 – Страница программы http://localhots/~student/proga/control_stud_form.html



Установим переключатель на одном из номеров групп, например, группа 362 и нажмем кнопку Показать результат. В окне браузера будет выведен результат работы сценария http://localhots/~student/proga/control_stud.php, то есть браузер будет выводить на экран содержимое файла /home/student/1/362.txt . Этот файл содержит информацию про успеваемость и посещаемость студентов группы 362 (Рисунок 2.3). Кроме информации о группе форма содержит ссылку Назад, при помощи которой мы можем вернуться на страницу http://localhots/~student/proga/control_stud_form.html. 





Рисунок 2.5 - – Страница программы http://localhots/~student/proga/control_stud.php



Аналогично при установке переключателя на номере другой группы браузер отображает информацию о указанной группе. Если пользователь попытается напрямую вызвать файл сценария http://localhots/~student/proga/control_stud.php , то он будет перенаправлен на форму http://localhots/~student/proga/control_stud_form.html.

При нажатии на ссылку На главную мы возвращаемся на главную страницу.

При нажатии на ссылку О программе в окне браузера будет выведен результат работы сценария http://localhots/~student/proga/infa.php, который отображает содержимое файла /home/student/1/infa.txt. Этот файл содержит краткую информацию о нашей программе. При помощи ссылки На главную мы возвращаемся на главную форму. При нажатии на ссылку Инструкция будет выведен результат работы сценария http://localhots/~student/proga/infa1.php, который отображает содержимое файла /home/student/1/infa1.txt, который содержит инструкцию пользователя. Аналогично при нажатии на ссылку Разработчики в окне браузера будет выведен результат работы сценария http://localhots/~student/proga/infa2.php, который отображает содержимое файла /home/student/1/infa2.txt. Этот файл содержит информацию о разработчиках данной программы. 


ВЫВОДЫ



Выполняя нашу курсовую роботу, мы задались целью выяснить, какие есть способы учета успеваемости студентов и по возможности внести что-то свое. Выяснив, что на данный момент существует много способов учета успеваемости, но самим распространенным является ведение журнала, и смотря на глобальную компьютеризацию школ и университетов, наблюдаемую в настоящее время, мы решили написать программу учета успеваемости и вывести ее в Интернет.

 Работа основана на результатах работы программы электронного учета успеваемости, которую выполнили Жуков Е.Ю. и Зосимов В.В., а мы, Чернецкая О.В. и Андрейчук И.Н., решили вывести эту программу в Интернет. 

Рассмотрев много языков программирования, которые позволяют осуществлять вывод информации в Интернет, мы остановили свой выбор на языке РНР. РНР это скриптовый server-side язык программирования, который может работать как с Unix-like системами, так и с MS IIS. В нем есть поддержка многих баз данных (databases), что позволяет писать динамические web-приложения. 

Выбрав язык програмирования РНР, мы реализовали приложение генерации web-страниц, которое позволяет просматривать уже имеющиеся данные, введенные с помощью программы электронного учета успеваемости. Данная web-страница легка в понимании и в пользовании. С ее помощью можно просматривать данные о каждой группе в отдельности. Она дает возможность одновременного доступа к этим данным большому количеству людей, как преподавателям, так и студентам, для этого достаточно лишь разместить данную программу на сервер, имеющийся практически во всех университетах. 

Одним из недостатков есть то, что она позволяет просматривать уже внесенные данные, а вводить новые данные она не позволяет, их нужно вводить непосредственно через программу электронного учета успеваемости.

Мы считаем, что практически мы справились с поставленной перед нами задачей


ПРИЛОЖЕНИЕ А



Тексты программ

http://localhost/~student/prog/main.php

<html>

<head>

 <title> Программа "Контроль студентов"</ </title>

</head>

<body>

<p align=center><h1>Программа "Контроль студентов"</h1><br>

<p><strong><a href="control_stud_form.html">Контроль студентов</a></strong></p>

<p><strong><a href="infa.php">Информация о программе</a></strong></p>

<p><strong><a href="infa1.php">Инструкция пользователя</a></strong></p>

<p><strong><a href="infa2.php">Разработчики</a></strong></p>

</body>

</html>

http://localhost/~student/prog/control_stud_form.html

<html>

<head>

<title>Программа "Контроль студентов"</title>

</head>

<body>

 <form method="get" action="control_stud.php">

<h1>Выберите номер группы:</h1>

<strong><input type="radio" name="nomer" value="322"></strong>322<br>

<input type="radio" name="nomer" value="332">332<br>

<input type="radio" name="nomer" value="342">342<br>

<input type="radio" name="nomer" value="352">352<br>

<input type="radio" name="nomer" value="362">362</p>

<p><h2><input type="submit" name="submit" value="Показать результат"></h2></p>

<p><a href="main.php">Вернуться на главную</a></p>

</form>

</body>

</html>

http://localhost/~student/prog/control_stud.php

<? 

$nomer=$_GET["nomer"];

if ($nomer=="") {

 header("Location: http://localhost/prog/control_stud_form.html");

} 

if ($nomer=="322") {

 $filename="/home/student/1/322.txt";

 }

else if ($nomer=="332") {

 $filename="/home/student/1/332.txt";

 }

else if ($nomer=="342") {

 $filename="/home/student/1/342.txt";

 }

else if ($nomer=="352") {

 $filename="/home/student/1/352.txt";

 }

 else if ($nomer=="362") {

 $filename="/home/student/1/362.txt";

 } 

$whattoread=fopen($filename,"r") or die ("Nevizmojno otkrit fayl");

$file_contents=fread($whattoread,filesize($filename));

$new_file_contents=nl2br($file_contents);

$msg="<br>$new_file_contents";

fclose($whattoread);

?>

<html>

<head>

<title>Информация о программе</title>

	</head>

<body>

<p><h2>Группа номер <? echo "$nomer"; ?></h2>

<strong><? echo "$msg"; ?></strong>

<p><a href="control_stud_form.html">Назад</a></p>

</body>

</html>

http://localhost/~student/prog/infa.php

<?

$filename="/home/student/1/infa.txt";

$whattoread=fopen($filename,"r") or die ("Nevizmojno otkrit fayl");

$file_contents=fread($whattoread,filesize($filename));

$new_file_contents=nl2br($file_contents);

$msg="<br>$new_file_contents";

fclose($whattoread);

?>

<html>

<head>

<title>Информация о программе</title>

</head>

<body>

<h2>About program</h2>

<strong><? echo "$msg"; ?></strong>

<p><strong><a href="main.php">На главную</a></strong></p>

</body>

</html>

http://localhost/~student/prog/infa1.php

<?

$filename="/home/student/1/infa1.txt";

$whattoread=fopen($filename,"r") or die ("Nevizmojno otkrit fayl");

$file_contents=fread($whattoread,filesize($filename));

$new_file_contents=nl2br($file_contents);

$msg="<br>$new_file_contents";

fclose($whattoread);

?>

<html>

<head>

<title>Инструкция пользователя</title>

</head>

<body>

<h2>Instruktsiya polzovatelya</h2>

<strong><? echo "$msg"; ?></strong>

</p><strong><a href="main.php">На главную</a></strong></p>

</body>

</html>

http://localhost/~student/prog/infa2.php

<?

$filename="/home/student/1/infa2.txt";

$whattoread=fopen($filename,"r") or die ("Nevizmojno otkrit fayl");

$file_contents=fread($whattoread,filesize($filename));

$new_file_contents=nl2br($file_contents);

$msg="<br>$new_file_contents";

fclose($whattoread);

?>

<html>

<head>

<title>Разработчики</title>

</head>

<body>

<h2>Разработчики</h2>

<strong><? echo "$msg"; ?></strong>

</p><strong><a href="main.php">На главную</a></strong></p>

</body>

</html>


ПРИЛОЖЕНИЕ Б



Инструкция пользователя

Главная страница данной web-страници имеет четыре ссылки:

Контроль студентов

О прграмме

Инструкция

Разработчики

При нажатии на ссылку "Контроль студентов" Вы попадете на страницу, которая имеет список доступных для просмотра групп, кнопку "Показать" и ссылку "На главную".

Из списка групп Вам нужно отметить одну группу, которую Вы хотите просмотреть. Для этого необходимо навести курсор мыши на нужную Вам группу, и кликнуть по ней, а потом нажмите на кнопку "Показать", после чего появится новая страница, на которой будет опубликована имеющаяся информация на студентов данной группы.

Чтобы вернуться к списку групп Вам нужно нажать на ссылку "Назад", если Вам нужно на главную страницу нажмите на ссылку "На главную".

Если Вы еще не знаете, что должна выполнять данная программа, Вам необходимо нажать на ссылку "О программе". Чтобы вернуться на главную страницу нажмите на ссылку "Назад". 

Если Вы читаете данное приложение, значит Вы нажали на ссылку "Инструкция". Чтобы вернуться на главную страницу нажмите на ссылку "Назад". 

Нажав на ссылку "Разработчики", Вы узнаете имена программистов написавших данную программу. Чтобы вернуться на главную страницу нажмите на ссылку "Назад".

Мы благодарны Вам за то, что Вы воспользовались нашей программой.

2