联机考试系统(杨麟儿)-无忧无虑毕设网_第1页
联机考试系统(杨麟儿)-无忧无虑毕设网_第2页
联机考试系统(杨麟儿)-无忧无虑毕设网_第3页
联机考试系统(杨麟儿)-无忧无虑毕设网_第4页
联机考试系统(杨麟儿)-无忧无虑毕设网_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 本文配套程序下载地址 : 无忧无虑毕设网 ()-大学生毕业设计站 ,免费毕业设计论文 ,无忧无虑毕设网 大学生毕业设计 ,出售各类毕业设计源码 ,论文 ,程序源码 ,网站源码 ,免费视频教程 ,我们将竭诚为您服务! 联机考试系统 设 计 文 档 计科 0213: 杨麟儿 02282055 辛松 02282051 杨萌 02282053 杨琳 02282052 生物 0202: 吴军 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 目 录 一问题定义 二需求分析 2.1 系统目标 2.2 可行性分析 2.2.1 传统二层结构 2.2.2 三层数据库应用结构 2.2.3 多层分布式数据库系统 2.3 本系统的方案选择 2.4 本系统开发环境 三数据库的分析设计 3.1 数据库模型 3.2 各数据表简介 四系统的实现 4.1 系统核心模块代码 4.2 程序运行截图 五系统的不足与展望 六体会 七组员分工 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 1.问题定义 现在网络正在改变着传统的教育方式,网络教育也越来越多,就算是传统的教育方式下,把考试搬到网络上也是一种趋势。考试的无纸化网络化不仅能有效减少老师的工作量,很好的利用计算机的优势, 提高工作效率,也能使考试更加公平、公正。所以就一定要构建一个性能良好安全可靠的可以满足大量学生同时使用的网络考试系统。 本考试系统主要功能如下: 1. 学生可以在网上进行考试,考试结束后由计算机批改试题给出分数,并记录成绩。 2. 学生在还可以在网上查询自己的考试成绩,查看自己的考试情况,修改密码等个人资料。 3. 老师可以在网上建立并维护题库,按不同方式组卷,还可以查看学生各次的考试情况。 4. 管理员可以在网上建立学生、老师等用户。 2.需求分析 2.1 系统目标 本考试系统应该能满足学校几千学生在任何地方、任何时间都能参加考试 。本系统要让学生、老师和管理员在网络上可以维护自己的个人资料。学生也可以在网络上通过本系统查询自己考试的成绩;老师能通过网络生成试卷;管理员在网络上通过本系统增加学生和老师;试卷的试题可以有教师自己从题库中抽取,也可由计算机按照一定的算法随机从题库抽取,这就增加的出题的科学性和公平性。 2.2 可行性分析 2.2.1 传统二层结构 传统的二层式程序,也就是客户 /服务器( Client/Server)结构,这种程序相对简单、清楚、开发容易,其结构如图 1。客户机都通过网络连接到同一个数据库上,不过这样结构问题很多,最 主要的就是性能较差维护困难已经不适应在因特网( Internet)上使用。数据同一性和完整性难以控制。同时由于每一个客户机都必须安装特定的软件,且这种客户端软件体积还比较大,用户使用起来非常不方便,所以目前已经面临淘汰。不过这样的系统开发比较简单,对开发人员的技术要求也不高,在内部局域网上使用还有一定的市场。 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: (图 1) 2.2.2 三层数据库应用结构 三层结构是目前用得最多的,这种结构比传统的 C/S结构增加了一个应用程序服务器,应用程序服务器包 括了统一的界面、业务规则和数据处理逻辑等等,这样客户端程序就可以做得比较小,也就是常说的瘦客户,更由于业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无须进行复杂的计算,也不会因为错误的操作而影响到其他的用户,所以他的可靠性、稳定性和效率都比较好。当然开发这样的系统在技术上和成本上要求就要多一些。(其结构如图 2) 图 2 2.2.3 多层分布式数据库系统 近年来随着因特网的快速发展,许多企业都开始上网,因此基于网络的营销系统、MIS 系统、 ERP 系统都快速发展起来了,这个时候仅仅三层的应用程序已经不能满足实际需求了。因此又发展出来了多层分布式的数据库系统。在多层分布式系统中,人们把中间的应用服务器再拆分为很多比较小的系统,均匀分散到多台计算机中处理,这样就能得到更好的性能并且降低了程序复杂度。在多层分布式数据库系统中必须要有一个所谓的中间件来支持和管理分散的业务处理程序。 在 Windows 平台下微软公司推出了的 Windows DNA( Distributed interNet Application Architecture,分布式网络应用结构 )策略。把 COM+作为 Windows DNA 策略中的中间件。在 Windows2000 以上操作系统中, COM+成为了系统的一部分。 COM+为中间层提供了负载平衡、对象池( Object Pooling)、事务特性等一系列的强力支持,并且在 COM+中工作的程序受到操作系统的保护,从而最大的保证了系统的安全、稳定和高效。当然开发这样的无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 系统要求开发人员必须掌握 COM( Component Object Model,组件对象模型)和 COM+技术,开发难度和成本更大了。 图 3 2.3 本系统的方案选择 本系统一般应用于局域网,并且要满足一多个学生考试的需要,因此本系统 采用多层分步式数据库系统进行开发,保证了数据层和应用层的相对独立,系统能够自动适应多种数据库,比如 SQL Server 和 ORACLE等数据库。 2.4 本系统开发环境 前端开发工具: Borland Delphi 7 数据库服务器: Microsoft SQL Server 2000 辅助工具 : Microsoft Visio , Rational Rose 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 3.数据库的分析设计 3.1 数据库模型 t b _ t e a c h e rP K t h _ i dt h _ u s e r n a m et h _ p wt h _ n a m et h _ n o t et b _ s t u d e n tP K s d _ i ds d _ u s e r n a m es d _ p ws d _ p e r m i ts d _ n a m es d _ c o n d i t i o ns d _ l o g i n _ c o u n t e rs d _ n o t et b _ c o u r s eP K c r _ i dc r _ n a m ec r _ d e st b _ s e l e c t i o n _ s u b j e c tP K s l s _ i ds l s _ d e sF K 1 s l s _ k p _ i ds l s _ v a l u es l s _ d i f f i c u l t yF K 2 s l s _ s l n _ i dt b _ s e l e c t i o n _ a n s w e rP K s l n _ i ds l n _ d e sF K 1 s l n _ s l s _ i dt b _ f i l l i n g _ s u b j e c tP K f l s _ i df l s _ d e sF K 1 f l s _ k p _ i df l s _ v a l u ef l s _ d i f f i c u l t yf l s _ k e yt b _ j u d g e m e n t _ s u b j e c tP K j d s _ i dj d s _ d e sF K 1 j d s _ k p _ i dj d s _ d i f f i c u l t yj d s _ v a l u ej d s _ r i g h tt b _ t e s t _ p a p e rP K t p _ i dt p _ d e sF K 1 t p _ t h _ i dF K 2 t p _ c r _ i dt p _ v a l u et p _ d i f f i c u l t yt p _ t i m et b _ t e s t _ p a p e r _ d e t a i lP K t p d _ i dt p d _ t y p eF K 1 t p d _ t p _ i dt p d _ s u b j e c t _ i dt b _ t e s t _ r e s u l tP K t r _ i dF K 1 t r _ t p _ i dF K 2 t r _ s d _ i dt r _ g r a d et b _ s t u d e n t _ a n s w e rP K s a _ i dF K 1 s a _ t p _ i dF K 3 s a _ s d _ i dF K 2 s a _ t p d _ i dF K 4 s a _ s l n _ i ds a _ f l s _ d e ss a _ j d s _ a n s w e rs a _ t y p et b _ k n o w l e d g e _ p o i n tP K k p _ i dk p _ d e sF K 1 k p _ c r _ i d 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 3.2 各数据表简介: tb_knowledge_point( kp ) 知识点表 kp_id 知识点主键 kp_des 知识点描述 kp_cr_id 所属学科 id tb_student_answer( sa ) 答卷表 sa_id 答案主键 sa_tp_id 对应试卷 sa_sd_id 学生 id sa_tpd_id 对应题目(在明细表上) sa_sln_id 如果是选择题,答案 sa_fls_des 如果是填空题,答案 sa_ids_answer 如果是判断题,答案 sa_type 题目类型( 1 选择题, 2 填空题, 3 判断题) tb_test_result( tr ) 考试成绩 tr_id 试卷成绩 id tr_tp_id 对应试卷 id tr_sd_id 对应学生 id tr_grade 学生成绩 Tb_test_paper_detail( tpd ) 试卷明细表 tpd_id 试卷明细主键 tpd_type 题目类型( 选择题,填空题,判断题) tpd_tp_id 对应的试卷头 tpd_subject_id 对应选择题表、填空题表、判断体表 id tb_test_paper( tp ) 试卷表 tp_id 试卷主键 tp_des 试卷描述 tp_th_id 出题老师 id tp_cr_id 多属学科 tp_value 试卷分值 tp_difficulty 试卷难度 tp_time 考试时间 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: tb_judgement_subject( jds ) 判断题表 jds_id 判断题主键 jds_des 判断题题目 jds_kp_id 所属知识点 jds_difficult 难度 jds_value 分值 jds_right 是否正确 tb_filling_subject( fls ) 填空题表 fls_id 填空题主键 fls_des 填空题题目 fls_kp_id 所属知识点 fls_value 分值 fls_difficulty 难度 fls_key 填空题答案 tb_selection_answer( sln ) 选择题答案表 sln_id 选择题答案主键 sln_des 答案描述 Sln_sls_id 对应选择题 tb_selection_subject( sls ) 选择题表 sls_id 选择题主键 sls_des 选择题题目 sls_kp_id 所属知识点 sls_value 分值 sls_difficult 难度 sls_sln_id 正确答案 tb_course( cr ) 学科表 cr_id 学科主键 cr_name 学科名 cr_des 学科描述 tb_student( sd ) 学生表 sd_id 学生主键 sd_username 学生登陆用户名 sd_pw 密码 sd_permit 是否允许考试 sd_name 姓名 sd_condition 目前状态 sd_login_counter 登陆次数 sd_note 备注 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: tb_teacher( th ) 教师表 th_id 教师主键 th_username 教师登陆名字 th_pw 登陆密码 th_name 教师真实名字 th_note 备注 4.系统实现 4.1 系统核心模块代码: 因为本系统源代码比较多,在这里就仅仅列出比较重要的 核心代码。 4.1.1 自动组卷过程(截图如图“自动组卷”所示) 由于我们设计的数据库结构比较复杂 ,其中涉及很多张表的查找,插入,删除操作。如果我们通过应用服务器向数据库提交 SQL操作,势必会造成延时,导致系统变慢。因此,我们采用在数据库端定义一个 存储过程,这样就增强了系统的可复用性和减少网络通信流量。 1) 定义一张临时表 -create table tn_makeTP_tmp(id int identity not null, key int not null, -value_id int not null, spid int not null, def_value real) 2)-自动组卷存储过程 -传入教师 teacherId, 试卷名称 des,试卷总分 totalVal, 选择题分数 seleVal,填空题分数 fillVal,判断题分数 judgeVa,课程 crId. create procedure pd_make_testPage teacherId int, des varchar(100), totalVal int, seleVal int, fillVal int, judgeVal int, crId int, tpId int out as -新的事务 begin tran; -新的试卷 id insert into tb_test_paper(tp_des, tp_th_id, tp_cr_id, tp_value) values(des, teacherId, crId, totalVal); set tpId = identity; -用户进程 ID declare spid int; set spid = spid; 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: -循环遍历变量 declare i int; set i = 0; -选择题处理 -选择题号和选择题分值 declare id int, value real; -选择题游标 declare cur_select cursor local for select sls_id, sls_value from tb_selection_subject where sls_kp_id in (select kp_id from tb_knowledge_point where kp_cr_id = crId); open cur_select; -插入临时表 fetch next from cur_select into id, value; while fetch_status = 0 begin insert into tb_makeTP_tmp(key, value_id, def_value, spid) values(i, id, value, spid); set i = i + 1; fetch next from cur_select into id, value; end -关闭游标 close cur_select; set i = i - 1; -随机数 declare re int; -题目的数量 declare j int, num int; set num = round(seleVal / value, 0); set j = 0; declare tmp real; -利用随机数插入选择题号 while j num begin 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: -生成 0i 之间的随机数 set re = round(rand() * i, 0) print re; print j; -根据随机数查找记录 set id = (select value_id from tb_makeTP_tmp where key = re and spid = spid); -把该题插到明细表中 insert into tb_test_paper_detail(tpd_type, tpd_tp_id, tpd_subject_id) values(1, tpId, id); -继续下一道题 set j = j + 1; end -清空临时表 delete from tb_makeTP_tmp where spid = spid; -判断题处理 set i = 0; declare cur_jud cursor local for select jds_id, jds_value from tb_judgement_subject where jds_kp_id in (select kp_id from tb_knowledge_point where kp_cr_id = crId); open cur_jud; -插入临时表 fetch next from cur_jud into id, value; while fetch_status = 0 begin insert into tb_makeTP_tmp(key, value_id, def_value, spid) values(i, id, value, spid); set i = i + 1; fetch next from cur_jud into id, value; end -关闭游标 close cur_jud; set i = i - 1; -判断题目的数量 set num = round(judgeVal / value, 0); set j = 0; 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: while j num begin set re = round(rand() * i, 0); set id = (select value_id from tb_makeTP_tmp where key = re and spid = spid); insert into tb_test_paper_detail(tpd_type, tpd_tp_id, tpd_subject_id) values(3, tpId, id); set j = j + 1; end delete from tb_makeTP_tmp where spid = spid; -填空题处理 set i = 0; declare cur_fill cursor local for select fls_id, fls_value from tb_filling_subject where fls_kp_id in (select kp_id from tb_knowledge_point where kp_cr_id = crId); open cur_fill; -插入临时表 fetch next from cur_fill into id, value; while fetch_status = 0 begin insert into tb_makeTP_tmp(key, value_id, def_value, spid) values(i, id, value, spid); set i = i + 1; fetch next from cur_fill into id, value; end -关闭游标 close cur_fill; set i = i - 1; -判断题目的数量 set num = round(fillVal / value, 0); set j = 0; while j num begin set re = round(rand() * i, 0); set id = (select value_id from tb_makeTP_tmp where key = re and spid = spid); insert into tb_test_paper_detail(tpd_type, tpd_tp_id, tpd_subject_id) values(2, tpId, id); set j = j + 1; end 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: delete from tb_makeTP_tmp where spid = spid; -结束所有处理 Commit 4.1.2 试卷管理 (截图如图“试卷管理” 所示) 由于本模块涉及较多表的操作,得别介绍。主要功能是通过选择科目,和试卷名称,来显示相应的试题。再作添加,删除,查询等操作。 if combobox3.Text=选择题 then begin ADOQuery_Subject.Close; ADOQuery_Subject.SQL.Clear; ADOQuery_Subject.SQL.Add(select * from (select * from tb_test_paper_detail where (tpd_tp_id =(select tp_id from tb_test_paper where tp_des =:tp_des and tp_cr_id =(select cr_id from tb_course where cr_name=:cr_name) and tpd_type = 1) ); ADOQuery_Subject.SQL.Add(as tb_test_paper_detail inner join tb_selection_subject on tpd_subject_id = sls_id); ADOQuery_Subject.SQL.Add(inner join tb_selection_answer on sls_id = sln_sls_id order by tpd_id); ADOQuery_Subject.Parameters.ParamByName(tp_des).Value:=combobox2.Text; ADOQuery_Subject.Parameters.ParamByName(cr_name).Value:=combobox1.Text; ADOQuery_Subject.Open; end; if combobox3.Text=填空题 then begin ADOQuery_Subject.Close; ADOQuery_Subject.SQL.Clear; ADOQuery_Subject.SQL.Add(select * from (select * from tb_test_paper_detail where tpd_tp_id =(select tp_id from tb_test_paper where tp_des =:tp_des and tp_cr_id =(select cr_id from tb_course where cr_name=:cr_name) and tpd_type = 2) ); ADOQuery_Subject.SQL.Add(as tb_test_paper_detail inner join tb_filling_subject on tpd_subject_id = fls_id); ADOQuery_Subject.SQL.Add(inner join tb_selection_answer on sls_id = sln_sls_id order by tpd_id); ADOQuery_Subject.Parameters.ParamByName(tp_des).Value:=combobox2.Text; ADOQuery_Subject.Parameters.ParamByName(cr_name).Value:=combobox1.Text; ADOQuery_Subject.Open; ADOQuery_Subject.First; while (not ADOQuery_Subject.Eof) do begin ADOQuery_Subject.Next; end; 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: end; if combobox3.Text=判断题 then begin ADOQuery_Subject.Close; ADOQuery_Subject.SQL.Clear; ADOQuery_Subject.SQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论