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

📄 chech.pas

📁 Delphi的在线考试系统
💻 PAS
字号:
unit chech;

interface

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

type
  TCheckForm = class(TForm)
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Label1: TLabel;
    Memo1: TMemo;
    Label2: TLabel;
    Memo2: TMemo;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Button1: TButton;
    Memo3: TMemo;
    Button2: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  CheckForm: TCheckForm;

implementation
 uses DataModule;
{$R *.dfm}

procedure TCheckForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   action:=cafree;
end;

procedure TCheckForm.FormCreate(Sender: TObject);
begin
    DBGrid1.Columns[0].FieldName:='准考证号';
    DBGrid1.Columns[1].FieldName:='题型';
    DBGrid1.Columns[2].FieldName:='小题题号';
    dbgrid1.Columns[0].Width:=60;
    dbgrid1.Columns[1].Width:=60;
    dbgrid1.Columns[2].Width:=60;
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 详细成绩表';
    adoquery1.Open;
end;

procedure TCheckForm.Button1Click(Sender: TObject);
var query:TADOQuery;
begin
    if strtoint(edit3.Text) > strtoint(edit1.text) then begin
    MessageBox(handle, '得分超过本题的分值', '提示',  mb_IconWarning + mb_Ok);
    edit3.Text:='0';
    exit;
    end;

    query := TADOQuery.Create(nil);
      query.Connection := Data.Connection;
      query.Close;
      query.SQL.Clear;
      query.SQL.Text:='update   详细成绩表 set 得分 ='''+trim(edit3.Text)+
                      ''' where  准考证号 = '''+trim(adoquery1.fieldbyname('准考证号').AsString)+
                      ''' and 题型 ='''+trim(adoquery1.fieldbyname('题型').AsString)+
                      ''' and 小题题号 ='+adoquery1.fieldbyname('小题题号').AsString+'';
     query.ExecSQL;
     MessageBox(handle, '批改成功', '提示',  mb_IconWarning + mb_Ok);
     adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 详细成绩表';
    adoquery1.Open;
    
end;

procedure TCheckForm.DataSource1DataChange(Sender: TObject; Field: TField);
var query:TADOQuery;
begin
      memo3.Text:=adoquery1.fieldbyname('答案').AsString;
      edit3.Text:=adoquery1.fieldbyname('得分').AsString;
      query := TADOQuery.Create(nil);
      query.Connection := Data.Connection;
      query.Close;
      query.SQL.Clear;
      query.SQL.Text:='select * from 题库 where 题型 ='''+trim(adoquery1.fieldbyname('题型').AsString)+
                      ''' and 小题题号 = '+trim(adoquery1.fieldbyname('小题题号').AsString)+'';
      query.Open;
      memo1.Text:=query.fieldbyname('题干').AsString;
      memo2.Text:=query.fieldbyname('答案').AsString;
      edit1.Text:=query.fieldbyname('分值').AsString;
end;

procedure TCheckForm.Button2Click(Sender: TObject);
var query:TADOQuery;
    query1:TADOQuery;
    count:Integer;
begin
      query := TADOQuery.Create(nil);
      query.Connection := Data.Connection;
      query.Close;
      query.SQL.Clear;
      query.SQL.Text:='select 准考证号 ,sum(得分) as 总成绩 from 详细成绩表 group by 准考证号 ' ;
      query.Open;


      if query.Recordset.RecordCount > 0 then begin
      query1 := TADOQuery.Create(nil);
      query1.Connection := Data.Connection;
      query1.Close;
      query1.SQL.Clear;
        for count:=1 to query.Recordset.RecordCount do begin
        query1.SQL.Text:='update 学生 set 总成绩 = '+ query.fieldbyname('总成绩').AsString+
                        ' where 准考证号 = '''+query.fieldbyname('准考证号').AsString+'''' ;
        query1.ExecSQL;
        query.Next;
        end;
      end;
      MessageBox(handle, '计算完成', '提示',  mb_IconWarning + mb_Ok);
end;

end.

⌨️ 快捷键说明

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