Проектирование информационных систем на базе MySQL и Internet
Министерство образования Российской Федерации
Нижегородский Государственный Технический Университет
Нижегородский Вечерний Факультет
Кафедра: Компьютерные технологии в проектировании и производстве
Курсовая работа
по дисциплине:
«Проектирование информационных систем»
Проектирование информационных систем
На базе MySQL и Internet
Выполнили:
Греков В.В.
Певченко Г.П.
группа 99-ИКУ
Проверил:
Штанюк А.А.
г.Кстово
2003
Содержание
1 Задание
2 Анализ задания
3 Проектирование базы данных
4 Разработка CGI-программ и HTML-документов
5 Схема размещения информации на Internet узле
6 Контрольный пример
7 Выводы
8 Список литературы
Задание
Разработать информационную систему для реализации конкурсного отбора кадров на базе программного обеспечения MySQL и Internet.
Анализ задания
Разрабатываемая система позволяет предприятию через Internet объявить конкурс на имеющиеся у нее вакантные должности, собирать и хранить сведения об участниках конкурса в виде заполняемых ими анкет.
Администратор имеет возможность вносить в базу данных новые вакансии, удалять занятые, а также редактировать список присланных анкет, отбирая наиболее перспективные для деятельности предприятия.
Проектирование базы данных
Реализация базы данных с помощью MySQL.
После запуска MySQL в командной строке создаем базу данных Konti:
C:\mysql\bin\mysqladmin create Konti
После этого в созданной базе создаем таблицы t1 и t2:
Создание таблицы t1:
use Konti
create table t1(prof varchar(30) not null primary key, knkrs int not null, ed varchar(30) not null, cpc varchar (30) not null, crok int not null);
Поле “prof” - является ключевым и содержит наименование вакансии.
Поле “knkrs” - содержит количество анкет, заявленных на данную вакансию.
Поле “ed” - содержит сведения о необходимом образовании претендента на данную вакансию.
Поле “cpc” - содержит сведения о необходимой специализации претендента на данную вакансию.
Поле “crok” - содержит сведения о необходимом опыте работы претендента по своей специализации.
Создание таблицы t2:
create table t2(fio varchar(30) not null primary key, eda varchar(30) not null, cpca varchar(30) not null, croka int not null, adress varchar(60) not null, vak varchar(30) not null);
поле “fio” (ключевое поле) – фамилия имя и отчество претендента;
поле “eda” – образование претендента;
поле “cpca” – специальность претендента;
поле “croka” – срок работы претендента по специальности;
поле “adress” – адрес претендента;
поле “vak” – выбранная вакансия претендента;
Разработка CGI-программ и HTML-документов
Файл Kontinental-HH.htm - главная страница.
Содержит две кнопки:
"Просмотр вакансий" – запускает скрипт list.cgi и предназначена для пользователя информационной системы - предоставляет ему возможность ознакомиться со списком вакансий на предприятии, узнать текущий конкурс на нее и заполнить анкету;
"База данных” (пароль) – запускает скрипт BDvakans.cgi и предназначена для администратора - предоставляет ему возможность вносить в базу данных новые вакансии, удалять занятые, а также редактировать список присланных анкет, отбирая наиболее перспективные для деятельности предприятия.
Kontinental-HH.htm
ОАО "Континенталь-НН" ®
Отдел кадров
<p ALIGN="center"><font size="2"><strong>ПРОФЕССИОНАЛЬНЫЙ ПОДХОД К ЧЕЛОВЕЧЕСКИМ РЕСУРСАМfont>strong>p>
Сегодняшний день и перспективные задачи, стоящие перед организацией, требуют от её сотрудников новых и современных решений. Администрация предприятия проводит целенаправленную работу по привлечению в наши ряды высокопрофессиональных специалистов по всем направлениям деятельности.<br> Если Вы, ознакомившись со списком вакансий, увидели для себя возможности к самореализации, наша кадровая служба с интересом ознакомится с Вашим резюме.<br> В любом случае, заполнив анкету, Вы сможете попасть в банк данных нашего отдела кадров и рассчитывать на встречное предложение с нашей стороны.
<center>Введите пароль для доступа <br><font size="2">(Временно пароль не используется)font>center>
Файл list.cgi – исполняемая программа.
Выводит список вакансий и конкурс на них на основе данных таблицы t1. Имеет 1 кнопку:
- “Заполнить анкету" – запускает скрипт anketa.cgi и передает в него данные о выбранной вакансии.
list.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Список Вакансий для пользователя");
print qq{};
print "
print "
print "
";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
print "";
print "
print qq{ }; №  Вакансия  Конкурс 
на местоВаш
выбор
for($i=0;$i<$rows;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
$i++;
print " $i--; print" ";$i "; $bakans
}
$sth->finish();
$dbh->disconnect();
print"";
print "
";
print "
print "
";
print "
print "";
print end_html();
Файл anketa.cgi – исполняемая программа.
Выводит перечень основных требований к кандидату на вакансию на основе данных таблицы t1 и предлагает претенденту заполнить анкетные данные о себе.
Имеет 2 кнопки:
“Отправить" – запускает скрипт itog.cgi и передает в него анкетные данные претендента;
"Очистить форму" – стирает из формы ошибочно введенные анкетные данные.
anketa.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Анкета");
print qq{};
my $pas=param("vibor");
$var=$pas;
$var=~ s/\D+//;
if ($pas eq "") {print qq{
 Вы забыли выбрать вакансию!
print "
";
print "
print " print " print " print " print " print " ";"; "; ";
print "";
goto quit;
}
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
print "
print qq{ };
print "
for($i=0;$i<$var+1;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
if ($i==$var)
{
print "
print " ";Образование - $ed
print " ";Специальность - $Cpc
print " ";Срок работы по специальности, лет  - $Crok
print "";
}
}
print "
";
$sth->finish();
$dbh->disconnect();
print "";
print "
print " ";Фамилия имя отчество
print " высшее0\" selected>высшее нез/высшее1\">нез/высшее ";Образование
print " ";Специальность
print " ";Стаж работы по специальности, лет 
print " ";Адрес
print " ";
print qq{};
print " ";Отправить\"> Очистить форму\">
print "";
print "";
quit:
print end_html();
Файл itog.cgi – исполняемая программа.
Проверяет введенные анкетные данные на соответствие основным требованиям к претенденту, при выполнении которых заносит их в таблицу t2 и увеличивает значение конкурса на выбранную вакансию в таблице t1, в противном случае выводит мотивированное сообщение об отказе в принятии анкеты.
Имеет 2 кнопки:
“Назад" - запускает скрипт itog.cgi;
"На главную" - запускает скрипт Konti.cgi.
itog.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Добавление Анкеты");
print qq{};
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
$fio=param('fio');
$eda=param('ed');
$eda0=$eda;
$eda=~ s/\d+//;
$eda0=~ s/\D+//;
$cpca=param('cpc');
$cpca=~ tr/А-Я/а-я/;
$croka=param('crok');
$adress=param('adress');
$var=param('vib');
$var=~ s/\D+//;
print "
";
print qq{ };
for($i=0;$i<$var+1;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
if ($i==$var)
{
if ($ed="высшее") {$ed0=0;} elsif ($ed="нез/высшее") {$ed0=1;} elsif ($ed="ср. техническое") {$ed0=2;} elsif ($ed="ср. специальное") {$ed0=3;} else {$ed0=4;}
if ($eda0 > $ed0) {$fe=1;} else {$fe=0;}
if ($cpca ne $Cpc) {$fcp=1;} else {$fcp=0;}
if ($croka < $Crok) {$fcr=1;} else {$fcr=0;}
if ($fe==1 or $fcp==1 or $fcr==1) {print qq{Извините, $fio, но Ваша анкета не принята к рассмотрению из-за несоответствия указанных в ней данных требованиям к кандидату};}
else {
my $sth=$dbh->prepare("SELECT * FROM t2;");
my $rows=$sth->execute();
$flag=0;
for($j=0;$j<$rows;$j++)
{
($fio2,$eda2,$cpca2,$croka2,$adress2,$vak2)=$sth->fetchrow_array;
if ($fio2 eq $fio)
{
$flag=1;
$knkrs=$knkrs-1;
$sql="update t1 set knkrs='$knkrs' where prof='$bakans';";
$dbh->do($sql);
}
}
$knkrs=$knkrs+1;
$sql="update t1 set knkrs='$knkrs' where prof='$bakans';";
$dbh->do($sql);
$sth->finish();
if ($flag==0) {
print qq{Уважаемый, $fio, Ваша анкета принята для участия в конкурсе.<br><br>Желаем успеха!};
$sql="INSERT INTO t2(fio,eda,cpca,croka,adress,vak)values('$fio','$eda','$cpca','$croka','$adress','$bakans')";
$dbh->do($sql);
}
else {
print qq{Уважаемый, $fio, в базе данных уже имеется анкета на Ваше имя, фамилию, отчество. Если Вы хотите заполнить новую анкету - измените свои ФИО дополнив, например, цифровым символом ($fio-2).<br><br>};
}
}
}
}
print qq{
};
$sth->finish();
$dbh->disconnect();
print "
";
print "
print " print qq{}; print " print " print " print " print " ";"; ";
";
print "";
print end_html();
Файл BDvakans.cgi – исполняемая программа.
Выводит список вакансий на основе данных таблицы t1 и предлагает администратору добавить новые вакансии или удалить уже занятые.
Имеет 3 кнопки:
“Добавить" - запускает скрипт Addvakan.cgi;
“Удалить" - запускает скрипт vakdel.cgi;
“На главную" - запускает скрипт Konti.cgi.;
и 2 ссылки:
“Список вакансий" - запускает скрипт BDvakans.cgi;
“Список анкет" - запускает скрипт BDankets.cgi.
BDvakans.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Список Вакансий");
print qq{};
my $pass=param("111");
if (111)
{
print "База данных
print "
print qq{Список вакансий};
print "       ";
print qq{Список анкет};
print "";
print "";
print "
print qq{ Список вакансий     print " };
print "";
print "";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
print "";
print "
print qq{ <th>Пометить<br>на удалениеth>font>tr>}; for($i=0;$i<$rows;$i++) { ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array; $i++; print" $i--; } $sth->finish(); $dbh->disconnect(); print ""; print " print " print " print ""; print " print " print ""; print ""; } else { print h1("Неправильный пароль!!!"); } print end_html(); Файл BDankets.cgi – исполняемая программа. Выводит список анкет на основе данных таблицы t2 и предлагает администратору удалить наименее перспективные. Имеет 2 кнопки: “Удалить" - запускает скрипт ankdel.cgi; “На главную" - запускает скрипт Konti.cgi; и 2 ссылки: “Список вакансий" - запускает скрипт BDvakans.cgi; “Список анкет" - запускает скрипт BDankets.cgi. BDankets.cgi use CGI qw(:standard); use DBI; print header(); print start_html("Список Анкет"); print qq{}; my $pass=param("111"); print " print " print "       "; print ""; print qq{ Список анкет    }; $dbh=DBI->connect("dbi:mysql:konti"); $sth=$dbh->prepare("SELECT * FROM t2;"); $rows=$sth->execute(); print ""; print " print qq{ for($i=0;$i<$rows;$i++) { ($fio,$eda,$cpca,$croka,$adress,$vak)=$sth->fetchrow_array; $i++; print" $i--; } $sth->finish(); $dbh->disconnect(); print ""; print " print " print " print ""; print " print " print ""; print ""; print end_html(); Файл Addvakan.cgi – исполняемая программа. Предлагает администратору форму для внесения данных для новой вакансии Имеет 2 кнопки: “Отправить данные" - запускает скрипт Dob.cgi и передает в него данные новой вакансии; “Очистить форму" - стирает из формы ошибочно введенные данные. Addvakan.cgi use CGI qw(:standard); use DBI; print header(); print start_html("Добавление Вакансии"); print qq{}; print " print ""; print " print " print " высшее\" selected>высшее нез/высшее\">нез/высшее print " print " print " print " print ""; print " print ""; print end_html(); Файл Dob.cgi – исполняемая программа. Служебная программа для проверки наличия введенных данных и их внесения в таблицу t1. При отсутствии данных предлагает вернуться назад или на главную страницу. Имеет 2 кнопки: “Назад" - запускает скрипт Addvakan.cgi; “На главную" - запускает скрипт Konti.cgi;; и 2 ссылки: “Список вакансий" - запускает скрипт BDvakans.cgi; “Список анкет" - запускает скрипт BDankets.cgi. Dob.cgi use CGI qw(:standard); use DBI; print header(); print start_html("Добавление Вакансии"); print qq{}; print " print " print qq{Список вакансий}; print "       "; print qq{Список анкет}; print ""; $dbh=DBI->connect("dbi:mysql:konti"); $sth=$dbh->prepare("SELECT * FROM t1;"); my $profv=param("profv"); my $edv=param("edv"); my $cpcv=param("cpcv"); my $crokv=param("crokv"); $crokv=~ s/\D+//; if ($profv ne "") { $sql=qq{insert into t1(prof, knkrs, ed, cpc, crok) values ('$profv',0,'$edv','$cpcv','$crokv');}; $dbh->do($sql); print " $sth->finish(); $dbh->disconnect(); } else {print qq{ print " print " print " print " print " print " print " print ""; print end_html(); Файл vakdel.cgi– исполняемая программа. Служебная программа для удаления вакансии из таблицы t1. Имеет 1 кнопку: “Назад" - запускает скрипт Konti.cgi; и 2 ссылки: “Список вакансий" - запускает скрипт BDvakans.cgi; “Список анкет" - запускает скрипт BDankets.cgi. vakdel.cgi use CGI qw(:standard); use DBI; print header(); print start_html("Удаление Вакансии"); print qq{}; print " print " print qq{Список вакансий}; print "       "; print qq{Список анкет}; print ""; $dbh=DBI->connect("dbi:mysql:konti"); $sth=$dbh->prepare("SELECT * FROM t1;"); $rows=$sth->execute(); for($i=0;$i<$rows;$i++) { $i++; ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array; my $var=param("vdel$i"); $var=~ s/\D+//; if ($i==$var) { $sql="delete from t1 where prof=\"$bakans\";"; $dbh->do($sql); } $i--; } $sth->finish(); $dbh->disconnect(); print " print ""; print " print ""; print end_html(); Файл ankdel.cgi– исполняемая программа. Служебная программа для удаления анкеты из таблицы t2 и уменьшения значения конкурса на вакансию в таблице t1. Имеет 1 кнопку: “На главную" - запускает скрипт Konti.cgi; и 2 ссылки: “Список вакансий" - запускает скрипт BDvakans.cgi; “Список анкет" - запускает скрипт BDankets.cgi. ankdel.cgi use CGI qw(:standard); use DBI; print header(); print start_html("Удаление Анкеты"); print qq{}; print " print " print qq{Список вакансий}; print "       "; print qq{Список анкет}; print ""; $dbh=DBI->connect("dbi:mysql:konti"); $sth=$dbh->prepare("SELECT * FROM t2;"); $rows=$sth->execute(); for($i=0;$i<$rows;$i++) { $i++; ($fio, $eda, $cpca, $croka, $adress, $vak)=$sth->fetchrow_array; my $var=param("vdel$i"); $var=~ s/\D+//; if ($i==$var) { $sql="delete from t2 where fio=\"$fio\";"; $dbh->do($sql); my $sth=$dbh->prepare("SELECT * FROM t1;"); my $rows=$sth->execute(); for($i=0;$i<$rows;$i++) { ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array; if ($bakans eq $vak) { $knkrs=$knkrs-1; $sql="update t1 set knkrs='$knkrs' where prof='$vak';"; $dbh->do($sql); } } $sth->finish(); } $i--; } $sth->finish(); $dbh->disconnect(); print " print ""; print " print "FORM>"; print end_html(); Схема размещения информации на Internet-узле На сервере информация располагается следующим образом: C:\Apache\ htdocs\ Kontinental-HH.htm titul.htm cgi-bin\ Addanket.bat Addvakan.bat Addvakan.cgi ankdel.bat ankdel.cgi anketa.bat anketa.cgi BDankets.bat BDankets.cgi BDvakans.bat BDvakans.cgi Dob.bat Dob.cgi itog.bat itog.cgi Konti.bat Konti.cgi konti.txt list.bat list.cgi start.bat vakdel.bat vakdel.cgi Контрольный пример работы пользователя. Главная страница (Kontinental-HH.htm): Выбор вакансии (list.cgi): Заполнение анкеты (anketa.cgi): Успешное внесение анкеты в базу данных (itog.cgi): Контрольный пример работы администратора Просмотр списка вакансий (BDvakans.cgi). Просмотр списка вакансий (BDankets.cgi). Добавление новой вакансии (Addvakan.cgi) Выводы. Разработка информационной системы на базе MySQL и Internet позволяет создать большую базу данных. Данная система удобна в использовании и разработке программно. Большое значение имеет то, что существует отделение программы управления базой данных от интерфейса. Интерфейс заключается в создании запросов на SQL, передаче их серверу и получении результата. Запросы передаются в виде строк. При получении запроса основную работу выполняет сервер. Клиенту высылаются только данные, полученные в результате получения запроса. Это приводит к снижению нагрузки, что позволяет повысить безопасность при работе с данными. Перед посылкой запроса требуется регистрация на сервере. Легко организовать многопользовательскую работу. Использованная литература. Айсбари С.: Корпоративные решения на базе LINUX. Орлов С. А.: Технологии разработки ПО. Разработка сложных программных систем. Материалы лекций. №  Вакансия ";$i $bakans
"; "; ";
";
}; №  Фамилия Имя Отчество Образование Специальность Срок работы по спец-ти Адрес Вакансия Пометить
на удаление ";
"; "; ";
";
Заполните данные для новой вакансии
";Должность ";Образование ";Специальность ";Стаж работы по специальности, лет  "; ";Отправить данные\"> Очистить форму\">
";
База данных
";
};}
";"; ";
";
База данных
";
База данных
";

Нравится материал? Поддержи автора!
Ещё документы из категории информатика:
Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.
После чего кнопка «СКАЧАТЬ» станет доступной!
Кнопочки находятся чуть ниже. Спасибо!
Кнопки:
Скачать документ