?? unit5.pas
字號:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, DB, DBTables;
type
TForm5 = class(TForm)
Panel1: TPanel;
jiegou: TPanel;
quanzidong: TRadioButton;
banzidong: TRadioButton;
shougong: TRadioButton;
Button1: TButton;
Button2: TButton;
Button3: TButton;
chuansong: TQuery;
cunrnd: TComboBox;
qktk: TQuery;
seljuanno: TQuery;
xk: TEdit;
tk: TEdit;
procedure quanzidongClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure banzidongClick(Sender: TObject);
procedure shougongClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses unit4, Unit6,unit3, Unit7,unit8;
{$R *.dfm}
//此函數為按數目,范圍提供隨即數
function qurand(num,range1:integer):integer;
var
i,j,k:integer;
zancun:array[0..100] of integer;
begin
form5.cunrnd.Clear ;
zancun[0]:=trunc(random(range1)+1);
form5.cunrnd.Items.Add(inttostr(trunc(random(range1)+1))) ;
while form5.jiegou.tag<num-1 do
begin
i:=trunc(random(range1)+1);
for j:=0 to form5.Tag do
begin
if i=zancun[j] then
break;
end;
if j>form5.tag then
begin
form5.jiegou.Tag:=form5.jiegou.Tag+1;
form5.Tag:=form5.Tag+1;
zancun[form5.Tag]:=i;
form5.cunrnd.Items.Add(inttostr(i)) ;
end;
end;
form5.cunrnd.Items.Strings[0]:=inttostr(zancun[0]);
form5.Tag:=0;
form5.jiegou.Tag:=0;
end;
procedure TForm5.quanzidongClick(Sender: TObject);
var
k,h,juanno:integer;
begin
button3.Tag:=0;
qktk.ExecSQL ;
if quanzidong.Checked =true then
begin
if xuanke.selke.tag=0 then
begin //將線性代數試題插入試卷庫
chuansong.SQL.Add('select * from 線性代數選擇題庫');
chuansong.Open;
if not chuansong.IsEmpty then
begin
h:=qurand(7,chuansong.RecordCount); //從題庫中所有的試題中選擇7道題
chuansong.SQL.Clear ;
chuansong.SQL.Add('insert into 考卷試題庫 (題號,題型,題目,選項A,選項B,選項C,選項D,正確答案,所屬課程) select 題號,題型,題目,選項A,選項B,選項C,選項D,正確答案,所屬課程 from 線性代數選擇題庫 where 題號=:no');
for k:=0 to cunrnd.Items.Count-1 do
begin
chuansong.ParamByName('no').AsString :=cunrnd.items.strings[k];
chuansong.ExecSQL ;
end;
chuansong.SQL.Clear ;
end
else
showmessage('對不起!選擇題庫中沒有試題!');
//插入線性代數填空試題
chuansong.SQL.Clear ;
chuansong.SQL.Add('select * from 線性代數填空題庫');
chuansong.Open;
if not chuansong.IsEmpty then
begin
h:=qurand(7,chuansong.RecordCount);
chuansong.SQL.Clear ;
chuansong.SQL.Add('insert into 考卷試題庫 (題號,題型,題目,選項A,選項B,選項C,選項D,填空數目,所屬課程) select 題號,題型,題目,空1,空2,空3,空4,填空數目,所屬課程 from 線性代數填空題庫 where 題號=:no');
for k:=0 to cunrnd.Items.Count-1 do
begin
chuansong.ParamByName('no').AsString :=cunrnd.Items.Strings[k];
chuansong.ExecSQL ;
end;
end
else
showmessage('對不起!填空題庫中沒有試題!');
end
else
begin//將外語試題插入試卷題庫
chuansong.SQL.Clear ;
chuansong.SQL.Add('select * from 外語選擇題庫');
chuansong.Open;
if not chuansong.IsEmpty then
begin
h:=qurand(7,chuansong.RecordCount);
chuansong.SQL.Clear ;
chuansong.SQL.Add('insert into 考卷試題庫 (題號,題型,題目,選項A,選項B,選項C,選項D,正確答案,所屬課程) select 題號,題型,題目,選項A,選項B,選項C,選項D,正確答案,所屬課程 from 外語選擇題庫 where 題號=:no');
for k:=0 to cunrnd.Items.Count-1 do
begin
chuansong.ParamByName('no').AsString :=cunrnd.items.strings[k];
chuansong.ExecSQL ;
end;
chuansong.SQL.Clear ;
end;
end;
end
else
showmessage('對不起!選擇題庫中沒有試題!');
//插入外語填空試題
chuansong.SQL.Clear ;
chuansong.SQL.Add('select * from 外語填空題庫');
chuansong.Open;
if not chuansong.IsEmpty then
begin
h:=qurand(7,chuansong.RecordCount);
chuansong.SQL.Clear ;
if xuanke.selke.tag=1 then
begin
chuansong.SQL.Add('insert into 考卷試題庫 (題號,題型,題目,選項A,選項B,選項C,選項D,填空數目,所屬課程) select 題號,題型,題目,空1,空2,空3,空4,填空數目,所屬課程 from 外語填空題庫 where 題號=:no');
for k:=0 to cunrnd.Items.Count-1 do
begin
chuansong.ParamByName('no').AsString :=cunrnd.Items.Strings[k];
chuansong.ExecSQL ;
end;
end;
end
else
showmessage('對不起!填空題庫中沒有試題!');
chuansong.SQL.Clear ;
chuansong.SQL.Add('select * from 考卷試題庫');
chuansong.Open;
if not chuansong.IsEmpty then //用試卷形式展示所選試題
begin
form6.show;
form6.query1.ParamByName('tixing').AsString :='選擇題';
form6.query1.open;
form6.shumu.Caption :=inttostr(form6.Query1.RecordCount );
form6.gh.Visible :=true;
form6.cunjuan.Visible:=true;
if panel1.tag=0 then
begin
while button3.tag=0 do //得到唯一的試卷號
begin
seljuanno.Close;
juanno:=trunc(random(200))+1;
seljuanno.ParamByName('no').AsString :=inttostr(juanno);
seljuanno.Open;
if seljuanno.IsEmpty then
begin
form6.juanno.Caption:=form6.juanno.Caption +': '+inttostr(juanno);
button3.Tag:=1;
end;
end;
panel1.Tag:=1;
form6.kecheng.Caption:=form6.kecheng.Caption +': '+teacher.ke.Text;
end;
end;
form5.Close;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
showmessage('由系統自動完成試卷生成的全部過程,包括(題型,試題數目,各題型分值,試卷內容)');
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
showmessage('由教師選擇(題型,試題數目,各題型分值)再由系統完成試卷生成操作!');
end;
procedure TForm5.Button3Click(Sender: TObject);
begin
showmessage('由教師選擇("題目",題型,試題數目,各題型分值)再由系統完成試卷生成操作!');
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
randomize();
end;
procedure TForm5.banzidongClick(Sender: TObject);
begin
if banzidong.Checked =true then
begin
form7.show;
banzidong.Tag:=1;
form7.Timer1.Enabled :=true;
form5.Close;
end;
end;
procedure TForm5.shougongClick(Sender: TObject);
begin
form8.show;
form8.xuanze.Visible :=true;
form8.tiankong.Visible :=false;
if xuanke.selke.tag=0 then
begin
xk.Text :='線性代數選擇題庫';
tk.text:='線性代數填空題庫';
end
else
begin
xk.text:='外語選擇題庫';
tk.text:='外語填空題庫';
end;
qktk.SQL.Clear ;
qktk.SQL.Add('update '+form5.xk.Text+ ' set 是否選中='+''''+'false'+'''');
qktk.ExecSQL ;
qktk.SQL.Clear ;
qktk.SQL.Add('update '+form5.tk.Text+ ' set 是否選中='+''''+'false'+'''');
qktk.ExecSQL ;
form8.xuanti.SQL.Add('select * from '+xk.text);
form8.xuanti.Open;
form8.shumu.Caption :=inttostr(form8.xuanti.RecordCount );
form5.Close;
end;
procedure TForm5.FormActivate(Sender: TObject);
begin
form6.N2.Visible :=false;//隱藏試卷提交按扭
form6.zhengque.Visible :=true;
form6.k1.Ctl3D:=false; //將填空題答案以標簽的形式表現
form6.k1.BorderStyle :=bsnone;
form6.k1.Color :=form6.xuanze.Color ;
form6.k2.Ctl3D:=false;
form6.k2.BorderStyle :=bsnone;
form6.k2.Color :=form6.xuanze.Color ;
form6.k3.Ctl3D:=false;
form6.k3.BorderStyle :=bsnone;
form6.k3.Color :=form6.xuanze.Color ;
form6.k4.Ctl3D:=false;
form6.k4.BorderStyle :=bsnone;
form6.k4.Color :=form6.xuanze.Color ;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -