Министерствообразования Российской Федерации
Нижегородский Государственный ТехническийУниверситет
Нижегородский ВечернийФакультет
Кафедра: Компьютерные технологии в проектировании ипроизводстве
по дисциплине:
«Проектированиеинформационных систем»
Проектированиеинформационных систем
На базе 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 nullprimary key, knkrs int not null, ed varchar(30) not null, cpc varchar (30) notnull, crok int not null);
Поле “prof”- является ключевым и содержит наименование вакансии.
Поле “knkrs”- содержит количество анкет, заявленных на данную вакансию.
Поле “ed”- содержит сведения о необходимом образовании претендента на данную вакансию.
Поле “cpc”- содержит сведения о необходимой специализации претендента на данную вакансию.
Поле “crok”- содержит сведения о необходимом опыте работы претендента по своейспециализации.
Создание таблицы t2:
create table t2(fio varchar(30) not nullprimary key, eda varchar(30) not null, cpca varchar(30) not null, croka int notnull, 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
<html>
<head><title>Континенталь-НН</title></head>
<body bgcolor="#faf1d8">
<center><h1><fontcolor="#800000">ОАО "Континенталь-НН"®</font></h1></center>
<p ALIGN="center"><fontsize="5"><strong><font color="#800000">Отделкадров</font></strong></font></p>
<p ALIGN="center"><font size="2"><strong>ПРОФЕССИОНАЛЬНЫЙ ПОДХОДК ЧЕЛОВЕЧЕСКИМ РЕСУРСАМ</font></strong></p>
<table border="0">
<tr><td><blockquote class="text">
Сегодняшнийдень и перспективные задачи, стоящие перед организацией, требуют от еёсотрудников новых и современных решений. Администрация предприятия проводитцеленаправленную работу по привлечению в наши ряды высокопрофессиональныхспециалистов по всем направлениям деятельности.<br>
ЕслиВы, ознакомившись со списком вакансий, увидели для себя возможности ксамореализации, наша кадровая служба с интересом ознакомится с Вашимрезюме.<br>
Влюбом случае, заполнив анкету, Вы сможете попасть в банк данных нашего отделакадров и рассчитывать на встречное предложение с нашей стороны.
</blockquote>
</td></tr>
</table>
<form action="http://myserver/cgi-bin/list.bat">
<center><input type="submit"value="Просмотр вакансий"></center>
</form>
<br>
<form action="http://myserver/cgi-bin/BDvakans.bat"method="post">
<center><input type="submit" value="Базаданных">
<input type="password" name="111"></center>
<center>Введите пароль для доступа<br><font size="2">(Временнопароль не используется)</font></center>
</form>
</body>
</html>
Файл list.cgi – исполняемаяпрограмма.
Выводит список вакансий и конкурс на них на основе данныхтаблицы t1. Имеет 1 кнопку:
- “Заполнитьанкету" – запускаетскрипт anketa.cgi и передает в него данные о выбранной вакансии.
list.cgi
use CGI qw(:standard);
use DBI;
print header();
printstart_html("Список Вакансий для пользователя");
print qq{<bodybgcolor="#faf1d8">};
print "<center><h1>Перечень вакансий</h1></center>";
print"<center>Выберите вакансию и заполните анкету</center>";
print"<br>";
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
print "<form action=\"http://myserver/cgi-bin/anketa.bat\">";
print "<center><table border=1>";
print qq{<trALIGN="center"><th> № </th>
<th>Вакансия</th><th> Конкурс <br>на место</th>
<th>Ваш<br>выбор</th></font></tr>};
for($i=0;$i<$rows;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
$i++;
print "<tr>
<td ALIGN=\"center\">$i</td>";
$i--;
print"<td>$bakans</td>
<td><center>$knkrs</center></td>
<TD><center><INPUT type=\"radio\"name=\"vibor\"value=\"vib$i\"></center></TD>
</tr>";
}
$sth->finish();
$dbh->disconnect();
print"</table></center>";
print "<br>";
print "<center><INPUT type=\"submit\"value=\"Заполнить анкету\"></center\>";
print"<br>";
print"<center>Анкеты претендентов будут рассмотрены 25 января2003г.</center>";
print"</FORM>";
print end_html();
Файл anketa.cgi – исполняемаяпрограмма.
Выводит перечень основных требований к кандидату на вакансию наоснове данных таблицы t1 и предлагает претенденту заполнить анкетныеданные о себе.
Имеет 2 кнопки:
- “Отправить" – запускает скрипт itog.cgi и передает в негоанкетные данные претендента;
- "Очистить форму" – стирает из формы ошибочно введенныеанкетные данные.
anketa.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Анкета");
print qq{<body bgcolor="#faf1d8">};
my $pas=param("vibor");
$var=$pas;
$var=~ s/\D+//;
if ($pas eq "") {print qq{<pALIGN="center"><font size="5"><strong><fontcolor="#800000">
<br> Вы забыли выбрать вакансию!</font></strong></font></p>};
print "<br>";
print "<center><table border=0>";
print "<tr><td><FORMaction=\"http://myserver/cgi-bin/list.bat\">";
print "<center><INPUT type=\"submit\"value=\"Назад\"></center\>";
print "</FORM></td>";
print "<td><FORMaction=\"http://myserver/cgi-bin/Konti.bat\">";
print "<center><INPUT type=\"submit\"value=\"На главную\"></center\>";
print "</FORM></td></tr>";
print "</table></center>";
goto quit;
}
$dbh=DBI->connect("dbi:mysql:konti");
$sth=$dbh->prepare("SELECT * FROM t1;");
$rows=$sth->execute();
print "<center><h1>Заполните анкетные данные</h1></center>";
print qq{<p ALIGN="center"><fontsize="5">};
print"<center><u>Основные требования ккандидату</u></center>";
for($i=0;$i<$var+1;$i++)
{
($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;
if ($i==$var)
{
print "<center><table>";
print "<TR><TD>Образование</TD><TD>-$ed</TD></TR>";
print "<TR><TD>Специальность</TD><TD>-$Cpc</TD></TR>";
print"<TR><TD>Срок работы по специальности,лет </TD><TD>- $Crok</TD></TR>";
print "</center></table>";
}
}
print "</font></p>";
$sth->finish();
$dbh->disconnect();
print "<formaction=\"http://myserver/cgi-bin/itog.bat\">";
print "<center><table>";
print "<TR><TD>Фамилия имяотчество</TD><TD><inputname=\"fio\"></TD></TR>";
print"<TR><TD>Образование</TD>
<TD><SELECTname=\"ed\">
<OPTION value=\"высшее0\"selected>высшее
<OPTION value=\"нез/высшее1\">нез/высшее
<OPTION value=\"ср. техническое2\">ср.техническое
<OPTION value=\"ср. специальное3\">ср. специальное
<OPTION value=\"среднее4\">среднее
</SELECT>
</TD></TR>";
print "<TR><TD>Специальность</TD><TD><inputname=\"cpc\"></TD></TR>";
print "<TR><TD>Стаж работыпо специальности, лет </TD><TD><inputname=\"crok\"></TD></TR>";
print "<TR><TD>Адрес</TD><TD><inputname=\"adress\"></TD></TR>";
print"<TR><TD><BR></TD></TR>";
print qq{<INPUT type="hidden" name="vib"value=$pas>};
print "<TR><TD><inputtype=\"submit\" value=\"Отправить\"></TD>
<TD><INPUT type=\"reset\" value=\"Очистить форму\"></TD></TR>";
print "</table></center>";
print "</form>";
quit:
print end_html();
Файл itog.cgi – исполняемаяпрограмма.
Проверяет введенные анкетные данные на соответствие основнымтребованиям к претенденту, при выполнении которых заносит их в таблицу t2 и увеличивает значение конкурса на выбранную вакансию втаблице t1, в противном случае выводит мотивированноесообщение об отказе в принятии анкеты.