询当前题号、试题个数、试题内容、章节信息四个功能。在查询试题个数时可获得章节号、类型、难度三者中任一组合的试题个数。
5.3.2 试题录入子模块的具体实现
录入子模块中有两个窗体分别是录入试题窗体和录入章节窗体。在这两个窗体中文本框是输入要录入的信息,它的DataSource属性是记录集RS,DataField属性是记录的字段RS.field ,这样通过记录集RS直接与数据库绑定在一起,命令按钮有保存、取消、添加,利用的是记录集的RS.updata 、RS.addnew、 RS.delete来对数据库操作。完成的功能比较单一。还有一个添加类型窗体,由一个文档框和两个命令按钮组成实现的方法与上述方法类似。
编辑子模块中也有两个窗体分别是编辑试题窗体和编辑章节窗体。这一部分实现相对比较烦琐,在编辑试题窗体中有两种查询方
式,用户通过输入查询条件找到所要编辑的试题信息。第一种用户必须输入试题的题号这一种比较简单,第二种是用了三个复选框用户根据需要选择,每一个选择都将被存入相应的字符串中,再把这三个字符串的内容传递给Command的Parameter集合,用Command命令的执行command.execute找到符合条件的记录集并对记录集进行操作,比如:记录的更新rs.updata、添加rs.addnew、删除rs.delete、前一个 rs.movepreviouse、后一个rs.movenext等。在编辑章节窗体中则用到了数据绑定控件Adodc、树形显示篇章信息treeview和网格显示小节信息datagrid控件来达到更直观的效果,同时也添加了命令按钮保存、添加、删除、取消、前一个、后一个等。具体代码也是建立记录集并对记录集进行操作。
查询子模块主要用到的是SSTab选项卡控件,这个控件是添加的Microsoft Tabbed Dialog Controls部件,它与Microsoft Windows Common Controls中的TabStrip相比更具有使用性。选项卡数目是4个各实现一个功能。其中试题个数、试题内容、当前题号与编辑窗体的实现方法类似,章节信息则自动计算了篇章数目和小节数目。
5.3.3 试题录入子模块的主要算法
数据的合法性、一致性、唯一性检查:如图(5-3)
图5-3 数据的合法性、一致性和唯一性检查的流程图
2、试题个数的查询:设三个字符串str1,str2,str3分别存储章节号、类型和难度,如果章节号、类型、难度前的复选框被选中则把输入的值对应的存到字符串中否则在对应的字符串中输入“—”,把三个字符串按章节号、类型、难度的顺序连接起来再加上“----”组成符合条件作为查询条件中题号的输入值。用Command命令建立Recordset对象记录集通过对记录指针的移动来获得符合查询条件的记录。如:select * from questiontable where 题号 like ?, ?=str1&str2&str3&”----”(其中“-”起到屏蔽的作用)
3、编辑章节:用TreeView和ADODC控件与数据库建立连接在运行时动态的添加篇章信息并用与查询相同的方法获得记录信息。
其它功能的算法与上述方法类似具体内容请参阅附录A:程序代码。