asp.net,c#,sql在线考试考勤系统毕业论文设计,免费ppt,源代码,开题报告,本科,大专

3995
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
下载 ×

下载APP,资源永久免费


如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

下载论文助手APP,资源永久免费

免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


第三章、系统架构及数据库设计

3.1 该系统在平时可以作为学生测试自己专业知识的模拟考卷系统,在考试周期内则承担起在 线考试的任务。

3.2 作为模拟考卷系统时,学生可自行查看自己的测试结果和标准答案。

3.3 作为模拟考卷系统时,学生可以自己决定生成试卷的科目和所属的章节。

3.4 在考试周期内的非考试时间该系统对学生关闭,考试时间内才允许考生登录,系统则生成 该时间段内的考试科目试卷,考试结束前的 30 分钟、15 分钟、5 分钟时对考生进行提示,考 试结束后若考生没有进行试卷提交则自动进行试卷保存处理。

3.5 系统要有防止考生无意关闭系统或者提交试卷而导致考试无法继续进行的机制。

3.6 正式考试时系统对具体试卷的客观题自行判分,主观题则由老师判分。 3.7 要保证在同一次考试中系统生成的各份试卷难易度保持在同一个水平。 3.8 保存每个学生的考试试卷副本,便于在规定时间内考生查卷。

3.2 系统架构 本子系统的模块结构如下:

1、 在线考试模块。 2、 在线练习模块。

a) 传统的试卷读取。 b) 自动组卷。

1

系统总体结构如图所示: (红色部分为在线考试子系统)

除了以上主要模块外, 还有一些不是重点但是同样重要的模块, 包括学生登陆, 密码改,修 学生信息维护等等。

2

3.3 用例图(在线考试子系统中主要用到了学生用例图) 学生用例图:

教师用例图:

3

3.4 系统类图

3.5 数据库表结构(见附录 A)

4.1 学生登陆模块

第四章、具体实现

4

窗口左边是最近考试安排, 显示5 门最近要进行的考试, 从这里考生可以了解大概的一些情况, 比如开考时间和考试的科目等等。 窗口右边是学生的登陆窗口, 在 【 练习模式】 没有被勾选的 情况下,如果该考生在该时间段内有考试,则进入考试登陆界面:

点击 【 进入考试】 按钮后打开试卷开始考试。 如 果学生输入密码错误或者在该时段内没有考试 则系统根据具体情况弹出错误窗口,具体有以下四种情况:

1、 学号或者密码错误。 2、 该时段内没有考试。 3、 已经考过。

4、 迟到。 显示的截图:

5

4.2 在线考试模块 学生在正确的时间段内用正确的学号密码登陆后进入在线考试,登陆后考试页面如下:

浏览器的标题栏会显示考试还剩下的时间:

为了减轻系统的负担,从服务器读取时间的间隔为30 秒,所以时间判断会有0~30 秒的误差。 考试结束后, 系统会自动提交试卷, 如果你想提前结束考试, 可以点击 【交卷】 按钮来提交试 卷:

6

交卷成功后显示结果信息:

点击【关闭】按钮结束考试。

7

4.3 在线练习模块 学生在登陆窗口勾选【练习模式】并输入正确的学号和密码则进入在线练习,截图如下:

在线练习又包括传统试卷读取和自动组卷两部分:

4.3.1、传统试卷读取 在【在线练习――选择练习卷】窗口,选择科目,然后选择该科目的某份试卷,点击【确定】 按钮进入该练习卷页面,如果没有选择练习卷就按【确定】按钮,则会弹出提示框:

8

练习卷的页面如下:

右上角有个【显示答案】选项,勾选后会弹出标准答案块:

9

标准答案块可以用鼠标拖动, 便 于学生校对答案, 客观题自动判卷实现起来有点棘手, 所 以并 没有做自动判卷。

4.3.2、自动组卷 在【在线练习――选择练习卷】窗口,单击【高级选项】则进入自动组卷模块:

10

左栏是科目, 右 栏是该科目的组卷参数配置, 右栏下方显示该课程题量信息, 如 果组卷参数配 置不正确,会有弹出框提示,有如下四种情况的错误:

组卷参数配置正确后点击 【 自动组卷】 生成一份满足要求的随机试卷, 随 机试卷的页面和传统 练习卷的页面基本一致,截图如下:

11

组卷算法的实现是在线考试子系统的一个难点, 该 算法的思想和流程由指导老师提供, 自 己实 现代码部分。

根据算法的参数配置,假设选择的课程代号为 cid,题目类型代号为 styles,难度系数为 level, 所取题量为 num。则所取的题目总的难度为 level×num,步骤如下:

1、 随机抽取满足该课程类型条件的题目一题,将该题号、题目难度系数添入临时表。

2、 将总的难度减去之前抽取的题目难度。

3、 剩下的难度总数如果在允许的范围内,则继续随机抽取临时表中没有的题目。允许的难度

范围的计算方法:最小值为(剩下的题量×单个题目难度系数最小值) ,最大值为(剩下

的题量×单个难度系数最大值) 。

4、 如果剩下的难度系数总数比难度允许范围最小值还小,则剩下的题目都抽取难度系数最小

的题目,如果剩下的难度系数总数比难度允许范围最大值还大, 则剩下的题目都抽取难度

 系数最大的题目。同样,这些题目在抽取时都要保证它们不在临时表中。

5、 循环执行步骤 2、3、4 直到题目抽取完成。

4.4 密码修改模块 在登陆窗口点击【密码修改】弹出密码修改窗口:

12

输入用户名和原密码及两次新密码,点击【确定】按钮修改,错误情况下弹出提示框:

密码修改成功后显示修改成功的信息,单击提示框的【确定】按钮关闭密码修改窗口。

13

存在的问题:

1、 正式考试时,同一个时间段不允许有多门考试同时进行,这是当初概要分析时的一个逻辑

错误造成的。

2、 为了降低自动组卷的难度,使用的组卷算法是其实一种伪算法,取出的试卷在难度上存在

 少许偏差,偏差在可接受的范围内。

3、 该系统现在还不能区分试题库中内容相似的题目,也就是说产生的试卷可能存在题目内容

 雷同的情况,判断题目的雷同程度也是一个难点。

4、 自动组卷供选择的参数不够多。

5、 在线练习还无法自动改卷,一个可以替代的方法就是显示正确答案。

6、该系统在IE浏览器下面才能正常的显示(在 IE6下表现最佳),在其他的浏览器(比如

Fi reFox)下的表现一塌糊涂。 7、 程序方面:

a) 程序的数据层和应用层并没有严格的分开, 可 重用性和程序可读性都不强, 虽 然程序 注释块使用了标准的 XML 格式。

b) 在线练习模块中显示某门课程的练习卷列表部分没有使用分页, 一 旦练习卷数量增大 (单门课程的练习卷数量达到 300 份以上) ,页面的异步数据读取将会出现明显的延 迟,给用户造成“该课程没有练习卷”的假象,这无疑加大了后期系统的维护量。

附录 A、数据库表结构的 SQL 建表语句(不是最新的,以数据库为准):

--1-用户表 id 密码 权限 科室 create table users (

id varchar(20) not null,

upwd

uri ght

uroom

uname

constraint PK_user primary key (id)

);

--用户组表 组ID组名 create table ugroup (

ugid int not null,

varchar(20) not null, i nt,

varchar(20) not null, varchar(8) not null,

14

name varchar(20) not null,

constraint PK_ugroupprimary key (ugid) );

--组权限表 组 ID 菜单 tag 权限 create table gright (

ugid int not null,

menu_tag varchar(20) not null,

mri ght i nt,

constraint PK_grightprimary key (ugid)

);

--学生表 id 密码 姓名 性别 年级 专业 班级 create table students (

stu_id varchar(20) not null, pwd varchar(20) notnull, name varchar(8) not null, sex varchar(2),

grade varchar(4) not null,

major varchar(30) not null, classvarchar(4) not null, constraintPK_students primary key (stu_id)

);

--课程表 id 课程名 create table course (

cid varchar(20) not null,

cname varchar(30) not null, constraintPK_course primary key (cid)

);

--题型表 题型编号,题型,在试卷中的顺序位置 create table styles(

sid intnotnull,

sname varchar(20) not null,

sorder intnotnull, constraintPK_stylesprimary key(sid)

);

--课程题型关联表 课程 ID 题型 ID create table course_styles(

cid varchar(20) not null,

15

sid intnotnull,

constraintPK_course_stylesprimarykey (cid,sid) );

--学生课程关联表

create table students_course (

stu_id varchar(20) not null,

cid varchar(20) not null, constraintPK_students_course primary key(stu_id,cid)

);

--题目表 id 题目内容 课程 id 题型id 章节 关键词 难度 添加时间 添加人 审核 审核人 create table questions(

qid intnotnull,

content text not null,

cid varchar(20) not null,

sid varchar(2) not null,

chapter intnotnull,

point varchar(50),

qlevel intnotnull, add_timedatetimenotnull,

add_user varchar(20) not null, auditintnotnull,

auditteacher varchar(20) constraintPK_questionsprimary key (qid)

);

--题目附加信息表 附加 id 附加题标题 附加内容 create table extra_questions(

eid intnotnull,

etitlevarchar(100),

content text no t null constraintPK_extra_questionsprimary key(eid)

);

--题目-附加信息关联表 create table q_e (

eid intnotnull,

qid intnotnull, constraintPK_e_qprimary key (eid,qid)

); --题目-图片关联表

16

createtablep_q(

qid intnotnull,

pid intnotnull,

constraintPK_p_qprimary key (qid,pid) );

--答案表

create table answers (

aid intnotnull,

qid intnotnull,

optionsname varchar(1) not null, options varchar(300) not null,

answer i nt,

constraintPK_answers primary key (aid)

);

--图片列表 create table pics (

pid intnotnull,

pname varchar(30),

pBlob image,

constraintPK_pics primary key (pid)

);

--试卷列表 id,name 考试时间,课程代号,考试与否{0 练习,1 考试},试卷类型,考试方式{0 传统,1

在线},审核,审核人 ID,考试与否{0 未考,1 已考

}

create table testpaper_list(

paper_id intnotnull,

paper_name varchar(50) not null,

paper_time datetimenotnull,

cid varchar(20) not null,

test intnotnull,

paper_styles varchar(1),

testway i nt,

audit intnotnull,

auditteacher varchar(20) not null,

sysstate nt,

constraintPK_testpaper_list primary key (paper_id)

);

--试卷详细信息 create table testpaper(

paper_id intnotnull,

17

qid intnotnull,

q_num i nt,

qscore int,

constraintPK_testpaper primary key (paper_id,qid)

);

--参加考试学生表 试卷 Id 学号 {0 未考,1 已考,2 作弊} create table paper_students(

paper_id intnotnull,

stu_id varchar(20) not null,

stu_state int,

constraintPK_paper_students primary key (paper_id,stu_id)

);

--已考的试卷

create table paper_done (

paper_id intnotnull,

stu_id varchar(20) not null, qid intnotnull,

q_num

answer

stu_score

grade_teacher

grade_time

audit_teacher

audit_time

constraintPK_paper_doneprimary key (paper_id,stu_id,qid)

i nt,

varchar(200) not null, int,

varchar(20), datetime, varchar(20), datetime,

);

说明:

整个课题有 7 个人在做,除了在线考试部分是B/S 模式的,其余的部分(试题添加、试卷

分析......)都是 C/S 模式的(开发工具是 powerbuilder8.0) ,我负责在线考试部分,这里只能 放出自己这部分的代码,所以不是完整的一个试题库系统。

毕业设计初期的代码大量参考了网上的一个系统的代码,该系统的作者的博客: http://blog.sina.com.cn/wuhaitao,后来参考的代码部分都按自己的想法重新实现。

谢谢这位哥们。

环境:vs2005(c#) + sql server2000 + Asp.net ajax1.0

登陆窗口:E xamOnli ne\Students\l ogi n.aspx

其他:Exam.cs 和 AutoExercise.cs 里很多的函数功能都是重复的,除了随机组卷函,

18

AutoExercise.cs 里的函数都是是对 Exam.cs 的重写,Exam.cs 里的很多函数效率都很低的,所 以页面 examonline.aspx 和 exerciseonline.aspx 的效率不敢恭维,也没有去改它,页面 autopage.aspx 的效率用的函数是优化过的,所以效率还可以。

Common.cs 里有一个验证正则表达式的和用来显示错误的函数。 Login.cs 是用来检验登陆情况的。



免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。
扫描加我微信 ×

演示

×
登录 ×


下载 ×
论文助手网
论文助手,最开放的学术期刊平台
				暂无来源信息			 
回复
来来来,吐槽点啥吧

作者联系方式

×

向作者索要->