⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 系统程序文挡2.txt

📁 试卷生成系统 delphi 试卷生成系统 试卷生成系统
💻 TXT
📖 第 1 页 / 共 2 页
字号:
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 + -