unit6.~pas

来自「考试系统,有学生考试,查询成绩,老师管理题库,生成试卷,查询成绩功能.」· ~PAS 代码 · 共 216 行

~PAS
216
字号
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, DBCtrls, jpeg, DB, DBTables,
  Buttons, Grids, DBGrids;

type
  TForm6 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    DBMemo1: TDBMemo;
    DBText2: TDBText;
    DBText5: TDBText;
    Image2: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    DBText6: TDBText;
    Timer1: TTimer;
    Table1: TTable;
    DataSource1: TDataSource;
    DBText3: TDBText;
    Label8: TLabel;
    Label7: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    SpeedButton3: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    DBText4: TDBText;
    Label9: TLabel;
    Label10: TLabel;
    Table2: TTable;
    DataSource2: TDataSource;
    Table3: TTable;
    DataSource3: TDataSource;
    DBGrid1: TDBGrid;
    Memo1: TMemo;
    Button2: TButton;
    Label11: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form6: TForm6;

implementation

uses Unit8,Unit1,Unit5;
var count,i,j:integer;
   asw:array[1..10]of String;
    num:integer;
{$R *.dfm}

procedure TForm6.Timer1Timer(Sender: TObject);
begin
label4.Caption:=timetostr(time);
if label4.Caption=label5.Caption then
begin
Table1.First;
Table3.Locate('学号',inttostr(Unit1.username),[]);
for i:=1 to 10 do           //算分,记录答案
begin
  if asw[i]=Table1.FieldByName('答案').AsString then
  count:=count+Table1.FieldByName('分值').AsInteger;
  Table1.Next;
end;
for j:=1 to Table2.RecordCount do   //添加到学生信息的数据库
begin
Table2.RecNo:=j;
if Table2.FieldByName('学号').AsInteger=Unit1.username then
  begin
   Table2.Edit;
    if  Unit5.ke=0  then
     Table2.FieldByName('数学成绩').AsInteger:=count;
    if  Unit5.ke=1  then
     Table2.FieldByName('英语成绩').AsInteger:=count;
    if  Unit5.ke=2 then
     Table2.FieldByName('语文成绩').AsInteger:=count;
   Table2.Post;
  end;
end;
showMessage('对不起!时间已到,你本次考试的分数为'+inttostr(count)+'分');
Form6.Hide;
Form8.Show;
end
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
Table1.First;
Table3.Locate('学号',inttostr(Unit1.username),[]);
for i:=1 to 10 do           //算分,记录答案
begin
  if asw[i]=Table1.FieldByName('答案').AsString then
  count:=count+Table1.FieldByName('分值').AsInteger;
  Table1.Next;
end;

for j:=1 to Table2.RecordCount do   //添加到学生信息的数据库
begin
Table2.RecNo:=j;
if Table2.FieldByName('学号').AsInteger=Unit1.username then
  begin
   Table2.Edit;
    if  Unit5.ke=0  then
     Table2.FieldByName('数学成绩').AsInteger:=count;
    if  Unit5.ke=1  then
     Table2.FieldByName('英语成绩').AsInteger:=count;
    if  Unit5.ke=2 then
     Table2.FieldByName('语文成绩').AsInteger:=count;
   Table2.Post;
  end;
end;
showMessage('你本次考试的分数为'+inttostr(count)+'分');
Form6.Hide;
Form8.Show;
end;

procedure TForm6.SpeedButton1Click(Sender: TObject);
begin
Table1.Prior;
Edit1.Text:=' ';
end;

procedure TForm6.SpeedButton2Click(Sender: TObject);
begin
Table1.Next;
Edit1.Text:='';
end;

procedure TForm6.SpeedButton3Click(Sender: TObject);
begin
Table1.First;
Edit1.Text:='';
end;

procedure TForm6.SpeedButton4Click(Sender: TObject);
begin
Table1.Last;
Edit1.Text:='';
end;
procedure TForm6.BitBtn2Click(Sender: TObject);
begin
Edit1.Text:='';
end;

procedure TForm6.BitBtn1Click(Sender: TObject);
begin
num:=Table1.FieldByName('题号').AsInteger;
asw[num]:=Edit1.Text;
Table3.Edit;
Table3.FieldByName('第'+inttostr(num)+'题').AsString:=Edit1.Text;
Table3.Post;
Table1.Next;
Edit1.Text:='';
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
memo1.Visible:=false;
button2.Visible:=false;
Table3.Active:=False;
Table3.Filtered:=True;
Table3.Filter:='学号='+inttostr(Unit1.username);
count:=0;
if  Unit5.ke=0  then
begin
     Table1.TableName:='数学试卷.db' ;
     Table3.TableName:='数学答案.db';
end;
if  Unit5.ke=1  then
begin
     Table1.TableName:='英语试卷.db' ;
     Table3.TableName:='英语答案.db';
end;
if  Unit5.ke=2 then
begin
    Table1.TableName:='语文试卷.db';
    Table3.TableName:='语文答案.db';
end;
Table1.Active:=True;
Table3.Active:=True;
Table1.First;
if table1.FieldByName('分值').AsString='' then
messagedlg('试卷还未生成',mterror,[mbok],0)
else
begin
label6.Caption:=timetostr(time);
label5.Caption:=timetostr(time+strtotime('20:00:00'));
end;
end;

end.

⌨️ 快捷键说明

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