delphi制作的试卷生成系统,怎么在选择题中随机抽取题目并在memo中输出?

解决方案 »

  1.   

    用随即函数Random来做。  你可以list一个数组,对数组的下标随即取值,然后就可以取对应的值了。
      

  2.   

    选择题中随机抽取题目:题库有序号
    每次id:=random(题目总数);注意如果遇到取过的id,需要重新去取一个
    在memo中输出:memo.lines.add(多行的题目);
      

  3.   

    麻烦你们写具体点嘛
    我现在做的毕业设计快教了就差这个代码了,急呀!
    用delphi+sql做的从选择题 题库中随机抽取制定数目的试题 用的是adoquery控件
    并将试题输出到memo中
     
    麻烦各位指教一下!
      

  4.   

    我做的代码是 with adoquery2 do
          begin
           adoquery2.close;
           adoquery2.SQL.Clear;
           adoquery2.SQL.Add('USE shijuan select * from xuanzeti where kemu=dbcombobox1.text' );
           ExecSQL;
           adoquery2.Connection:=adoconnection1;
           adoquery2.Active:=true;
           adoquery2.Open;
           end;  
                   }
          begin
          for   i:=1 to (strtoint(dbedit1.Text)) do
          begin
              Repeat
                  IsRepeat:=false;
                  tihao[i]:=Random(ADOQuery2.RecordCount);
                  for   j:=1  to   i-1   do
                  begin
                      if   tihao[j]=tihao[i]   then
                      begin
                          IsRepeat:=true;
                          Break;
                      end   ;
                  end;
              until
                  IsRepeat=false;
              ADOQuery2.MoveBy(tihao[i]);
              memo1.Text:=memo1.Text+inttostr(i)+'、'+adoquery2.fieldbyname('timu').AsString+#13#10+adoquery2.fieldbyname('xa').AsString+#13#10+adoquery2.fieldbyname('xb').AsString+#13#10+adoquery2.fieldbyname('xc').AsString+#13#10+adoquery2.fieldbyname('xd').AsString+#13#10+#13#10+'';
              ADOQuery2.First;
          end;
      end;可是在第四行老出错,不知道该怎么把dbcombobox所选的科目加代SQL语句中
      

  5.   

         adoquery2.SQL.Add('USE shijuan select * from xuanzeti where kemu=dbcombobox1.text' ); 
    改为:如果字段kemu是整型
         adoquery2.SQL.Add('USE shijuan select * from xuanzeti where kemu='+dbcombobox1.text ); 
    或:如果字段kemu是varchar
         adoquery2.SQL.Add('USE shijuan select * from xuanzeti where kemu='+quotedstr(dbcombobox1.text) );