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

📄 w_testpaper.~pas

📁 很不错很实用的学生联机考试系统
💻 ~PAS
字号:
unit w_Testpaper;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DB, ExtCtrls, DBCtrls, DBTables, ComCtrls;

type
  Ttestpaper = class(TForm)
    StaticText1: TStaticText;
    Shape2: TShape;
    DBMemo1: TDBMemo;
    Shape1: TShape;
    Label6: TLabel;
    Label1: TLabel;
    number: TDBText;
    Label2: TLabel;
    name: TDBText;
    Label3: TLabel;
    sex: TDBText;
    Label7: TLabel;
    DBImage1: TDBImage;
    Timer1: TTimer;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    GroupBox5: TGroupBox;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    BitBtn1: TBitBtn;
    firstbtn: TBitBtn;
    nextbtn: TBitBtn;
    priorbtn: TBitBtn;
    finishbtn: TBitBtn;
    countbtn: TBitBtn;
    BitBtn2: TBitBtn;
    Query1: TQuery;
    Label4: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    DBText1: TDBText;
    Label5: TLabel;
    Label11: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    ComboBox1: TComboBox;
    Query3: TQuery;
    DataSource4: TDataSource;
    ComboBox3: TComboBox;
    Label10: TLabel;
    StaticText3: TStaticText;
    StatusBar1: TStatusBar;
    procedure BitBtn1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure nextbtnClick(Sender: TObject);
    procedure priorbtnClick(Sender: TObject);
    procedure firstbtnClick(Sender: TObject);
    procedure finishbtnClick(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure countbtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  testpaper: Ttestpaper;

implementation

uses exam, w_stu_main,chafen;



{$R *.dfm}

procedure Ttestpaper.BitBtn1Click(Sender: TObject);
begin
Application.Destroy;
Application.FreeInstance;
Application.terminate;
self.Close;
end;

procedure Ttestpaper.Timer1Timer(Sender: TObject);
//var procedure Ttestpaper.finishbtnClick();
begin

//label4.Caption:=timetostr(time);
//if(label4.caption=label8.caption)then
//Ttestpaper.finishbtnClick();

end;

procedure Ttestpaper.BitBtn2Click(Sender: TObject);
var str:string;
begin
   str:='select * from qurrytable where stu_id='''+number.caption+'''and paper_id='''+ComboBox1.Text+'''';
  // showmessage(str);
   Query3.SQL.Clear;
   Query3.SQL.Add(str);
   Query3.Open;
   if( query3.IsEmpty) then
   begin
    Query1.SQL.Clear;
   ComboBox1.Enabled:=false;
   BitBtn2.Enabled:=false;
   str:='select q.content,m.question_no from questionlib q natural join makepaper m  where m.paper_id='''+ComboBox1.Text+''' order by m.question_no';

   Query1.SQL.Add(str);
   Query1.Open;
   label9.Caption:=timetostr(time);
   label8.Caption:=timetostr(time+strtotime('02:00:00'));
   Query1.Active:=true;
   DBMemo1.Visible:=true;
   DBText1.Visible:=true;
   firstbtn.enabled:=true;
   nextbtn.enabled:=true;
   priorbtn.enabled:=true;
   finishbtn.enabled:=true;
   Combobox3.enabled:=true;
  end
  else
  showmessage('此试卷已经考过!!!')
end;

procedure Ttestpaper.nextbtnClick(Sender: TObject);
var str:string;
    points:Integer;
begin
str:='select answer from questionlib where question_id = (select question_id from makepaper where paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+''')';
//showmessage(str);
query3.SQL.Clear;
query3.SQL.Add(str);
query3.Open;
//showmessage( query3.FieldByName('answer').AsString);
if (ComboBox3.Text=query3.FieldByName('answer').AsString ) then
begin
str:='select points from makepaper where  paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+'''';
query3.SQL.Clear;
query3.SQL.Add(str);
query3.Open;
points:=query3.FieldByName('points').AsInteger ;
// showmessage(query3.FieldByName('points').AsString);
end
else
points:=0;
query3.SQL.Clear;
str:='select * from testresult where stu_id='''+number.Caption+''' and paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+'''';
Query3.SQL.Add(str);
Query3.Open;
if(Query3.IsEmpty) then
begin
str:='insert into testresult values('''+number.Caption+''','''+ComboBox1.Text+''','''+ComboBox3.Text+''','+IntToStr(points)+','''+DBText1.Caption+''')';
Query3.SQL.Clear;
Query3.SQL.Add(str);
query3.ExecSQL;
end
else
begin
str:='update testresult set stu_answer='''+ComboBox3.Text+''',score='+IntToStr(points)+' where stu_id='''+number.Caption+''' and paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+'''';
// showmessage(str);
Query3.SQL.Add(str);
Query3.SQL.Clear;
Query3.SQL.Add(str);
query3.ExecSQL;
end;


if(Query1.FindNext = true)  then
  priorbtn.Enabled:=true
else
 nextbtn.Enabled:=false;

end;

procedure Ttestpaper.priorbtnClick(Sender: TObject);
begin
if(query1.FindPrior) then

   nextbtn.Enabled:=true
else
 priorbtn.Enabled:=false;
end;

procedure Ttestpaper.firstbtnClick(Sender: TObject);
begin
 priorbtn.Enabled:=true;
 nextbtn.Enabled:=true ;
Query1.first;
end;

procedure Ttestpaper.finishbtnClick(Sender: TObject);
var str:string;
    score:integer;
begin
      DbMemo1.Enabled:=false;
      Combobox3.Enabled:=false;
      firstbtn.Enabled:=false;
      finishbtn.Enabled:=false;
      nextbtn.Enabled:=false;
      priorbtn.Enabled:=false;
      timer1.Enabled:=false;
      countbtn.Enabled:=true;
      query3.SQL.Clear;
      str:='select sum(score) from testresult where stu_id='''+number.Caption+''' and paper_id='''+ComboBox1.Text+'''';
      //showmessage(str) ;
      query3.SQL.Add(str);
      query3.Open;
     score:=query3.FieldByName('sum(score)').AsInteger;
    // showmessage(query3.FieldByName('sum(score)').AsString) ;
      str:='insert into qurrytable values('''+number.Caption+''','+intToStr(score)+','''+ComboBox1.Text+''')';
    // showmessage(str);
     Query3.SQL.Clear;
     Query3.SQL.Add(str);
     query3.ExecSQL;



end;

procedure Ttestpaper.ComboBox1Change(Sender: TObject);
begin
bitbtn2.Enabled:=true;
end;

procedure Ttestpaper.countbtnClick(Sender: TObject);
begin
Application.CreateForm(Tstd_chafen, std_chafen);
std_chafen.Visible:=true;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -