您的位置:首页 > 其它

考试系统试题实现(单选项)

2013-07-17 23:14 197 查看
Insus.NET一直想把单选项试题实现的想法写成博文。想实现单选项试题,有几个问题需要清楚的:
第一是选项内容,由几个选项组成,一个,二个还是三个四个等,选项的内容是A,B,C,还是其它内容,考员作答选择时,是存储Key值,还是存储显示值?因此有设计这些时,能够实现单选选项能有几种形式。

第二是单选题,标题内容,以及用一个字段来存储标准答案(本次演示),也可以把答案存放入另外一个单独的表中。

第三是,考员的答卷,需要存储,在考试时间之内,可以更改自己的答案。因此此表的字段有 用户ID,试题ID,答案,时间,其实真正的设计,也许需要考虑一个用户可以考几次,选择的题库等等...

本次演示,只是实现试题显示,考员作答存储,以及读取等等功能,试题库创建与产生,在此不作演示。

首先创建一个表,作为存储单选项类型,主要是为了解决单选的选项多少,内容不一样的情况。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:          Insus.NET
-- Create date:   2013-07-17
-- Description:   员选择作答
-- =============================================
CREATE PROCEDURE [dbo].[usp_Test_UpdateAnswer]
(
@test_nbr INT,
@Answer TINYINT
)
AS
UPDATE [dbo].[Test]  SET [Answer] = @Answer WHERE [test_nbr] = @test_nbr
GO


View Code

去test.cs类别,添加一个public的方法:




由于Repeater控件没有如GridView的DataKeyNames属性,因此放一个HiddenField控件,还要添加一个铵钮,让用户能交卷的动作。








上图中的序号1,是获取主键;序号2是获取选择的用户控件;序号3是获取用户选择的值。另外,你设计试卷时,应该是交卷之后,再不能看到试卷了,应该是提示信息已交卷。
如果考员作了如下选择:




点击“交卷”铵钮之后,可以看到存储数据表的数据:




好的,整篇的演示完成了。让大家对RadioButtonList控件应用有所护展。本博文有涉及到数据库,存储过程,用户控件,重点在于网页与用户控件之间的互通,这还涉及到接口,动态加载用户控件,怎样在Repeater控件外的铵钮事件中获取repeater控件内的一些值,如主键等。

其实,作为更好的试卷设计,应该让考员能查看已经批改的试卷。系统应该是自动对比标准答案,来判断错与对。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: