首页
会员中心
到顶部
到尾部
Delphi毕设

delphi题库管理及试卷生成设计

时间:2020/10/27 9:10:14  作者:  来源:  查看:0  评论:0
内容摘要:题库管理及试卷生成需求分析2.1 负责的功能模块设计试题生成功能,试题能分布整个教学内容设计试题的难易程度分析功能具有试题的答案生成功能数据库设计及维护程序的其它选项设置2.2 毕业设计软件功能分析根据我负责的功能模块,主要是在试卷的生成上。1.要显示书本章节信息以供用户使用。而...
题库管理及试卷生成需求分析
2.1 负责的功能模块
设计试题生成功能,试题能分布整个教学内容
设计试题的难易程度分析功能
具有试题的答案生成功能
数据库设计及维护
程序的其它选项设置
2.2 毕业设计软件功能分析
根据我负责的功能模块,主要是在试卷生成上。
1.要显示书本章节信息以供用户使用。而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型:
type
  ZJ=record
    ZJID:double;
    ZJName:string;
  end;
在这里ZJID是设置成double的类型与相对应的是数据库里表ZhangJie里的ZJ字段此字段的类型为文本弄的。故在添加此数据库结构的时候要把文本型转化为double的类型。而ZJName对应的是数据库里表ZhangJie里的ZJName它们为同一种数据类型。再由于数据库里章节的数量是不定的,故此种数据类型的变量必须是一种长度可变的类型才行,所以我们选择了Delphi里的动态数组类型。变量定义如下 :
Var
  TempZJ:ZJ;
HaveZJ:array of ZJ;
接下来的问题就是把这个变量记录的数据按一定顺序显示到TCheckTree的控件里了。由于章节的数量还是比较多的,所以我选择了“改进的选择排序”,具体的排序算法代码实现如下:
  for i:=0 to High(HaveZJ) do  //对章节号进行排序
    begin
      k:=i;
      for j:=i+1 to MaxNum do
        if HaveZJ[k].ZJID>HaveZJ[j].ZJID then k:=j;
      if i<>k then
        begin
          TempZJ.ZJID:=HaveZJ[i].ZJID;
          TempZJ.ZJName:=HaveZJ[i].ZJName;
          HaveZJ[i].ZJID:=HaveZJ[k].ZJID;
          HaveZJ[i].ZJName:=HaveZJ[k].ZJName;
          HaveZJ[k].ZJID:=TempZJ.ZJID;
          HaveZJ[k].ZJName:=TempZJ.ZJName;
        end;
    end;
    2.手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录一道题所包含的信息不是很多,再因为这些信息一会儿还要在“保存答案”里使用,所以我设置了4个TStringList的全局变量,定义如下:


相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号