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

📄 globalu.~pas

📁 源代码竟供大家参考
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -