序的数据层和应用层并没有严格的分开,可重用性和程序可读性都不强,虽然程序
注释块使用了标准的XML格式。
b)在线练习模块中显示某门课程的练习卷列表部分没有使用分页,一旦练习卷数量增大
(单门课程的练习卷数量达到300份以上),页面的异步数据读取将会出现明显的延
迟,给用户造成"该课程没有练习卷"的假象,这无疑加大了后期系统的维护量。
附录A
、数据库表结构的SQL
建表语句(不是最新的,以数据库为准):
--1-用户表id密码权限科室
createtableusers(
idvarchar(20)notnull,
upwdvarchar(20)notnull,
urightint,
uroomvarchar(20)notnull,
unamevarchar(8)notnull,
constraintPK_userprimarykey(id)
);
--用户组表组ID组名
createtableugroup(
ugidintnotnull,
15
namevarchar(20)notnull,
constraintPK_ugroupprimarykey(ugid)
);
--组权限表组ID菜单tag权限
createtablegright(
ugidintnotnull,
menu_tagvarchar(20)notnull,
mrightint,
constraintPK_grightprimarykey(ugid)
);
--学生表id密码姓名性别年级专业班级
createtablestudents(
stu_idvarchar(20)notnull,
pwdvarchar(20)notnull,
namevarchar(8)notnull,
sexvarchar(2),
gradevarchar(4)notnull,
majorvarchar(30)notnull,
classvarchar(4)notnull,
constraintPK_studentsprimarykey(stu_id)
);
--课程表id课程名
createtablecourse(
cidvarchar(20)notnull,
cnamevarchar(30)notnull,
constraintPK_courseprimarykey(cid)
);
--题型表题型编号,题型,在试卷中的顺序位置
createtablestyles(
sidintnotnull,
snamevarchar(20)notnull,
sorderintnotnull,
constraintPK_stylesprimarykey(sid)
);
--课程题型关联表课程ID题型ID
createtablecourse_styles(
cidvarchar(20)notnull,
16
sidintnotnull,
constraintPK_course_stylesprimarykey(cid,sid)
);
--学生课程关联表
createtablestudents_course(
stu_idvarchar(20)notnull,
cidvarchar(20)notnull,
constraintPK_students_courseprimarykey(stu_id,cid)
);
--题目表id题目内容课程id题型id章节关键词难度添加时间添加人审核审核人
createtablequestions(
qidintnotnull,
contenttextnotnull,
cidvarchar(20)notnull,
sidvarchar(2)notnull,
chapterintnotnull,
pointvarchar(50),
qlevelintnotnull,
add_timedatetimenotnull,
add_uservarchar(20)notnull,
auditintnotnull,
auditteachervarchar(20)
constraintPK_questionsprimarykey(qid)
);
--题目附加信息表附加id附加题标题附加内容
createtableextra_questions(
eidintnotnull,
etitlevarchar(100),
contenttextnotnull
constraintPK_extra_questionsprimarykey(eid)
);
--题目-附加信息关联表
createtableq_e(
eidintnotnull,
qidintnotnull,
constraintPK_e_qprimarykey(eid,qid)
);
--题目-图片关联表
17
createtablep_q(
qidintnotnull,
pidintnotnull,
constraintPK_p_qprimarykey(qid,pid)
);
--答案表
createtableanswers(
aidintnotnull,
qidintnotnull,
optionsnamevarchar(1)notnull,
optionsvarchar(300)notnull,
answerint,
constraintPK_answersprimarykey(aid)
);
--图片列表
createtablepics(
pidintnotnull,
pnamevarchar(30),
pBlobimage,
constraintPK_picsprimarykey(pid)
);
--试卷列表id,name考试时间,课程代号,考试与否{0练习,1考试},试卷类型,考试方式{0传统,1
在线},审核,审核人ID,考试与否{0未考,1已考
}
createtabletestpaper_list(
paper_idintnotnull,
paper_namevarchar(50)notnull,
paper_timedatetimenotnull,
cidvarchar(20)notnull,
testintnotnull,
paper_stylesvarchar(1),
testwayint,
auditintnotnull,
auditteachervarchar(20)notnull,
sysstatent,
constraintPK_testpaper_listprimarykey(paper_id)
);
--试卷详细信息
createtabletestpaper(
paper_idintnotnull,
18
qidintnotnull,
q_numint,
qscoreint,
constraintPK_testpaperprimarykey(paper_id,qid)
);
--参加考试学生表试卷Id学号{0未考,1已考,2作弊}
createtablepaper_students(
paper_idintnotnull,
stu_idvarchar(20)notnull,
stu_stateint,
constraintPK_paper_studentsprimarykey(paper_id,stu_id)
);
--已考的试卷
createtablepaper_done(
paper_idintnotnull,
stu_idvarchar(20)notnull,
qidintnotnull,
q_numint,
answervarchar(200)notnull,
stu_scoreint,
grade_teachervarchar(20),
grade_timedatetime,
audit_teachervarchar(20),
audit_timedatetime,
constraintPK_paper_doneprimarykey(paper_id,stu_id,qid)
);
说明:
整个课题有7个人在做,除了在线考试部分是B/S模式的,其余的部分(试题添加、试卷
分析......)都是C/S模式的(开发工具是powerbuilder8.0),我负责在线考试部分,这里只能
放出自己这部分的代码,所以不是完整的一个试题库系统。
毕业设计初期的代码大量参考了网上的一个系统的代码,该系统的作者的博客:
http://blog.sina.com.cn/wuhaitao,后来参考的代码部分都按自己的想法重新实现。
谢谢这位哥们。
环境:vs2005(c#)+sqlserver2000+Asp.netajax1.0
登陆窗口:ExamOnline\Students\login.aspx
其他:Exam.cs和AutoExercise.cs里很多的函数功能都是重复的,除了随机组卷函,
19
AutoExercise.cs里的函数都是是对Exam.cs的重写,Exam.cs里的很多函数效率都很低的,所
以页面examonline.aspx和exerciseonline.aspx的效率不敢恭维,也没有去改它,页面
autopage.aspx的效率用的函数是优化过的,所以效率还可以。
Common.cs里有一个验证正则表达式的和用来显示错误的函数。
Login.cs是用来检验登陆情况的。
关于我
Email:
asp_net在线考试统加论文(论文和程序)为[网学网-网友上传,谢谢支持]。
Blog:http://mmchome.spaces.live.com/__
上一篇:
ASP_net图书馆管理信息系统论文差(论文和程序)
下一篇:
注重内涵建设实现社区卫生服务可持续发展——上海市杨浦区殷行社区卫生服务中心介绍