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

📄 paper.pas

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

interface

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

type
  TAddPaper = class(TForm)
    Label1: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ComboBox2: TComboBox;
    Memo2: TMemo;
    Edit2: TEdit;
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    Edit1: TEdit;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  AddPaper: TAddPaper;

implementation
  uses DataModule;
{$R *.dfm}

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

procedure TAddPaper.ComboBox1Change(Sender: TObject);
var answer:string;
begin
    if combobox1.ItemIndex=0 then begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''选择题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    combobox2.Visible:=true;
    memo2.Visible:=false;
    answer:=trim(adoquery1.fieldbyname('答案').AsString);
    if answer='A' then
        combobox2.ItemIndex:=0
    else if answer='B' then
        combobox2.ItemIndex:=1
    else if answer='C' then
         combobox2.ItemIndex:=2
    else combobox2.ItemIndex:=3;
    end else if combobox1.ItemIndex=1 then begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''填空题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    memo2.Visible:=true;
    combobox2.Visible:=false;
    combobox2.Text:=trim(adoquery1.fieldbyname('答案').AsString);
     end else if combobox1.ItemIndex=2   then begin
     adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''问答题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    memo2.Visible:=true;
    combobox2.Visible:=false;
    combobox2.Text:=trim(adoquery1.fieldbyname('答案').AsString);
    end;
end;

procedure TAddPaper.FormCreate(Sender: TObject);
begin
    DBGrid1.Columns[0].FieldName:='小题题号';
end;

procedure TAddPaper.DataSource1DataChange(Sender: TObject; Field: TField);
var answer:string;
begin
    edit2.Text:=adoquery1.fieldbyname('分值').AsString;
    memo1.Text:=trim(adoquery1.Fieldbyname('题干').AsString);
    edit1.Text:=adoquery1.fieldbyname('小题题号').AsString;
    answer:=trim(adoquery1.fieldbyname('答案').AsString);
    if combobox1.ItemIndex=0 then begin
    
    if answer='A' then
        combobox2.ItemIndex:=0
    else if answer='B' then
        combobox2.ItemIndex:=1
    else if answer='C' then
         combobox2.ItemIndex:=2
    else combobox2.ItemIndex:=3;

   end else begin
      memo2.Text:=answer;
   end;
end;

procedure TAddPaper.Button2Click(Sender: TObject);
begin
     edit1.Clear;
     edit2.Clear;
     memo1.Clear;
     memo2.Clear;
     combobox2.ItemIndex:=-1;
end;

procedure TAddPaper.Button1Click(Sender: TObject);
var query:TADOQuery;
  query1:TADOQuery;
  answer:string;
begin
   if trim(edit1.Text)<>''  then begin    //题号不为空
    query1:=TADOQuery.Create(nil);
    query1.Connection:=Data.Connection;
    query1.Close;
    query1.SQL.Clear;
    if combobox1.ItemIndex=0 then begin   //选择题
        query1.SQL.Text:='select * from 题库 where 题型 = ''选择题'' and 小题题号 = '+trim(edit1.Text)+'';
        query1.Open;
        if  query1.Recordset.RecordCount = 0 then  begin
             query := TADOQuery.Create(nil);
             query.Connection := Data.Connection;
             query.Close;
             query.SQL.Clear;
             query.SQL.Text:='insert into 题库(题型,小题题号,题干,答案,分值) values (''选择题'','+
                              trim(edit1.Text)+','''+Memo1.Text+''','''+combobox2.text+''','+
                              edit2.text+')';
             MessageBox(handle, PChar(query.SQL.Text), '提示',  mb_IconWarning + mb_Ok);
             try
               query.ExecSQL;
             except
               MessageBox(handle, '添加错误', '提示',  mb_IconWarning + mb_Ok);
             exit;
             end;
        MessageBox(handle, '添加成功', '提示',  mb_IconWarning + mb_Ok);
         adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''选择题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    combobox2.Visible:=true;
    memo2.Visible:=false;
    answer:=trim(adoquery1.fieldbyname('答案').AsString);
    if answer='A' then
        combobox2.ItemIndex:=0
    else if answer='B' then
        combobox2.ItemIndex:=1
    else if answer='C' then
         combobox2.ItemIndex:=2
    else combobox2.ItemIndex:=3;
        end;


    end  else if combobox1.ItemIndex=1 then begin //填空题
        query1.SQL.Text:='select * from 题库 where 题型 = ''填空题'' and 小题题号 = '+trim(edit1.Text)+'';
        query1.Open;
        if  query1.Recordset.RecordCount = 0 then  begin
             query := TADOQuery.Create(nil);
             query.Connection := Data.Connection;
             query.Close;
             query.SQL.Clear;
             query.SQL.Text:='insert into 题库(题型,小题题号,题干,答案,分值) values (''填空题'','+
                              trim(edit1.Text)+','''+Memo1.Text+''','''+memo2.text+''','+
                              edit2.text+')';
             MessageBox(handle, PChar(query.SQL.Text), '提示',  mb_IconWarning + mb_Ok);
             try
               query.ExecSQL;
             except
               MessageBox(handle, '添加错误', '提示',  mb_IconWarning + mb_Ok);
             exit;
             end;
        MessageBox(handle, '添加成功', '提示',  mb_IconWarning + mb_Ok);
        adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''填空题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    memo2.Visible:=true;
    combobox2.Visible:=false;
    combobox2.Text:=trim(adoquery1.fieldbyname('答案').AsString);
        end;

    end  else if combobox1.ItemIndex=2 then begin  //问答题
      query1.SQL.Text:='select * from 题库 where 题型 = ''问答题'' and 小题题号 = '+trim(edit1.Text)+'';
        query1.Open;
        if  query1.Recordset.RecordCount = 0 then  begin
             query := TADOQuery.Create(nil);
             query.Connection := Data.Connection;
             query.Close;
             query.SQL.Clear;
             query.SQL.Text:='insert into 题库(题型,小题题号,题干,答案,分值) values (''问答题'','+
                              trim(edit1.Text)+','''+Memo1.Text+''','''+memo2.text+''','+
                              edit2.text+')';
             MessageBox(handle, PChar(query.SQL.Text), '提示',  mb_IconWarning + mb_Ok);
             try
               query.ExecSQL;
             except
               MessageBox(handle, '添加错误', '提示',  mb_IconWarning + mb_Ok);
             exit;
             end;
        MessageBox(handle, '添加成功', '提示',  mb_IconWarning + mb_Ok);
        adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''问答题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    memo2.Visible:=true;
    combobox2.Visible:=false;
    combobox2.Text:=trim(adoquery1.fieldbyname('答案').AsString);
        end;
    end;

   end;
end;

procedure TAddPaper.Button3Click(Sender: TObject);
var query:TADOQuery;
answer:string;
begin
   if trim(edit1.Text)<>''  then begin    //题号不为空
    query:=TADOQuery.Create(nil);
    query.Connection:=Data.Connection;
    query.Close;
    query.SQL.Clear;
    if combobox1.ItemIndex=0 then begin   //选择题
       query.SQL.Text:='delete from 题库 where 题型 = ''选择题'' and 小题题号 = '+edit1.Text+'';
       MessageBox(handle, Pchar(query.sql.text), '提示',  mb_IconWarning + mb_Ok);
       query.ExecSQL;
       adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''选择题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    combobox2.Visible:=true;
    memo2.Visible:=false;
    answer:=trim(adoquery1.fieldbyname('答案').AsString);
    if answer='A' then
        combobox2.ItemIndex:=0
    else if answer='B' then
        combobox2.ItemIndex:=1
    else if answer='C' then
         combobox2.ItemIndex:=2
    else combobox2.ItemIndex:=3;

    end else if combobox1.ItemIndex=1 then begin
       query.SQL.Text:='delete from 题库 where 题型 = ''填空题'' and 小题题号 = '+edit1.Text+'';
       MessageBox(handle, Pchar(query.sql.text), '提示',  mb_IconWarning + mb_Ok);
       query.ExecSQL;
       adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''填空题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    combobox2.Visible:=false;
    memo2.Visible:=true;
    answer:=trim(adoquery1.fieldbyname('答案').AsString);
    memo2.Text:=answer;
     end else if combobox1.ItemIndex=2 then begin
       query.SQL.Text:='delete from 题库 where 题型 = ''问答题'' and 小题题号 = '+edit1.Text+'';
       MessageBox(handle, Pchar(query.sql.text), '提示',  mb_IconWarning + mb_Ok);
       query.ExecSQL;
       adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select * from 题库 where 题型=''问答题''';
    adoquery1.Open;
    edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
    memo1.Text:=adoquery1.fieldbyname('题干').AsString;
    combobox2.Visible:=false;
    memo2.Visible:=true;
    answer:=trim(adoquery1.fieldbyname('答案').AsString);
    memo2.Text:=answer;
     end ;
    end;
end;

end.

⌨️ 快捷键说明

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