Смекни!
smekni.com

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

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

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

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

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

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

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

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

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

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

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

Проверил:

Кошкин К.В.

Николаев 2005


Аннотация

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


Содержание

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

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

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-классы не имеют такого ограничения, но и возможностей у них поменьше

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

платформы.

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

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

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

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

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

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

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

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-программ. Плюс ко всему, достаточно высокая скорость работы, что особенно сказалось при переходе на четвертую версию, а уже вышла и пятая.