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

📄 cs_test.~pas

📁 学员管理的软件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit cs_test;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, StdCtrls, CheckLst, Buttons, MPlayer, Menus;

type
  Ttest = class(TForm)
    Animate1: TAnimate;
    Timer1: TTimer;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    sim_sel: TRadioGroup;
    multi_sel: TCheckListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    GroupBox5: TGroupBox;
    ques: TMemo;
    ans: TMemo;
    Image1: TImage;
    Button5: TButton;
    Button6: TButton;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    UpDown1: TUpDown;
    Button7: TButton;
    Memo3: TMemo;
    Label4: TLabel;
    ks_cmb: TComboBox;
    Label5: TLabel;
    Label6: TLabel;
    BitBtn1: TBitBtn;
    MediaPlayer1: TMediaPlayer;
    Label7: TLabel;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ColorDialog1: TColorDialog;
    BitBtn2: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ks_cmbChange(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure multi_selClick(Sender: TObject);
    procedure sim_selClick(Sender: TObject);
    procedure insert_ans;
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  test: Ttest;
  mnt:integer;
  snd:integer=0;
  cur_tx:string;
  auto_mf:boolean=false;
  cur_sjid,cur_stid:integer;
implementation

{$R *.dfm}
uses submain,main,P_ks_check,login;
procedure Ttest.insert_ans;
var
s:string;
//ii:Integer;
begin

s:='select * from 答卷表 where 用户id='+inttostr(login.myid)+
' and 试卷id='+inttostr(cur_sjid)+ ' and 题号='+inttostr(cur_stid);
with main.DataModule2 do
begin
   aq2.Close;
   aq2.SQL.Clear;
   aq2.SQL.Add(s);
   aq2.Open;
   if not aq2.Eof  then
   begin
   aq4.SQL.Clear;
   aq4.Close;
   aq4.SQL.Add('select * from 答卷表');
   aq4.Open;
   aq4.Insert;
   aq4.FieldByName('用户答案').AsString:=cs_test.test.ans.Text;
   aq4.FieldByName('试卷id').Asinteger:=cs_test.test.cur_sjid;
   aq4.FieldByName('用户id').AsInteger :=login.myid;
   aq4.FieldByName('题号').AsInteger :=cs_test.test.cur_stid;
   aq4.Post
   end
   else
   begin
   aq2.Edit;
   aq2.FieldByName('用户答案').AsString:=ans.Text;
   aq2.Post
   end;
   end;
end;

procedure Ttest.FormShow(Sender: TObject);
begin
if (submain.min = '' ) then
begin
messagebox(handle,'请先到主窗口中设置好考试时间','错误',MB_OK);
test.Close
end
else
mnt:=strtoint(submain.min);
//mnt:=60*cur_hour+cur_min;
with main.DataModule2 do
begin
aq1.SQL.Clear;
aq1.Close;
aq1.sql.Add('select distinct 试卷名称 from 试卷表');
aq1.Open;
ks_cmb.Items.Clear;
while not aq1.Eof do
begin
ks_cmb.Items.Add(aq1.FieldValues['试卷名称']);
aq1.Next;
end;
end;
end;

procedure Ttest.Timer1Timer(Sender: TObject);
var s:string;
i,ihour,imin:integer;
begin
   if snd<=0 then begin mnt:=mnt-1;snd:=60; end;
   if mnt<0 then messagebox(handle,'时间到,交卷','信息',MB_OK);
   snd:=snd-1;
   //dec(mnt);
   ihour:=mnt div 60;
   imin:=mnt;
   for i:=0 to ihour-1 do
   begin
   imin:=imin-60;
   end;
   s:='离交卷还有'+inttostr(ihour)+'小时'+inttostr(imin)+'分'+inttostr(snd)+'秒       ';
   label1.Caption:=s;
end;

procedure Ttest.ks_cmbChange(Sender: TObject);
var
ssql,tempstr,photostr:string;
sjid:integer;
begin
Animate1.Play(0,Animate1.FrameCount,-1);
button1.Enabled:=true;
button2.Enabled:=true;
button5.Enabled:=true;
button6.Enabled:=true;
button7.Enabled:=true;
button3.Enabled:=true;
bitbtn1.Enabled:=true;
submain.Form1.Hide;
timer1.Enabled:=true;
ks_cmb.Enabled:=false;
//调入试题库
with main.DataModule2 do
begin
aq1.SQL.Clear;
aq1.Close;
aq1.SQL.Add('select 试卷号 from 试卷表 where 试卷名称='''+ks_cmb.Text +'''');
aq1.Open;
if not aq1.Eof then
begin
sjid:=aq1.FieldValues['试卷号'];
cur_sjid:=sjid;
//有新用户参加考试
(*
aq3.Close;
aq3.SQL.Clear;
aq3.SQL.Add('select * from 答卷表');
aq3.Open;
aq3.Insert;
aq3.FieldByName('试卷id').AsInteger:=cur_sjid;
aq3.FieldByName('用户id').AsInteger:=login.myid;
aq3.Post
*)
end
else
begin
messagebox(handle,'调试题库时出错','错误信息',MB_OK);
exit;
end;
aq1.SQL.Clear;
aq1.Close;
ssql:='';
ssql:='select 题号,题目,选项1,选项2,选项3,选项4,name,图片 from 用户作答表';
ssql:=ssql+',试题表,题型表 where 用户作答表.试卷号='+inttostr(sjid);
ssql:=ssql+' and 试题表.题型=题型表.id and 用户作答表.题号=试题表.试题号 order by 题型,分值';
aq1.SQL.Add(ssql);
aq1.Open;
if aq1.Eof then
begin
messagebox(handle,'调试题库时出错','错误信息',MB_OK);
exit;
end;
aq1.First;
cur_stid:=aq1.FieldValues['题号'];
ques.Text:=aq1.FieldValues['题目'];
tempstr:=aq1.FieldValues['name'];
label6.Caption:='当前题型:'+tempstr;
if ((tempstr='单选题')or(tempstr='多选题')or(tempstr='判断题')) then
begin
 if(tempstr='单选题') then
 begin
 sim_sel.Visible:=true;
 multi_sel.Visible:=false;
 sim_sel.Items.Clear;
 sim_sel.Items.Add(aq1.FieldValues['选项1']);
 sim_sel.Items.Add(aq1.FieldValues['选项2']);
 sim_sel.Items.Add(aq1.FieldValues['选项3']);
 sim_sel.Items.Add(aq1.FieldValues['选项4']);
 end;
 if(tempstr='多选题') then
 begin
 sim_sel.Visible:=false;
 multi_sel.Visible:=true;
 multi_sel.Items.Clear;
 multi_sel.Items.Add(aq1.FieldValues['选项1']);
 multi_sel.Items.Add(aq1.FieldValues['选项2']);
 multi_sel.Items.Add(aq1.FieldValues['选项3']);
 multi_sel.Items.Add(aq1.FieldValues['选项4']);
 end;
 if(tempstr='判断题') then
 begin
 sim_sel.Visible:=false;
 multi_sel.Visible:=true;
 multi_sel.Items.Clear;
 multi_sel.Items.Add(aq1.FieldValues['选项1']);
 multi_sel.Items.Add(aq1.FieldValues['选项2'])
 end
end
else
 begin
 sim_sel.Visible:=false;
 multi_sel.Visible:=false;
end;
photostr:=aq1.FieldValues['图片'];
if (not fileexists(photostr)) then
begin
messagebox(handle,'加载题目所需图片时出错','错误信息',MB_OK);
exit
end
else
image1.Picture.LoadFromFile(photostr);
end;
button5.Click;
end;

procedure Ttest.Button5Click(Sender: TObject);
var tempstr,photostr:string;
begin
ans.Text:='';
button1.Enabled:=false;
button2.Enabled:=true;
//image1.Picture.Free;
if (main.DataModule2.AQ1.FindFirst) then
begin
  main.DataModule2.AQ1.First ;
  with main.DataModule2 do
    begin
    cur_stid:=aq1.FieldValues['题号'];
    label7.Caption:=inttostr(cur_stid);


    ques.Text:=aq1.FieldValues['题目'];
    tempstr:=aq1.FieldValues['name'];
    label6.Caption:='当前题型:'+tempstr;
    cur_tx:=tempstr;
     if ((tempstr='单选题')or(tempstr='多选题')or(tempstr='判断题')) then
     begin
        if(tempstr='单选题') then
        begin
         sim_sel.Visible:=true;
        multi_sel.Visible:=false;
        sim_sel.Items.Clear;
         sim_sel.Items.Add(aq1.FieldValues['选项1']);
         sim_sel.Items.Add(aq1.FieldValues['选项2']);
         sim_sel.Items.Add(aq1.FieldValues['选项3']);
         sim_sel.Items.Add(aq1.FieldValues['选项4']);
         end;
        if(tempstr='多选题') then
        begin
        sim_sel.Visible:=false;
        multi_sel.Visible:=true;
         multi_sel.Items.Clear;
        multi_sel.Items.Add(aq1.FieldValues['选项1']);
        multi_sel.Items.Add(aq1.FieldValues['选项2']);
        multi_sel.Items.Add(aq1.FieldValues['选项3']);
         multi_sel.Items.Add(aq1.FieldValues['选项4']);
         end;
        if(tempstr='判断题') then
         begin
         sim_sel.Visible:=false;
         multi_sel.Visible:=true;
         multi_sel.Items.Clear;
        multi_sel.Items.Add(aq1.FieldValues['选项1']);
         multi_sel.Items.Add(aq1.FieldValues['选项2'])
         end
        end
        else
        begin
         sim_sel.Visible:=false;
        multi_sel.Visible:=false;
         end;
         photostr:=aq1.FieldValues['图片'];
if ((not fileexists(photostr)) and (photostr<>'')) then
begin
messagebox(handle,'加载题目所需图片时出错','错误信息',MB_OK);
exit
end
else
image1.Picture.LoadFromFile(photostr);

     end;  //end of with

 end; //end of if
end;

procedure Ttest.Button1Click(Sender: TObject);
var tempstr,photostr:string;
begin
ans.Text:='';
main.DataModule2.AQ1.Prior;
if main.DataModule2.AQ1.Bof  then button1.Enabled:=false;
main.DataModule2.AQ1.Next;

if (main.DataModule2.AQ1.FindPrior) then
begin
//  if main.DataModule2.AQ1.Bof  then button1.Enabled:=false;
    button2.Enabled:=true;

⌨️ 快捷键说明

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