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

📄 unit18.pas

📁 毕业设计(带论文)—试卷生成系统,做的不错
💻 PAS
📖 第 1 页 / 共 4 页
字号:
     memo1.Text:=memo1.Text+query1.fieldbyname('ctigan2').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x2a').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x2b').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x2c').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x2d').AsString+#13#10;
     end;
       if query1.FieldByName('ctigan3').AsString<>'' then
     begin
     memo1.Text:=memo1.Text+query1.fieldbyname('ctigan3').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x3a').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x3b').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x3c').AsString+#13#10;
     memo1.Text:=memo1.Text+query1.fieldbyname('x3d').AsString+#13#10;
     end;
       autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+query1.Fieldbyname('answer1').AsString+#13#10;
       if query1.FieldByName('answer2').AsString<>'' then
       autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+query1.Fieldbyname('answer2').AsString+#13#10;
       if query1.FieldByName('answer3').AsString<>'' then
       autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+inttostr(tt)+'、'+query1.Fieldbyname('answer3').AsString+#13#10;

    readpronumber:=readpronumber-1;
     n:=n-1;
   // strtoint(query1.fieldbyname('difficulty').AsString):=strtoint(query1.fieldbyname('difficulty').AsString)-1;
       end;


        end;
       end;
 //i:=thao[]


       end;

     //    showmessage('readprostop');
       end;
        //   showmessage(inttostr(procedurenumber));
        progressbar1.Position:=progressbar1.Position+re;




if definepaperform.DBEdit15.Text<>'0' then
begin
       tt:=0;
   paperautoform.Memo1.Text:=paperautoform.Memo1.Text+''+#13#10+tmno[pp]+'编程题'+'(共'+definepaperform.DBEdit15.Text+'小题,每题'+definepaperform.DBEdit16.Text+'分,小计'+definepaperform.DBEdit17.Text+'分).'+#13#10+'';

  autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+''+#13#10+tmno[pp]+'编程题:'+#13#10+'';
     pp:=pp+1;
     end;
        //编程题
       //------------------------------------------------------------------------
       //-----------------------------------------------------------------------
       while procedurenumber<>0 do
       begin

       query1.Close;
       query1.SQL.Clear;
       query1.SQL.Add('select tno from ti_procedure') ;
       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;
{



     //    showmessage('procedurebdgin');
      if ComboBox1.ItemIndex=-1 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_procedure');
   query1.Open;
   query1.First;
      end;
   if ComboBox1.ItemIndex=0 then
      begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.add('select tno from ti_procedure 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_procedure 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_procedure 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_procedure 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_procedure 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_procedure 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_procedure 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_procedure where tno not like ''8%%%''');
   query1.Open;
   query1.First;

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

      end;



                }
while not query1.Eof do
begin
      hade:=false;
      if i=1 then
      begin

     thao[i]:=((Query1.FieldValues['tno']) div 10);
   //   memo1.Text:=memo1.Text+inttostr(thao[i])+'  ';
      end
      else
       if i>1 then
      begin

          for  j:=i-1 downto 1 do
          begin

           if thao[j]=((Query1.FieldValues['tno']) div 10) then
             begin
             t:=true ;
             break;
             end
            else
             t:=false;
           end;


          if not t then
         begin
       thao[i]:=((Query1.FieldValues['tno']) div 10);
   //      memo1.Text:=memo1.Text+inttostr(thao[i])+'  ';
        t:=false;
       end;
      end;

   query1.Next;

   if not t then
      i:=i+1;
 end;

          temp:=random(i-1)+1;
   r:=thao[temp];
 
   q:=random(9)+1;
    ran:=r*10+q;




    //  if m=1 then
    // havetake[1]:=0000;
     // else if
     for m:=1 to 800 do havetake[m]:=0;
    for m:=1  to 800 do
    begin
    if havetake[m]=ran then
      begin
      showmessage('chongfu');
       hade:=true;
       break;
       end;
    end;
    if not hade then
      begin
      for m:=0 to 800 do
        if havetake[m]=0 then
          begin
          havetake[m]:=ran;
          break;
          end;



  //    showmessage(inttostr(ran));
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('select tigan,answer,difficulty from ti_procedure where tno=:no');
    query1.ParamByName('no').Value:=ran;

    query1.Open;

    if procedurenumber<>0 then
    begin
   

    if query1.RecordCount<>0 then// continue//showmessage('ddd')
   //   else
     begin

     n:= strtoint(query1.FieldByName('difficulty').AsString);
 if   diff[n] <>0 then
    // if definediff[strtoint(query1.fieldbyname('difficulty').AsString)]<>0   then

          begin
               tt:=tt+1;

              //   memo1.Text:=memo1.Text+'编程题';
//  showmessage(inttostr(ran));
    memo1.Text:=memo1.Text+inttostr(tt)+'、'+query1.fieldbyname('tigan').AsString+#13#10;
    autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+inttostr(tt)+'、'+query1.fieldbyname('answer').AsString+#13#10;
    procedurenumber:=procedurenumber-1;
     n:=n-1;
   // strtoint(query1.fieldbyname('difficulty').AsString):=strtoint(query1.fieldbyname('difficulty').AsString)-1;
       end;


        end;
       end;
 //i:=thao[]


       end;
    end;
       //  showmessage('pocedurestop');
       progressbar1.Position:=progressbar1.Position+p;
    Label3.Hide;
    showmessage('试卷提取完毕!');
    for cc:=1 to 9 do
    TF[cc]:='f';
       
end;

procedure Tpaperautoform.FormShow(Sender: TObject);
begin
choosenumber:=strtoint(definepaperform.DBEdit3.Text);
judgenumber:=strtoint(definepaperform.DBEdit4.Text);
filltextnumber:=strtoint(definepaperform.DBEdit12.Text);
readpronumber:=strtoint(definepaperform.DBEdit5.Text);
procedurenumber:=strtoint(definepaperform.DBEdit15.Text);
//showmessage(inttostr(choosenumber)+'    '+inttostr(judgenumber)+'   '+inttostr(filltextnumber)+'    '+inttostr(readpronumber)+'     '+inttostr(procedurenumber));
paperallnumber:=choosenumber+judgenumber+filltextnumber+readpronumber+procedurenumber;
end;

procedure Tpaperautoform.FormCreate(Sender: TObject);
begin
label3.Hide;

end;

procedure Tpaperautoform.BitBtn1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ComboBox2.Text<>'' then
label3.Show;
end;

procedure Tpaperautoform.ComboBox2Change(Sender: TObject);
var
i,j:integer;
begin

choosenumber:=strtoint(definepaperform.DBEdit3.Text);
judgenumber:=strtoint(definepaperform.DBEdit4.Text);
filltextnumber:=strtoint(definepaperform.DBEdit12.Text);
readpronumber:=strtoint(definepaperform.DBEdit5.Text);
procedurenumber:=strtoint(definepaperform.DBEdit15.Text);
//showmessage(inttostr(choosenumber)+'    '+inttostr(judgenumber)+'   '+inttostr(filltextnumber)+'    '+inttostr(readpronumber)+'     '+inttostr(procedurenumber));
paperallnumber:=choosenumber+judgenumber+filltextnumber+readpronumber+procedurenumber;
 
paperautoform.ProgressBar1.Position:=0;
memo1.Text:='';
exit;
for i:=0 to 800 do
begin
 paperautoform.thao[i]:=0;
 paperautoform.havetake[i]:=0;
 end;

 for j:=1 to 5 do
 paperautoform.diff[j]:=0;

    query1.Close;
    query1.Open;

end;

procedure Tpaperautoform.SpeedButton1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to ListBox1.Items.Count-1 do
if ListBox1.Selected[i] then
begin
ListBox2.Items.Append(ListBox1.Items[i]);
ListBox1.Items.Delete(i);
break;

end;
end;

procedure Tpaperautoform.SpeedButton2Click(Sender: TObject);
var
i:integer;
begin
for i:=ListBox2.Items.Count-1 downto 0 do
 if ListBox2.Selected[i] then
 begin
  ListBox1.Items.Append(ListBox2.Items[i]);
  ListBox2.Items.Delete(i);
 
 break;
   end;



//end;
end;

procedure Tpaperautoform.N1Click(Sender: TObject);
begin
    autoanswerform.Show;
end;

procedure Tpaperautoform.N24Click(Sender: TObject);
begin
//mainform.papertime:=mainform.papertime+1;
  query1.Close;
   query1.SQL.Clear;
   query1.SQL.text:='insert into papermanager values(:gg,''自动'',:ss,:dd)'  ;

// query1.ParamByName('nn').AsInteger:=mainform.papertime;
 query1.ParamByName('gg').AsString:=definepaperform.DBEdit1.Text;
 query1.ParamByName('ss').AsString:=paperautoform.Memo1.Text  ;
 query1.ParamByName('dd').AsString:=autoanswerform.Memo1.Text     ;

//  query1.ParamByName('hh').AsInteger:=strtoint(definepaperform.DBEdit18.Text) ;
   query1.ExecSQL;
   DataModule4.Table_papermanager.Active:=false;
   DataModule4.Table_papermanager.Active:=true;
end;

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

procedure Tpaperautoform.N10Click(Sender: TObject);
begin
memo1.CutToClipboard;
end;

procedure Tpaperautoform.N11Click(Sender: TObject);
begin
memo1.CopyToClipboard;
end;

procedure Tpaperautoform.N7Click(Sender: TObject);
begin

  query1.Close;
   query1.SQL.Clear;
    query1.SQL.text:='insert into papermanager values(:gg,''自动'',:ss,:dd)'  ;


query1.ParamByName('gg').AsString:=definepaperform.DBEdit1.Text;
 query1.ParamByName('ss').AsString:=paperautoform.Memo1.Text ;
 query1.ParamByName('dd').AsString:=autoanswerform.Memo1.Text ;


//  query1.ParamByName('hh').AsInteger:=strtoint(definepaperform.DBEdit18.Text) ;
   query1.ExecSQL;
  //  mainform.papertime:=mainform.papertime+1;
//savedialog1.Title:='保存生成后的试卷';
//savedialog1.FileName:=fname;
//if savedialog1.Execute then
 //  begin
  // filename:=savedialog1.FileName;
 //  memo1.Lines.SaveToFile(filename+'.doc');
 //  end;

 DataModule4.Table_papermanager.Active:=false;
   DataModule4.Table_papermanager.Active:=true;
end;

procedure Tpaperautoform.N8Click(Sender: TObject);
begin
close;
end;

end.

⌨️ 快捷键说明

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