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

📄 unit18.pas

📁 毕业设计(带论文)—试卷生成系统,做的不错
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit Unit18;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons, Menus, DB, DBTables;

type
  Tpaperautoform = class(TForm)
    MainMenu1: TMainMenu;
    N5: TMenuItem;
    N19: TMenuItem;
    N6: TMenuItem;
    N21: TMenuItem;
    FontDialog1: TFontDialog;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    Label3: TLabel;
    ProgressBar1: TProgressBar;
    BitBtn2: TBitBtn;
    ComboBox2: TComboBox;
    Query1: TQuery;
    ListBox1: TListBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    ListBox2: TListBox;
    N1: TMenuItem;
    N3: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N4: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    procedure definediff(a:integer);
    procedure N19Click(Sender: TObject);
    procedure U1Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ComboBox2Change(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
  public
  // tmno: array[1..5] of string=('一、','二、','三、','四、','五、');
    thao: array[1..800] of integer;
      havetake: array[1..800] of integer;
      diff: array[1..5] of integer;
    { Public declarations }
   // tmno: array[1..5] of string=('一、','二、','三、','四、','五、');
  end;

var
  paperautoform: Tpaperautoform;
   tmno: array[1..5] of string=('一、','二、','三、','四、','五、');
        TF:array[1..9] of string=('f','f','f','f','f','f','f','f','f');
      paperallnumber,choosenumber,judgenumber,filltextnumber,readpronumber,procedurenumber:integer;
implementation
    uses printers, Unit10, Unit22, Unit3, Unit4;
{$R *.dfm}


procedure Tpaperautoform.definediff(a:integer);
var
g:integer;
begin
case a of
1:
begin
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
   or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
    then
      diff[1]:=1
      else
      diff[1]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1) );

if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
     or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
      then
        diff[2]:=1
        else
         diff[2]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));

 if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
      or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
       then
           diff[3]:=1
            else
            diff[3]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));

if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
        or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
        then
           diff[4]:=1
            else
          diff[4]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));

diff[5]:=0;

end;
2:
begin
if (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='')
    or (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='0')
      then
      diff[1]:=1
      else
       diff[1]:=strtoint(copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1) );



if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
     or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
      then
         diff[2]:=1
        else
         diff[2]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));

if (copy(floattostr(paperallnumber*0.7),1,pos('.',floattostr(paperallnumber*0.7))-1)='')
      or (copy(floattostr(paperallnumber*0.7),1,pos('.',floattostr(paperallnumber*0.7))-1)='0')
       then
           diff[3]:=1
            else
            diff[3]:=strtoint(copy(floattostr(paperallnumber*0.7),1,pos('.',floattostr(paperallnumber*0.7))-1));

if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
         or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
           then
           diff[4]:=1
            else
             diff[4]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));



if (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='')
     or (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='0')
          then
           diff[5]:=1
            else
             diff[5]:=strtoint(copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1));

diff[5]:=0;

end;

3:
begin
diff[1]:=0;

if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
       or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
       then
           diff[2]:=1
            else
             diff[2]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));

if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
        or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
           then
           diff[3]:=1
            else
             diff[3]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));

if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
     or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
         then
           diff[4]:=1
            else
             diff[4]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));


if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
       or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
       then
           diff[5]:=1
            else
             diff[5]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));


end;
end;
end;


procedure Tpaperautoform.N19Click(Sender: TObject);
begin
if fontdialog1.Execute then
begin
memo1.Font:=fontdialog1.Font;
end;
end;

procedure Tpaperautoform.U1Click(Sender: TObject);
begin
memo1.Undo;
end;

procedure Tpaperautoform.N12Click(Sender: TObject);
begin
 Memo1.PasteFromClipboard;
end;

procedure Tpaperautoform.N13Click(Sender: TObject);
begin
memo1.SelectAll;
paperautoform.N11.Enabled:=true;
paperautoform.N12.Enabled:=true;
end;

procedure Tpaperautoform.N14Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;

procedure Tpaperautoform.N16Click(Sender: TObject);
begin
memo1.SelectAll;
//paperautoform.N14.Enabled:=true;
//paperautoform.N13.Enabled:=true;
end;

procedure Tpaperautoform.N2Click(Sender: TObject);
//var lines :integer;
 //   prntext:system.text;
begin
Screen.Cursor:=crHourGlass;
  try
    print;
    ShowMessage('打印完毕');
  finally
    Screen.Cursor:=crDefault;
  end;
  {
    if printdialog1.Execute then
    assignprn(prntext);
    rewrite(prntext);
    printer.canvas.Font:=memo1.font;
    for lines:=0 to memo1.Lines.Count-1 do
    begin
    writeln(prntext,memo1.lines[lines]);
    system.Close(prntext);
    end;  }
end;

procedure Tpaperautoform.BitBtn1Click(Sender: TObject);
 var
tt,pp,cc,mm,ii,n,diffnum,temp,m,r,ran,q,i,j:integer;
 t,hade:boolean;
 c,f,ju,re,p:integer;
begin
pp:=1;
//ListBox2.Enabled:=false;
if ComboBox2.Text='' then
begin
showmessage('请选择试卷难度!');
exit;
end;
  
 //Label3.Caption:='';
//Label3.Caption:='试卷正在提取中,请耐心等待...           ';
//Label3.Show;
c:=choosenumber;
f:=filltextnumber;
ju:=judgenumber;
re:=readpronumber;
p:=procedurenumber;
progressbar1.Position:=0;
progressbar1.Max:=paperallnumber+10;
 progressbar1.Position:=10;
randomize;
temp:=0;
i:=1;
t:=false;
definediff(ComboBox2.ItemIndex+1);
//  showmessage(inttostr(choosenumber));



       for ii:=ListBox2.Items.Count-1 downto 0 do
       begin
      if  ListBox2.Items[ii]='第一章 C语言基础知识'  then  TF[1]:='t';
      if  ListBox2.Items[ii]='第二章 数据类型、运算符与表达式'  then  TF[2]:='t';
      if  ListBox2.Items[ii]='第三章 顺序结构'  then  TF[3]:='t';
      if  ListBox2.Items[ii]='第四章 选择结构'  then  TF[4]:='t';
      if  ListBox2.Items[ii]='第五章 循环控制'  then  TF[5]:='t';
      if  ListBox2.Items[ii]='第六章 数组指针'  then  TF[6]:='t';
      if  ListBox2.Items[ii]='第七章 函数  结构体与共用体'  then  TF[7]:='t';
      if  ListBox2.Items[ii]='第八章 预处理命令'  then  TF[8]:='t';
      if  ListBox2.Items[ii]='第九章 常用算法设计'  then  TF[9]:='t';

     end;

     //选择题



      //TF存放的是要考的与不考的章,标号就是代表第几章


paperautoform.Memo1.Text:='';

paperautoform.Memo1.Text:='             '+definepaperform.DBEdit1.Text+'                   '+'总分:'+definepaperform.DBEdit2.Text+#13#10#13#10#13#10;
paperautoform.Memo1.Text:=paperautoform.Memo1.Text+'学校__________班级__________姓名__________得分________'+#13#10#13#10;
autoanswerform.Memo1.Text:='';
autoanswerform.Memo1.Text:='             '+definepaperform.DBEdit1.Text+'答案'+#13#10#13#10;


if definepaperform.DBEdit3.Text<>'0' then
begin
tt:=0;
   paperautoform.Memo1.Text:=paperautoform.Memo1.Text+''+#13#10+tmno[pp]+'选择题'+'(共'+definepaperform.DBEdit3.Text+'小题,每题'+definepaperform.DBEdit6.Text+'分,小计'+definepaperform.DBEdit9.Text+'分).'+#13#10+'';
   autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+''+#13#10+tmno[pp]+'选择题: '+#13#10+'';
    pp:=pp+1;

end;



  //    showmessage('cb');

    //----------------------------------------------------------------
    //------------------------------------------------------------
   while choosenumber<>0 do

   begin
  // if ListBox2.Items.Text='' then
 //

       query1.Close;
       query1.SQL.Clear;
       query1.SQL.Add('select tno from ti_choose') ;
       if ListBox2.Count>=1 then
       begin
       // if ListBox2.Count=1 then
            for mm:=1 to 9 do
            begin
            if TF[mm]='t' then
            begin
            query1.SQL.Add(' where tno not like  '''+inttostr(mm)+'%''');
            break;
            end;
            end;
         if listBox2.Count>1 then
          begin

           for mm:=1 to 9 do
              if TF[mm]='t'   then
              begin

             query1.SQL.Add(' and tno not like  '''+inttostr(mm)+'%''');
     //      showmessage(query1.SQL.Text);
           end;
              end;
       end;
    query1.Open;
    query1.First;


      {

 if ComboBox1.ItemIndex=-1 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose');
   query1.Open;
   query1.First;
      end;
   if ComboBox1.ItemIndex=0 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''1%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=1 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''2%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=2 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''3%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=3 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''4%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=4 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''5%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=5 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''6%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=6 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''7%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=7 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_choose where tno not like ''8%%%''');
   query1.Open;
   query1.First;

      end;
      if ComboBox1.ItemIndex=8 then
      begin

⌨️ 快捷键说明

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