📄 globalu.~pas
字号:
unit GlobalU;
interface
uses
SysUtils, Variants,ADODB,windows,Forms;
type
TStudentInfo = record
LoginTime: TDatetime; //登录时间
Team: string; //考生区队
Name: string; //考生姓名
ID: string; //考生学号
StartTime: TDatetime; //开始时间
RemainTime: integer; //剩余时间
SubTime: TDatetime; //交卷时间
score: real; //得分
end;
TSysSetup = record
TestTimeCnt: integer; //答题时间
SingleChoiceCnt: integer; //单选题条数
SCMark: integer; //单选题总分
SCItemCnt: integer; //单选题选项数
SCComment: string; //单选题说明
MultiChoiceCnt: integer; //多选题条数
MCMark: integer; //多选题总分
MCItemCnt: integer; //多选题选项数
MCComment: string; //多选题说明
JudgeCnt: integer; //多选题条数
JMark: integer; //多选题总分
JComment: string; //多选题说明
end;
function GetQuestions(): boolean;
function GetSysInfo(): Boolean;
function GetStudentInfoByID(sID: string): integer;
function GetPassword(): string;
function GetScore(var TotalScore,SCScore,MCScore,JScore: real): boolean;
var
StudentInfo: TStudentInfo;
SysSetup: TSysSetup;
implementation
uses dmU;
function GetQuestions(): boolean;
var
I,recc: integer;
sqlstr: string;
begin
result := false;
//随机抽取单选题
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
dmglobal.Query_Exec.SQL.Add('select * from 单选题库');
dmglobal.Query_Exec.Open;
recc := dmglobal.Query_Exec.RecordCount;
dmglobal.Query_Exec.First;
while not dmglobal.Query_Exec.Eof do
begin
application.ProcessMessages;
dmglobal.Query_Exec.Edit;
dmglobal.Query_Exec.FieldByName('Random').AsInteger := Random(recc);
dmglobal.Query_Exec.Next;
end;
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
sqlstr := format('select top %d * from 单选题库 order by Random',[SysSetup.SingleChoiceCnt]);
dmglobal.Query_Exec.SQL.Add(sqlstr);
dmglobal.Query_Exec.Open;
dmglobal.Query_Exec.First;
with TADOQuery.Create(nil) do
try
connection := dmglobal.dbsystem;
I := 1;
while not dmglobal.Query_Exec.Eof do
begin
if I>SysSetup.SingleChoiceCnt then break;
application.ProcessMessages;
close;
sql.Clear;
sqlstr := format('insert into 单选题 (学号,题目内容,A,B,C,D,E,F,G,H,标准答案) values (''%s'',''%d、%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'')',
[StudentInfo.ID,
I,
dmglobal.Query_Exec.FieldByName('题目内容').asstring,
dmglobal.Query_Exec.FieldByName('A').asstring,
dmglobal.Query_Exec.FieldByName('B').asstring,
dmglobal.Query_Exec.FieldByName('C').asstring,
dmglobal.Query_Exec.FieldByName('D').asstring,
dmglobal.Query_Exec.FieldByName('E').asstring,
dmglobal.Query_Exec.FieldByName('F').asstring,
dmglobal.Query_Exec.FieldByName('G').asstring,
dmglobal.Query_Exec.FieldByName('H').asstring,
dmglobal.Query_Exec.FieldByName('标准答案').asstring
]);
Sql.Add(sqlstr);
Execsql();
Close;
dmglobal.Query_Exec.Next;
Inc(I);
end;
finally
free;
end;
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
//随机抽取复选题
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
dmglobal.Query_Exec.SQL.Add('select * from 复选题库');
dmglobal.Query_Exec.Open;
recc := dmglobal.Query_Exec.RecordCount;
dmglobal.Query_Exec.First;
while not dmglobal.Query_Exec.Eof do
begin
application.ProcessMessages;
dmglobal.Query_Exec.Edit;
dmglobal.Query_Exec.FieldByName('Random').AsInteger := Random(recc);
dmglobal.Query_Exec.Next;
end;
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
sqlstr := format('select top %d * from 复选题库 order by Random',[SysSetup.MultiChoiceCnt]);
dmglobal.Query_Exec.SQL.Add(sqlstr);
dmglobal.Query_Exec.Open;
dmglobal.Query_Exec.First;
with TADOQuery.Create(nil) do
try
connection := dmglobal.dbsystem;
I := 1;
while not dmglobal.Query_Exec.Eof do
begin
if I>SysSetup.MultiChoiceCnt then break;
application.ProcessMessages;
close;
sql.Clear;
sqlstr := format('insert into 复选题 (学号,题目内容,A,B,C,D,E,F,G,H,标准答案A,标准答案B,标准答案C,标准答案D,标准答案E,标准答案F,标准答案G,标准答案H) values (''%s'',''%d、%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',%s,%s,%s,%s,%s,%s,%s,%s)',
[StudentInfo.ID,
I,
dmglobal.Query_Exec.FieldByName('题目内容').asstring,
dmglobal.Query_Exec.FieldByName('A').asstring,
dmglobal.Query_Exec.FieldByName('B').asstring,
dmglobal.Query_Exec.FieldByName('C').asstring,
dmglobal.Query_Exec.FieldByName('D').asstring,
dmglobal.Query_Exec.FieldByName('E').asstring,
dmglobal.Query_Exec.FieldByName('F').asstring,
dmglobal.Query_Exec.FieldByName('G').asstring,
dmglobal.Query_Exec.FieldByName('H').asstring,
dmglobal.Query_Exec.FieldByName('标准答案A').asstring,
dmglobal.Query_Exec.FieldByName('标准答案B').asstring,
dmglobal.Query_Exec.FieldByName('标准答案C').asstring,
dmglobal.Query_Exec.FieldByName('标准答案D').asstring,
dmglobal.Query_Exec.FieldByName('标准答案E').asstring,
dmglobal.Query_Exec.FieldByName('标准答案F').asstring,
dmglobal.Query_Exec.FieldByName('标准答案G').asstring,
dmglobal.Query_Exec.FieldByName('标准答案H').asstring
]);
Sql.Add(sqlstr);
Execsql();
Close;
dmglobal.Query_Exec.Next;
Inc(I);
end;
finally
free;
end;
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
//随机抽取判断题
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.IndexName := '';
dmglobal.Query_Exec.SQL.Clear;
dmglobal.Query_Exec.SQL.Add('select * from 判断题库');
dmglobal.Query_Exec.Open;
recc := dmglobal.Query_Exec.RecordCount;
dmglobal.Query_Exec.First;
while not dmglobal.Query_Exec.Eof do
begin
application.ProcessMessages;
dmglobal.Query_Exec.Edit;
dmglobal.Query_Exec.FieldByName('Random').AsInteger := Random(recc);
dmglobal.Query_Exec.Next;
end;
dmglobal.Query_Exec.Close;
dmglobal.Query_Exec.SQL.Clear;
sqlstr := format('select top %d * from 判断题库 order by Random',[SysSetup.JudgeCnt]);
dmglobal.Query_Exec.SQL.Add(sqlstr);
dmglobal.Query_Exec.Open;
dmglobal.Query_Exec.First;
with TADOQuery.Create(nil) do
try
connection := dmglobal.dbsystem;
I := 1;
while not dmglobal.Query_Exec.Eof do
begin
if I>SysSetup.JudgeCnt then break;
application.ProcessMessages;
close;
sql.Clear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -