学号:*************专业:计算机应用技术班级:2班姓名:****数据库课程设计一、课程设计题目学生在线考试系统二、开发环境选择整个系统开发完全采用Browser/Server模式,开发平台为Java平台,以Tomcat为JSP引擎和Web服务器,后台数据库使用MySql5.1。在开发模式上选择Browser/Server模式,是因为B/S模式有以下优点:1.开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。2.良好的安全性能,采三大框架Struts+Hibernate+Spring降低程序的耦合性。因此系统的架构就采用了B/S设计模式。三、数据库设计1、7张表(学生表、课程表、选课表、教师表、题库表、试卷表、新闻表)课程表:CREATETABLE`subj`(`sj_id`int(11)NOTNULLAUTO_INCREMENT,`sj_name`varchar(15)COLLATEutf8_binNOTNULL,`date`dateNOTNULL,PRIMARYKEY(`sj_id`))学生表CREATETABLE`student`(`s_id`int(11)NOTNULLAUTO_INCREMENT,`s_num`varchar(15)COLLATEutf8_binNOTNULL,`s_name`varchar(10)COLLATEutf8_binNOTNULL,`s_major`varchar(20)COLLATEutf8_binNOTNULL,`s_class`int(11)NOTNULL,`date`dateNOTNULL,PRIMARYKEY(`s_id`))学生成绩表CREATETABLE`student_grade`(`sc_id`int(11)NOTNULLAUTO_INCREMENT,`s_id`int(11)DEFAULTNULL,`sj_id`int(11)DEFAULTNULL,`grade`int(11)NOTNULL,`sj_date`dateNOTNULL,PRIMARYKEY(`sc_id`),KEY`FKDCA1CCD39B735348`(`s_id`),KEY`FKDCA1CCD36A65347`(`sj_id`),CONSTRAINT`FKDCA1CCD36A65347`FOREIGNKEY(`sj_id`)REFERENCES`subj`(`sj_id`),CONSTRAINT`FKDCA1CCD39B735348`FOREIGNKEY(`s_id`)REFERENCES`student`(`s_id`),CONSTRAINT`student_grade_ibfk_1`FOREIGNKEY(`s_id`)REFERENCES`student`(`s_id`),CONSTRAINT`student_grade_ibfk_2`FOREIGNKEY(`sj_id`)REFERENCES`subj`(`sj_id`))题库表CREATETABLE`exam`(`exam_id`int(11)NOTNULLAUTO_INCREMENT,`exam_mg`textCOLLATEutf8_binNOTNULL,`exam_da`varchar(10)COLLATEutf8_binNOTNULL,`exam_type`int(11)NOTNULL,`exam_grade`int(11)NOTNULL,`type_a`varchar(100)COLLATEutf8_binDEFAULTNULL,`type_b`varchar(100)COLLATEutf8_binDEFAULTNULL,`type_c`varchar(100)COLLATEutf8_binDEFAULTNULL,`type_d`varchar(100)COLLATEutf8_binDEFAULTNULL,`sj_id`int(11)DEFAULTNULL,`exam_date`dateNOTNULL,PRIMARYKEY(`exam_id`),KEY`FK2FB81F6A65347`(`sj_id`),CONSTRAINT`exam_ibfk_1`FOREIGNKEY(`sj_id`)REFERENCES`subj`(`sj_id`),CONSTRAINT`FK2FB81F6A65347`FOREIGNKEY(`sj_id`)REFERENCES`subj`(`sj_id`))试卷表CREATETABLE`epaper`(`ep_id`int(11)NOTNULLAUTO_INCREMENT,`ep_grade`int(11)NOTNULL,`ep_pw`varchar(20)COLLATEutf8_binNOTNULL,`ep_date`int(11)NOTNULL,`ep_xnum`int(11)NOTNULL,`ep_pnum`int(11)NOTNULL,`ep_pgrade`int(11)NOTNULL,`ep_xgrade`int(11)NOTNULL,`date`dateNOTNULL,`sj_id`int(11)DEFAULTNULL,`ep_type`int(11)DEFAULTNULL,PRIMARYKEY(`ep_id`),KEY`FKB2B188476A65347`(`sj_id`),CONSTRAINT`epaper_ibfk_1`FOREIGNKEY(`sj_id`)REFERENCES`subj`(`sj_id`),CONSTRAINT`FKB2B188476A65347`FOREIGNKEY(`sj_id`)REFERENCES`subj`(`sj_id`))新闻表CREATETABLE`news`(`news_id`int(11)NOTNULLAUTO_INCREMENT,`news_mg`textCOLLATEutf8_binNOTNULL,`date`dateNOTNULL,PRIMARYKEY(`news_id`))教师表CREATETABLE`teacher`(`t_id`int(11)NOTNULLAUTO_INCREMENT,`t_name`varchar(15)COLLATEutf8_binNOTNULL,`t_password`varchar(15)COLLATEutf8_binNOTNULL,PRIMARYKEY(`t_id`))2、7张表(学生表、课程表、选课表、教师表、题库表、试卷表、新闻表)说明学生表课程表选课成绩表教师表题库表试卷表新闻表二、课程设计内容需求(JavaEE项目)(1)、项目流程图(1)、课程设计题目学生在线考试系统、(2)、课题要求:1.学生登录验证(需要在数据库中验证)2.查询课程3.删除课程4.查询分数5.查询不及格分数(小于60为不及格)附加功能:6.老师输入一次测试题目后生成密码。密码在测试前公布。7.学生输入专业、班级、学号、姓名以及密码后进入测试。8.测试90分钟倒计时。9.测试题分两类:选择题(40题)及判断题(20题)。10.题目以及选择题选项随机打乱生成。11.允许在测试过程中修改已答的题目。12.测试完成,提示学生一旦提交不能更改。13.提交后屏幕显示学生的专业、班级、学号、姓名以及成绩。成绩突出显示。(3)、功能模块学生端:1.学生登录验证功能学生登录界面2.查询管理学生需在考试完成之后才能查询自己的成绩,以及查询考试答案查询考试答案界面3.网上测试学生只能考一次,考过之后不能在测试,设置的是90分钟之后交卷,如果没有完成,自动交卷4.信息管理教师端1、教师登录验证功能教师需输入自己的教师号以及密码才能进入管理界面登录界面2、公告管理教师发布考试公告,以及对公告的管理模块3、科目管理教师添加考试科目,以及对考试科目的管理科目添加科目管理界面:4、题库管理教师根据对应的考试科目,添加考试题目,目前仅限填空题和选择题添加界面:管理界面:5、试卷管理教师对试卷的管理,可以查看试卷列表,可以添加试卷,可以查看相应的试卷试卷列表:添加试卷界面查看试卷界面(必须先输入试卷相对应的密码)6、学生管理教师可以查看考试学生的基本信息,以及查询考试成绩学生列表界面四、心得体会这次历时一周的课程设计,对于我们来说确实收获了不少。第一天我们查找资料、了解有关的知识,相互探讨,了解图书管理系统的需求,做好需求分析后,开始系统的设计,画出E-R图,写出各个实体的属性。对于数据库的创建,虽然出现很多的问题,但经过探讨之后我们都能够很好的解决,这便让我们体会到上课专心听讲的重要性。对于所需表的创建是一个比较简单的内容,问题主要是存储过程和触发器的创建,在请教老师后,最后还是解决了各种难题。这次的系统设计不仅使我们学会了把数据库的各个模块联系起来,并与数据库相连接,更让我懂得了如何设计一个系统,了解了系统设计的过程,通过这次实习,我也了解到要设计一个好的系统并不是一件容易的事,听了老师的建议我们才知道,自己设计的系统存在很多的缺陷,还需要从各方面得以改善。我们相信,只要自己肯努力、肯奋斗,总是会有收获的。五、源码+配置文件Web.xml配置文件?xmlversion=1.0encoding=UTF-8?web-appxmlns=:xsi==2.5xsi:schemaLocation=://java.sun.com/xml/ns/javaee/web-app_2_5.xsdservletservlet-nameaction/servlet-nameservlet-classorg.apache.struts.action.ActionServlet/servlet-classinit-paramparam-nameconfig/param-nameparam-value/WEB-INF/struts-config.xml/param-value/init-paraminit-paramparam-namedebug/param-nameparam-value3/param-value/init-paraminit-paramparam-namedetail/param-nameparam-value3/param-value/init-paramload-on-startup0/load-on-startup/servlet!--编码过滤器--filterfilter-nameencoding/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueutf-8/param-value/init-param/filterfilter-mappingfilter-nameencoding/filter-nameurl-pattern/*/url-pattern/filter-mapping!--配置opensessioninview解决懒加载,本质一个过滤器.--