03.05 11:41Утренний позитив! Неудачные фото знаменитостей (ФОТО - ЖЕСТЬ)[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
03.05 11:32Экс-солистка группы "Рефлекс" Ирина Нельсон развлеклась в Арабских Эмиратах! (Cоблазнительные ФОТО)[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
02.05 18:0045-летняя Дэми Мур разделась для журнала после пластики (ФОТО)[УКРАИНСКИЙ МУЗЫКАЛЬНЫЙ ПОРТАЛ]
02.05 15:44Мухи 3D[Film.Ru]
02.05 15:44Милые мелочи[Film.Ru]
02.05 15:44Новый фильм Клинта Иствуда будет комедией[Film.Ru]
02.05 15:44"SuperПерец" Иона Хилл намерен проникнуть в "Трансформеры 2"[Film.Ru]
02.05 15:44Рыжий да красный -- человек опасный[Film.Ru]
02.05 15:44Николь Кидман сыграет проблемную звезду 60-х Дасти Спрингфилд[Film.Ru]
02.05 15:44Брэд Питт заинтересовался "Взрослением на метамфетамине"[Film.Ru]
Какая из вечных ценностей самая быстротечная:
Результат
Архив

Главная / Предметы / Педагогика / Автоматизированная система распределения мест и оценок качества олимпиадных заданий


Автоматизированная система распределения мест и оценок качества олимпиадных заданий - Педагогика - Скачать бесплатно


разную
сложность для разных задач.  Однако  сами  по  себе   эти  показатели  имеют
достаточно маленькие значения.
                                    [pic]
             Рис. 4. Диаграмма надежности реализации сложности.
      И последний параметр, это коэффициент мест. Для данной БД его значение
составляет 0,93. Это говорит о том, что 93% всех  участников  занимают  одно
заслуженное место, и только 7% делят свое место с другими.  Такой  результат
считается достаточно высоким.
Описание в целом.
            Все  параметры,  описанные  выше,  позволяют  сделать  несколько
выводов касательно данной БД. Во-первых, параметры качества заданий  говорят
о достаточно высоком классе подбора заданий, однако этот подбор не явился  в
результате сбалансированным, а это   большой  минус.  Во-вторых,  необходимо
подбирать (для этого коллектива) задачи с  большим  уровнем  сложности.  Это
может помочь в выявлении скрытых талантов учеников.
§3. Результаты, полученные на основе ведомостей студентов.
      Самым интересным из проделанной работы явились результаты,  полученные
на основе зимней сессии студентов физико-математического  факультета  нашего
университета. В качестве тестируемых были взяты  результаты  экзаменов  трех
групп  по  трем  предметам.  Естественно,  для  чистоты  эксперимента   было
необходимо полное различие в фактической сложности предметов. Поэтому,  были
выбраны три следующих: возрастная психология, общая физика и  математический
анализ. Причем последние два предмета были  взяты  у  двух  групп  отделения
«Физика».  Сдавались  эти  экзамены  в  зимнюю  сессию  одним   и   тем   же
преподавателям.
      Не секрет, что  в  студенческих  кругах  психология  считается  легким
экзаменом, общая физика  –  средним,  а  математический  анализ  –  сложным.
Однако  такое  деление  предметов  во  многом  зависит   от   преподавателя.
Например, если преподаватель принимает экзамен  по  математическому  анализу
очень мягко, то, очевидно, такой экзамен автоматически  становится  простым,
а если экзамен принимается очень жестко, то он становится сложным.
      Кроме этого сложность предмета зависит еще и от его фактической  сути.
Например, тот  же  математический  анализ  является  точной  наукой,  а  это
накладывает определенный  отпечаток  на  его  сложность.  Психология  же  во
многом является очевидным предметом (это многим только кажется).  Эти  факты
склоняют его сложность в более простую сторону. Физика же есть  эмпирическая
наука. Это значит, что практически все ее законы можно проверить  на  опыте.
Это  обстоятельство  вызывает  определенный  интерес  у  студентов,  а   это
способствует лучшему пониманию предмета.
      Из этих соображений вытекает суть той идеи, которую мы используем  для
описания конкретно этих результатов. А идея проста: если есть  набор  оценок
по каким-либо предметам, то, построив распределение по этим  оценкам,  можно
оценить жесткость экзаменаторов по конкретным дисциплинам.
      Первая БД (содержится в файле DBOLYMP2.DB) представляет собой протокол
экзамена по  математическому анализу у групп  15  и  16  ФМФ.  В  результате
обработки  данного  протокола  было  получено  следующее  распределение   по
суммарному баллу:
                                    [pic]
           Рис. 1. Распределение по суммарному баллу для DBOLYMP2.
Очевидно, что максимально возможный балл за экзамен равен  5,  а  минимально
возможный балл условно принимаем равным 2. Из вида диаграммы  можно  сделать
вывод о том, что самое оценка, которую  получила  большая  часть  студентов,
это 2. А оценка,  которую  получила  меньшая  часть  студентов,  это  5.  На
симметричный относительно среднестатистического балла  «колокол»  полученное
распределение явно не похоже. Причина этого может быть объяснена при  помощи
нескольких вариантов. Первый вариант заключается  в  чрезвычайной  жесткости
экзаменатора,  то  есть,  либо  он  спрашивает  со  студентов  то,  чего  не
рассказывал  на  лекциях,  либо  просто  спрашивает  очень  жестко.   Второй
вариант говорит о том, что сами студенты  пришли  на  экзамен  абсолютно  не
готовыми.
      Вторая БД (содержится в файле DBOLYMP3.DB) представляет собой протокол
экзамена тех же групп, но по общей  физике.  В  результате  обработки  этого
протокола получено следующее распределение.

                                    [pic]
           Рис. 2. Распределение по суммарному баллу для DBOLYMP3.
Аппроксимируя  данное  распределение,  мы  получаем  практически   идеальный
«колокол». Это говорит  о  сбаланированном  подходе  экзаменатора  к  приему
экзамена. То есть, при таком подходе осуществляется  гуманистический  подход
к личности студента,  а  также  равномерное  соединение  всех  трех  режимов
испытания.
      Третья БД (содержится в файле DBOLYMP4.DB) представляет собой протокол
экзамена по возрастной психологии у 11 группы ФМФ.  В  результате  обработки
данного протокола получено следующее  распределение.  На  рис.  3  мы  видим
полную противоположность распределению, полученному при анализе экзамена  по
математическому анализу. Здесь большая часть студентов получила 5, а  совсем
малая часть получила 3.
                                    [pic]
           Рис. 3. Распределение по суммарному баллу для DBOLYMP4.
Двоек  нет  вообще.  Такое  распределение  характерно  для  щадящего  режима
испытания. То есть экзаменационные вопросы, которые предлагались  студентам,
были очень простыми.
      Исходя из всех протоколов, описанных выше, можно  сделать  один  очень
важный  вывод.  На  экзамене  необходимо  придерживаться   такого   варианта
испытания, который представлен в описании экзамена по физике. Нет  смысла  в
очень жестком испытании (как на математическом анализе), однако  нет  смысла
и в очень щадящем режиме (как на психологии).  Необходимо  выбрать  «золотую
середину». Тогда преподаватель будет на 100% уверен в своей рациональности.



                            Глава 5. Заключение.

§1. Итоги исследования.

      Подводя итоги проведенных исследований, можно выделить  ряд  моментов.
Главный  из  них  заключается  в  том,  что  на  примере   интеллектуального
испытания  удалось  продемонстрировать  саму   возможность   количественного
моделирования педагогического процесса, создания автоматизированной  системы
и показать практическую значимость получаемых  результатов.  При  разработке
модели была реализована достаточно  последовательная  схема  педагогического
моделирования, в процессе  которой  была  сформулирована  замкнутая  система
исходных  педагогических  положений;   введены   понятия   идеализированного
испытания и  идеализированного  ансамбля  испытуемых  школьников;  выбран  и
изучен математический объект, адекватный оптимальным  педагогическим  итогам
испытаний  идеализированного  ансамбля;  дана  педагогическая  интерпретация
свойств   этого   объекта;   определены   оптимальный    педагогический    и
математический  формат  интеллектуального  испытания   и   взаимосвязь   его
исходных  и  итоговых  показателей;  исходя  из  теоретических  предпосылок,
разработана автоматизированная система, позволяющая   визуализировать  смысл
всей теории.
      Разработка модели и системы велась по отношению к конкретным вариантам
интеллектуального испытания,  в  качестве  которых  были  выбраны  испытания
участников олимпиад по физике и студентов физико-математического  факультета
РГПУ на различных учебных дисциплинах.
      Разработанную  схему  отличает   доказательность   и   обоснованность,
определяемые  достоверным  характером  исходных   педагогических   положений
модели  и  строгостью  ее  математического  аппарата.  Этот   аппарат   дает
возможность вести проектирование итогов интеллектуального  испытания,  может
составить  основу  инструментария  педагогической  экспертизы  испытания  на
предмет   его   соответствия   критериям   общепедагогического    характера.
Математический аппарат модели  позволил  построить  шкалу  сложности  задач,
ввести   понятие   сбалансированного   комплекта   задач,    обеспечивающего
оптимальное соответствие интеллектуального испытания новой шкале  ценностных
приоритетов  образования.  Был  рассмотрен  вопрос  о   выборе   показателей
приоритета,   о   дифференцированном    и    недифференцированном    порядке
распределения испытуемых школьников по занимаемым местам.
      Интерес представляют выявленные  свойства  идеализированного  ансамбля
как «механического» объединения школьников, на уровне  которого  реализуется
наиболее  простая,  но  в  то  же  время  и  самая   фундаментальная   форма
взаимоотношения  личности  и   коллектива,   выражающаяся   в   элементарном
сложении.   Подобное    объединение    школьников,    лишенное    выраженных
межличностных взаимоотношений, хорошо  соотносится  с  ансамблем  участников
олимпиады.  Идеализированный  ансамбль  отличается  заведомой  аддитивностью
своих свойств. Исследование подобных систем в научном  плане  имеет  большой
интерес. История науки дает основания надеяться,  что  они  могут  составить
простейшую  базу  для  построения  количественных  шкал,   необходимых   для
измерения педагогических  характеристик.  Объединение  школьников,  лишенное
выраженных  межличностных  и  групповых  взаимоотношений,  интересно  и   по
отношению к проблемам учебно-воспитательного коллектива. Оно  может  сыграть
роль первичной матрицы, на фоне которой влияние на  коллектив  межличностных
и групповых взаимоотношений должно прослеживаться наиболее рельефно.
      Практическую значимость имеют разработанные в рамках модели  2-блочные
и  3-блочные  макеты  олимпиадных   заданий,   характеризуемые   оптимальным
соответствием педагогической  модели.  Макеты  были  отработаны  в  условиях
реального   эксперимента.   Итоги   этого   эксперимента    показали,    что
педагогическая модель подтверждается опытом и имеет хорошие перспективы  для
практического использования. Она решает большинство накопившихся  на  уровне
региональных олимпиад проблем, способствуя переводу этих  олимпиад  в  режим
«талантосбережения».
      Отмечая  положительные  моменты   проведенного   исследования,   можно
остановиться   в   заключение   на   перспективах   его   практического    и
теоретического  использования.  Полученные  результаты  интересны  тем,  что
являются,  строго   говоря,   лишь   первым   шагом   на   пути   построения
полномасштабной   педагогической   модели    интеллектуального    испытания.
Характеризуя этот шаг в теоретическом  плане,  можно  сказать,  что  он  был
сделан в правильном направлении, поскольку вывел  нас  на  исходные  позиции
теории  вероятности,  способной  дать  вероятностное  истолкование  различия
репродуктивного и продуктивного видов деятельности школьников и процесса  их
соединения. Полученные данные важны тем, что  делают  контуры  вероятностной
модели интеллектуального испытания просматриваемыми. Залогом этого  является
математический  аппарат  модели,  сформированный   в   процессе   настоящего
исследования.
      Что касается перспектив практического использования  системы,  то  они
достаточно  понятны.  Разработанная  система  и   модель   интеллектуального
испытания в ее сегодняшнем виде пригодна для определения формата  не  только
олимпиад,  но  и  большинства  способов  оценки  и  контроля  уровня  знаний
учащихся (контрольных и самостоятельных работ, экзаменов, тестов). В  рамках
модели,  например,  можно  определить  возможный  формат  единого   экзамена
школьников, к которому должна  перейти  отечественная  система  образования.
Достаточно  лишь  задать  его  выходные   параметры   (разрешение,   уровень
интеллектуальной нагрузки школьников и т.д.).
      Модель может быть использована и для решения ряда  других  задач.  Она
позволяет исследовать структуру ансамбля испытуемых  школьников,  что  может
быть  интересным,  скажем,  для  оценки   влияния   дифференциации   системы
образования на уровень подготовки школьников. С  помощью  модели,  например,
можно  оценивать  не  только  уровень  сложности   задач,   но   и   уровень
профессиональной  подготовки  учителя,  через  его  знание  класса   и   его
способность     подготовить     разноуровневое     контрольное      задание,
сбалансированное по видам учебной деятельности.



               Приложение. Исходный код системы (по модулям).

Модуль 1.
Код данного модуля отвечает за формирование главного окна программы.
unit Unit1;

interface

uses
   Windows,  Messages,  SysUtils,  Variants,  Classes,  Graphics,  Controls,
Forms,
  Dialogs, Menus, ToolWin, ComCtrls, Grids, DBGrids, ExtCtrls, StdCtrls,
  Buttons, DB, DBTables, INIFiles, ShellAPI;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N10: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N20: TMenuItem;
    ToolBar1: TToolBar;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    GroupBox2: TGroupBox;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    GroupBox3: TGroupBox;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    dbOlymp: TDatabase;
    dsOlymp: TDataSource;
    Table1: TTable;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    procedure N5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N16Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    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
    begin
     First;
     for i:=1 to RecordCount do
      begin
       if BCon='3' then
        begin
         blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2'];
         blocks[2]:=FieldValues['MARK3']+FieldValues['MARK4'];
         blocks[3]:=FieldValues['MARK5']+FieldValues['MARK6'];
         param[1]:=(blocks[1]+blocks[2]+blocks[3])-3*NumMarks;
         param[2]:=2*(blocks[2]-0.5*(blocks[1]+blocks[3]));
         param[3]:=(blocks[3]-blocks[1])+NumMarks;
        end;
       if Bcon='2' then
        begin

blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3'];

blocks[2]:=FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6'];
         blocks[3]:=0;
         param[1]:=(blocks[1]+blocks[2])-3*NumMarks;
         param[2]:=(blocks[2]-blocks[1])+NumMarks;
         param[3]:=0;
        end;
       if Bcon='1' then
        begin

blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3']+Fi
eldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6'];
         blocks[2]:=0;
         blocks[3]:=0;
         param[1]:=blocks[1]-NumMarks;
         param[2]:=0;
         param[3]:=0;
        end;
       Edit;
       FieldValues['PARAM1']:=param[1];
       FieldValues['PARAM2']:=param[2];
       FieldValues['PARAM3']:=param[3];
       Next;
     end;
    end;
  except
   Application.MessageBox('Неизвестная
ошибка!','Ошибка',mb_Ok+MB_ICONHAND);
   Exit;
  end;
 try
  with Query1 do
   begin
    Active:=False;
    SQL.Clear;
    SQL.Add('select * from "'+Form1.Table1.TableName+'"');
    SQL.Add('order by PARAM1 desc, PARAM2 desc, PARAM3 desc');
    ExecSQL;
   end;
  DataSource1.DataSet:=Query1;
  DataSource1.Enabled:=True;
  DBGrid1.DataSource:=DataSource1;
  DBGrid1.Enabled:=True;
  Query1.Active:=True;
 except
  Application.MessageBox('Ошибка выполнения сортировки участников.
Проверьте конфигурацию.','Ошибка',mb_Ok+MB_ICONHAND);
  Exit;
 end;
end;

procedure TForm5.BitBtn1Click(Sender: TObject);
begin
 ModalResult:=mrOk;
end;



procedure TForm5.RadioGroup1Click(Sender: TObject);
 var
  SortStr:string;
begin
  case RadioGroup1.ItemIndex of
   0: SortStr:='order by PARAM1 desc';
  



Назад
 


Новые поступления

Украинский Зеленый Портал Рефератик создан с целью поуляризации украинской культуры и облегчения поиска учебных материалов для украинских школьников, а также студентов и аспирантов украинских ВУЗов. Все материалы, опубликованные на сайте взяты из открытых источников. Однако, следует помнить, что тексты, опубликованных работ в первую очередь принадлежат их авторам. Используя материалы, размещенные на сайте, пожалуйста, давайте ссылку на название публикации и ее автора.

281311062 (руководитель проекта)
401699789 (заказ работ)
© il.lusion,2007г.
Карта сайта
  
  
 
МЕТА - Украина. Рейтинг сайтов Союз образовательных сайтов