1、1四川交通职业技术学院信息工程系项目设计文档题 目:学生在线考试系统班 级 软件 13-1 学 号 20131645、20132907、20132185、20132266 姓 名 姜维川、郑雨云、侯鉴航、邓凯 任课教师 吉朝明 二 O 一五 年 6 月2目录1 需求描述 .32 系统功能描述 .32.1 系统功能图 .32.2 系统主流程图 .33 数据库设计 .54 界面原型设计 .55 类设计 .66 关键代码 .88 项目总结 .249 程序错误报告 .2510 参考文献 .253学生在线考试系统文档1 需求描述该系统主要是由前台学生端和后台教师端两部分组成。前台学生端即是学生通过在线考
2、试后得到分数,后台教师端即是对试卷和学生的信息进行管理。2 系统功能描述2.1 系统功能图系统功能图如图 1 所示。学生在线考试系统学生端 教师端试卷信息学生信息学生答题查看成绩图 1 系统功能图2.2 系统主流程图系统主流程图如图 2 所示。4开始结束学生在线考试系统学生端 教师端退出合法登录 ?合法登录 ?是前台首页 后台首页是开始答题提交试卷 ?是查看分数继续答题否学生信息修改查看试卷查看学生成绩删 改 查增图 2 系统主流程图53 数据库设计本系统选择 Mysql 数据库,建立名为 testsystem.mdb 的数据库,涉及到主要的数据库表设计如表 1-表 2-表 3 所示。表 1
3、test字段名 字段类型 可否为空 说明id INT(10) Not null 主键testid INT(10) Not nullsid INT(10) NULLcontent text Not nullgrade INT(10) Not nullanswerid INT(10) Not null表 2 answer字段名 字段类型 可否为空 说明id INT(10) Not null 主键tid INT(10) Not nullcontent text Not null表 3 student字段名 字段类型 可否为空 说明id INT(10) Not null 主键uid INT(10) N
4、ot nullname varchar(30) Not nullprofessionalId INT(10) Not nulldepartment INT(10) Not nullxh INT(10) Not nullsex varchar(30) Not nulltikeId INT(10) Not nullage INT(10) Not null4 界面原型设计1.前台首页62.后台首页5 类设计本系统设计了 action、Aspect、dao、filter、model 、service 六个类,具体说明及相关类代码如下:(1)action 类action+TestAction( )+us
5、erAction( )7(2)Aspect 类Aspect+LogAspect( )(3)dao 类dao+AnswerDao( )+DepartMentDao( )+GradeDao( )+ProfessionalDao( )+SubjectDao( )+TestDao( )+UserDao( )(4)filter 类filter+MyFilter( )(5)model 类model+Answer( )+Department( )+Grade( )+GradeJSon( )+Loganderror( )+Professional( )+Student( )+StudentJson( )+Su
6、bject( )+Test( )+Users( )(6)service 类Service+AnswerManage( )+DepartmentManage( )8+Factory( )+GradeManage( )+ProfessionalManage( )+SubjectManage( )+TestManage( )+UserManagerImp( )6 关键代码(1)获取及更新题目答案package com.test.dao;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;impor
7、t org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import com.test.model.Answer;import com.test.model.Department;public class AnswerDaoImp implements A
8、nswerDaoprivate SessionFactory sessionFactory;private Session sess;private Transaction transaction;private void createsession()sess=sessionFactory.openSession();transaction=sess.beginTransaction();private void destory()mit();sess.close();sessionFactory.close();public AnswerDaoImp() Configuration con
9、figuration=new Configuration();9configuration.configure();ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);/为当前的 sessionFactory 赋值this.sessi
10、onFactory=sessionFactory;Overridepublic List getanswers() Session session=sessionFactory.openSession();Query query=session.createQuery(“from Answer“);List answers=query.list();session.close();return answers;Overridepublic List getAnswersBytid(int tid) Session session=sessionFactory.openSession();Que
11、ry query=session.createQuery(“from Answer where test.id=“+tid);List answers=query.list();session.close();return answers;Overridepublic Answer getAnswerById(int id) Session session=sessionFactory.openSession();Query query=session.createQuery(“from Answer d where d.id=“+id);List answers=query.list();i
12、f(answers.size()0)session.close();return answers.get(0);return null;Overridepublic boolean saveanswer(Answer answer) try createsession();sess.save(answer);mit();destory();return true; catch (Exception e) / TODO: handle exceptionreturn false;Overridepublic boolean updateanswer(Answer answer) try crea
13、tesession();sess.update(answer);destory();return true; catch (Exception e) / TODO: handle exceptionreturn false;Overridepublic boolean deleteanswer(Answer answer) createsession();String sql=“delete from Answer where id=“+answer.getId();Query query=sess.createQuery(sql);if(query.executeUpdate()!=0)destory();return true;return false;(2)测试package com.test.dao;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;