Разработка программного средства по автомати-зации работы организации по трудоустройству населения

Автор: Пользователь скрыл имя, 15 Марта 2011 в 09:17, курсовая работа

Описание работы

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

Содержание

ВВЕДЕНИЕ 3

1 НАЗНАЧЕНИЕ РАЗРАБАТЫВАЕМОЙ СИСТЕМЫ 4

2 ОПИСАНИЕ СРЕДСТВ РЕАЛИЗАЦИИ ПРИЛОЖЕНИЯ 6

2.1 Базы данных 6

2.1.1 Понятие базы данных 6

2.1.2 Сетевые базы данных 7

2.1.3 Реляционные базы данных 8

2.2 Язык SQL 9

2.3 Обзор Borland Delphi 11

3 ОПИСАНИЕ СТРУКТУРЫ РАЗРАБОТАННОЙ БАЗЫ ДАННЫХ 15

3.1 Состав таблиц базы данных 15

3.2 Структура таблиц базы данных 16

4 СХЕМА ДИАЛОГА ПОЛЬЗОВАТЕЛЯ С СИСТЕМОЙ 18

4.1 Главное окно и меню системы 18

4.2 Справочники 18

4.3 Оценка 20

4.4 Группировка 21

4.5 Трудоустройство 23

ЗАКЛЮЧЕНИЕ 24

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 25

ПРИЛОЖЕНИЕ 26

Работа содержит 1 файл

КУРСОВАЯ.docx

— 1.82 Мб (Скачать)

    procedure Button1Click(Sender: TObject);  //Функция выполняющая после клика по кнопке

    procedure FormClose(Sender: TObject; var Action: TCloseAction);  //Функция выполняющая после закрытия формы

    procedure FormCreate(Sender: TObject); //Функция выполняющая после создания формы

  private

    { Private declarations }

  public

  procedure Podschet();  //Процедура нахождения минимального и максимального года и подсчета разницы между этими годами

  function YearP(n:integer):string; //Функция возвращающая строку в зависимости от переменной n  

    { Public declarations }

  end;

var

  k,max,min,kol:integer;

  FormPrognos: TFormPrognos;

implementation

uses UnitProbnik2, UDataModule, UMain;

{$R *.dfm} 

function YearP(n:integer):string; 

begin

  if ((n>1) and (n<5)) or ((n mod 10>1) and (n mod 10 < 5)) then YearP:='года' 

  else if (n mod 10=1) or (n=1) then YearP:='год'

  else YearP:='лет';

  if (n>9) and (n<21) then YearP:='лет';

end; 

procedure TFormPrognos.Podschet();//Ранее описывалась эта функция

end; 

procedure TFormPrognos.FormCreate(Sender: TObject);

begin

  memo1.Clear;  //Очистка поля записей при создании формы

end; 

procedure TFormPrognos.Button1Click(Sender: TObject);

var w:integer;

    n:real;

begin

  memo1.Clear;  //Очистка поля записи

  Podschet();   //Выполнение функции подсчета

  w:=StrToInt(Edit1.Text);  //Занесение в переменную значения заданное пользователем в поле Edit

  n:=int((k*100/kol)/(max-min)*w); //Подсчет процента безработицы на будущее за период времени заданный пользователем

  memo1.Lines.Add('По данным таблицы:'); //Добавление записи в поле

if (k=0) or (n=0) then memo1.Lines.Add('В  ближайщее время  уровень безработицы не измениться');  //Добавление в поле для записи результатов расчета

if (k<0) then

   memo1.Lines.Add('Через  ' + IntToStr(w) + ' ' + YearP(w) + ' безработица уменьшится  на ' + FloatToStr(n) + '%'); //Добавление в поле для записи результатов расчета

if (k>0) then

   memo1.Lines.Add('Через  ' + IntToStr(w) + ' ' + YearP(w) + ' безработица увеличится  на ' + FloatToStr(n) + '%'); //Добавление в поле для записи результатов расчета

end; 

procedure TFormPrognos.FormClose(Sender: TObject;

  var Action: TCloseAction);

begin

  FMain.Visible:=True;  //При закрытии формы «Прогноз темпов безработицы» видимость главной формы включается

end;

end. 

     unit UnitSearch, предназначен для поиска наиболее подходящей специальности для безработного из списка вакансий. 

Основные функции и процедуры:

procedure TFormSearch.FormActivate(Sender: TObject); //Процедура выполняющаяся при открытии формы «Поиск подходящей вакансии»

begin

  Query.Close;

  Query.SQL.Clear;

  Query.SQL.Add('SELECT unemployed.ID, unemployed.name FROM unemployed');

  Query.SQL.Add('Order By unemployed.name');  //Добавление в компонетну запроса выбора кода и имени безработного

  Query.Open;

  ComboBox1.Clear; //Очищение компоненты выпадающего списка

  while not Query.Eof do  //Выполнениц цикла пока компонента запросов не дойдёт до конца

  begin

    ComboBox1.Items.AddObject(Query.Fields.Fields[1].AsString, Pointer(Query.Fields.Fields[0].AsInteger));  //Заполнение компоненты из запроса именами безработных по их коду

    Query.Next; 

  end;

  memo1.Text:='';memo2.Text:='';memo3.Text:='';memo4.Text:=''; memo5.Text:='';  //Очистка полей заполнения

  Query.Active:=False;

  Query.SQL.Clear; 

end; 

procedure TFormSearch.Button1Click(Sender: TObject); //Процедура выполняющаяся после клика по кнопке Button1

begin

  Query.Close;

  Query.SQL.Clear;

  Query.SQL.Add('Select Enterprice.Name as en, List.Zarabotok as zar,List.rabochi_den as den,List.Otpusk as ot,Speciality.name as sp '); //Добавление в компоненту запроса выбора имени, заработка, количество рабочих дней и количества дней отпуска

  Query.SQL.Add('FROM Unemployed,List,Enterprice,Speciality');

  Query.SQL.Add('WHERE(Unemployed.ID=:Prm1) and List.ID_Ent=Enterprice.ID and Unemployed.ID_Spec=List.ID_Spec and Unemployed.ID_Educate=List.ID_Educate and Unemployed.ID_Sex=List.ID_Sex and Unemployed.Stag>=List.Stag and Speciality.ID=List.ID_Spec');

  Query.SQL.Add('Order by List.Zarabotok DESC,List.rabochi_den ASC,List.Otpusk DESC;');//Группировка по заработку, количеству рабочих дней и отпускных дней

  Query.ParamByName('Prm1').Value:=integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]); //Заполнения параметра 'Prm1' выбранной фамилией из выпадающего списка

  Query.ExecSQL;

  Query.Active:=True;

  if  (Query.fieldbyname('en').AsString <> '') then //Если по запросу найдена подходящая вакансия то выполняется следущее:

  begin

    memo1.Text:=Query.fieldbyname('en').AsString; //Заполнение полей записей параметрами полученными из запроса

    memo2.Text:=Query.fieldbyname('sp').AsString;

    memo3.Text:=Query.fieldbyname('den').AsString;

    memo4.Text:=Query.fieldbyname('ot').AsString;

    memo5.Text:=Query.fieldbyname('zar').AsString;

  end

  else ShowMessage('Для  данного безработного  нет подходящей  вакансии'); //Если подходящей вакансии не найденно на экран выводится сообщение

  Query.Active:=False;

  Query.SQL.Clear;

end; 

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

Список  Основных функций и процедур:

  procedure AddStag(n,n1 : integer);  //Функция добавления результатов группировки по стажу в табилцу и диаграмму

  procedure AddSex(s : string; n: integer);  //Функция добавления результатов группировки по полу в табилцу и диаграмму

  procedure AddAge(n,n1 : integer);  //Функция добавления результатов группировки по возрасту в табилцу и диаграмму

  procedure SpecAdd();//Функция добавления результатов группировки по специальности в табилцу и диаграмму

  procedure BezrabAdd();//Функция добавления результатов группировки по причине безработицы в табилцу и диаграмму

  function AgeK(n1,n2:integer):integer; //Функция группировки безработных по возрасту

  function SexK (n:integer):integer;  //Функция группировки безработных по полу

  function StagK(n1,n2:integer):integer;  //Функция группировки безработных по стажу

Информация о работе Разработка программного средства по автомати-зации работы организации по трудоустройству населения