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

📄 sj_four_man.pas

📁 学员管理的软件
💻 PAS
字号:
unit sj_four_man;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, ComCtrls;

type
  TForm7 = class(TForm)
    dbgrid1: TDBGrid;
    Label1: TLabel;
    add_st: TBitBtn;
    del_st: TBitBtn;
    dbtm: TDBGrid;
    DataSource1: TDataSource;
    sb: TStatusBar;
    Button2: TBitBtn;
    next_tj: TBitBtn;
    Button1: TBitBtn;
    Button3: TBitBtn;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure next_tjClick(Sender: TObject);
    procedure add_stClick(Sender: TObject);
    procedure del_stClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form7: TForm7;
  inum:integer;
//  mysjid:integer;
  cur_ts:array[0..20] of integer;
implementation

{$R *.dfm}
uses main,sj_third,sj_second,sj_zero;
procedure TForm7.Button1Click(Sender: TObject);
begin
dbgrid1.Refresh;
dbtm.Refresh;
end;

procedure TForm7.FormShow(Sender: TObject);
var
ss:string;
i:integer;
begin
//mysjid:=sj_zero.sj_id;
next_tj.Enabled:=true;
for i:=0 to 20 do
 cur_ts[i]:=0;
label1.Caption:='请添加题目,当前题型:'+sj_second.tl.Strings[0];
//显示符合当前题型的题目
sb.Panels[0].Text:='当前题型:'+sj_second.tl.Strings[0];
i:=sj_second.ts[0];
sb.Panels[1].Text:='所剩题数:'+inttostr(i);
ss:='select 试题号,题目,分值,难度 from 试题表,题型表 where 试题表.题型=题型表.id and name='''+trim(sj_second.tl.Strings[0])+''' and 所属试卷='+inttostr(sj_zero.sj_id);
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add(ss);
aq1.Open;
DataSource1.DataSet:=AQ1;
dbgrid1.Refresh;
dbgrid1.Columns[0].Width:=40;
dbgrid1.Columns[1].Width:=200;
dbgrid1.Columns[2].Width:=30;
dbgrid1.Columns[3].Width:=30;
end;

end;

procedure TForm7.next_tjClick(Sender: TObject);
var
ss:string;
begin
if inum<sj_second.tl.Count-1 then
begin
if cur_ts[inum]<sj_second.ts[inum] then
begin
showmessage('当前题型还有试题,不得转入下一题型');
exit;
end
else
begin
inum:=inum+1;
sb.Panels[1].Text:='所剩题数:'+inttostr(sj_second.ts[inum]-cur_ts[inum]);
sb.Panels[0].Text:='当前题型:'+sj_second.tl.Strings[inum]
end;
end
else
next_tj.Enabled:=false;
label1.Caption:='请添加题目,当前题型:'+sj_second.tl.Strings[inum];
//显示符合当前题型的题目
ss:='';
ss:='select 试题号,题目,分值,难度 from';
ss:=ss+' 试题表,题型表 where 试题表.题型=题型表.id';
ss:=ss+' and name='''+trim(sj_second.tl.Strings[inum])+''' and 所属试卷='+inttostr(sj_zero.sj_id);
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add(ss);
aq1.Open;
dbgrid1.SetFocus;
datasource1.DataSet:=aq1;
dbgrid1.Refresh;
dbgrid1.Columns[0].Width:=40;
dbgrid1.Columns[1].Width:=200;
dbgrid1.Columns[2].Width:=30;
dbgrid1.Columns[3].Width:=30;
end;
end;

procedure TForm7.add_stClick(Sender: TObject);
var
mystid:integer;
//mysjid:integer;
ssql:string;
begin
//mysjid:=sj_zero.sj_id;
with main.DataModule2 do
begin
//aq2.Close;
//aq2.SQL.Clear;
//aq2.SQL.add('select 试卷号 from 试卷表 where 试卷名称='''+trim(mysjname)+'''');
//aq2.Open;
//mysjid:=aq2.FieldByName('试卷号').AsInteger;
mystid:=dbgrid1.Fields[0].AsInteger;
aq2.Close;
aq2.SQL.Clear;
ssql:='';
ssql:='select * from 用户作答表';
ssql:=ssql+' where 试卷号='+inttostr(sj_zero.sj_id)+' and 题号='+inttostr(mystid);
aq2.SQL.Add(ssql);
aq2.Open;
if not aq2.Eof then
begin
messagebox(handle,'本试卷中已经包含此题目'+#13+#10+'请重新选择题目','操作错误',MB_OK);
aq2.Close;
aq2.SQL.Clear;
aq2.SQL.Add('select id,试卷号,题号 from 用户作答表 where 试卷号='+inttostr(sj_zero.sj_id));
aq2.open;
form7.DataSource1.DataSet:=aq2;
dbtm.Refresh;
exit;
end;
if cur_ts[inum]<sj_second.ts[inum] then
begin
cur_ts[inum]:=cur_ts[inum]+1;
sb.Panels[1].Text:='所剩题数:'+INTTOSTR(sj_second.ts[inum]-cur_ts[inum]);
end
else
begin
messagebox(handle,'已经超过您设置的题的数目了','信息',MB_OK);
aq2.Close;
aq2.SQL.Clear;
aq2.SQL.Add('select id,试卷号,题号 from 用户作答表 where 试卷号='+inttostr(sj_zero.sj_id ));
aq2.open;
form7.DataSource1.DataSet:=aq2;
dbtm.Refresh;
exit;
end;
aq2.Insert;
aq2.FieldByName('试卷号').AsInteger:=sj_zero.sj_id;
aq2.FieldByName('题号').asinteger:=mystid;
aq2.Post;
aq2.Close;
aq2.SQL.Clear;
aq2.SQL.Add('select id,试卷号,题号 from 用户作答表 where 试卷号='+inttostr(sj_zero.sj_id));
aq2.open;
form7.DataSource1.DataSet:=aq2;
dbtm.Refresh;
messagebox(handle,'添加成功!','信息',MB_OK);
end;
end;

procedure TForm7.del_stClick(Sender: TObject);
var
s:string;
ii:integer;
begin
with main.DataModule2 do
begin
if MessageDlg('是否确认要删除?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
ii:=dbtm.Fields[2].AsInteger;
aq2.Close;
aq2.SQL.Clear;
s:='delete from 用户作答表 where 试卷号=';
s:=s+inttostr(sj_zero.sj_id)+' and 题号=';
s:=s+inttostr(ii);
aq2.SQL.Add(s);
aq2.ExecSQL;
aq2.Close;
aq2.SQL.Clear;
aq2.SQL.Add('select id,试卷号,题号 from 用户作答表 where 试卷号='+ inttostr(sj_zero.sj_id));
aq2.open;
form7.DataSource1.DataSet:=aq2;
dbtm.Refresh;
if cur_ts[inum]>0 then
begin
cur_ts[inum]:=cur_ts[inum]-1;
sb.Panels[1].Text:='所剩题数:'+INTTOSTR(sj_second.ts[inum]-cur_ts[inum]);
end;
messagebox(handle,'删除成功!','信息',MB_OK);
end;
end;
end;
procedure TForm7.Button2Click(Sender: TObject);
begin
sj_third.Form5.Show;
hide;
end;

procedure TForm7.Button3Click(Sender: TObject);
begin
close;
end;

end.

⌨️ 快捷键说明

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