对不起。。本人菜鸟一只~
可能在问的问题上有毛病~~
在下无有经验。。还望各位大虾体晾~
我主要是不知道该如何下手。也就是对具体的功能还有些模糊(不知道该做什么)
老师要求语言不限(我选择了VB)+SQL。
要求只需输入一定条件就打印出卷纸。
便如:试卷难试、知识点、分数、难易程序。等~~
希望各位大虾指点迷津。。小弟感激不尽啊~~~
(我好像是对算法掌握的不好~~)

解决方案 »

  1.   

    你要的是查询语句吧.
    任意条件查询:
    private sub sqlselect
      strtiaojian = ""
      Set db = New Connection
      db.CursorLocation = adUseClient
      db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Persist Security Info=False;"  
      Set RS = New Recordset
      Call tiaojian
      strsql = "select ID,姓名,性别,出生日期 from table1 where " & strtiaojian
      If strtiaojian = "" Then
        strsql = Left(strsql, Len(strsql) - 7)
      End If
    end subprivate Sub tiaojian()    If name.Text <> "" Then
            strtiaojian = strtiaojian & "姓名='" & name.Text & "' and "
        End If
        If xingbie.Text <> "" Then
            strtiaojian = strtiaojian & "性别='" & xingbie.Text & "' and "
        End If
        If Len(strtiaojian) > 0 Then 
            strtiaojian = Left(strtiaojian, Len(strtiaojian) - 5)        
        End If
    End Sub
      

  2.   

    (警告!楼主心理素质不好请勿阅读此文,谨防吐血。)题库第一
    子曰:题库者,考题之集也。学有所专、题有难易,此为子题之本也。分者,难易之表也,可循难易度而求之。题者,序号、内文、科目、细目、难易四者缺一不可。序号者乃题目之索引、内文者乃题目之内容、科目者乃经学之大类、细目者乃经学之细别、难易关题目之分数。拣题第二
    子曰:拣题者,乃择题成卷之法也。择题者,最忌重题、重序。乱序者易哉,然使其不重题则难矣。以下之法可解上述之忌:Dim tArray() As Long
    Dim tArrayCount As Long
    Dim tIndex As Long
    Dim tDesIndex As Long
    Dim tTempValue As Long获数组tArray……For tIndex=1 To tArrayCount
      tTempValue=tArray(tIndex)
      tDesIndex=Int(Rnd*tArrayCount)
      tArray(tIndex)=tArray(tDesIndex)
      tArray(tDesIndex)=tTempValue
    Next从数组依序取N个元素则为不重复乱序。难易第三子曰:难易者,当择难易之限,即阀值耳。难之其左、易之其右。
    择题循难易,以数、分两者决之。数者、题难者之数目也,分者、题难者之分数也。难易有度。难者百分比也,小者为一、大者为百。以其度乘总题数除二,即难题之数也;以百减其度而求其反,则为易题之数也。倘难度为百,则难题五成、易题五成,而非难题十成也。切记!切记!
    然题数虽定,总分亦乱耳,需均分而定。以每题之难度乘题总分、除众题难度之和,此为初分之法。后以难题之分乘难度除一百为该难题之分,以难题之分除一百乘一百减难度除一百为摊分。摊分累计,后供众题均摊,此为摊分法也。摊分法可使难题分降而易题分增。
      

  3.   

    关于题库的补充:
    题库可依照以下两种格式建立,具体选择哪一种,有待楼主自行研究。
    (括号内为引用)第一种:题类表:索引、名称
    学科表:索引、(题类)、名称
    知识点表:索引、(题类、学科)、名称
    题目表:索引、(题类、学科、知识点)、题目内容、难度系数。第二种:学科表:索引、名称
    知识点表:索引、(学科)、名称
    题类表:索引、(学科、知识点)、名称
    题目表:索引、(学科、知识点、题类)、题目内容、难度系数。关于拣题。
    试卷由多个题类部分组成,其中题类拣题范围为一个题域。题域是符合特定学科(可以是多个)、特定知识点(可以是多个)、题类(只能有一个)的所有题目的集合。
    从一个题域获得该题类指定数目的题目过程为一个独立的拣题过程。
    例如,符合:学科=(离散数学、数据结构、算法);知识点=(两叉树、图论、排序、链表);题类=(单选题)的所有题目为某试卷单选题类的题域。
    题域是题目的集合,而每个题目在题域内必须有一个顺序的索引,以下成为“题域索引”。
    拣题要保证题目不重复、不重序,因此,实质问题是获得一个随机不重复数列的问题。随机不重复数列可以以如下算法获得:(“题域索引”务必以0开始。)N为题域内题目数量(实际数量减一)
    F()为题域索引的映射数组(也可以是题域本身(即特定题目的集合))For X=0 To N
      DataSwap F(X),F(Int(Rnd*(N+1)))'将第X个索引(或者题域内的题目)与随机个索引(或者题域内的题目)交换,从0到第N个元素则为不重复乱序。如果为了追求速度,N可以不是题域内题目全体数量,只要是你需要的数目就可以。因为0到第N个元素必定为不重复乱序。
    NextSub DataSwap(A,B) '交换两变量
      T=A:A=B:B=T
    End Sub难度控制:难度控制有两个办法:
    1、过滤掉难度高的题目,这个办法我不推荐你用。2、比例摊分法。
    首先,你要决定试卷的难度,这个度量参数就是难度系数。难度系数为0到100(当然,你可以用0到1000也可以,但是计算上麻烦。如果你的难度系数不是0到100,则需要计算百分比系数。计算方法为X=V*100/N V为难度系数、N为最大值、X为百分比系数。每个题目的难度系数有同样的性质。)难度有两方面决定:1、难题的数量,2、难题的分数。为了简化问题的处理方法,简单地将题目分为难题和易题。(如果不这样,就要用另一种更麻烦的方法。比如我自己曾经研究过一种戏称“跷跷板算法”的方法,说起来有点麻烦。你可以自己研究,总之是个见仁见智的数学问题。)这种简易的比例摊分法是这样的:1、先决定一个阀值,将操作题域内的题目分为难题、易题两部分。2、决定该题类取题总数量,根据百分比难度系数,计算难题、易题的数量。比如:某选择题需要40倒题目,难度系数为30,则:
    难题数目=30*取题数量/200
    易题数目=(100-30)*取题数量/2003、初步决定分数。
    每题目的分数这样计算:
    首先计算所有题目难度的总和
    每个题目的分数=分数总和*该题目难度系数/题目难度的总和
    但这样处理之后有一个问题:难题分数高、易题分数底。即使难题再少,但是分数高,难度还是降不下来。所以要进行第4步:摊分。4、摊分处理
    将其中难题(不包括易题)进行摊分处理。
    保留分=试卷难度系数*该题目分数。
    摊分=该题目分数-保留分
    将所有摊分累计为摊分和,然后平均分配给每个题目,达到从分数上降低难度的目的。5、产生试卷的方法(可能并不很好,仅供参考)
    (1)获得试卷每个题类的题域,这个过程可能需要时间。用户需要决定:学科、知识点、试卷的题类设置。比如:学科为离散数学与数据结构算法综合卷、知识点为(两叉树、图论、排序、链表)、题类为单选、填空、多选、编程四类。则产生四个题域。
    (2)分别根据每个题域分为难易两个集合。
    (3)以乱序算法对每个集合进行乱序,然后取指定数量的题目(取题数目为难度系数计算)
    (4)对取出的题目进行设置初始分数、并按照难度系数摊分。
    (5)重复2到4过程,直到产生满意数量的试卷。