Создание информационной системы, генерирующей варианты практических заданий по курсу "Вычислительная математика"
Понятие информационной системы. Основное определение базы данных (БД). Системы управления базами данных. Популярность СУБД Microsoft Access. Характеристика СУБД MySQL. Особенности разработки информационной системы по курсу вычислительной математики.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.10.2012 |
Размер файла | 785,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
6
Размещено на http://www.allbest.ru/
Создание информационной системы, генерирующей варианты практических заданий по курсу "Вычислительная математика"
Содержание
Введение
Глава 1. Теоретический обзор
1.1 Информационная система
1.2 База Данных
1.3 Системы управления базами данных
1.4 СУБД Microsoft Access
1.5 СУБД MySQL
Постановка задачи
Глава 2. Среда разработки
2.1 PHP: Hypertext Preprocessor
2.2 Portable Document Format (PDF)
2.3 Web-сайт
Глава 3. Создание информационной системы
3.1 Генерация файла с заданиями
3.2 Работа с MySQL-сервером
3.3 Создание Web-сайта
3.4 Функционирование системы
3.5 Пример сгенерированного файла
Основные результаты
Список использованных источников
Приложение
Введение
база данных информационная вычислительная математика
В настоящее время всё большую популярность приобретают информационные технологии и системы. В широком смысле информационная система есть совокупность технического, программного и организационного обеспечения, а также персонала, предназначенная для того, чтобы своевременно обеспечивать надлежащих людей надлежащей информацией. В узком же смысле информационной системой называют только подмножество компонентов ИС, включающее базы данных, СУБД и специализированные прикладные программы. Преподавателю, как занятому человеку, было бы очень удобно использовать различного рода системы по своей дисциплине. Такие системы существенно облегчают и сокращают процесс подготовки к лекциям, практикам и семинарам, а также позволяют взять на себя большую часть рутинной работы.
Данная работа была направлена на создание информационной системы, генерирующей варианты практических заданий (каждый включает по 6 задач) по курсу “Вычислительная математика”. Данный курс читается на физико-техническом факультете ПетрГУ на 3 курсе. Единой системы такой, чтобы отвечала всем необходимым требованиям преподавателя, не существует. В данной работе я создал вторую версию такой системы, первая была создана мною же (СУБД Microsoft Access).
Глава 1. Теоретический обзор
1.1 Информационная система
Информационная система (ИС) -- это система, реализующая информационную модель предметной области, чаще всего -- какой-либо области человеческой деятельности. ИС должна обеспечивать: получение (ввод или сбор), хранение, поиск, передачу и обработку (преобразование) информации.
Информационной системой (или информационно-вычислительной системой) называют совокупность взаимосвязанных аппаратно-программных средств для автоматизации накопления и обработки информации. В информационную систему данные поступают от источника информации. Эти данные отправляются на хранение либо претерпевают в системе некоторую обработку и затем передаются потребителю.
Базы данных - важнейшая составная часть информационных систем. Здесь мы ограничимся лишь кратчайшими общими сведениями об информационных системах, сосредоточив внимание на базах данных как таковых.
Информационные системы предназначены для хранения и обработки больших объемов информации. Изначально такие системы существовали в письменном виде. Для этого использовались различные картотеки, папки, журналы, библиотечные каталоги и т.д. Любая информационная система должна выполнять три основные функции: ввод данных, запросы по данным, составление отчетов.
o Ввод данных. Система должна предоставлять возможность накапливания и упорядочивания данных. Необходимо обеспечить просмотр этих данных, внесение в них изменений и дополнений с тем, чтобы поддерживать актуальность информации.
o Запросы по данным. В системе должна существовать возможность находить и просматривать отдельные части накопленной информации.
o Составление отчетов. Время от времени возникает необходимость обобщать и анализировать большую группу данных (или даже все данные) информационной системы, представляя ее в виде документа.
Обслуживание информационных систем, реализованных в письменном (бумажном) виде, сопряжено со многими трудностями: чем больше информационная система, тем больше бумаги (карточек) и места требуется для их хранения (в этом можно убедиться на примере библиотеки); много времени тратится на поиск нужной информации. Сложности возникают при обновлении, анализе и обработке данных.
1.2 База Данных
Дадим основное определение. База Данных (БД) -- структурированный организованный набор данных, описывающих характеристики каких-либо физических или виртуальных систем.
Поскольку основу любой базы данных составляет информационная структура, базы данных делят на три рассмотренные выше типа: табличные (реляционные), сетевые, иерархические.
Опыт использования баз данных позволяет выделить общий набор их рабочих характеристик:
o полнота - чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако, не должно быть избыточной информации);
o правильная организация - чем лучше структурирована база данных, тем легче в ней найти необходимые сведения;
o актуальность - любая база данных может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта;
o удобство для использования - база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.
«Базой данных» часто упрощённо или ошибочно называют Системы Управления Базами Данных (СУБД). Нужно различать набор данных (собственно БД) и программное обеспечение, предназначенное для организации и ведения базы данных (СУБД).
1.3 Системы управления базами данных
База данных предполагает наличие комплекса программных средств, обслуживающих эту базу данных и позволяющих использовать содержащуюся в ней информацию. Такие комплексы программ называют СУБД. СУБД - это программная система, поддерживающая наполнение и манипулирование данными, представляющими интерес для пользователей при решении прикладных задач. Иными словами, СУБД является интерфейсом между базой данных и прикладными задачами.
Перечислим основные функции СУБД.
o Определение данных - определить, какая именно информация будет храниться в базе данных, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях есть возможность задавать форматы и критерии проверки данных.
o Обработка данных - данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и сортировать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения.
o Управление данными - можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определять правила коллективного доступа.
Входящие в состав современных СУБД программные средства играют немаловажную роль при работе с БД, перечислим функции, которые они выполняют:
o описание данных, их структуры (обычно описание данных и их структуры происходит при инициировании новой базы данных или добавлении к существующей базе новых разделов (отношений); описание данных необходимо для контроля корректности использования данных, для поддержания целостности базы данных);
o первичный ввод, пополнение информации в базе данных;
o удаление устаревшей информации из базы данных;
o корректировку данных для поддержания их актуальности;
o упорядочение (сортировку) данных по некоторым признакам;
o поиск информации по некоторым признакам (для описания запросов имеется специальный язык запросов, он обеспечивает также интерфейс между базой данных и прикладными программами пользователей, позволяет этим программам использовать базы данных);
o подготовку и генерацию отчетов (средства подготовки отчетов позволяют создавать и распечатывать сводки по заданным формам на основе информации базы данных);
o защиту информации и разграничение доступа пользователей к ней (некоторые разделы базы данных могут быть закрыты для пользователя совсем, открыты только для чтения или открыты для изменения; кроме того, при многопользовательском режиме работы с базой данных необходимо, чтобы изменения вносились корректно; для сохранения целостности данных служит механизм трансакций при манипулировании данными - выполнение манипуляций небольшими пакетами, результаты каждого из которых в случае возникновения некорректности операций “откатываются” и данные возвращаются к исходному состоянию);
o резервное сохранение и восстановление базы данных, которое позволяет восстановить утраченную при сбоях и авариях аппаратуры информацию базы данных, а также накопить статистику работы пользователей с базой данных;
o поддержку интерфейса с пользователями, который обеспечивается средствами ведения диалога по мере развития и совершенствования СУБД этот интерфейс становится все более дружественным; дружественность существующих средств интерфейса предполагает
o наличие развитой системы помощи (подсказки), к которой в любой момент может обратиться пользователь, не прерывая сеанса работы с компьютером и базой данных;
o защиту от необдуманных действий, предупреждающую пользователя и предотвращающую потерю информации в случае поспешных или ошибочных команд;
o наличие нескольких вариантов выполнения одних и тех же действий, из которых пользователь может выбрать наиболее удобные для себя, соответствующие его подготовке, квалификации, привычкам;
o тщательно продуманную систему ведения человеко-машинного диалога, отображение информации на дисплее, использование клавиш клавиатуры.
Кроме того, одним из важнейших вопросов при работе с БД является доступ к ней. Рассмотрим его.
По способу доступа к БД СУБД классифицируются:
o Файл-серверные
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость централизованного управления; затруднённость обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД.
Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.
o Клиент-серверные
Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно. Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность
Примеры: Oracle, Firebird, Interbase, MySQL.
o Встраиваемые
Встраиваемая СУБД -- библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных.
Примеры: OpenEdge, SQLite, BerkeleyDB.
1.4 СУБД Microsoft Access
Access - в переводе с английского означает “доступ”. MS Access - это функционально полная реляционная СУБД. Кроме того, MS Access одна из самых мощных, гибких и простых в использовании СУБД. В ней можно создавать большинство приложений, не написав ни единой строки программы, но если нужно создать нечто очень сложное, то на этот случай MS Access предоставляет мощный язык программирования - Visual Basic Application.
Популярность СУБД Microsoft Access обусловлена следующими причинами:
o Access является одной из самых легкодоступных и понятных систем как для профессионалов, так и для начинающих пользователей, позволяющая быстро освоить основные принципы работы с базами данных;
o система имеет полностью русифицированную версию;
o полная интегрированность с пакетами Microsoft Office: Word, Excel, Power Point, Mail;
o идеология Windows позволяет представлять информацию красочно и наглядно;
o возможность использования OLE технологии, что позволяет установить связь с объектами другого приложения или внедрить какие-либо объекты в базу данных Access;
o технология WYSIWIG позволяет пользователю постоянно видеть все результаты своих действий;
o широко и наглядно представлена справочная система;
o существует набор “мастеров” по разработке объектов, облегчающий создание таблиц, форм и отчетов.
Первый вариант моей системы был написан с использованием данной СУБД, которая не смогла в полной мере обеспечить выполнение всех требований преподавателя к системе. Помимо всего прочего, СУБД Microsoft является платным программным продуктом, поэтому было принято решение при создании второй варианта системы использовать более надежную, быструю, популярную и свободную СУБД MySQL.
1.5 СУБД MySQL
MySQL -- свободная система управления базами данных (СУБД). На сегодняшний день СУБД MySQL является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД. MySQL написан под десятки видов операционных систем. Это и FreeBSD, OpenBSD, MacOS, OS/2, SunOS, Win9x/00/NT и Linux. Сегодня MySQL особенно распространена на платформах Linux и Windows. Причем на последней встречается гораздо реже.
Основные достоинства данной СУБД:
o Многопоточность. Поддержка нескольких одновременных запросов.
o Записи фиксированной и переменной длины.
o Гибкая система привилегий и паролей.
o До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
o Основанная на потоках, быстрая система памяти.
o Легкость управления таблицей, включая добавление и удаление ключей и полей.
o Быстродействие.
o MySQL - бесплатная СУБД, что отличает ее от других дорогостоящих продуктов.
Принцип работы СУБД MySQL аналогичен принципу работы любой СУБД, использующей SQL (Structured Query Language, язык структурированных запросов) в качестве командного языка. SQL является, прежде всего, информационно-логическим языком, предназначенным для описания хранимых данных, для извлечения хранимых данных и для модификации данных. SQL не является языком программирования.
Изначально, SQL был основным способом работы пользователя с базой данных и представлял собой небольшую совокупность команд (операторов) допускающих создание таблиц, добавление в таблицы новых записей, извлечение записей из таблиц (в соответствии с заданным условием), удаление записей и изменение структур таблиц. В связи с усложнением язык SQL стал более прикладным языком программирования, а пользователи получили возможность использовать визуальные построители запросов.
Язык SQL представляет собой совокупность операторов.
Операторы SQL делятся на:
o операторы определения данных (Data Definition Language, DDL)
o операторы манипуляции данными (Data Manipulation Language, DML)
o операторы определения доступа к данным (Data Control Language, DCL)
o операторы управления транзакциями (Transaction Control Language, TCL)
Таким образом, благодаря большому количеству своих преимуществ СУБД MySQL получила очень широкое распространение и применение в современном мире информационных технологий.
Постановка задачи
Целью данной работы было создание информационной системы по курсу «Вычислительная математика». Данная система должна осуществлять генерацию файлов с вариантами практических заданий. Для выполнения поставленной цели необходимо было реализовать ряд требований преподавателя к данной системе:
o Возможность генерирования произвольным образом (по темам) списка задач(6 задач) для практических занятий студентов и запись его в файле.
o Возможность генерировать заранее заданное количество вариантов заданий.
o Возможность дополнять базу новыми задачами.
o Возможность вывода на печать.
o Возможность размещения информационной системы в сети Интернет для обеспечения удаленного доступа.
Глава 2. Среда разработки
2.1 PHP: Hypertext Preprocessor
Занимаясь выбором среды разработки, я остановился на PHP. PHP - это широко используемый язык сценариев общего назначения с открытым исходным кодом. Говоря проще, PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. Аббревиатура PHP означает “Hypertext Preprocessor (Препроцессор Гипертекста)". Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения.
Мой выбор был обусловлен тем, что я ранее уже работал с данным языком и имею небольшой опыт в написании сценариев на нем, а также рядом преимуществ, которыми обладает данный язык:
o Традиционность
Многие конструкции языка позаимствованы из Си, Perl. Код РНР очень похож на тот, который встречается в типичных программах на С или Pascal. Это заметно снижает начальные усилия при изучении РНР. PHP -- язык, сочетающий достоинства Perl и Си и специально нацеленный на работу в Интернете.
o Простота
Сценарий РНР может состоять из многих строк или из одной строки -- все зависит от специфики вашей задачи. Вам не придется подгружать библиотеки, указывать специальные параметры компиляции или что-нибудь в этом роде. Механизм РНР просто начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.
o Эффективность
Эффективность является исключительно важным фактором при программировании для многопользовательских сред. Очень важное преимущество PHP заключается в его «движке». «Движок» PHP не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» PHP позволяет обрабатывать сценарии с достаточно высокой скоростью.
o Гибкость
Поскольку РНР является встраиваемым языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости.
o Open Source
Помимо всего прочего PHP распространяется бесплатно. Причем, с открытыми исходными кодами (Open Source). Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. Вдобавок, отзывчивое сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы.
2.2 Portable Document Format (PDF)
В ходе разработки своей системы передо мной встала задача, в документе какого формата хранить результаты работы. Сопоставив требования, предъявленные преподавателем, я остановился на PDF, который имеет ряд существенных преимуществ (см. ниже). Также существовал вариант использования документа формата Microsoft Word (doc), но для работы с ним потребовалась бы использовать программную среду, которая намного сложнее, чем PHP.
Portable Document Format -- разработанный фирмой Adobe Systems с использованием ряда возможностей языка PostScript, как независимый от платформы формат представления в электронном виде полиграфической продукции, различной электронной документации (в том числе электронные книги) и презентаций.
Для просмотра можно использовать официальную бесплатную программу Acrobat Reader, а также программы сторонних разработчиков.
В формате PDF реализована возможность внедрять необходимые шрифты (построчный текст), векторные и растровые изображения, формы и мультимедиа-вставки. Поддерживает RGB, CMYK, несколько типов сжатия растровой информации. Имеет собственные технические форматы для полиграфии: PDF/X-1, PDF/X-3. Включает механизм электронных подписей для защиты и проверки подлинности документов. Имеется возможность импорта из большинства современных форматов текстовых документов, векторных и растровых графических форматов.
Преимущества PDF:
1. Это кроссплатформенный стандарт. Это означает, что вы можете увидеть документ точно таким же, каким он был создан, вне зависимости от того, на какой платформе он создавался.
2. PDF-файлы могут быть машинно-независимыми. Это означает, что файл может быть напечатан как на дешёвом струйнике, так и на дорогом фотонаборе.
3. PDF-файлы компактны. PDF поддерживает большое количество алгоритмов компрессии данных.
4. PDF-файлы могут содержать мультимедийные элементы, такие как видео- и/или звуковые ролики, так же как и гипертекстовые элементы и превью страниц.
5. PDF поддерживает безопасность. Создатель PDF-файла может задать несколько опций безопасности. Возможно заблокировать файл так, что он может быть открыт только после ввода пароля. Также возможно запретить изменение файла и/или его печать.
6. PDF является открытым стандартом.
2.3 Web-сайт
Возможность размещения моей системы в сети Интернет предоставляет Web-сайт. Для создания сайта я использовал язык гипертекстовых документов HTML. Технология HTML состоит в том, что в обычный текстовый документ вставляются управляющие символы(тэги) и в результате мы получаем Web-страницу. Браузер при загрузке Web-страницы предоставляет её на экране в том виде, который задается тэгами.
Основными достоинствами HTML-документов являются:
o Малый информационный обьём.
o Возможность просмотра на персональных компьютерах, оснащенных различными операционными системами.
o Возможности создания HTML документов с внедренными командами PHP.
Помимо языка гипертекстовых документов HTML я применял каскадные таблицы стилей(Cascading Style Sheets). Они используется для задания цветов, шрифтов, расположения и других аспектов представления документа. Основной целью разработки CSS является разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS). Это разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом.
Глава 3. Создание информационной системы
3.1 Генерация файла с заданиями
Из-за ряда существенных преимуществ, описанных выше, мною был выбран формат PDF для создания файла с заданиями. PDF как никакой другой формат отлично обеспечивает точность отображения представленной в нем информации на листе бумаги, а также, если мы хотим, чтобы некий документ распечатался правильно на любой системе, мы должны его подготовить в формате PDF.
Когда необходимость создать документ из PHP застала и меня, я начал поиски готовых решений и рассмотрел три наиболее популярных с моей точки зрения решения:
o Библиотека PDFLib.
o Библиотека TCPDF.
o Библиотека FPDF.
PDFlib содержит большое количество функций для работы с PDF, но чтобы использовать библиотеку PDFlib с полным набором функций, необходимо купить лицензию (библиотека платная).
Функции, содержащиеся в библиотеке TCPDF, не могут полностью реализовать те задачи, которые мне необходимо произвести с файлом.
Альтернатива - это использование FPDF, бесплатный класс содержащий большое количество функций для создания и манипулирования PDF-документами. Ключевое момент - это ее бесплатность. В дополнение к бесплатности, эта библиотека намного проще, чем PDFlib. Для использования PDFlib необходимо установить ее как расширение к PHP, в то время как FPDF может быть подключена в программу напрямую.
Далее рассмотрим основные функции(FPDF), использующиеся в данной работе для генерации файла с задачами:
o require('fpdf.php') - подключение библиотеки.
o new FPDF() - создание нового объекта FPDF.
o AddFont('Arial','','Arial.php') - указываем используемые шрифты в сценарии.
o SetFont('Arial', '', '10') - применяем шрифт Arial, размер 10.
o AddPage() - добавляем новую страницу в документ.
o Line(X1,Y1,X2,Y2) - рисуем линию между двумя точками.
o SetLineWidth(X) - задаем ширину линии.
o SetFillColor(R,G,B) - задаем цвет, используемый для всех операций, использующих заливку.
o Rect(X, Y, W, H,"F") - выводим прямоугольник.
o Text(X,Y,'abcd') - выводим символьные строки.
o Image('logo.jpg',X,Y,'JPG') - выводим изображение на страницу.
o Output('№1.pdf', 'F') - сохраняем в локальный файл.
Для создания архива (все сгенерированные файлы помещаются в архив) использовались следующие стандартные функции:
o $zip = new ZipArchive - создание объекта ZipArchive.
o $zip->open($login, ZIPARCHIVE::CREATE) - создание файла архива, данная функция имеет два параметра: имя архива и константу, указывающую способ открытия. В данном случае используется константа ZIPARCHIVE::CREATE, которая указывает, что если архива не существует, то он должен быть создан.
o $zip -> addFromString('№1.pdf', 'abcd') - добавляем файл в архив.
o $zip->close() - закрываем архив.
3.2 Работа с MySQL-сервером
Принцип работы СУБД MySQL основан на использовании SQL (Structured Query Language, язык структурированных запросов). Для работы с MySQL-сервером я применял следующие функции:
o mysql_pconnect - открытие постоянного соединение с сервером
o mysql_select_db - выбор базы данных MySQL
o SELECT - возвращает набор данных (выборку) из базы данных.
o mysql_query - отправка MySQL-запроса.
o mysql_result - возвращает содержимое одной ячейки из результирующего набора MySQL.
3.3 Создание Web-сайта
Web-сайт включает в себя две страницы. Первая содержит форму для передачи данных в PHP сценарий, а вторая для отображения результат работы системы в виде ссылки.
Для создания сайта я использовал язык гипертекстовых документов HTML. А в частности применял следующие тэги:
o <HTML> - является контейнером, который заключает в себе все содержимое веб-страницы.
o <HEAD> - предназначен для хранения элементов, цель которых -- помочь браузеру в работе с данными.
o <META> - определяет метатеги, которые используются для хранения информации предназначенной для браузеров (кодировки).
o <LINK> - устанавливает связь с внешним документом в виде файла со стилями или со шрифтами.
o <BODY> - предназначен для хранения содержания веб-страницы, отображаемого в окне браузера.
o <TABLE> - служит контейнером для элементов, определяющих содержимое таблицы. Любая таблица состоит из строк и ячеек, которые задаются с помощью тегов <TR> и <TD>.
o <INPUT> - создание разных элементов интерфейса(кнопка).
o <FORM> - устанавливает форму на веб-странице. Форма предназначена для обмена данными между пользователем и сервером. В нашем случае обмен осуществляется методом GET (через URL).
3.4 Функционирование системы
Разработанная система включает в себя следующие компоненты:
o index.php - главная страница web - сайта, на котором расположена форма.
o list.php - страница, на которой отображается результат в виде ссылки на архив (zip), который содержит сгенерированные варианты.
o fpdf.php - библиотека для работы с файлами PDF формата.
o папка font - папка, в которой располагаются шрифты, использующиеся при формировании файла.
o папка pic - папка для хранения изображений, которые помещаются в файл.
o style.css - таблица стилей необходимая для формирования страницы web-сайта.
Тестовая версия данной системы доступна по адресу: http://172.20.175.1/~egolubev/index.php
Пользователь, перейдя по данной ссылке, попадает на главную страницу (см. Рисунок 1), где ему необходимо ввести имя архива, куда будут помещены сгенерированные варианты, а также количество вариантов, которые необходимо создать (листинг первой страницы web-сайта см. Приложение). Эти данные пользователь вводит в форму, которая методом GET (через URL, строку браузера) передается в PHP сценарий (list.php, листинг второй страницы web-сайта см. Приложение). Данный сценарий встроен в HTML код второй страницы web-сайта. PHP сценарий и осуществляет генерацию файлов и упаковку их в архив. Каждый вариант (файл) представляет собой отдельное практическое задание для студента, включающее в себя 6 задач по дисциплине “Вычислительная математика”.
Рисунок 1 - Внешний вид главной страницы
Генерация файлов осуществляется следующим образом. PHP сценарий содержит в себе цикл FOR, который выполняет столько итераций, сколько необходимо создать вариантов заданий. Это значение PHP сценарий получает с формы. В цикле происходит формирование файла (PDF) с использованием функций описанных выше. Это представляет собой размещение по определенным координатам символьных констант и графических изображений. Часть символьных констант хранится в базе данных, а часть размещена непосредственно в самом PHP сценарии. Графические изображения размещены в отдельной папке (не в базе), это связано с особенностями функции Image библиотеки FPDF. Структура всех файлов практически одинакова. Каждый вариант имеет различия только в определенных местах (подчеркнутые места, см. Приложение). В эти места произвольным образом, используя функцию random, и помещаются текстовые и символьные константы, тем самым и происходит генерация варианта (файла). Созданный файл помещается в архив. После того как цикл FOR выполнит все итерации, и все файлы будут добавлены в архив, имя которого также передается с формы, будет отображена ссылка пользователю на архив (см. Рисунок 2). Архив имеет расширение .ZIP. Пользователь, нажимая на ссылку, сохраняет тем самым архив на своей локальной машине. Браузер сохраняет архив в папке, которая указана в настройках браузера, как папка для сохранения файлов или выдаст запрос на выбор места, куда именно сохранить файл.
Также хочется заострить внимание на том, что размер PDF-документа возрастет примерно на размер файлов шрифтов, используемых для его формирования. В этом конечно заключается недостаток библиотеки - чем больше шрифтов используем в PDF-документе, тем он больше «весит». Но с другой стороны, если мы хотим быть уверены, что получатель нашего документа прочитает его, мы должны присоединить шрифт к документу.
Рисунок 2 - Вторая страница сайта, ссылка
Разработка системы производилась с использование следующих программных компонентов:
o Apache 2.0 for Win
o PHP 5.2.1 for Win (последняя версия с исправлениями критических ошибок)
o MySQL Server 4.1.16 for Win
3.5 Пример сгенерированного файла
Пример сгенерированного файла представлен ниже на Рисунке 3.
Рисунок 3 - Пример варианта
Основные результаты
o Расширил свои знания в программирование на PHP (работа с архивами, PDF файлами).
o Впервые поработал с каскадными таблицами стилей (создание web сайта)
o Были выполнены требования преподавателя к данной работе, и её результатом стала информационная система генерации заданий по курсу “Вычислительная математика”.
Список использованных источников
1. Аткинсон Л. Mysql библиотека профессионала. - М., 2002. - 624 c
2. Угринович Н. Информатика и информационные технологии. - М., 2003. - 512 c
3. Plathey O. Документация FPDF. URL: http://www.fpdf.org
(дата обращения: 1.06.2010).
4. Описание основных функций PHP. URL: http://www.php.su/functions
(дата обращения: 22.05.2010).
5. Мержевич В. Справочник по HTML. URL: http://www.htmlbook.ru
(дата обращения: 22.05.2010).
Приложение
1.) index.php, первая страница web - сайта.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="windows-1251">
<link href="style.css" rel="stylesheet" type="text/css">
<title>Вычислительная математика</title>
</head>
<body>
<table align=center class="tbl" width="795" height="550">
<tr>
<td align=center height="100" colspan="2">
<h1>Информационная система генерации заданий по курсу "Вычислительная математика"</h1>
</td>
</tr>
<tr>
<td align=justify height="200" colspan="2">
Данная система осуществляет генерацию вариантов заданий для практических работ по курсу "Вычислительная математика".
Для того, чтобы сгенерировать задания необходимо ввести имя архива, в который они будут помещены, и количество необходимых вариантов.
</td>
</tr>
<tr>
<td align=center valign="top" width=50%>
<form method="get" action="list.php">
Имя архива:<br><input type="edit" name="name"><br>
</td>
<td align=center valign="top" width=50%>
Количество вариантов:<br><input type="edit" name="number"><br>
</td>
</tr>
<tr>
<td align=center valign="top" height="140" colspan="2">
<input type="submit" value="Сгенерировать">
</form>
</td>
</tr>
</table>
</body>
</html>
2.) list.php, вторая страница web - сайта.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="windows-1251">
<link href="style.css" rel="stylesheet" type="text/css">
<title>Вычислительная математика</title>
</head>
<body>
<table align=center class="tbl" width="795" height="550">
<tr>
<td align=center height="100">
<h1>Информационная система генерации заданий по курсу "Вычислительная математика"</h1>
</td>
</tr>
<tr>
<td align=center height="150">
Архив успешно сгенерирован!
</td>
</tr>
<tr>
<td align=center valign="top" height="300">
<?php
require('fpdf.php');
/* получаем данные с формы */
$login=$_GET['name'].'.zip';
$p=$_GET['number']+1;
/* Переменные для соединения с базой данных */
$hostname = "172.20.180.10";
$username = "egolubev";
$password = "135797531";
$dbName = "egolubev";
/* Таблица MySQL, в которой хранятся данные */
$userstable ="data";
/* создание соединения */
mysql_pconnect($hostname,$username,$password) or die("Could not connect");
mysql_query("SET CHARACTER SET cp1251");
/* выбор базы данных*/
mysql_select_db($dbName) or die(mysql_error());
/* создание объекта ZipArchive */
$zip = new ZipArchive;
/* создание файла архива, если архива не существует, то он будет создан */
if ($zip->open($login, ZIPARCHIVE::CREATE) === TRUE) {
/* создание вариантов заданий в количестве $p штук */for ($x=1; $x<$p; $x++) {
/* создаем экземпляр класса */$pdf = new FPDF();
/* подключаем и определяем необходимые шрифты */$pdf->AddFont('ariblk','','ariblk.php'); $pdf->AddFont('arial','','arial.php');
/* добавляем страницу */$pdf->AddPage();
/* устанавливаем шрифт и размер */$pdf->SetFont('ariblk','', '10');
/* установим ширину линии */$pdf->SetLineWidth(0.4);/* устанавливаем rgb - цвет для прямоугольника */$pdf->SetFillColor(157,158,162);
/* рисуем цветной прямоугольник */$pdf->Rect(10, 15, 190, 15,"F");
/* выводим текст в заданные координаты */$pdf->Text(68,20,'ПРАКТИЧЕСКОЕ ЗАДАНИЕ ПО курсу');$pdf->Text(81,24,'“МЕТОДЫ ВЫЧИСЛЕНИЙ”');$pdf->Text(96,28,'Вариант №'.$x);
$pdf->SetLineWidth(0.3);
/* рисуем линию */$pdf->Line(10,35,200,35);/* Формирование Задания №1*/
$pdf->Text(10,40,'Задача 1 Вариант '.$x.' (Решение алгебраического уравнения с одним неизвестным)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,48,'Найти корень уравнения');
$i =rand(1,3);
/* выводим изображение в заданные координаты */$pdf->Image('pic/zad1/zad1_f'.$i.'.jpg',53,42,'JPG');
$pdf->Text(105,48,'с точностью');
$pdf->Image('pic/zad1/zad1_y.jpg',127,43,'JPG');
$pdf->Text(144,48,'в интервале изоляции корня ');
$i =rand(1,3);
$pdf->Image('pic/zad1/zad1_interval'.$i.'.jpg',9,49,'JPG');
$i = rand(1,3);
$res = mysql_query("SELECT zad1_metod FROM $userstable");
$row = mysql_result($res,$i,"zad1_metod");
$pdf->Text(27,53,$row.'.');
$pdf->Line(10,57,200,57);
/* Формирование Задания №2*/
$pdf->SetFont('ariblk','', '10');
$pdf->Text(10,62,'Задача 2 Вариант '.$x.' (Решение систем линейных алгебраических уравнений)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,66,'Решить систему уравнений Ax=b методом Гаусса и методом Зейделя, где');
$i = rand(1,3);
$pdf->Image('pic/zad2/zad2_matr1'.$i.'.jpg',10,68,'JPG');
$pdf->Text(64,82,';');
$i =rand(1,3);
$pdf->Image('pic/zad2/zad2_matr2'.$i.'.jpg',66,68,'JPG');
$pdf->Text(91,82,';');
$pdf->Image('pic/zad2/zad2_matr.jpg',93,68,'JPG');
$pdf->Text(110,82,', с точностью');
$pdf->Image('pic/zad1/zad1_y.jpg',135,77,'JPG');
$pdf->Text(10,99,'В электронных таблицах Excel решить данную систему методом Крамера.');
$pdf->Line(10,103,200,103);
/* Формирование Задания №3*/
$pdf->SetFont('ariblk','', '10');
$pdf->Text(10,108,'Задача 3 Вариант '.$x.' (Решение систем нелинейных алгебраических уравнений)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,120,'Решить систему уравнений методом Ньютона ');
$i =rand(1,3);
$pdf->Image('pic/zad3/zad3_sist'.$i.'.jpg',88,110,'JPG');
$pdf->Text(10,131,'Точность');
$pdf->Image('pic/zad3/zad3_y.jpg',26,126,'JPG');
$pdf->Text(38,131,'. Начальное приближение х[0]=');
$i =rand(1,3);
$res = mysql_query("SELECT zad3_interval FROM $userstable");
$row = mysql_result($res,$i,"zad3_interval");
$pdf->Text(90,131,$row);
$pdf->Line(10,135,200,135);
/* Формирование Задания №4*/
$pdf->SetFont('ariblk','', '10');
$pdf->Text(10,140,'Задача 4 Вариант '.$x.' (Численное интегрирование)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,150,'Методами средних прямоугольников, трапеций и Симпсона вычислить интеграл функции y(x) =');
$i =rand(1,3);
$pdf->Image('pic/zad4/zad4_fy'.$i.'.jpg',168,140,'JPG');
$pdf->Text(10,160,'в интервале ');
$i =rand(1,3);
$res = mysql_query("SELECT zad4_interval FROM $userstable");
$row = mysql_result($res,$i,"zad4_interval");
$pdf->Text(31,160,$row);
$pdf->Text(45,160,'с разбиением на');
$i = rand(1,3);
$res = mysql_query("SELECT zad4_razb FROM $userstable");
$row = mysql_result($res,$i,"zad4_razb");
$pdf->Text(74,160,$row);
$pdf->Text(79,160,'частей с шагом');
$i = rand(1,3);
$res = mysql_query("SELECT zad4_chag FROM $userstable");
$row = mysql_result($res,$i,"zad4_chag");
$pdf->Text(106,160,$row);
$pdf->Text(117,160,'Вычислить абсолютную погрешность формул');
$pdf->Text(10,170,'численного интегрирования, зная первообразную данной функции');
$i =rand(1,3);
$pdf->Image('pic/zad4/zad4_fynk'.$i.'.jpg',121,161,'JPG');
$pdf->Text(181,170,'.');
$pdf->Text(10,174,'Сравнить разные способы вычисления.');
$pdf->Line(10,178,200,178);
/* Формирование Задания №5*/
$pdf->SetFont('ariblk','', '10');
$pdf->Text(10,183,'Задача 5 Вариант '.$x.' (Интерполяция функций)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,187,'Интерполировать заданную таблично функцию полиномами 1-го порядка(локальная линейная интерполяция) и');
$pdf->Text(10,191,'полиномом n-го порядка (глобальная интерполяция). Вычислить значение функции в точке x:');
$pdf->SetFont('arial', '', '8');
$pdf->Text(10,195,'xi= 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20');
$pdf->Text(10,199,'yi=');
$i = rand(1,3);
$res = mysql_query("SELECT zad5_ryd FROM $userstable");
$row = mysql_result($res,$i,"zad5_ryd");
$pdf->Text(16,199,$row);
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,203,'в точке х =');
$i = rand(1,3);
$res = mysql_query("SELECT zad5_tochka FROM $userstable");
$row = mysql_result($res,$i,"zad5_tochka");
$pdf->Text(29,203,$row);
$pdf->SetFont('ariblk','', '10');
$pdf->Text(10,207,'(Аппроксимация функций)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,211,'Аппроксимировать табличную функцию из предыдущей задачи полиномом 1 и 2 степени. Используя полученную');
$pdf->Text(10,215,'аппроксимацию, вычислить значение функции в точке, указанной в предыдущей задаче. В электронных таблицах');
$pdf->Text(10,219,'Excel построить график исходной табличной функции и на этом графике добавить линии трендов линейной функции');
$pdf->Text(10,223,'и полиномиальной функции 2-й степени. Уравнение полученных трендов показать на графике. Сравнить полученные');
$pdf->Text(10,227,'результаты с результатами предыдущих расчетов.');
$pdf->Line(10,231,200,231);
/* Формирование Задания №6*/
$pdf->SetFont('ariblk','', '10');
$pdf->Text(10,236,'Задача 6 Вариант '.$x.' (Решение задачи Коши О.Д.У.)');
$pdf->SetFont('arial', '', '10');
$pdf->Text(10,245,'Численно решить дифференциальное уравнение');
$i =rand(1,3);
$pdf->Image('pic/zad6/zad6_y'.$i.'.jpg',94,237,'JPG');
$pdf->Text(172,245,'при начальных');
$pdf->Text(10,255,'условиях y(0) =');
$i = rand(1,3);
$res = mysql_query("SELECT zad6_ysl FROM $userstable");
$row = mysql_result($res,$i,"zad6_ysl");
$pdf->Text(36,255,$row);
$i =rand(1,3);
$pdf->Image('pic/zad6/zad6_ysl'.$i.'.jpg',45,251,'JPG');
$pdf->Text(70,255,'в интервале интегрирования');
$i = rand(1,3);
$res = mysql_query("SELECT zad6_interval FROM $userstable");
$row = mysql_result($res,$i,"zad6_interval");
$pdf->Text(119,255,$row);
$pdf->Text(133,255,'с шагом h =');
$i = rand(1,3)
$res = mysql_query("SELECT zad6_chag FROM $userstable");
$row = mysql_result($res,$i,"zad6_chag");
$pdf->Text(153,255,$row);
$pdf->Text(162,255,'Определить близость');
$pdf->Text(10,261,'полученного заданным методом решения к точному значению с помощью линейной оценки:');
$pdf->Image('pic/zad6/zad6_ozen.jpg',164,256,'JPG');
$pdf->Text(202,261,',');
$pdf->Text(10,267,'где');
$pdf->Image('pic/zad6/zad6_toch.jpg',17,262,'JPG');
$pdf->Text(25,267,'- точное решение,');
$pdf->Image('pic/zad6/zad6_pribl.jpg',57,262,'JPG');
$pdf->Text(66,267,'- полученное приближенное решение.');
$pdf->Text(10,275,'Точное решение:');
$i =rand(1,3);
$pdf->Image('pic/zad6/zad6_resh'.$i.'.jpg',40,269,'JPG');
$pdf->Text(91,275,'. На одной координатной плоскости построить график зависимости');
$pdf->Text(10,280,'y=y(x) решения уравнения численным методом (точки) и точного решения (линия).');
$pdf->Line(10,284,200,284);
/* добавляем файлы в архив */
$zip -> addFromString($x.'.pdf',$pdf->Output($x.'.pdf', 'S'));
}
/* добавляем файлы в архив */
$zip->close();
/* закрываем архив */echo "Скачать архив: <a href=\"$login\">$login</a>";
} else {
echo 'failed';
}
/* закрытие соединения */
mysql_close();
?>
</td>
</tr>
</table>
</body>
</html>
ПРАКТИЧЕСКОЕ ЗАДАНИЕ ПО КУРСУ “МЕТОДЫ ВЫЧИСЛЕНИЙ”
Вариант 1
----------------------------------------------------------------
Задача 1 Вариант 1 (Решение алгебраического уравнения с одним неизвестным)
Найти корень уравнения с точностью в интервале изоляции корня [0.4;0.5] методом Ньютона и методом дихотомии.
----------------------------------------------------------------
Задача 2 Вариант 1 (Решение систем линейных алгебраических уравнений)
Решить систему уравнений Ax=b методом Гаусса и методом Зейделя, где
; ; , с точностью .
В электронных таблицах Excel решить данную систему методом Крамера.
----------------------------------------------------------------
Задача 3 Вариант 1 (Решение систем нелинейных алгебраических уравнений)
Решить систему уравнений методом Ньютона
Точность =10-5. Начальное приближение х0=(3; 5).
----------------------------------------------------------------
Задача 4 Вариант 1 (Численное интегрирование)
Методами средних прямоугольников, трапеций и Симпсона вычислить интеграл функции y(x)= в интервале [0;1] с разбиением на 50 частей с шагом 0.02. Вычислить абсолютную погрешность формул численного интегрирования, зная первообразную данной функции . Сравнить разные способы вычисления.
----------------------------------------------------------------
Задача 5 Вариант 1 (Интерполяция функций)
Интерполировать заданную таблично функцию полиномами 1-го порядка (локальная линейная интерполяция) и полиномом n-го порядка (глобальная интерполяция). Вычислить значение функции в точке x:
xi= 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
yi=4.61, 5.22, 3.62, 3.45, 4.86, 5.05, 5.24, 4.80, 4.42, 3.65, 4.07, 4.23, 4.41, 5.62, 5.22, 5.34, 4.48, 3.04, 3.61, 4.68
в точке х=10.52.
(Аппроксимация функций)
Аппроксимировать табличную функцию из предыдущей задачи полиномом 1 и 2 степени. Используя полученную аппроксимацию, вычислить значение функции в точке, указанной в предыдущей задаче. В электронных таблицах Excel построить график исходной табличной функции и на этом графике добавить линии трендов линейной функции и полиномиальной функции 2-й степени. Уравнение полученных трендов показать на графике. Сравнить полученные результаты с результатами предыдущих расчетов.
--------------------------------------------------------------------------------
Задача 6 Вариант 1 (Решение задачи Коши О.Д.У.)
Численно решить дифференциальное уравнение при начальных условиях y(0)=4, в интервале интегрирования [0;1] с шагом h=0.1 Определить близость полученного заданным методом решения к точному значению с помощью линейной оценки: , где - точное решение, - полученное приближенное решение. Точное решение: . На одной координатной плоскости построить график зависимости y=y(x) решения уравнения численным методом (точки) и точного решения (линия).
----------------------------------------------------------------
Размещено на Allbest.ru
Подобные документы
Понятие и сущность базы данных, их классификация и характеристика. Системы управления базами данных. СУБД структуры "сервер-клиент", его суть. Microsoft Access - функционально полная реляционная СУБД. Предназначение СУБД Access, и описание ее работы.
реферат [44,3 K], добавлен 27.02.2009Понятие экономической информационной системы. Функциональные особенности и классификационные признаки. Электронный архив как ядро информационной системы и централизованное хранилище документов. Способы создания таблиц, форм и диаграмм базы данных.
контрольная работа [2,4 M], добавлен 14.07.2009Хранение и обработка данных. Компоненты системы баз данных. Физическая структура данных. Создание таблиц в MS Access. Загрузка данных, запросы к базе данных. Разработка информационной системы с применением системы управления базами данных MS Access.
курсовая работа [694,0 K], добавлен 17.12.2016Проектирование модели данных и ее реализация средствами СУБД Microsoft Access. Разработка приложения "Комиссионное вознаграждение". Выполение интерфейса информационной базы средствами системы управления данными. Создание запросов и отчетных форм.
курсовая работа [5,8 M], добавлен 25.09.2013Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.
реферат [57,1 K], добавлен 20.12.2010Базы данных и системы управления базами данных. Структура простейшей базы данных, свойства полей. Понятие языка SQL. Проектирование баз данных, режимы работы, объекты. СУБД Microsoft Access. Создание базы данных "Электротовары" средствами Visual FoxPro.
курсовая работа [5,7 M], добавлен 29.04.2014- Разработка информационной системы предприятия с помощью системы управления базами данных Access 2007
Проектирование структуры базы данных предприятия с помощью СУБД Access. Установка связей между таблицами и ввод в них данных. Создание форм к базе данных, фильтрация запросов, просмотр отчетов. Получение комплексного отчета после группировки и сортировки.
лабораторная работа [787,7 K], добавлен 22.11.2014 Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.
реферат [46,4 K], добавлен 01.11.2009Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.
курсовая работа [1,8 M], добавлен 04.02.2013Разработка структуры информационной системы с использованием СУБД MS Access. Моделирование бизнес-процессов с помощью IDEF0-диаграмм. Проектирование приложения в среде Delphi. Физическая реализация структуры базы данных. Создание интерфейса системы.
отчет по практике [3,4 M], добавлен 07.01.2015