案例1 题库管理系统
  为了减轻教师的工作负担、提高工作效率、提高考试的质量,也为广大学子及老师提供一个方便的场所,运用数据库和相关访问技术完成一个题库管理系统的设计与开发,功能主要包括用户登录,试题管理,用户管理,阅卷等功能。
一、系统需求
  首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,应该能根据自己的需要进行个人信息的修改,考试系统的进入,以及考分的查看。在线考试与一般的单机考试是不同的。鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择答案提交后,应该由计算机自动判卷,得到成绩后显示出来。考试完毕后,可以返回登录界面或继续考试。此外,用户还应能进行远程注册。
   主要功能:
用户注册:用户可以进行注册,然后登录。
用户信息的修改:用户可以根据需要修改密码。
用户信息的管理:管理员可以增删改用户。
试题库管理:对选择、判断、填空三种题型试题库的管理。
试卷生成:可以指定试卷的各题型的数量,从试题库里随机或按指定方式抽取试题生成一份原始试卷。(可选)
数据流图,E-R图,功能模块图(设计报告中必须有,此处略)。
二、系统界面(参考)
1.用户登录模块
   用户通过网络首先进入登录模块,如图1-1所示。在此页面用户选择不同的用户类型,再输入正确的用户名和密码,在点击“确定”按钮,就可进入用户操作界面;如果用户所输入的用户名或者密码有错误,则系统会给予用户提示,重新输入正确的用户名和密码,如图1-2所示。
   图1-1 用户登录页面图1-2 登录失败时的提示
2.管理员管理模块
  管理员首页
   当用户输入正确的用户名和密码后,就会进入管理员操作页面,此页面左侧是各个操作的导航栏,通过这些导航,管理员可以进行修改密码、添加科目、试题管理、试卷管理等操作。如图1-3所示。图1-3 管理员页面
密码修改功能
   点击导航栏的“密码修改”链接,进入修改密码的页面,分别输入原密码和新密码,在点击“确定”按钮,完成密码修改;如果输入的原密码错误,或者新密码与确认密码不一致时,系统就会给予管理员相应的提示。具体实现如图1-4、图1-5、图1-6、图1-7所示。图1-4 密码修改页面图1-5 修改密码成功图1-6 原密码错误提示图1-7 新密码与确认密码不一致的提示
添加科目功能
   单击“添加科目”,链接到添加科目的页面,如图1-8所示。此页面可以用来添加新的考试科目;如果所要添加的科目已存在,则系统提示管理员科目已存在,需要重新添加,如图1-9所示。图1-8 添加考试科目页面图1-9 科目已存在提示
试题管理功能
   1) 试题管理页面
   单击导航栏的“试题管理”,可连接到试题管理页面。此页面包括试题添加、试题查询、试题修改等功能。如图1-10所示。图1-10 试题管理页面
   2) 添加试题功能
   通过图1-10中所示的试题添加模块,选择所要添加的试题类型,根据不同的类型,添加试题。本系统共有4种试题类型,分别是选择题、填空题、判断题、问答题。通过所选择试题类型,进入相应的页面添加试题。
   所有的试题都需要添加试题编号、试题内容、所属科目、创建时间、参考答案。其中选择题还需要添加各个选项。选择题的信息将会被添加到SingleSel表中。具体页面实现如图1-11所示。图1-11 选择题添加页面
   注意:添加试题时,试题编号不能重复,如重复则会出现提示框,如图1-12所示。判断试题编号是否重复的代码如下:
   string sql2="Select QuestionID from SingleSel where QuestionID ='"+TextBox6.Text.Trim()+"'";
   SqlCommand cmd2 = new SqlCommand(sql2, conn);
   conn.Open();
   SqlDataReader dr1 = cmd2.ExecuteReader();
   if (dr1.Read()){Response.Write("<script>alert(\"试题编号重复,添加失败\");</script>"); }
图1-12 试题编号重复提示
   填空题与选择题页面相近,本系统设计的填空题为一个空的,所以管理员在添加填空题时,只能够添加拥有一个空填空题。如图1-13所示。图1-13 填空题添加页面
   判断题与其他题型的区别在于:判断题的答案只有正确与错误两种,所以可以使用RadioButton控件来实现。功能实现结果如图1-14所示。
   图1-14 判断题添加页面
   问答题的答案一般会比较长,所以使用TextBox控件来书写参考答案,将TextBox的TextMode属性设置为MultiLine,就可以输入较长的内容了。其功能实现如下图1-15所示。图1-15 问答题添加页面
   3) 试题查询功能
   在试题管理界面中,管理员可以通过选择考试科目、试题类型、创建时间三个查询条件中的一个或者多个条件,来查询符合相应条件的试题。本系统通过一个GridView控件来显示所要查询的试题,该控件主要显示试题的基本信息,如试题编号,试题类型,试题内容,试题所属科目,以及试题的创建时间。其功能实现结果如下图1-16所示。图1-16 试题查询功能
   4) 试题删除功能
   正如图5-16所示,当管理员需要删除某一个试题时,先通过查询模块查询试题,再单击选中试题后面的“删除”按钮,就可以删除选中试题。如果删除成功,查询页面就会自动刷新,显示删除后内容。如下图1-17所示将试题编号为“X001”的试题删除。
图1-17 删除功能实现
   5) 试题修改功能
   当管理员需要修改某一个试题时,先通过查询模块查询试题,再单击选中试题后面的“修改”按钮,系统会根据所选试题的试题类型链接到相对应的修改页面;同时系统会将所选试题的所有信息在修改页面中显示,供管理员修改其中的信息。如图1-18将编号为“XZ001”试题的创建时间有“2011-6-1”修改为“2011-5-1”。图1-18 修改前的页面SQLVB