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

📄 mainwin.pas

📁 C语言试题库及出题系统,可以导入试题,定制试卷,出题及修改试题,同时带上标准答案.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit MainWin;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Buttons,importer, DB,
  ADODB, Grids, DBGrids, ImgList, DBCtrls, jpeg, MPlayer, OleCtrls,
  ShockwaveFlashObjects_TLB ;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    OpenDialog1: TOpenDialog;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    ADOConnection1: TADOConnection;
    Panel2: TPanel;
    BitBtn3: TBitBtn;
    ImageList1: TImageList;
    Panel3: TPanel;
    DBGrid2: TDBGrid;
    Panel1: TPanel;
    Memo1: TMemo;
    ADODataSet2: TADODataSet;
    DataSource2: TDataSource;
    Splitter1: TSplitter;
    BitBtn2: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    Splitter2: TSplitter;
    Memo3: TMemo;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    SaveDialog1: TSaveDialog;
    Timer1: TTimer;
    dingzhi: TTabSheet;
    Panel7: TPanel;
    Panel8: TPanel;
    BitBtn8: TBitBtn;
    DBGrid3: TDBGrid;
    DataSource3: TDataSource;
    ADODataSet3: TADODataSet;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    Splitter3: TSplitter;
    DBGrid4: TDBGrid;
    DataSource4: TDataSource;
    ADODataSet4: TADODataSet;
    Check2: TBitBtn;
    yongcun: TLabel;
    TabSheet7: TTabSheet;
    PageControl2: TPageControl;
    TabSheet8: TTabSheet;
    TabSheet9: TTabSheet;
    TabSheet10: TTabSheet;
    Label4: TLabel;
    Edit2: TEdit;
    Edit1: TEdit;
    Label3: TLabel;
    Label5: TLabel;
    Memo4: TMemo;
    BitBtn13: TBitBtn;
    PageControl3: TPageControl;
    TabSheet11: TTabSheet;
    TabSheet12: TTabSheet;
    BitBtn15: TBitBtn;
    BitBtn14: TBitBtn;
    Label2: TLabel;
    ADODataSet5: TADODataSet;
    DataSource5: TDataSource;
    DBGrid5: TDBGrid;
    DBGrid6: TDBGrid;
    DBGrid7: TDBGrid;
    DataSource6: TDataSource;
    DataSource7: TDataSource;
    ADODataSet6: TADODataSet;
    ADODataSet7: TADODataSet;
    Memo5: TMemo;
    Memo6: TMemo;
    Memo7: TMemo;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    Label6: TLabel;
    BitBtn16: TBitBtn;
    RichEdit1: TRichEdit;
    Memo8: TMemo;
    BitBtn17: TBitBtn;
    Panel4: TPanel;
    Memo2: TMemo;
    DBGrid8: TDBGrid;
    DataSource8: TDataSource;
    ADODataSet8: TADODataSet;
    BitBtn18: TBitBtn;
    mainface: TPanel;
    ShockwaveFlash1: TShockwaveFlash;
    Panel5: TPanel;
    DBGrid1: TDBGrid;
    DBGrid9: TDBGrid;
    DBGrid10: TDBGrid;
    Splitter4: TSplitter;
    Splitter5: TSplitter;
    ADODataSet9: TADODataSet;
    DataSource9: TDataSource;
    ADODataSet10: TADODataSet;
    DataSource10: TDataSource;
    ADODataSet11: TADODataSet;
    DataSource11: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure DBGrid3KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid3MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BitBtn10Click(Sender: TObject);
    procedure DBGrid2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn11Click(Sender: TObject);
    procedure Check2Click(Sender: TObject);
    procedure BitBtn13Click(Sender: TObject);
    procedure TabSheet5Show(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure BitBtn16Click(Sender: TObject);
    procedure BitBtn15Click(Sender: TObject);
    procedure BitBtn14Click(Sender: TObject);
    procedure BitBtn17Click(Sender: TObject);
    procedure BitBtn18Click(Sender: TObject);
    procedure ShockwaveFlash1FSCommand(ASender: TObject; const command,
      args: WideString);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid9CellClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  exePath:widestring;
  imp:timporter;
  dbfile:string;
implementation
{$R *.dfm}
function exec(sql:string):_recordset;
begin;
  result:=form1.ADOConnection1.Execute(sql,cmdText,[]);
end;
procedure dingzhiRefresh;
var zf:real;
begin
 if form1.dbgrid3.tag=1 then begin
  form1.DBGrid3.Tag:=0;
  form1.dbgrid3.update;
  exec('update dingzhi set 总分=题量*每题分数 where 题型<>"合计"');
  zf:=exec('select sum(总分) from dingzhi where 题型<>"合计"').Fields.Item[0].Value;
  exec('update dingzhi set 总分='+floattostr(zf)+' where 题型="合计"');
  form1.adodataset3.Refresh;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  mainface.Align:=alclient;
  exePath:=extractFilePath(application.ExeName);
  OpenDialog1.DefaultExt:='txt';
  OpenDialog1.InitialDir:=exePath;
  ShockwaveFlash1.Movie:=exepath+'face.swf';
  dbfile:=exepath+'db1.mdb';
  ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+dbfile+';Password="";Persist Security Info=True;Jet OLEDB:Database Password=690911';
  adoconnection1.Open;
  adodataset3.open;
  adodataset2.Open;
  adodataset1.Open;
  adodataset5.open;
  adodataset6.open;
  adodataset7.open;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 if opendialog1.Execute then begin
  memo7.Lines.LoadFromFile(opendialog1.filename);
  bitbtn14.Hint:=opendialog1.FileName;
  bitbtn14.Enabled:=true;
 end else begin
  bitbtn14.Enabled:=false;
 end;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
var tx,zhang,nd,mtfs:string; sl,n,m:integer; rs:tadodataset;
begin
 bitbtn11.Click;
  randomize;
  adodataset11.Open;
  adodataset11.First;
  exec('delete from paper1');
  while not adodataset11.Eof do begin
    sl:=adodataset11.FieldValues['出题数量'];
    tx:=adodataset11.fieldvalues['tixing'];
    zhang:=adodataset11.FieldValues['zhishidian'];
    nd:=adodataset11.FieldValues['nandu'];
    exec('delete from paper0');
    exec('insert into paper0 select 题型,知识点,难度,序号,分数 from shiti where 题型='+tx+' and 知识点='+zhang+' and 难度='+nd);
    rs:=tadodataset.Create(nil);
    rs.Connection:=adoconnection1;
    rs.CommandType:=cmdText;
    rs.CommandText:='select * from paper0';
    rs.Open;
    while (sl>0)and(not rs.Eof) do begin
      n:=rs.RecordCount;
      rs.First;
      m:=random(n);
      rs.MoveBy(m);
      exec('insert into paper1 select * from paper0 where 知识点='+inttostr(rs['知识点'])+' and 序号='+inttostr(rs['序号']));
      rs.Delete;
      sl:=sl-1;
    end;
    rs.Close;
    rs.Free;
    adodataset11.Next;
  end;
  exec('drop table shiti1');
  Exec('select tixing.*,zhishidian.*,nandu.*,paper1.序号,paper1.分数 into shiti1 from paper1,tixing,zhishidian,nandu where paper1.题型=tixing.tixing and paper1.知识点=zhishidian.zhishidian and paper1.难度=nandu.nandu');
  //更新每题分数
  adodataset3.First;
  while not adodataset3.Eof do begin
    mtfs:=adodataset3.FieldByName('每题分数').AsString;
    tx:=  adodataset3.fieldbyname('tixing').AsString;
    adodataset3.Next;
    Exec('update shiti1 set 分数=分数 * '+mtfs+' where tixing='+tx);
  end;
  adodataset1.Requery([]);
  tabsheet2.Show;
end;

procedure TForm1.DBGrid2CellClick(Column: TColumn);
var zh,xh:string;
begin
  zh:=inttostr(adodataset1.fieldvalues['zhishidian']);
  xh:=inttostr(adodataset1.fieldvalues['序号']);
  memo2.Text:=exec('select top 1 题干 from shiti where 知识点='+zh+' and 序号='+xh).Fields[0].Value;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
 Exec('delete from plan0');
 Exec('insert into plan0 select distinct 题型 as tixing,知识点 as zhishidian,难度 as nandu from shiti order by 题型,知识点,难度');
 Exec('delete from plan');
 Exec('insert into plan select tixing.*,zhishidian.*,nandu.* from plan0,tixing,zhishidian,nandu where plan0.tixing=tixing.tixing and plan0.zhishidian=zhishidian.zhishidian and plan0.nandu=nandu.nandu');
 adodataset2.Requery([]);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var tx,zhang,nd,xh:string; n,m:integer; rs:tadodataset;
begin
  randomize;
  tx:=adodataset1.fieldvalues['tixing'];
  zhang:=adodataset1.FieldValues['zhishidian'];
  nd:=adodataset1.FieldValues['nandu'];
  xh:=adodataset1.FieldValues['序号'];
  exec('delete from paper2');
  exec('insert into paper2 select tixing as 题型,zhishidian as 知识点,nandu as 难度,序号,分数 from shiti1 where tixing='+tx+' and zhishidian='+zhang+' and nandu='+nd);
  exec('delete from paper0');
  exec('insert into paper0 select 题型,知识点,难度,序号,分数 from shiti where 题型='+tx+' and 知识点='+zhang+' and 难度='+nd);
  rs:=tadodataset.Create(nil);
  rs.Connection:=adoconnection1;
  rs.CommandType:=cmdText;
  rs.CommandText:='select * from paper0';
  rs.Open;

⌨️ 快捷键说明

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