Разработка web-сайта "Телепрограмма"

Создание сайта "Телепрограмма" на основе perl-сценария работающего под управлением операционной системы Linux и осуществляющего чтение исходного файла и выдачу результативного файла содержащего выбранную информацию. Описание схемы взаимодействия программ.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 20.10.2012
Размер файла 705,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1 Разработка Web-сайта “Телепрограмма”

1.1 Анализ требований

1.1.1 Анализ поставленной задачи

1.1.2 Аппаратно-программные требования

1.2 Проектирование

1.2.1 Описание схемы взаимодействия программ

1.2.2 Структура базы данных

1.3 Реализация

1.4 Тестирование и отладка

Заключение

Список использованных источников

Приложение А. Листинг программы

Введение

Если в течение последних нескольких лет вы не сидели взаперти в деревянной хижине без электричества, то вы наверняка слышали о World Wide Web. Web-адреса (больше известные как URL) сейчас можно найти везде: на рекламных плакатах и в титрах кинофильмов, на обложках журналов и на страницах других изданий, от газет до правительственных отчетов.

Многие из самых интересных Web-страниц включают разного рода формы, предназначенные для ввода данных пользователем. Вы вводите данные в такую форму и щелкаете на кнопке или рисунке. Это действие запускает некую программу на Web-сервере, которая изучает введенные данные и генерирует новую выходную информацию. Иногда эта программа (широко известная как программа общего шлюзового интерфейса, или CGI-программа) представляет собой просто интерфейс к существующей базе данных; она преобразует введенные данные в нечто понятное для этой базы данных, а выходную информацию базы данных -- в нечто понятное для Web-броузера (обычно в HTML-форме).

CGI-программы не просто обрабатывают данные, введенные в форму. Они вызываются и тогда, когда вы щелкаете на графическом изображении, и фактически могут использоваться для отображения всего того, что "видит" броузер. Web-страницы с CGI-поддержкой -- это не безликие и нудные документы, а удивительно живые страницы с динамически изменяющимся содержимым. Именно динамическая информация делает Web интересным и интерактивным источником информации, а не просто средством, предназначенным для чтения книги с терминала.

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

Начиная с версии 5.004, в состав стандартного дистрибутива Perl включается модуль CGI.pm, который все знает и все «умеет».

Этот модуль, который написал Линкольн Штейн, автор хорошо известной книги How to Setup and Maintain Your Web Site, превращает процедуру создания CGI-программ на Perl в легкую прогулку. Как и сам Perl, CGI.pm является платформо - независимым, поэтому его можно использовать практически с любой ОС, от UNIX и Linux до VMS; он работает даже в таких системах, как Windows и MacOS.

Если CGI.pm уже инсталлирован в системе, можно прочесть его полную документацию, воспользовавшись любым из способов, которые используется для чтения man-страниц Perl, например с помощью команд тап(1) или perldoc(l) либо обратившись к HTML-варианту документации. Если ничего не получается, прочтите файл CGI.pm'. документация на модуль встроена в сам модуль, представлениями в простом формате pod.

Разрабатывая CGI-программы, держите экземпляр man-страницы модуля CGI.pm под рукой. Она не только содержит описание функций этого модуля, но и загружается вместе со всевозможными примерами и советами.

На рис. 1 показаны взаимосвязи между Web-броузером, Web-сервером и CGI-программой. Работая со своим броузером, щелкая на какой-либо ссылке, нужно помнить, что с этой ссылкой связан универсальный локатор ресурса, URL (Uniform Resource Locator). Этот URL указывает на Web-сервер и ресурс, доступный через данный сервер. Таким образом, броузер взаимодействует с сервером, запрашивая указанный ресурс. Если, скажем, ресурс представляет собой HTML-форму, предназначенную для заполнения, то Web-сервер загружает эту форму в броузер, который затем выводит ее на экран, чтобы можно было ввести требуемые данные.

рис.1

Темой курсового проекта является разработка Web сайта «Телепрограмма», который позволяет получить программу передач на конкретный канал и категорию передач.

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

1. Разработка Web сайта «Телепрограмма»

1.1 Анализ требований

1.1.1 Анализ поставленной задачи

Задачи, стоящие при проектировании web сайта легче всего и эффективнее решаются посредством использования в качестве языка программирования - Perl.

Perl - интерпретируемый язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информации и выдачи сообщений. Perl также удобен для написания различных системных программ. Этот язык прост в использовании, эффективен, но про него трудно сказать, что он элегантен и компактен. Perl сочетает в себе лучшие черты C, shell, sed и awk, поэтому для тех, кто знаком с ними, изучение Perl не представляет особого труда. Синтаксис выражений Perl близок к синтаксису C. В отличие от большинства утилит ОС UNIX Perl не ставит ограничений на объем обрабатываемых данных и если хватает ресурсов, то весь файл обрабатывается как одна строка. Рекурсия может быть произвольной глубины. Хотя Perl приспособлен для сканирования текстовых файлов, он может обрабатывать так же двоичные данные и создавать dbm-файлы, подобные ассоциативным массивам. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на С или C++ куски кода на Perl, а также позволяет осуществлять доступ к базам данных, в том числе Oracle.

В качестве инструментальных средств хранения и поиска данных был выбран DBI-интерфейс (Data-Base Interface). Это интерфейс для ряда различных баз данных, включая Oracle, Sybase, и другие на базе SQL RDBMS (relation database management systems). Система является модульной. Доступ к различным источникам данных является таким же легким, как использование другого базового модуля, который определяется в коде как параметр функций open, close. Каждый драйвер основной базы данных (DBD) может реализовать какой-либо метод доступа к базе, что может привести к некоторым проблемам при использовании нескольких баз данных, так как возвращаемые каждым DBD коды ошибок не являются согласованными во все пакете DBD.

Один из модулей обеспечивает доступ к стандартным CSV (comma-separated values) - файлам, как если бы они были таблицей SQL-совместимой базы данных. DBI-пакет предоставляет все функции и конструкции, необходимые для создания, вывода на печать и редактирования информации в базе данных. CSV-функции написаны на языке С, и эти функции согласуются с CSV-модулем Perl. DBI-модуль, который предоставляет SQL-интерпретацию и интерфейс данных между базой данных и сценарием Perl, выполняет стандартный вызов CSV-модуля для чтения базы данных и записи в нее. CSV DBD использует системную функцию flock для защиты базовых CSV-файлов, решая тем самым одну из важных проблем. Управляемый интерфейсом DBI файл CSV будет многопользовательским и совместимым без необходимости вставки какого-либо дополнительного кода.

CSV-модуль помогает преодолеть многие проблемы, связанные с файлами текста с разделителями и файлами фиксированной длины. CSV-файл состоит из полей, отделяемых запятыми. Обновление содержимого файла выполняется инструментальным пакетом без участия программиста, поэтому не нужно беспокоиться о дублировании файла или перезаписи его содержимого. Более того, DBI-пакет через SQL-интерфейс предоставляет стандартный способ выборки информации, который не требует поиска нужной информации во всем файле.

1.1.2 Аппаратно-программные требования

Данное программное приложение разработано в ОС Linux Red Hat на языке сценариев Perl.

Для успешного функционирования web сайта необходимо наличие комплекса программно-аппаратных средств:

- персональный компьютер типа IBM PC;

- операционная система Linux Red Hat;

- язык сценариев Perl;

- web-server Apache;

- пакет DBI-1.14 и новее;

- пакет DBD-CSV-0.1030 и новее;

- пакет Text-CSV_XS-0.17 и новее;

- пакет SQL-Statement-1.001 и новее.

Приложение реализовано и отлажено в ОС Linux Red Hat на ПЭВМ типа IBM PC.

1.2 Проектирование

1.2.1 Описание схемы взаимодействия программ

Схема взаимодействия программ приведена в приложении Б.

Для добавления слов в базу данных используется CGI-программа add.pl. Пользователю необходимо заполнить два поля на форме html-страницы, соответствующие №телевизионного канала и названию передачи , и отослать запрос серверу. Web-сервер, приняв запрос пользователя от web-браузера, производит запуск и выполнение CGI-скрипта, который через DBI-интерфейс имеет возможность создания таблицы CSV базы данных и добавления записей нее.

Поиск нужной записи осуществляется путем запуска perl-сценария find.pl. Данная программа считывает входной файл input.txt, в котором должен находиться текст запрашиваемой информации, и, используя DBI-интерфейс и SQL-запросы для доступа к необходимым записям базы данных, и после нахождения нужной информации, выводит результаты в файл output.txt.

1.2.2 Структура базы данных

База данных представляет собой CSV-файл, состоящий из полей, отделяемых запятыми.

Таблица базы данных имеет всего два поля. Поле kan_kat, куда записываются канал и категория передачи и поле name, где ставится в соответствие название передачи.

CSV-файл не является SQL-совместимой базой данных, но при использование DBI-интерфейса, имеется возможность работы с CSV базой данных с помощью SQL-запросов.

В программе реализуются следующие SQL-запросы:

Для создания таблицы используется запрос

CREATE TABLE $table (kan_kat CHAR(20), name CHAR(20)),

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

Добавление записей в файл осуществляется следующим образом:

INSERT INTO $table VALUES (" .

$dbh->quote("$wd_kat_kan"). "," .

$dbh->quote("$wd_name"). ")

Выбор всех полей записи таблицы $table, где поле kat_kan равняется искомому значению, реализуется запросом:

SELECT * FROM $table WHERE kat_kan = ?

1.3 Реализация

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

my($dbh) = DBI->connect("DBI:CSV:");

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

SQL-запрос помещается в переменную $query.

my($query) = "SELECT * FROM $table WHERE kat_kan = ?";

Данная строка говорит о том, что необходимо выбрать все поля записи таблицы $table, где поле kat_kan равняется искомому значению.

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

$sth = $dbh->prepare($query) || die "prepare: " . $dbh->errstr();

SQL-оператор Select выполняется функцией execute.

$sth->execute($kat_kan) || die "execute: " . $dbh->errstr();

Выполнение описанных выше функций осуществляется в цикле

while($kat_kan = <FILE_IN>)

{

}

Данный цикл закончит свое выполнение тогда, когда будет достигнут конец входного файла input.txt. Каждой итерации переменной $kat_kan присваивается строка, содержащая №канала и категорию передачи, которая выводится, если данное словосочетание содержится в базе данных. В противном случае в результирующий файл выводится вопросительные знаки.

if ($sth->fetch)

{ print FILE_OUT "$eng "; }

else { print FILE_OUT "????????????????"; }

При удачном результате поиска название передачи записывается в результирующий файл.

Добавление информации о передачах в базу данных осуществляется через CGI-программу. Пользователь заполняет форму в web-браузере, после чего активизируется CGI-сценарий, который получает данные от web-сервера при использовании метода Post. В данном случае происходит передача информации как потока данных на стандартный ввод CGI-программы, нет теоретических пределов по объему информации, которая может передаваться таким способом.

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

Так как мы имеем дело с простым файлом, то можно использовать тест для проверки существования файла данных.

unless (-e $table)

{

$dbh->do("CREATE TABLE $table (kat_kan CHAR(20), name CHAR(20))")

|| die "Couldn't create table " . dbh->errstr();

}

Если таблица не существует, создаем ее SQL-оператором Create Table.

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

Любой оператор, выполняемый DBI-пакетом, будет возвращать значение true или false, в зависимости от успешности выполнения. Если оператор не выполняется успешно, то используется функция die, для выдачи соответствующего сообщения об ошибке. Доступ к ошибке осуществляется запуском функции errstr в качестве ссылки из дескриптора базы данных.

Для добавления данных в таблицу SQL используется ключевое слово Insert.

Функция quote добавляет кавычки в строки, доступ к ней также выполняется с помощью ссылки из дескриптора базы данных.

$dbh->do("INSERT INTO $table VALUES (" .

$dbh->quote("$wd_name"). "," .

$dbh->quote("$wd_kat_kan"). ")")

|| die "Couldn't add record " . $dbh->errstr();

1.4 Тестирование и отладка

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

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

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

При упорядоченном тестировании используются следующие методы: статический и динамический. При статическом (ручном) тестировании проверка правильности программы выполняется без выполнения программы путем формального анализа текста программы на языке программирования.

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

Таким образом, использование описанной схемы отладки позволило локализовать и устранить ошибки в программе.

Результаты тестирования приведены в приложении В.

Заключение

В процессе курсового проектирования был разработан Web сайт «Телепрограмма». Для реализации поставленной задачи были спроектированы алгоритмы добавления и поиска информации в базе данных.

Perl- сценарий реализован и отлажен в ОС Linux Red Hat на ПЭВМ типа IBM PC.

Список использованных источников

сайт linux операционный программа

1. Мартин Браун. Perl. Архив программ. - М.: «Издательство БИНОМ», 2001.

2. Кольчугина Е.А. Программирование в сетях. Методические указания к выполнению. лабораторных работ - Пенза, ПГУ, 2003.

Приложение А

(обязательное)

Листинг программы

add.pl

#!/usr/bin/perl

#use CGI qw(:standard);

use DBI;

my ($table) = "programma";

my ($dbh) = DBI->connect("DBI:CSV:");

$wd_kan_kat = param('T1');

$wd_name = param('T2');

unless (-e $table)

{

$dbh->do("CREATE TABLE $table (name CHAR(30), kan_kat CHAR(30))")

|| die "Couldn't create table " . dbh->errstr();

}

$dbh->do("INSERT INTO $table VALUES (" .

$dbh->quote("1"). "," .

$dbh->quote("2"). ")")

|| die "Couldn't add record " . $dbh->errstr();

print header;

print start_html('Sample'),

h2 ("!!! The data is added !!!"),

print end_html;

find.pl

#!/usr/bin/perl

use strict;

use DBI;

my($table) = "programma";

my($dbh) = DBI->connect("DBI:CSV:");

my($kan_kat);

my($eng);

my($query) = "SELECT * FROM $table WHERE kan_kat = ?";

my ($sth);

$/ = " ";

open(FILE_IN, "< input.txt") or die ("Can\'t open file: $!");

open(FILE_OUT, "> output.txt") or die ("Can\'t create file: $!");

while($rus = <FILE_IN>)

{

chomp($kan_kat);

$sth = $dbh->prepare($query) || die "prepare: " . $dbh->errstr();

$sth->execute($kan_kat) || die "execute: " . $dbh->errstr();

$sth->bind_columns(undef, \$kan_kat, \$name);

if ($sth->fetch)

{ print FILE_OUT "$name "; }

else { print FILE_OUT "????????????????????"; }

}

close FILE_OUT;

close FILE_IN;

Размещено на Allbest.ru


Подобные документы

  • Назначение команды "diskcomp". Текст и запуск командного файла. Сравнение команды в Windows 7 и Windows XP. Разработка файла-сценария в ОС Linux. Создание файла в подкаталоге. Создание файла "oglavlenie.txt" с отсортированным по времени списком файлов.

    курсовая работа [1,6 M], добавлен 22.08.2012

  • Описание типизированных файлов. Принципы работы с файлами, создание и открытие на запись нового файла. Чтение из файла, открытие существующего файла на чтение. Определение имени файла. Запись в текстовый файл. Описание множества и операции над ними.

    реферат [86,4 K], добавлен 07.02.2011

  • Создание индивидуального сайта с использованием языка гипертекстовой разметки HTML и языка скриптов JavaScript. Программные средства, используемые при выполнении работы. Основные средства для создания сайта. Разработка CSS-файла (таблица стилей).

    лабораторная работа [31,0 K], добавлен 28.10.2010

  • Структура заданного исходного файла и структуры данных, соответствующие данным файла. Подпрограмма проверки принадлежности текста к одной из шести кодовых таблиц. Алгоритмы перекодировки файла в cp1251. Алгоритм сортировки записей исходного файла.

    курсовая работа [63,7 K], добавлен 12.12.2010

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

    курсовая работа [346,7 K], добавлен 18.09.2016

  • Понятие web-сайта и их типы. Программы для создания web-сайта. Описание структуры проекта. Алгоритм создания сайта. Описание конструктора Jimdo. Языки программирования серверного выполнения. Создание полнофункционального веб-сайта для ОАО "КУЛЗ".

    курсовая работа [3,5 M], добавлен 05.06.2015

  • Разработка сайта для профессионального училища №24. Выбор языка программирования. Характеристика ПУ №24: организационная структура, аппаратное и программное обеспечение. Дизайн сайта; создание базы данных, главного файла и модулей; система управления.

    отчет по практике [1,6 M], добавлен 25.01.2014

  • Файловый ввод/вывод с использованием разных классов. Вызовы операционной системы. Использование вызовов операционной системы. Основные способы открытия файла. Замена файла, связанного со стандартными устройствами ввода/вывода. Операции чтения файла.

    курсовая работа [1,1 M], добавлен 09.12.2016

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

    дипломная работа [411,1 K], добавлен 02.03.2011

  • Структура сайта, выполненного при помощи HTML-кода и CSS-таблиц. Создание базы данных. Описание главной страницы. Форма для оформления заказа. Скрипт, выводящий дату и день недели. Проектирование CSS-документа (файла) для оформления страниц сайта.

    курсовая работа [570,7 K], добавлен 30.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.