。
4.2.3.2修改科目
在修改学院小节中,已经讲述了不能修改其编号的原因。同理,科目中的科目编号、该科的试题清单表和内容对照表也是不允许修改的。允许修改的是科目名称、学时和学分,因为不同的阶段对学生的要求也不相同,直接反应在学时和学分上。
修改科目与修改学院的操作过程、实现方法相似。不同的是要查的后台数据库表是科目表(KeMu)。这里不在叙述。
4.2.3.3修改对照表
这里所说的对照表是指难度对照表和教学要求对照表。关于建立和修改这两种表格的原因请见第三章的总体设计之数据库设计。修改对照表的界面4.2-5如下:
界面4.2-5
关于如何使用这两个功能是与修改学院和修改科目十分类似,看到界面就应该会操作。
修改对照表的实现过程也与上述的修改学院和修改科目相似,只不过修改难度对照表要查的后台数据库是难度对照表(NanDu_DZ),修改教学要求对照表要查的是教学要求对照表(JiaoXue_DZ)。
4.2.4删除库
删除库的程序流程图:如图4-3
4.2.4.1删除学院
在删除学院界面上,所有已存在的学院被列举出来,选中一个学院名称后,有关该学院的相关信息就显示出来,单击删除按钮后,为了保险起见,出现"是否真的删除"字样的确认信息,单击是按钮则学院被删除,单击否按钮则取消删除。
删除学院的具体实现过程是:系统到后台查学院表(XueYuan_DZ),再查科目表(KeMu)获得该学院包含的科目,对所有的科目编号取前两位,若其序号与该学院的编号相等,则把该科名称列举出来。确认删除后,在学院表(XueYuan_DZ)中这个学院就真的被删除了。但是,该学院所包含的科目没有被真正删除,而是从科目表(KeMu)转存到科目备份表(KeMuBF)中。这样做的原因已经在第三章总体设计之数据库设计中有所阐述。
4.2.4.2删除科目
如下的界面4.2-6:
界面4.2-6
删除科目与删除学院类似,在上面的叙述中我们知道,实质上,删除学院包含着删除科目的内容。删除科目亦并非真的删除,而是把它放到了科目备份表(KeMuBF)中。它的试题清单表(XXX_QD)和内容对照表(XXX_DZ)也仍然存在于数据库中。
4.2.5统计库
该项功能是让管理员对本系统在总体上有一个更深入、透彻的了解。而且界面上使用了直方图和圆饼图,看起来更加简单、直观。
4.2.5.1学院统计
学院统计的界面4.2-7如下:
界面4.2-7
选中列表框中的学院名称,该学院的所有信息就显示在界面上,而且用圆饼图直观表示了该学院的题型种类和数量。
学院统计的实现过程现叙述如下:查学院表(XueYuan_DZ),把其中所有的学院名写到List列表框中。当在界面上点击学院名称时,再把该学院在学院表(XueYuan_DZ)中的相关信息写入到界面中的"学院信息"一栏。同时查找科目表(KeMu),取科目编号字段的前两位,若与选中学院的编号相同,就将这科的名称写到"包含的科目"一栏中。关于"题量分配"一栏的统计稍稍复杂一些:首先根据该学院所含的科目总数确定循环的次数,便于累加试题个数与题型总数。把题库中所有的题型放在一个一维数组中,另一个一维数组存放与前一个数组对应的题型个数,初值为0。然后用循环查遍该学院包含的科目的试题清单表。累计题型个数和每种题型的总数。在第二个一维数组为0的项,就说明该学院不含有与之对应的题型。再把这个统计结果反映在圆饼图中。
统计学院的程序代码如下:
txtSQL="select*fromkemuwherekechengbhlike'"&Trim(Text1.Text)&"%"&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
ReDimKeMu(mrc.RecordCount)'重新定义树组
KeMutotal=mrc.RecordCount'该学院包含的科目总数
Ifmrc.EOF=TrueThen
List2.AddItem"没有属于该学院的科目"
Frame5.Visible=False
ExitSub
Else
Fori=1Tomrc.RecordCount
List2.AddItemmrc.Fields(0)
KeMu(i-1)=mrc.Fields(2)
mrc.MoveNext
Nexti
EndIf
Fori=1ToKeMutotal'统计题数
txtSQL="selecttixingma,count(tihao)from"&_
Trim(KeMu(i-1))&"whereneirongma<>''groupbytixingma"
Setmrc=ExecuteSQL(txtSQL,MsgText)
Fork=1Tomrc.RecordCount
Forj=0ToTXtotal
IfTX(j)=mrc.Fields(0)Then'找对应的题型
TXnum(j)=TXnum(j)+mrc.Fields(1)'填加题数
EndIf
Nextj
mrc.MoveNext
Nextk
NextI
Fori=0ToTXtotal
IfTXnum(i)<>0Then
Text4.Text=Val(Text4.Text)+1
XYtishu=XYtishu+TXnum(i)
EndIf
NextI
Text5.Text=Val(XYtishu)'学院的总题数
MSChart1.ColumnCount=Val(Text4.Text)'设计饼图
MSChart1.ColumnLabelIndex=1
Fori=0ToTXtotal
IfTXnum(i)<>0Then
kuai=kuai+1
MSChart1.Column=kuai
MSChart1.ColumnLabelCount=kuai
MSChart1.ColumnLabel=TXnum(i)
MSChart1.Data=TXnum(i)
EndIf
NextI
kuai=0
MSChart1.ColumnLabelIndex=2
Fori=0ToTXtotal
IfTXnum(i)<>0Then
kuai=kuai+1
MSChart1.Column=kuai
MSChart1.ColumnLabelCount=kuai+2
MSChart1.ColumnLabel=TX(i)&""
EndIf
Nexti
4.2.5.2科目统计
科目统计的界面4.2-8如下:
界面4.2-8
选中列表框中的科目名称,该科的所有信息就显示在界面上,而且用直方图表示了该科包含的题型种类和数量。
科目统计的实现过程与统计学院的实现过程大同小异,或者说更简单一些:也是要到后台查该科目的试题清单表,关于题型种类和数量的统计过程与学院统计中的完全相同,不再多说。
4.2.5.3试题统计
试题统计分为整体统计和详细统计。整体统计的界面4.2-9如下:
界面4.2-9
整体统计的过程实质上与前面的统计过程是相同的。只不过是要查遍所有的试题清单表,而且数组个数由前面的2个增加到6个,其中题型种类和对应题型个数的一维数组两个,难度种类和对应难度个数的一维数组两个,教学要求种类和对应教学要求的个数的一维数组两个。
所谓详细统计就是统计出某科目中各章、节、小节的题型种类和个数,难度的种类和个数,教学要求的种类和个数。详细统计的界面4.2-10如下:
界面4.2-10
关于详细统计与整体统计的不同之处就是在该科目试题清单表中用到了内容码这个字段,进而需要查内容对照表。
4.3试题操作模块
这一功能模块允许所有授权的用户使用。不同的用户对试题的要求一定不相同,他们总是苦于题库中没有自己理想的试题。此题库管理系统为用户提供了极大的方便,任由用户操作。这里所说的试题操作可以是对题库中已经存在的试题进行操作---修改单题和删除单题,也可以是填加试题。
试题操作的程序流程图:如图4-4
4.3.1填加试题
4.3.1.1填加单题
填加单题中有两个标签一个是试题描述,另一个是试题内容。所谓试题描述就是要求填写关于这道试题的相关内容---所属科目、题型、难度、分值、本专业和非专业的教学要求,以及该试题所在的章、节。试题内容分三项:题干、答案和试题解析。当所有信息按要求填写正确(否则有错误提示信息),单击录入则系统自动为其编写题号将其录入库中。
填加单题的实现过程比较简单:当试题描述和试题内容填写正确后,单击录入时,系统到后台数据库中科目表(KeMu),根据用户选择的科目名称来获得该科的科目编号和试题清单表名。系统再查找此单题所属科目的试题清单表,然后把试题描述和试题内容的相关信息对应填到表中。需要说明的是被填加的试题在清单表中的位置。系统首先浏览清单表,检查内容码是否为空,若遇到内容码为空的的记录,就把该试题加到表中此位置,覆盖原来的
上一篇:
VB评语管理系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt(论文和程序)
下一篇:
关于森林资源保护的思考