скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Автоматизированная система распределения мест и оценок качества олимпиадных заданий

    procedure BitBtn4Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  Config:TIniFile;

 

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;

{$R *.dfm}

procedure TForm1.N5Click(Sender: TObject);

begin

 if Application.MessageBox('Закончить работу?','Выход',mb_YesNo+mb_IconAsterisk)=idYes

  then Application.Terminate

  else Exit;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  if Application.MessageBox('Закончить работу?','Выход',mb_YesNo+mb_IconAsterisk)=idYes

  then Action:=caFree

  else Action:=caNone;

end;

procedure TForm1.N16Click(Sender: TObject);

begin

 ShellAbout(Form1.Handle,'FoxSoft Olymps v1.0 (beta)','Programm by Chernetckiy Kirill aka Fox',Application.Icon.Handle);

end;

procedure TForm1.N2Click(Sender: TObject);

begin

 Form6.ShowModal;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 try

  with dbOlymp do

   begin

    Connected:=False;

    Params.Clear;

    Params.Add('PATH='+GetCurrentDir+'\Bases');

    Params.Add('DEFAULT DRIVER=PARADOX');

    Params.Add('ENABLE BCD=FALSE');

    Connected:=True;

   end;

  except

   Application.MessageBox('Ошибка инициализации баз данных. Возможно не установлен BDE.','Ошибка',mb_Ok+mb_IconHand);

   Application.Terminate;

  end; 

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  Form2.ShowModal;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

 Form3.ShowModal;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

  Form4.ShowModal;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

try

 if Application.MessageBox('Хотите сохранить текущий вид таблицы?','Подтвердите',mb_YesNo+mb_IconAsterisk)=idNo

  then Exit

  else

   begin

    Config:=TIniFile.Create(GetCurrentDir+'\Config.ini');

    with Config do

     begin

      WriteString('GRID_CONFIG','FIO',IntToStr(DBGrid1.Columns[0].Width));

      WriteString('GRID_CONFIG','MARK1',IntToStr(DBGrid1.Columns[1].Width));

      WriteString('GRID_CONFIG','MARK2',IntToStr(DBGrid1.Columns[2].Width));

      WriteString('GRID_CONFIG','MARK3',IntToStr(DBGrid1.Columns[3].Width));

      WriteString('GRID_CONFIG','MARK4',IntToStr(DBGrid1.Columns[4].Width));

      WriteString('GRID_CONFIG','MARK5',IntToStr(DBGrid1.Columns[5].Width));

      WriteString('GRID_CONFIG','MARK6',IntToStr(DBGrid1.Columns[6].Width));

      WriteString('GRID_CONFIG','SUMMARK',IntToStr(DBGrid1.Columns[7].Width));

      WriteString('GRID_CONFIG','SCHOOL',IntToStr(DBGrid1.Columns[8].Width));

      UpdateFile;

     end;

   Config.Free;

   Application.MessageBox('Настройки успешно сохранены!','Сообщение',mb_Ok+mb_IconAsterisk);

  end;

except

 Application.MessageBox('Ошибка сохранения настроек!','Ошибка',mb_Ok+mb_IconHand);

 Exit;

end;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

 Form5.ShowModal;

end;

procedure TForm1.N3Click(Sender: TObject);

 var

  i:integer;

begin

OpenDialog1.InitialDir:=GetCurrentDir+'\Bases';

if OpenDialog1.Execute then

 begin

  try

   with Table1 do

    begin

     Active := False;

     DatabaseName := 'Olymp';

     TableType := ttParadox;

     TableName := ExtractFileName(OpenDialog1.FileName);

     Active:=True;

    end;

   dsOlymp.DataSet:=Table1;

   DBGrid1.DataSource:=dsOlymp;

   Application.MessageBox('База успешно открыта.','Сообщение',mb_Ok+MB_ICONASTERISK);

  except

    Application.MessageBox('Ошибка открытия базы. Возможно она не существует.','Ошибка',mb_Ok+MB_ICONHAND);

    Exit;

  end;

end;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

 Form7.ShowModal;

end;

end.

Модуль 2.

Код этого модуля отвечает за формирование баз данных, то есть за запись участника.

unit Unit2;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons;

type

  TForm2 = class(TForm)

    Panel1: TPanel;

    GroupBox1: TGroupBox;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Edit7: TEdit;

    Edit8: TEdit;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form2: TForm2;

implementation

uses Unit1, DB, DBTables;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

 ModalResult:=mrCancel;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

 var

  Fio,Sch:string;

  n1,n2,n3,n4,n5,n6,snum:double;

begin

  Fio:=Edit1.Text;

  Sch:=Edit2.Text;

  if (Fio='') or (Sch='') then

   begin

    Application.MessageBox('Не введено ФИО или Школа!','Ошибка',mb_Ok+mb_IconHand);

    Edit1.SetFocus;

    Exit;

   end;

  try

   n1:=StrToFloat(Edit3.Text);

   n2:=StrToFloat(Edit4.Text);

   n3:=StrToFloat(Edit5.Text);

   n4:=StrToFloat(Edit6.Text);

   n5:=StrToFloat(Edit7.Text);

   n6:=StrToFloat(Edit8.Text);

  except

   Application.MessageBox('Одно или несколько текстовых полей заполнены неверно!','Ошибка',mb_Ok+mb_IconHand);

   Edit1.SetFocus;

   Exit;

  end;

  snum:=n1+n2+n3+n4+n5+n6;

  try

   with Form1.Table1 do

    begin

     Active:=True;

     Append;

     FieldValues['COUNTER']:=RecordCount+1;;

     FieldValues['FIO']:=Fio;

     FieldValues['MARK1']:=n1;

     FieldValues['MARK2']:=n2;

     FieldValues['MARK3']:=n3;

     FieldValues['MARK4']:=n4;

     FieldValues['MARK5']:=n5;

     FieldValues['MARK6']:=n6;

     FieldValues['SUMMARK']:=snum;

     FieldValues['SCHOOL']:=Sch;

     Post;

    end;

    Edit1.Text:='';

    Edit2.Text:='';

    Edit3.Text:='';

    Edit4.Text:='';

    Edit5.Text:='';

    Edit6.Text:='';

    Edit7.Text:='';

    Edit8.Text:='';

    Edit1.SetFocus;

    Application.MessageBox(PChar('Добавлен участник: "'+Fio+'". Суммарный балл '+FloatToStr(snum)+'.'),'Сообщение',mb_Ok+mb_IconAsterisk);

 except

   Application.MessageBox('Ошибка записи участника в БД. Загрузите базу.','Ошибка',mb_Ok+mb_IconHand);

   Edit1.SetFocus;

   Exit;

 end; 

end;

end.

Модуль 3.

Данный модуль отвечает за удаление участника из базы данных.

unit Unit3;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons;

type

  TForm3 = class(TForm)

    Panel1: TPanel;

    Label1: TLabel;

    ComboBox1: TComboBox;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    procedure BitBtn1Click(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form3: TForm3;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

 ModalResult:=mrCancel;

end;

procedure TForm3.FormShow(Sender: TObject);

 var i:integer;

begin

 try

  if Form1.Table1.RecordCount=0 then

   begin

    Application.MessageBox('В БД нет ни одной записи!','Ошибка',mb_Ok+mb_IconHand);

    ComboBox1.Color:=clMenu;

    ComboBox1.Enabled:=False;

    BitBtn2.Enabled:=False;

   end

  else

   begin

     ComboBox1.Items.Clear;

     ComboBox1.Color:=clWhite;

     ComboBox1.Enabled:=True;

     BitBtn2.Enabled:=True;

     Form1.Table1.First;

     for i:=0 to Form1.Table1.RecordCount-1 do

      begin

        ComboBox1.Items.Add(Form1.Table1.FieldValues['FIO']);

        Form1.Table1.Next;

      end;

   end;

  ComboBox1.ItemIndex:=0;

  Form1.Table1.First;

 except

  Application.MessageBox('Ошибка БД. Возможно база не открыта!','Ошибка',mb_Ok+MB_ICONHAND);

  ComboBox1.Color:=clMenu;

  ComboBox1.Enabled:=False;

  BitBtn2.Enabled:=False;

 end;

end;

procedure TForm3.BitBtn2Click(Sender: TObject);

 var

  i:integer;

begin

 try

  Form1.Table1.First;

  For i:=0 to Form1.Table1.RecordCount-1 do

   begin

    if ComboBox1.Text=Form1.Table1.FieldValues['FIO'] then

     begin

      Form1.Table1.Delete;

      Application.MessageBox(PChar('Запись участника "'+ComboBox1.Text+'" успешно удалена'),'Удаление',mb_Ok+mb_IconAsterisk);

      ModalResult:=mrCancel;

      Exit;

     end;

    Form1.Table1.Next;

   end;

 except

  Application.MessageBox('Ошибка удаления записи!','Ошибка',mb_Ok+mb_IconHand);

  Exit;

 end;

end;

end.

Модуль 4.

Код этого модуля отвечает за формирование окна конфигурации программы, а также за запись настроек этой конфигурации.

unit Unit4;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons, INIFiles;

type

  TForm4 = class(TForm)

    Panel1: TPanel;

    Label1: TLabel;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    GroupBox1: TGroupBox;

    RadioGroup1: TRadioGroup;

    GroupBox2: TGroupBox;

    Label2: TLabel;

    Edit1: TEdit;

    RadioGroup2: TRadioGroup;

    procedure BitBtn1Click(Sender: TObject);

   

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form4: TForm4;

  Conf:TIniFile;

implementation

{$R *.dfm}

procedure TForm4.BitBtn1Click(Sender: TObject);

begin

 ModalResult:=mrCancel;

end;

procedure TForm4.BitBtn2Click(Sender: TObject);

begin

 try

  Conf:=TIniFile.Create(GetCurrentDir+'\Config.ini');

  with Conf do

   begin

    case RadioGroup1.ItemIndex of

     0: WriteString('BLOCK_CONFIG','NUM_BLOCKS','1');

     1: WriteString('BLOCK_CONFIG','NUM_BLOCKS','2');

     2: WriteString('BLOCK_CONFIG','NUM_BLOCKS','3');

    end;

    case RadioGroup2.ItemIndex of

     0: WriteString('SORT_CONFIG','SORT_TYPE','1');

     1: WriteString('SORT_CONFIG','SORT_TYPE','2');

     2: WriteString('SORT_CONFIG','SORT_TYPE','3');

    end;

    WriteString('MARK_CONFIG','MARKS_TYPE','ONE_IN_ONE');

    WriteString('MARK_CONFIG','MARKS_VALUE',Edit1.Text);

    UpdateFile;

   end;

  Conf.Free;

  Application.MessageBox('Настройки успешно сохранены!','Сообщение',mb_Ok+mb_IconAsterisk);

  ModalResult:=mrCancel;

  except

   Application.MessageBox('Ошибка записи настроек в INI-файл!','Ошибка',mb_Ok+mb_IconHand);

   Exit;

  end;

end;

end.

Модуль 5.

Код этого модуля представляет собой программный вариант распределения участников по местам, а также построение распределений по указанным параметрам. Проще говоря, модуль отвечает за окно распределения по местам и все действия, производимые в нем.

unit Unit5;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, Buttons, DB, DBTables, INIFiles,

  TeeProcs, TeEngine, Chart, TeeFunci, Series, Menus;

type

  TForm5 = class(TForm)

    Panel1: TPanel;

    Label1: TLabel;

    DBGrid1: TDBGrid;

    GroupBox1: TGroupBox;

    BitBtn1: TBitBtn;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    RadioGroup1: TRadioGroup;

    DataSource1: TDataSource;

    Query1: TQuery;

    PopupMenu1: TPopupMenu;

    N11: TMenuItem;

    N21: TMenuItem;

    N31: TMenuItem;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    ColorDialog1: TColorDialog;

    Chart1: TChart;

    Series1: TBarSeries;

    procedure FormShow(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure RadioGroup1Click(Sender: TObject);

    procedure N11Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure N4Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form5: TForm5;

  Conf1:TIniFile;

  SortType:String;

  NumMarks:double;

 

implementation

uses Unit1;

{$R *.dfm}

procedure TForm5.FormShow(Sender: TObject);

 var

  Default, BCon, MCon:string;

  i:integer;

  blocks, param:array [1..3] of double;

begin

 NumMarks:=0;

 RadioGroup1.ItemIndex:=3;

 try

  Conf1:=TIniFile.Create(GetCurrentDir+'\Config.ini');

  with Conf1 do

   begin

    BCon:=ReadString('BLOCK_CONFIG','NUM_BLOCKS',Default);

    Label2.Caption:='Количество блоков задач - '+Bcon;

    MCon:=ReadString('MARK_CONFIG','MARKS_TYPE',Default);

    SortType:=ReadString('SORT_CONFIG','SORT_TYPE',Default);

    if MCon='ONE_IN_ONE' then

      begin

        NumMarks:=StrToFloat(ReadString('MARK_CONFIG','MARKS_VALUE',Default));

        Label3.Caption:='Общий балл для всех задач равен '+FloatToStr(NumMarks);

      end;

    if SortType='1' then Label4.Caption:='Слабый коллектив (1,2,3)';

    if SortType='2' then Label4.Caption:='Сильный коллектив (1,3,2)';

    if SortType='3' then Label4.Caption:='Смешанный коллектив';

   end;

   Conf1.Free;

 except

  Application.MessageBox('Ошибка чтения из INI-файла. Проверьте конфигурацию.','Ошибка',mb_Ok+mb_IconHand);

  Exit;

 end;

 try

  with Query1 do

   begin

    Active:=False;

    SQL.Clear;

    SQL.Add('Select * from "'+Form1.Table1.TableName+'"');

    ExecSQL;

   end;

   Query1.Active:=True;

   Chart1.Enabled:=True;

   DBGrid1.Enabled:=True;

   RadioGroup1.Enabled:=True;

  except

   Application.MessageBox('Ошибка инициализации БД. Возможно не установлен BDE, или база не открыта.','Ошибка',mb_Ok+MB_ICONHAND);

   Chart1.Enabled:=False;

   DBGrid1.Enabled:=False;

   RadioGroup1.Enabled:=False;

   Exit;

  end;

  if Query1.RecordCount=0 then

   begin

    Application.MessageBox('В БД нет ни одной записи.','Сообщение',mb_Ok+MB_ICONASTERISK);

    RadioGroup1.Enabled:=False;

    Exit;

   end;

  try

   with Query1 do

Страницы: 1, 2, 3, 4, 5, 6, 7, 8


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.