Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения
 

Проектирование информационных систем на базе 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. Материалы лекций.
ref.by 2006—2022
contextus@mail.ru