Программирование и комп-ры

Проектирование информационных систем на базе 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
    
    Континенталь-НН
    
    

ОАО "Континенталь-НН" ®

Отдел кадров

ПРОФЕССИОНАЛЬНЫЙ ПОДХОД К ЧЕЛОВЕЧЕСКИМ РЕСУРСАМ

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

Введите пароль для доступа
(Временно пароль не используется)
Файл 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""; } $sth->finish(); $dbh->disconnect(); print"
 №  Вакансия Конкурс 
на место
Ваш
выбор
$i$bakans
$knkrs
"; print "
"; print "
"; print "
"; print "
Анкеты претендентов будут рассмотрены 25 января 2003г.
"; 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 ""; print ""; print ""; print "
Образование- $ed
Специальность- $Cpc
Срок работы по специальности, лет - $Crok
"; } } print "

"; $sth->finish(); $dbh->disconnect(); print "
"; print "
"; print ""; print ""; 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, Ваша анкета принята для участия в конкурсе.

Желаем успеха!}; $sql="INSERT INTO t2(fio,eda,cpca,croka,adress,vak)values('$fio','$eda','$cpca','$croka','$adr ess','$bakans')"; $dbh->do($sql); } else { print qq{Уважаемый, $fio, в базе данных уже имеется анкета на Ваше имя, фамилию, отчество. Если Вы хотите заполнить новую анкету - измените свои ФИО дополнив, например, цифровым символом ($fio-2).

}; } } } } print qq{

}; $sth->finish(); $dbh->disconnect(); print "
"; print "
"; print ""; print ""; print "
"; print qq{}; 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{}; for($i=0;$i<$rows;$i++) { ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array; $i++; print""; $i--; } $sth->finish(); $dbh->disconnect(); print "
 №  Вакансия Пометить
на удаление
$i $bakans
"; 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 qq{Список вакансий}; print "       "; print qq{Список анкет}; 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 "
 №  Фамилия Имя Отчество Образование Специальность Срок работы по спец-ти Адрес Вакансия Пометить
на удаление
$i
$fio
$eda
$cpca
$croka
$adress
$vak
"; 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 ""; 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 ""; 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): [pic] Выбор вакансии (list.cgi): [pic] Заполнение анкеты (anketa.cgi): [pic] Успешное внесение анкеты в базу данных (itog.cgi): [pic] Контрольный пример работы администратора Просмотр списка вакансий (BDvakans.cgi). [pic] Просмотр списка вакансий (BDankets.cgi). [pic] Добавление новой вакансии (Addvakan.cgi) [pic] Выводы. . Разработка информационной системы на базе MySQL и Internet позволяет создать большую базу данных. Данная система удобна в использовании и разработке программно. . Большое значение имеет то, что существует отделение программы управления базой данных от интерфейса. . Интерфейс заключается в создании запросов на SQL, передаче их серверу и получении результата. Запросы передаются в виде строк. При получении запроса основную работу выполняет сервер. Клиенту высылаются только данные, полученные в результате получения запроса. Это приводит к снижению нагрузки, что позволяет повысить безопасность при работе с данными. Перед посылкой запроса требуется регистрация на сервере. . Легко организовать многопользовательскую работу. Использованная литература. 1. Айсбари С.: Корпоративные решения на базе LINUX. 2. Орлов С. А.: Технологии разработки ПО. Разработка сложных программных систем. 3. Материалы лекций.

смотреть на рефераты похожие на "Проектирование информационных систем на базе MySQL и Internet"