基于.NET的考试试卷网络在线生成系统

一、试卷在线生成概述

1.1  试卷在线生成系统的发展现状
     考试是每个学校的必备工具,每当期中或期末前每门课都需要出至少一份试卷,以便检查学生对这门课程学习的掌握情况,并给出一个量化的分值作为学生该课程的成绩。目前,每个学校对出卷都有一些要求,如出题的重复率不能超过30%,客观题不多于50%等,因此出卷对每个教师是一项艰巨的任务。教师通过多年的教学,一般都积累了丰富的考试素材(题库),如何快速地从这些素材中生成符合学校规定的考试试卷,就成了很多教师都希望的。
       要自动生成试卷,就需要明确该试卷的出题种类,每个各类的出题数量,每个题目的分值等数据;一般题库中的题目很多,同一个概念的题目可能有多个,难度又可能不同,但同一个概念在同一类中只能出一题,因此需要为每个题目设置一个知识点,自动生成试卷(即从题库中随机抽题)时,当该知识点的题已在试卷中时,就放弃,否则就放入该卷中。

1.2  主要研究内容
      试卷自动生成系统是为解决教师出题难的实际需要而开发的,既要满足各类考试的出题所需,与教学中出卷的理念一致,而且要参数方便设置,生成简便。为此,出卷系统的主要目标为:
    1、系统应具备在线运行功能,用户通过网络随时随地访问和操作。
    2、具备安全的数据存储,数据符合
    3、所有基础数据通过前台方便地进行增、删、改操作;
    4、按教学要求,方便设置生成试卷所需的参数:题型、各题型的试题数量、难度;
    5、支持生成期中、期末、补考、重修及选修各种考试的试卷;
    6、为防止学生死记硬背,同一选择题的各个选项在不同的试卷中出现的位置可能是不同的;
    7、按设置的试卷参数,自动生成试卷,并提供Word版试卷的功能。

二、开发工具及关键技术

   1、开发平台的选择
     系统采用NET技术。.NET开发平台由一组用于建立Web服务应用程序和Windows桌面应用程序的软件组件构成,包括.NET框架(Framework)、.NET开发者工具和ASP.NET。微软对.NET的定义是The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet。意思是,.NET是在高度分布式的互联网环境中,使软件开发简单化的新的计算平台[1]。这里说了分布式的互联网环境,这个很重要,说明以后的商业活动会在网上进行,所以我们应该跟着时代潮流,做程序的时候要考虑到这一点。说白了就是.NET可以提高应用程序开发的速度。
     .NET的优点:跨语言,跨平台,安全,以及对开放互联网标准和协议的支持还可以通过Web Service和.NET Remoting技术在远程与对象交互;支持多种语言的互操作,即在一种语言下开发的组件;可在另一组件下通过面向对象的继承而得以重用;通过将各语言先编译成中间语言(IL);然后再执行时用即时(Just In Time Activation)编译器将之编译成本地平台代码来实现异构平台下对象的互操作,提高代码运行速度;通过公共语言运行库CLR(Common Language Runtime)来实现资源对象,类型的安全;通过对HTTP,XML等Internet标准的支持提供在异构网络环境下获取远程服务;连接远程设备,交互远程应用的编程界面。正因为这些优点,并且对同为微软开发数据库应用的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,所以这里选用.NET开发平台来开发本系统。

2、数据库技术
      数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。对数据库的维护包括保持数据的完整性、一致性和安全性。
      (1) SQL Server 2008 r2概述
       SQL Server 是一款面向高端的数据库管理系统,被称为新一代大型电子商务、数据仓库和数据库解决方案,具有强大的数据管理功能,提供了丰富的管理工具支持数据的完整性管理,安全性管理和作业管理。SQL Server具有分布式数据库和数据仓库功能,能进行分布式事务处理和联机分析处理,支持客户机/服务器结构。SQL Server支持标准的ANSI SQL,还把标准SQL扩展成为更为实用的Transact-SQL[3,4]。
      SQL Server 2008 r2扩展了SQL Server 2000版的性能、可靠性、质量和易用性,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。可跨越从运行Windows 7 的PC电脑到运行Windows Server 2022 的大型多处理器的服务器等多种平台使用。MSSQL Server不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQL Server数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQL Server的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQL Server的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构[5]。
      (2) 数据库系统设计
       数据库对于一个成功的教务管理系统来说是一个非常重要的条件和关键技术。系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试[6]。
      ①  数据库需求分析的任务是明确用户的需求,将业务管理流程化为数据流程,划分模块之间的边界,完成相应的数据字典。
      ②  概念设计的任务是在需求分析阶段的结果的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型。
      ③  逻辑设计的任务是将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子模式。
      ④  物理设计的任务是根据具体的计算机系统的特点,为给定的数据库模型确定合理的存储结构和存取方法。实现物理建库,完成数据库物理设计字典[7]。
       加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。
      (3) SQL语言介绍
       结构化查询语句SQL(Structured Query Language)目前是数据库的标准主流语言。SQL语言能完成定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,具有集DDL(Data Definition Language,数据定义语言)、DML(Data Manipulation Language,数据操纵语言)、DCL(Data Control Language,数据控制语言)为一体的特点。SQL语言具有两种使用方式,用户使用不同的方式时,SQL语言的语法结构是基本一致的,这大大改善了最终用户和程序设计人员之间的通信[8]。在使用SQL语言时,存取路径的选择和SQL语句操作的过程都是由系统自动完成的。虽然SQL语言的功能十分强大,但是它的语法一点都不复杂,十分简洁,SQL语言的语法接近英语口语,因此易学易用。
       SQL语言的数据操纵功能主要包括两个方面:检索和更新(包括增加、修改、删除)。涉及到四个语句:查询(SELECT)、插入(INSERT)、删除(DELETE)和更新(UPDATE)[9]。
       用SQL语言对数据库中的数据进行更新、插入或删除时,都是对单个表进行的,如果表之间没有定义完整性约束,则可能导致多个表之间的数据不一致。

3、 ADO.NET
    (1)  ADO.NET概念
     .NET中对数据库的访问是通过ADO.NET来实现的,ADO.NET是ADO的升级版本,在ADO.NET中数据处理被延伸到三层以上的结构[10]。在ADO.NET中最重要的两个概念是Managed Provider和DataSet, Managed Provider提供了DataSet与数据库之间的联系,并可以通过数据集命令将需要的数据填入DataSet中;DataSet是不依赖于数据库的独立数据集合。即使数据连接断开,DataSet依然是可用的。
ADO.NET 访问数据库的步骤如下:
  ① 创建一个与数据源的连接。
  ② 请求一个数据集合。
  ③ 将集合放入DataDet中。
  ④ 如果需要,可以再请求另外的数据集合。
  ⑤ 关闭数据连接。
  ⑥ 在DataSet上进行所需要的操作。
  ⑦ 如果需要,将DataSet的变化更新到数据库中。
    (2) 数据库访问方式
SqlClient模式只用于访问MS SqlServer数据库,是ADO.NET中比较特殊的组件,对访问MS SqlServer来说,采用SqlClient模式比OleDb、ODBC模式效率更高,所以在本系统中,采用SqlClient模式[11]。
   使用SqlClient时需要引入命名空间有System.Data和System.Data.SqlClient.
    (3) 连接Connection对象
    与Connection对象关联的主要属性是ConnectionString,在本系统中ConnectionString属性如下:
Data source=.;user id=sa;password=123;initial catalog=edu;Connect Timeout=5
并在使用过程中使用Open和Close两种方法打开和关闭数据库连接。
    (4)  数据库操作Command对象
  使用Command执行数据库操作步骤:
  ① 建立数据库连接,使用Connection对象的Open()方法。
  ② 执行数据库操作,使用ExecuteReader()或ExecuteNonQuery()执行数据库命令。
  ③ 关闭数据库连接,使用Connection对象的Close()方法。
    检索数据
   SqlCommand czcmd = new SqlCommand("Select username From userb ", MyConn);
    MyDa.SelectCommand = czcmd;        
    插入数据
 string strSq2 = "INSERT INTO qtckb(ckbh, ckbm, hm,fcbm, ckrq,czy,bz,cjsm,srbldh,czsj)";
strSq2+="VALUES('"+bh.Text.ToString().Trim()+"','"+bm.Text.ToString().Trim()+"','"+hm.Text.ToString().Trim()+"','"+fcname+"','"+ckrq.Value+"','"+czy.Text.ToString().Trim()+"','"+bz.Text.ToString().Trim()+"','"+cjsm.Text.ToString().Trim()+"','"+srbldh.Text.ToString().Trim()+"','"+DateTime.Now.Hour.ToString()+":"+DateTime.Now.Minute.ToString()+":"+DateTime.Now.Second.ToString()+"')";
SqlCommand MyComm2 = new SqlCommand(strSq2, MyConn); 
int count2 = MyComm2.ExecuteNonQuery();    
    修改数据
string strSql =    "Update qtckb Set ckbh = '"+bh.Text.ToString().Trim()+"'"+
" Where ckbh = '"+bh.Text.ToString().Trim()+"'"; 
SqlCommand MyComm = new SqlCommand(strSql, MyConn); 
int count = MyComm.ExecuteNonQuery();    
    删除数据
SqlCommand MyComm1 = new SqlCommand("Delete From qtckmxb Where qtckmxb.ckbh = '"+this.bh.Text.Trim()+"'", MyConn);
int count1 = MyComm1.ExecuteNonQuery();
    (5)  数据库操作DataAdapter对象和DataSet对象
  ① 创建一个数据库连接对象;
  ② 创建一个包含相应数据库查询语句的DataAdapter对象
      string sql_xy = "SELECT kcid,kcm FROM kcb order by kcm";
      SqlDataAdapter Da = new SqlDataAdapter(sql_xy,Conn);
  ③ 创建一个数据集
        DataSet  Ds = new DataSet();
  ④ 执行DataAdapter对象的Fill方法将查询结果添加到数据集中
       Da.Fill(Ds , "Customers")
  ⑤ 对数据集执行相应的操作

4、应用程序配置文件WEB.CONFIG以及数据库访问类DBAccess.cs
WEB.CONFIG文件是为了当数据库服务器发生更改时能方便快捷地更改数据库连接语句:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
      <connectionStrings>
        <add name="conn" connectionString="server=(local);uid=stu;pwd=7142;database=edu" />        </connectionStrings>
</configuration>
DBAccess.cs类是为了在编写代码时方便地使用数据库连接:
static private string strConn = System.Configuration.ConfigurationSettings.AppSettings["sqlConn"];

三、系统分析

3.1  可行性分析

3.2  需求分析

    为满足大多数教师对于在线试卷生成的需要,需要达到以下目标:
    ● 系统人机对话方式,界面简洁、框架清晰、美观友好,信息查询灵活、方便,数据存储安全可靠。
    ● 灵活、快速的上传和下载文件。
    ● 系统最大限度地实现易维护性和易操作性。
    ● 实现管理员对班级、考生、课程、章节、知识点、难度、题型、试题库等系统基础数据的管理与维护;
    ● 实现课程信息管理(任课教师、课程负责人管理);
    ● 课程负责人设置与课程考试有关的参数:学期、考试类型、组卷等参数;
    ● 课程负责人根据设定的参数生成课程考试的Word试卷

    为此本系统确定应包括基础数据的维护,考试参数的设置与维护,生成试卷并下载等管理功能。

四、数据库设计

      数据库是管理信息系统运行的基础,也是业务数据存放的地方。合理设计的数据库能够提高业务处理的效率,而不合理的数据库设计则可能直接导致系统实施的失败。因此,数据库的设计必须以系统的需求分析为依据。

4.1  数据库概念结构设计

    概念结构设计阶段是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。

    1、数据库(Database,DB)
      数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库技术使数据能按一定格式组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为一定范围内的多个用户共享。
    2、数据库管理系统(Database Management System.DBMS)
      数据库管理系统位于用户和操作系统之间的一层数据管理软件。它可以科学、有效地组织和存储数据,高效地获取和维护数据。由于DBMS实现的硬件资源、软件环境不同,所以DBMS的功能和性能有差异。但它们通常都具有如下几个方面的基本功能:
    (1)  数据库定义。DBMS提供数据定义语言(Data Definition Language,DDL),通过它可以方便地对数据库的模式结构、数据库的完整性、数据库的安全性等进行定义。这些定义存储在数据字典中,是DBMS运行的基本依据。
    (2)  数据存取。DBMS提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如记录查询、插入、删除和修改。
    (3)  数据库运行管理。数据库在建立、运行和维护时由DBMS统一管理、控制,以保证数据的安全性、完整性、多用户对数据的并发访问和发生故障后的系统恢复。
    (4)  数据组织、存储和管理。DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。要确定以何种文件结构和存取方式在存储介质上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法,提高存取效率。
    (5)  数据库建立和维护。包括数据库初始数据的输入、转换功能,数据库的存储、恢复功能,数据库的重组、性能监视和分析功能等。
    (6)  其他功能。DBMS的功能还包括DBMS与网络中其他软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。
    3、数据库系统(Database System,DBS)
      数据库系统是指在计算机系统中引入数据库后的系统构成,一般有数据库、数据库管理系统、应用系统、数据库管理员构成。

4.3  逻辑结构设计

      综合试卷在线生成系统的结构分析和功能的实现,数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合” [19,20]。教务管理系统数据量是庞大的,因此它所需的数据库应具有灵活性。本系统采用的是SQL Server 2008 R2作为系统的后台数据库。数据库名称为:ExamDBs.

4.4  数据库物理设计

        试卷在线生成系统相关数据表,各表的结构如下:
    1、角色表
     为可更好地完成该系统的运行,设置了角色表。本系统设置了管理员、课程负责人、普通教师三个角色。

4.1 Role

序号

字段名称

字段类型

长度大小

是否未空

字段说明

1

RoleID

varchar

16

0

角色号

主键

2

RoleName varchar

38

0

角色名

3

RoleAuthority Bigint

2

0

角色权限

     2、 部门表

表4.2 Department

序号

字段名称

字段类型

长度大小

是否未空

字段说明

1

DepartmentID

varchar

6

0

部门号

主键

2

DepartmentName varchar

30

0

部门名

3

DepartmentType tinyint 

1

1

部门类别

     3、 教师表

表4.3 Teacher

<

序号

字段名称

字段类型

长度大小

是否未空

字段说明

1

TeacherID
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

axmanHZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值