📄 系统程序文挡2.txt
字号:
var
selchengji: Tselchengji; //查询单个学生成绩
implementation
{$R *.dfm}
procedure Tselchengji.Button1Click(Sender: TObject);
begin
selfen.Close;
selfen.ParamByName('no').AsString :=no.Text ;
selfen.ParamByName('juanno').AsString :=juanhao.Text ;
selfen.open;
if not selfen.IsEmpty then
begin
xf.Text :=selfen.Fields.Fields[0].AsString ;
tf.Text :=selfen.Fields.Fields[1].AsString ;
zf.Text:=selfen.Fields.Fields[2].AsString ;
showmessage('您的总分为:'+zf.Text +'分!您的选择题总分为:'+xf.Text +'分!您的填空题总分为:'+tf.Text +'分!');
end
else
begin
showmessage('对不起!成绩库中没有您的成绩!');
end;
end;
procedure Tselchengji.FormActivate(Sender: TObject);
begin
no.SetFocus ;
end;
var
selfen1: Tselfen1; //查询某一试卷总体得分情况
implementation
uses Unit2;
{$R *.dfm}
procedure Tselfen1.Button2Click(Sender: TObject);
begin
chengjibaobiao.Preview ;
end;
procedure Tselfen1.Button1Click(Sender: TObject);
begin
selfen1.Close;
end;
procedure Tselfen1.zongfenClick(Sender: TObject); //按总分降序查看
begin
ql.Visible :=true;
qs.Visible :=true;
selfen.Close;
selfen.SQL.Clear ;
selfen.SQL.Add('select 学生学号,学生姓名,选择题分数,填空题分数,考生总分,所选试卷号 from 考生成绩表 where 所选试卷号=:no order by 考生总分 desc');
selfen.ParamByName('no').AsString :=inttostr(xuqiu.tag);
selfen.open;
selfen1.DBGrid1.Columns[0].Width :=120;
selfen1.DBGrid1.Columns[1].Width :=150;
selfen1.DBGrid1.Columns[2].Width :=120;
selfen1.DBGrid1.Columns[3].Width :=120;
selfen1.DBGrid1.Columns[4].Width :=100;
end;
procedure Tselfen1.noClick(Sender: TObject);//按学号升序查看
begin
ql.Visible :=false;
qs.Visible :=false;
selfen.Close;
selfen.SQL.Clear ;
selfen.SQL.Add('select 学生学号,学生姓名,选择题分数,填空题分数,考生总分,所选试卷号 from 考生成绩表 where 所选试卷号=:no order by 学生学号');
selfen.ParamByName('no').AsString :=inttostr(xuqiu.tag);
selfen.open;
selfen1.DBGrid1.Columns[0].Width :=120;
selfen1.DBGrid1.Columns[1].Width :=150;
selfen1.DBGrid1.Columns[2].Width :=120;
selfen1.DBGrid1.Columns[3].Width :=120;
selfen1.DBGrid1.Columns[4].Width :=100;
end;
procedure Tselfen1.jigeClick(Sender: TObject);//查看及格学生
var
xf,tf:integer;
begin
ql.Visible :=false;
qs.Visible :=false;
selzongfen.SQL.Clear ;
selzongfen.SQL.Add('select 本题型总分 from 确定试卷库 where 题型='+''''+'选择题'+''''+' and 试卷号=:no');
selzongfen.ParamByName('no').AsString :=inttostr(xuqiu.tag);
selzongfen.Open; //查选择题总分
xf:=selzongfen.Fields.Fields[0].AsInteger;
selzongfen.SQL.Clear ;
selzongfen.SQL.Add('select 本题型总分 from 确定试卷库 where 题型='+''''+'填空'+''''+' and 试卷号=:no');
selzongfen.ParamByName('no').AsString :=inttostr(xuqiu.tag);
selzongfen.Open;//查填空题总分
tf:=selzongfen.Fields.Fields[0].AsInteger;
if (xf+tf)<>0 then
begin
selfen.SQL.Clear ;
selfen.SQL.Add('select 学生学号,学生姓名,选择题分数,填空题分数,考生总分,所选试卷号 from 考生成绩表 where 所选试卷号=:no'+' and 100*考生总分/'+inttostr(xf+tf)+'>60 ');
selfen.ParamByName('no').AsString :=inttostr(xuqiu.tag);
selfen.Open;
selfen1.DBGrid1.Columns[0].Width :=120;
selfen1.DBGrid1.Columns[1].Width :=150;
selfen1.DBGrid1.Columns[2].Width :=120;
selfen1.DBGrid1.Columns[3].Width :=120;
selfen1.DBGrid1.Columns[4].Width :=100;
end
else
showmessage('您要查找的成绩不存在!');
end;
var
Form10: TForm10; //考生答题情况窗体
implementation
uses unit9, Unit6, Unit1;
{$R *.dfm}
procedure TForm10.FormActivate(Sender: TObject);
var
i:integer;
begin
//将试题编号插入表中
query1.Open;
query1.Edit;
for i:=1 to query1.RecordCount do
begin
query1.edit;
query1.FieldByName('试题编号').AsInteger :=i;
query1.Next ;
end;
chengji.Columns.Items[1].Title.Caption :=' '+chengji.Columns.Items[1].Title.Caption;
chengji.Columns.Items[2].Title.Caption :=' '+chengji.Columns.Items[2].Title.Caption;
chengji.Columns.Items[4].Title.Caption :=' '+chengji.Columns.Items[4].Title.Caption;
sel.SQL.Clear ;
sel.SQL.Add('select * from 考卷试题库 where 题型='+''''+'选择题'+'''');
sel.Open;//检查试卷中是否有选择题
if not sel.IsEmpty then
begin
sel.SQL.Clear ;
sel.SQL.Add('select 本题型总分 from 确定试卷库 where 试卷号=:no and 题型='+''''+'选择题'+'''');
sel.ParamByName('no').AsString :=student.juanhao.Text ;
sel.Open; //查选择题总分
xzf.Text :=sel.Fields.Fields[0].AsString ;
sel.SQL.Clear ;
sel.SQL.Add('select * from 考卷试题库 where 题型='+''''+'选择题'+''''+' and 是否正确='+''''+'是 '+'''');
sel.Open;
xz.Text :=inttostr(sel.RecordCount ); //正确题目
sel.SQL.Clear ;
sel.SQL.Add('select * from 考卷试题库 where 题型='+''''+'选择题'+''''+' and isnull(是否正确)');
sel.Open;
xw.Text :=inttostr(sel.RecordCount ); //出错题目
end;
sel.SQL.Clear ;
sel.SQL.Add('select * from 考卷试题库 where 题型='+''''+'填空'+'''');
sel.Open;
if not sel.IsEmpty then
begin
sel.SQL.Clear ;
sel.SQL.Add('select 本题型总分 from 确定试卷库 where 试卷号=:no and 题型='+''''+'填空'+'''');
sel.ParamByName('no').AsString :=student.juanhao.Text ;
sel.Open; //查填空题总分
tzf.Text :=sel.Fields.Fields[0].AsString ;
sel.SQL.Clear ;
sel.SQL.Add('select * from 考卷试题库 where 题型='+''''+'填空'+''''+' and 是否正确='+''''+'是 '+'''');
sel.Open;
tz.Text :=inttostr(sel.RecordCount );//正确数目
sel.SQL.Clear ;
sel.SQL.Add('select * from 考卷试题库 where 题型='+''''+'填空'+''''+' and isnull(是否正确)');
sel.Open;
tw.Text :=inttostr(sel.RecordCount );//出错数目
end;
if xz.Text ='0' then
begin
xzl.Text :='0';
xdf.Text :='0';
end
else
begin//xzl为选择题正确率
xzl.Text:=copy(floattostr(100*strtofloat(xz.Text )/(strtofloat(xz.text)+strtofloat(xw.Text))),1,4)+'%';
xdf.Text :=copy(floattostr(strtofloat(xz.Text )/(strtofloat(xz.text)+strtofloat(xw.Text))*strtofloat(xzf.Text )),1,4);
end;
if tz.Text ='0' then
begin
tzl.Text :='0';
tdf.Text :='0';
end
else
begin//tzl为填空题正确率
tzl.Text:=copy(floattostr(100*strtofloat(tz.Text )/(strtofloat(tz.text)+strtofloat(tw.Text))),1,4)+'%';
tdf.Text :=copy(floattostr(strtofloat(tz.Text )/(strtofloat(tz.text)+strtofloat(tw.Text))*strtofloat(tzf.Text )),1,4);
end;
zf.Text :=copy(floattostr(strtofloat(xdf.Text) +strtofloat(tdf.Text)),1,4);
tc.SetFocus ;
end;
procedure TForm10.Query1CalcFields(DataSet: TDataSet);
begin
if dataset.FieldByName('是否正确').AsString ='是' then
zw.Value :=' √'
else
zw.Value :=' ×';
end;
procedure TForm10.tcClick(Sender: TObject);//将考生成绩写入成绩表
begin
sel.SQL.Clear ;
sel.SQL.Add('insert into 考生成绩表 values(:no,:name,:xf,:tf,:zf,:juanno)');
sel.ParamByName('no').AsString :=student.no.Text;
sel.ParamByName('name').AsString :=student.name.Text ;
sel.ParamByName('xf').AsString :=xdf.Text ;
sel.ParamByName('tf').AsString :=tdf.Text ;
sel.ParamByName('zf').AsString :=zf.Text ;
sel.ParamByName('juanno').AsString :=student.juanhao.Text ;
sel.ExecSQL ;
form6.close;
form10.Close;
end;
procedure TForm10.BitBtn1Click(Sender: TObject);//显示具体出错题目
var
tk:string;
pie:string;
begin
pie:='''';
if student.Edit1.Text ='外语' then
tk:='外语填空题库'
else
tk:='线性代数填空题库';
panel4.Visible :=true;
chucuox.SQL.Clear ;
chucuox.SQL.Add('select 题目,选项A,选项B,选项C,选项D,考生答案,正确答案 from 考卷试题库 where isnull(是否正确)'+' and 题型='+''''+'选择题'+'''');
chucuox.Open;
chucuot.SQL.Clear ;
chucuot.SQL.Add('select 题号,题目,选项A+'+pie+','+pie+'+选项B+'+pie+','+pie+'+选项C+'+pie+','+pie+'+选项D as ksda from 考卷试题库 where isnull(是否正确)'+' and 题型='+''''+'填空'+'''');
chucuot.Open;
edit1.Text :=inttostr(chucuot.RecordCount );
if dbedit3.text<>'' then
begin
wr.SQL.Clear ;
wr.SQL.Add('select 空1+'+pie+','+pie+'+空2+'+pie+','+pie+'+空3+'+pie+','+pie+'+空4 as ri from '+tk+' where 题号=:no');
wr.ParamByName('no').AsString :=dbedit3.Text ;
wr.Open;//正确填空答案
end;
DBGrid1.Columns[0].Width :=120;
DBGrid1.Columns[1].Width :=150;
DBGrid1.Columns[2].Width :=120;
DBGrid1.Columns[3].Width :=120;
DBGrid1.Columns[4].Width :=100;
DBGrid1.Columns[5].Width :=120;
DBGrid1.Columns[6].Width :=100;
end;
procedure TForm10.Button3Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm10.Button1Click(Sender: TObject);
var
tk:string;
pie:string;
begin
pie:='''';
if student.Edit1.Text ='外语' then
tk:='外语填空题库'
else
tk:='线性代数填空题库';
chucuot.Prior ;
wr.SQL.Clear ;
if dbedit3.text<>'' then
begin
wr.SQL.Add('select 空1+'+pie+','+pie+'+空2+'+pie+','+pie+'+空3+'+pie+','+pie+'+空4 as ri from '+tk+' where 题号=:no');
wr.ParamByName('no').AsString :=dbedit3.Text ;
wr.Open;
end;
end;
procedure TForm10.Button2Click(Sender: TObject);
var
tk:string;
pie:string;
begin
pie:='''';
if student.Edit1.Text ='外语' then
tk:='外语填空题库'
else
tk:='线性代数填空题库';
chucuot.next ;
wr.SQL.Clear ;
if dbedit3.text<>'' then
begin
wr.SQL.Add('select 空1+'+pie+','+pie+'+空2+'+pie+','+pie+'+空3+'+pie+','+pie+'+空4 as ri from '+tk+' where 题号=:no');
wr.ParamByName('no').AsString :=dbedit3.Text ;
wr.Open;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -