Автор: Пользователь скрыл имя, 11 Февраля 2013 в 10:22, реферат
Новая шкала ценностных приоритетов, отражающая государственную политику и отношение педагогической науки к образованию, является на сегодняшний день главным фактором, определяющим необходимость реформирования школьной системы образования и перехода к 12-летней школе. Ожидаемые в связи с этим преобразования носят достаточно существенный характер, поскольку предполагают «осуществление принципиально другой направленности образования, связанной не с подготовкой «обезличенных» квалифицированных кадров, а с общим, социально-нравственным и профессиональным развитием личности».
Options := [ixDescending];
end;
CreateTable;
Application.MessageBox('
end
else Application.MessageBox('
end;
except
Application.MessageBox('
Exit;
end;
Form1.Table1.Active:=True;
Form1.dsOlymp.DataSet:=Form1.
Form1.DBGrid1.DataSource:=
Comm:=TStringList.Create;
Comm.Clear;
Comm.Add(Edit2.Text);
Comm.SaveToFile('Bases\'+
Comm.Free;
Form1.Label1.Caption:='Описани
ModalResult:=mrNo;
end;
end.
Модуль 6.
Этот модуль отвечает за весь процесс оценки качества заданий. В нем рассчитываются все параметры, и строятся необходимые диаграммы.
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, TeEngine, Series,
TeeProcs, Chart, DB, DBTables, INIFiles;
type
TForm7 = class(TForm)
Panel1: TPanel;
BitBtn1: TBitBtn;
Chart1: TChart;
Series1: TBarSeries;
DataSource1: TDataSource;
Query1: TQuery;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Chart2: TChart;
Series2: TBarSeries;
Chart3: TChart;
Series3: TLineSeries;
Series4: TBarSeries;
Series5: TBarSeries;
Label3: TLabel;
Series6: TLineSeries;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
Cf1:TIniFile;
implementation
uses Unit1, Unit5, foxsoft;
{$R *.dfm}
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
ModalResult:=mrOk;
end;
procedure TForm7.FormShow(Sender: TObject);
var
i,j,NumI,kl,kz,nz,gr:integer;
ind,per,block1,block2,block3,
p1,p2,p3:array [1..50] of double;
GrPar, GrPercent, parm:array[1..200] of double;
MCon, Default,maxb:string;
sbl1,sbl2,sbl3:double;
kn, kp:array[1..3] of double;
srbl1,srbl2,srbl3,sdxq1,sdxq2,
dx1,dx2,dx3,sigm1,sigm2,sigm3,
begin
try
with Query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('Select * from "'+Form1.Table1.TableName+'"')
ExecSQL;
end;
Query1.Active:=True;
Chart1.Enabled:=True;
except
Application.MessageBox('Ошибка инициализации
БД. Возможно не установлен BDE, или база
не открыта.','Ошибка',mb_Ok+MB_
Chart1.Enabled:=False;
Exit;
end;
if Query1.RecordCount=0 then
begin
Application.MessageBox('В БД нет ни одной
записи.','Сообщение',mb_Ok+MB_
Exit;
end;
Cf1:=TIniFile.Create(
try
with Cf1 do
begin
MCon:=ReadString('MARK_CONFIG'
if MCon='ONE_IN_ONE' then
begin
maxb:=ReadString('MARK_CONFIG'
end;
MCon:=ReadString('BLOCK_
end;
NumI:=StrToInt(maxb);
Cf1.Free;
except
Application.MessageBox('Ошибка чтения из
INI-файла. Проверьте конфигурацию.','Ошибка',mb_Ok+
Exit;
end;
for i:=0 to 200 do
begin
GrPar[i]:=0;
GrPercent[i]:=0;
parm[i]:=0;
end;
per:=0;
ind:=0;
Query1.First;
for j:=1 to Query1.RecordCount do
begin
parm[j]:=Query1.FieldValues['
Query1.Next;
end;
ind:=0;
for i:=1 to 6*NumI+1 do
begin
for j:=1 to Query1.RecordCount do
begin
if ind=parm[j] then per:=per+1;
end;
GrPar[i]:=ind;
GrPercent[i]:=per/Query1.Recor
per:=0;
ind:=ind+1;
end;
Series1.Clear;
Chart1.BottomAxis.Title.
Chart1.BottomAxis.Minimum:=0*
Chart1.BottomAxis.Maximum:=
For i:=0 to 6*NumI+1 do
begin
Series1.AddXY(GrPar[i],
end;
if MCon='2' then
begin
with Query1 do
begin
Series2.Clear;
Chart2.BottomAxis.Maximum:=
Chart2.BottomAxis.Minimum:=0;
n1:=0;
k:=1;
coun:=0;
First;
for i:=1 to RecordCount do
begin
block1:=FieldValues['MARK1']+
block2:=FieldValues['MARK4']+
Series2.AddXY(k,block1-block2)
if block1-block2>=0 then coun:=coun+1;
Next;
k:=k+1;
end;
end;
n1:=coun/Query1.RecordCount;
Label1.Caption:='Надежность реализации - '+FloatToStr(n1*100)+'%.';
end;
if MCon='3' then
begin
with Query1 do
begin
Series2.Clear;
Series4.Clear;
Series5.Clear;
Chart2.BottomAxis.Maximum:=
Chart2.BottomAxis.Minimum:=0;
n1:=0; n2:=0; n3:=0;
k:=1;
coun:=0; coun2:=0; coun3:=0;
First;
for i:=1 to RecordCount do
begin
block1:=FieldValues['MARK1']+
block2:=FieldValues['MARK3']+
block3:=FieldValues['MARK5']+
Series2.AddXY(k,block1-block2)
Series4.AddXY(k,block2-block3)
Series5.AddXY(k,block1-block3)
if block1-block2>=0 then coun1:=coun1+1;
if block2-block3>=0 then coun2:=coun2+1;
if block1-block3>=0 then coun3:=coun3+1;
Next;
k:=k+1;
end;
end;
n1:=coun1/Query1.RecordCount;
n2:=coun2/Query1.RecordCount;
n3:=coun3/Query1.RecordCount;
Label1.Caption:='Надежность реализации
- '+FloatToStr(Okrugl(n1*100,2))
end;
if MCon='1' then
begin
Series2.Clear;
Series4.Clear;
Series5.Clear;
Label1.Caption:='Параметр не имеет смысла с 1 блоком.';
end;
Label3.Caption:='Количество блоков задач - '+Mcon;
Label5.Caption:='Обшее
Label4.Caption:='Максимальный
if MCon<>'1' then
begin
Query1.First;
for i:=1 to Query1.RecordCount do
begin
p1[i]:=Query1.FieldValues['
p2[i]:=Query1.FieldValues['
p3[i]:=Query1.FieldValues['
Query1.Next;
end;
kl:=0;
j:=1;
kz:=Query1.RecordCount;
nz:=0;
gr:=0;
for i:=1 to kz do
begin
with Query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('Select * from "'+Form1.Table1.TableName+'"')
SQL.Add('where (PARAM1='+FloatToStr(p1[j])+') and (PARAM2='+FloatToStr(p2[j])+')
and (PARAM3='+FloatToStr(p3[j])+')
ExecSQL;
Active:=True;
kl:=Query1.RecordCount;
if kl=1 then j:=j+1;
if kl>1 then
begin
j:=j+kl;
nz:=nz+kl;
gr:=gr+1;
end;
end;
end;
Label2.Caption:='Коэффициент мест
- '+FloatToStr(Okrugl((kz-nz+gr)
end
else Label2.Caption:='Для одного
//This is a demo-code for KN & KP
try
with Query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('Select * from "'+Form1.Table1.TableName+'"')
ExecSQL;
end;
Query1.Active:=True;
Chart1.Enabled:=True;
except
Application.MessageBox('Ошибка инициализации
БД. Возможно не установлен BDE, или база
не открыта.','Ошибка',mb_Ok+MB_
Chart1.Enabled:=False;
Exit;
end;
sbl1:=0; srbl1:=0;
sbl2:=0; srbl2:=0;
sbl3:=0; srbl3:=0;
dx1:=0; dx2:=0; dx3:=0;
sdxq1:=0; sdxq2:=0; sdxq3:=0;
sigm1:=0; sigm2:=0; sigm3:=0;
Query1.First;
if MCon='2' then
begin
for i:=1 to Query1.RecordCount do
begin
block1:=Query1.FieldValues['
block2:=Query1.FieldValues['
sbl1:=sbl1+block1;
sbl2:=sbl2+block2;
Query1.Next;
end;
srbl1:=sbl1/Query1.
srbl2:=sbl2/Query1.RecordCount
Query1.First;
for i:=1 to Query1.RecordCount do
begin
block1:=Query1.FieldValues['
block2:=Query1.FieldValues['
dx1:=dx1+sqr(block1-srbl1);
dx2:=dx2+sqr(block2-srbl2);
Query1.Next;
end;
sdxq1:=dx1/Query1.RecordCount;
sdxq2:=dx2/Query1.RecordCount;
sigm1:=sqrt(sdxq1);
sigm2:=sqrt(sdxq2);
m:=StrToFloat(maxb);
kn[1]:=((m-srbl1)*((m-srbl1)*
kp[1]:=1-((srbl1*((m-srbl1)*
kn[2]:=((m-srbl2)*((m-srbl2)*
kp[2]:=1-((srbl2*((m-srbl2)*
Series3.Clear;
for i:=1 to 2 do
Series3.AddXY(kn[i],kp[i]);
end;
if MCon='1' then
begin
for i:=1 to Query1.RecordCount do
begin
block1:=Query1.FieldValues['
sbl1:=sbl1+block1;
Query1.Next;
end;
srbl1:=sbl1/Query1.
Query1.First;
for i:=1 to Query1.RecordCount do
begin
block1:=Query1.FieldValues['
dx1:=dx1+sqr(block1-srbl1);
Query1.Next;
end;
sdxq1:=dx1/Query1.RecordCount;
sigm1:=sqrt(sdxq1);
m:=StrToFloat(maxb);
kn[1]:=((m-srbl1)*((m-srbl1)*
kp[1]:=1-((srbl1*((m-srbl1)*
Series3.AddXY(kn[1],kp[1]);
end;
if MCon='3' then
begin
for i:=1 to Query1.RecordCount do
begin
block1:=Query1.FieldValues['
block2:=Query1.FieldValues['
block3:=Query1.FieldValues['
sbl1:=sbl1+block1;
sbl2:=sbl2+block2;
sbl3:=sbl3+block3;
Query1.Next;
end;
srbl1:=sbl1/Query1.
srbl2:=sbl2/Query1.
srbl3:=sbl3/Query1.
Query1.First;
for i:=1 to Query1.RecordCount do
begin
block1:=Query1.FieldValues['
block2:=Query1.FieldValues['
block3:=Query1.FieldValues['
dx1:=dx1+sqr(block1-srbl1);
dx2:=dx2+sqr(block2-srbl2);
dx3:=dx3+sqr(block3-srbl3);
Query1.Next;
end;
sdxq1:=dx1/Query1.RecordCount;
sdxq2:=dx2/Query1.RecordCount;
sdxq3:=dx3/Query1.RecordCount;
sigm1:=sqrt(sdxq1);
sigm2:=sqrt(sdxq2);
sigm3:=sqrt(sdxq3);
m:=StrToFloat(maxb);
kn[1]:=((m-srbl1)*((m-srbl1)*
kp[1]:=1-((srbl1*((m-srbl1)*
kn[2]:=((m-srbl2)*((m-srbl2)*
kp[2]:=1-((srbl2*((m-srbl2)*
kn[3]:=((m-srbl3)*((m-srbl3)*
kp[3]:=1-((srbl3*((m-srbl3)*
Series3.Clear;
for i:=1 to 3 do
Series3.AddXY(kn[i],kp[i]);
end;
m:=0;
Series6.Clear;
for i:=0 to 20 do
begin
Series6.AddXY(m,-1*m);
m:=m+2;
end;
end;
end.
Модуль 7.
Этот модуль
носит вспомогательный
unit foxsoft;
interface
uses SysUtils;
function
Okrugl(cs:double;numb:integer)
implementation
function
Okrugl(cs:Double;numb:integer)
var
db,db1,db2:double;
i:int64;
ii,ink,i1:integer;
st:string;
begin
db:=db-int(cs);
ink:=1;
for ii:=1 to numb do ink:=ink*10;
db1:=db*ink;
db2:=cs*ink*100;
i:=trunc(int(db2)/100);
i1:=Trunc(db2-i*100);
if i1>49 then inc(i);
Result:=i/ink;
end;
end.
Литература.