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

📄 globalu.~pas

📁 源代码竟供大家参考
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
      sqlstr := format('insert into 判断题 (学号,题目内容,标准答案,标准理由) values (''%s'',''%d、%s'',''%s'',''%s'')',
                      [StudentInfo.ID,
                       I,
                       dmglobal.Query_Exec.FieldByName('题目内容').asstring,
                       dmglobal.Query_Exec.FieldByName('标准答案').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;
end;

//获得系统设置
function GetSysInfo(): Boolean;
begin
  result := false;
  try
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;

    dmglobal.Query_Exec.sql.Add('select * from 考试设置');

    dmglobal.Query_Exec.open;
    if dmglobal.Query_Exec.eof and dmglobal.Query_Exec.bof then exit;

    SysSetup.TestTimeCnt := dmglobal.Query_Exec.FieldByName('答题时间').AsInteger;

    SysSetup.SingleChoiceCnt := dmglobal.Query_Exec.FieldByName('单选题条数').AsInteger;
    SysSetup.SCMark := dmglobal.Query_Exec.FieldByName('单选题总分').AsInteger;
    SysSetup.SCItemCnt := dmglobal.Query_Exec.FieldByName('单选题选项数').AsInteger;
    SysSetup.SCComment := dmglobal.Query_Exec.FieldByName('单选题说明').AsString;

    SysSetup.MultiChoiceCnt := dmglobal.Query_Exec.FieldByName('多选题条数').AsInteger;
    SysSetup.MCMark := dmglobal.Query_Exec.FieldByName('多选题总分').AsInteger;
    SysSetup.MCItemCnt := dmglobal.Query_Exec.FieldByName('多选题选项数').AsInteger;
    SysSetup.MCComment := dmglobal.Query_Exec.FieldByName('多选题说明').AsString;

    SysSetup.JudgeCnt := dmglobal.Query_Exec.FieldByName('多选题条数').AsInteger;
    SysSetup.JMark := dmglobal.Query_Exec.FieldByName('多选题总分').AsInteger;
    SysSetup.JComment := dmglobal.Query_Exec.FieldByName('多选题说明').AsString;

    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;

    Result := true;
  except
    on E: Exception do
    begin
      MessageBox(Application.Handle,pchar(E.Message),'提示',32);
    end;
  end;
end;

//////////////////////////////////////
//
//  根据学号获得靠试信息
//
//  返回: 0 成功,1无此记录,2意外错误
//
///////////////////////////////////////
function GetStudentInfoByID(sID: string): integer;
var
  sqlstr: string;
begin
  result := 2;                    
  try
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
    sqlstr := format('select * from 考试记录 where 考生学号=''%s''',[Trim(sID)]);
    dmglobal.Query_Exec.SQL.Add(sqlstr);
    dmglobal.Query_Exec.Open;
    if dmglobal.Query_Exec.eof and dmglobal.Query_Exec.bof then
    begin
      result := 1;
      exit;
    end;
    StudentInfo.LoginTime := dmglobal.Query_Exec.FieldByName('登录时间').AsDateTime;
    StudentInfo.Team := dmglobal.Query_Exec.FieldByName('考生区队').AsString;
    StudentInfo.Name := dmglobal.Query_Exec.FieldByName('考生姓名').AsString;
    StudentInfo.ID := dmglobal.Query_Exec.FieldByName('考生学号').AsString;
    StudentInfo.StartTime := dmglobal.Query_Exec.FieldByName('开始时间').AsDateTime;
    StudentInfo.RemainTime := dmglobal.Query_Exec.FieldByName('剩余时间').AsInteger;
    StudentInfo.SubTime := dmglobal.Query_Exec.FieldByName('交卷时间').AsDateTime;
    StudentInfo.score := dmglobal.Query_Exec.FieldByName('总得分').AsFloat;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
    Result := 0;
  except
    on E: Exception do
    begin
      MessageBox(Application.Handle,pchar(E.Message),'提示',32);
    end;
  end;                            
end;

function GetPassword(): string;
begin
  result := '';
  try
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
    dmglobal.Query_Exec.sql.Add('select 管理员密码 from 考试设置');
    dmglobal.Query_Exec.open;
    if dmglobal.Query_Exec.eof and dmglobal.Query_Exec.bof then exit;
    Result := dmglobal.Query_Exec.Fields[0].asstring;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
  except
    on E: Exception do
    begin
      MessageBox(Application.Handle,pchar(E.Message),'提示',32);
    end;
  end;
end;

//评分
function GetScore(var TotalScore,SCScore,MCScore,JScore: real): boolean;
var
  ScorePer: real;
  sqlstr: string;
begin
  result := False;
  TotalScore := 0;
  SCScore := 0;
  MCScore := 0;
  JScore := 0;

  try
    //评分单选题
    ScorePer := SysSetup.SCMark / SysSetup.SingleChoiceCnt;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
    dmglobal.Query_Exec.SQL.Add('select * from 单选题 where 学号='''+StudentInfo.ID+'''');
    dmglobal.Query_Exec.Open;
    dmglobal.Query_Exec.First;
    while not dmglobal.Query_Exec.Eof do
    begin
      if dmglobal.Query_Exec.FieldByName('学生答案').AsString = dmglobal.Query_Exec.FieldByName('标准答案').AsString then
        SCScore := SCScore + ScorePer;
      dmglobal.Query_Exec.Next;
    end;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;

    //评分复选题
    ScorePer := SysSetup.MCMark / SysSetup.MultiChoiceCnt;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
    dmglobal.Query_Exec.SQL.Add('select * from 复选题 where 学号='''+StudentInfo.ID+'''');
    dmglobal.Query_Exec.Open;
    dmglobal.Query_Exec.First;
    while not dmglobal.Query_Exec.Eof do
    begin
      if (dmglobal.Query_Exec.FieldByName('学生答案A').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案A').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案B').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案B').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案C').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案C').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案D').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案D').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案E').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案E').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案F').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案F').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案G').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案G').AsBoolean) and
         (dmglobal.Query_Exec.FieldByName('学生答案H').AsBoolean = dmglobal.Query_Exec.FieldByName('标准答案H').AsBoolean) then
        MCScore := MCScore + ScorePer;
      dmglobal.Query_Exec.Next;
    end;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;

    //评分判断题
    ScorePer := SysSetup.SCMark / SysSetup.SingleChoiceCnt;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;
    dmglobal.Query_Exec.SQL.Add('select * from 判断题 where 学号='''+StudentInfo.ID+'''');
    dmglobal.Query_Exec.Open;
    dmglobal.Query_Exec.First;
    while not dmglobal.Query_Exec.Eof do
    begin
      if dmglobal.Query_Exec.FieldByName('学生答案').asboolean = dmglobal.Query_Exec.FieldByName('标准答案').asstring then
        JScore := JScore + ScorePer;
      dmglobal.Query_Exec.Next;
    end;
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;

    TotalScore := SCScore + MCScore + JScore;

    sqlstr := format('update 考试记录 set 单选题得分=%3.2f,复选题得分=%3.2f,判断题得分=%3.2f,总得分=%3.2f',
              [SCScore,MCScore,JScore,TotalScore]) ;
    dmglobal.Query_Exec.SQL.Add(sqlstr);
    dmglobal.Query_Exec.ExecSQL();
    dmglobal.Query_Exec.Close;
    dmglobal.Query_Exec.SQL.Clear;

    result := true;
  except
    on E: exception do
      raise exception.Create(e.Message);
  end;
end;

end.

⌨️ 快捷键说明

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