




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川交通职业技术学院信息工程系项目设计文档题 目:学生在线考试系统班 级 软件13-1 学 号 20131645、20132907、20132185、20132266 姓 名 姜维川、郑雨云、侯鉴航、邓凯 任课教师 吉朝明 二O一五 年 6 月目录1 需求描述32 系统功能描述32.1 系统功能图32.2 系统主流程图33 数据库设计54 界面原型设计55 类设计66 关键代码88 项目总结249程序错误报告2510参考文献25学生在线考试系统文档1 需求描述该系统主要是由前台学生端和后台教师端两部分组成。前台学生端即是学生通过在线考试后得到分数,后台教师端即是对试卷和学生的信息进行管理。2 系统功能描述2.1 系统功能图系统功能图如图1所示。图1 系统功能图2.2 系统主流程图系统主流程图如图2所示。图2 系统主流程图3 数据库设计本系统选择Mysql数据库,建立名为testsystem.mdb的数据库,涉及到主要的数据库表设计如表1-表2-表3所示。表1 test字段名字段类型可否为空说明idINT(10)Not null主键testidINT(10)Not nullsidINT(10)NULLcontenttextNot nullgradeINT(10)Not nullansweridINT(10)Not null表2 answer字段名字段类型可否为空说明idINT(10)Not null主键tidINT(10)Not nullcontenttextNot null表3 student字段名字段类型可否为空说明idINT(10)Not null主键uidINT(10)Not nullnamevarchar(30)Not nullprofessionalIdINT(10)Not nulldepartmentINT(10)Not nullxhINT(10)Not nullsexvarchar(30)Not nulltikeIdINT(10)Not nullageINT(10)Not null4 界面原型设计1. 前台首页2. 后台首页5 类设计本系统设计了action、Aspect、dao、filter、model、service六个类,具体说明及相关类代码如下:(1) action类action+TestAction( )+userAction( )(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( )+Subject( )+Test( )+Users( )(6) service类Service+AnswerManage( )+DepartmentManage( )+Factory( )+GradeManage( )+ProfessionalManage( )+SubjectManage( )+TestManage( )+UserManagerImp( )6 关键代码(1)获取及更新题目答案package com.test.dao;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import 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 AnswerDaoprivate 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 configuration=new Configuration();configuration.configure();ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);/为当前的sessionFactory赋值this.sessionFactory=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();Query 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();if(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 createsession();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;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.aspectj.weaver.ast.And;import org.hibernate.Query;import org.hibernate.Session;import 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.Subject;import com.test.model.Test;import com.test.service.Factory;public class TestDaoImp implements TestDaoprivate 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 TestDaoImp() Configuration configuration=new Configuration();configuration.configure();ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);/为当前的sessionFactory赋值this.sessionFactory=sessionFactory;Overridepublic List getTestBySid(int sid) Session session=sessionFactory.openSession();Query query;if(sid=-1)query=session.createQuery(from Test);else query=session.createQuery(from Test where subject.id=+sid);List tests=query.list();session.close();return tests;Overridepublic JSONArray getTestBySidJson(int sid)Session session=sessionFactory.openSession();Query query;if(sid=-1)query=session.createQuery(from Test);else query=session.createQuery(from Test where subject.id=+sid);List tests=query.list();JSONObject jsonObject;List alltest=new ArrayList();for (Test test : tests) Set answers = new HashSet();/List listanswers=Factory.getAnswerManage().getAnswersBytid(test.getId();Set currentanswer=test.getAnswers();for (Answer answer : currentanswer) answer.setTest(null);answers.add(answer);test.setAnswers(answers);test.setSubject(null);alltest.add(test);JSONArray jsonArray=new JSONArray().fromObject(tests);session.close();return jsonArray;Overridepublic List getTest() / TODO Auto-generated method stubreturn null;Overridepublic boolean saveTest(Test test) / TODO Auto-generated method stubreturn false;Overridepublic boolean updateTest(Test test) / TODO Auto-generated method stubreturn false;Overridepublic boolean deleteTest(Test test) / TODO Auto-generated method stubreturn false;(3) 用户操作package com.test.dao;import java.util.ArrayList;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import 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.Department;import com.test.model.Professional;import com.test.model.Student;import com.test.model.StudentJson;import com.test.model.Users;import com.test.service.Factory;public class UserDaoImp implements UserDaoprivate 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 UserDaoImp()Configuration configuration=new Configuration();configuration.configure();ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);/为当前的sessionFactory赋值this.sessionFactory=sessionFactory;Overridepublic boolean select_user(Users user) System.out.println(开始执行查找用户操作);Configuration configuration=new Configuration();configuration.configure();ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);Session session=sessionFactory.openSession();/Transaction transaction=session.beginTransaction();String sql= from Users as u where u.loginId=+user.getLoginId()+ and u.loginPwd=+user.getLoginPwd()+ and u.role=+user.getRole()+;System.out.println(sql);Query query=session.createQuery(sql);List alluser=query.list();/System.out.println(alluser);if(alluser.size()0)System.out.println(找到有用户);session.close();return true;elseSystem.out.println(没有找到有用户);return false;Overridepublic Student select_studentByUid(int uid) System.out.println(开始根据用户的Id查找学生了);Session session=sessionFactory.openSession();String hsql=from Student as s where s.uid=+uid;System.out.println(hsql);Query query=session.createQuery(hsql);Student student=null;List students=query.list();session.close();if(students.size()0)student=students.get(0);return student;elsereturn student;Overridepublic Users getUserByLoginId(String LoginId) Session session=sessionFactory.openSession();String sql= from Users as u where u.loginId=+LoginId+;System.out.println(sql);Query query=session.createQuery(sql);List alluser=query.list();if(alluser.size()0)System.out.println(找到有用户);session.close();return alluser.get(0);elsereturn null;Overridepublic boolean updateStudent(Student student) try createsession();sess.update(student);destory();return true; catch (Exception e) / TODO: handle exceptionreturn false;Overridepublic int saveUsers(Users user) int uid=-1;try createsession();sess.save(user);uid=user.getId();destory();return uid; catch (Exception e) / TODO: handle exceptionreturn uid;Overridepublic int saveStudent(Student student) int id=-1;try createsession();sess.save(student);id=student.getId();destory();return id; catch (Exception e) / TODO: handle exceptionreturn id;Overridepublic List getAllStudents() Session session=sessionFactory.openSession();String sql= from Student;System.out.println(sql);Query query=session.createQuery(sql);List alluser=query.list();if(alluser.size()0)System.out.println(找到有学生);session.close();return alluser;elsereturn null;Overridepublic List getAllstudentJson() createsession();String sql= from Student;System.out.println(sql);Query query=sess.createQuery(sql);List alluser=query.list();List studentJsons=new ArrayList();if(alluser.size()0)for(Student student:alluser)StudentJson studentJson=new StudentJson();studentJson.setAge(student.getAge().toString();Department department=Factory.getDepartmentManage().getDepartMentById(student.getDepartment();Professional professional=Factory.getProfessionalManage().getProFeProfessionalById(student.getProfessionalId();studentJson.setDepartment(department.getDname();studentJson.setId(student.getId();studentJson.setName(student.getName();studentJson.setProfessional(professional.getPname();studentJson.setSex(student.getSex();studentJson.setXh(student.getXh();studentJsons.add(studentJson);destory();return studentJsons;elsereturn null;(4) 获取分数package com.test.dao;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JsonConfig;import org.hibernate.Query;import org.hibernate.Session;import 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.Grade;import com.test.model.GradeJSon;import com.test.model.Professional;import com.test.model.Student;import com.test.model.Subject;import com.test.service.Factory;public class GradeDaoImp implements GradeDaoprivate 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 GradeDaoImp() Configuration configuration=new Configuration();configuration.configure();ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);/为当前的sessionFactory赋值this.sessionFactory=sessionFactory;Overridepublic Grade getGradeByid(int id) Session session=sessionFactory.openSession();Query query=session.createQuery(from Grade g where g.id=+id);List grades=query.list();if(grades.size()0)session.close();return grades.get(0);return null;Overridepublic List getGradeByUid(int uid) System.out.println(开始根据用户的id来查找了+uid);createsession();Query query;if(uid=-1)query=sess.createQuery(from Grade);else query=sess.createQuery(from Grade where student.uid=+uid);List grades=query.list();for (Grade grade : grades) System.out.println(grade.getId();System.out.println(grade.getSubject().getName();System.out.println(grade.getStudent().getUid();destory();return grades;Overridepublic boolean saveGrade(Grade grade) try createsession();sess.save(grade);destory();return true; catch (Exception e) System.out.println(e.getMessage();return false;Overridepublic boolean deleteGradeByid(int id) createsession();String sql=delete from Grade where id=+id;Query query=sess.createQuery(sql);if(query.executeUpdate()!=0)destory();return true;return false;Overridepublic boolean updateSubject(Grade grade) try createsession();sess.update(grade);destory();return true; catch (Exception e) / TODO: handle exceptionreturn false;Overridepublic List getGradeBySid(int sid) Session session=sessionFactory.openSession();Query query;if(sid=-1)query=session.createQuery(from Grade);else query=session.createQuery(from Grade where subject.id=+sid);List grades=query.list();session.close();return grades;Overridepublic List getAllGradeJSON() Session session=sessionFactory.openSession();Query query=session.createQuery(from Grade);List grades=query.list();JsonConfig config =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延边大学《环境流体力学》2023-2024学年第二学期期末试卷
- 江苏省无锡市玉祁初级中学2025届初三下学期中考试生物试题含解析
- 湖南省长沙市2025届高三下学期返校英语试题含解析
- 辽宁经济职业技术学院《涉外礼仪》2023-2024学年第二学期期末试卷
- 温州医科大学《电影批评》2023-2024学年第一学期期末试卷
- 食品经营许可证办理流程
- 2025设备租赁合同纠纷民事诉状起诉书
- 2025年招标师考试合同管理模拟题
- 2025塑料管材购销合同范本
- 给药治疗与护理
- 2024年泉州实验中学初一新生入学考试数学试卷
- 人工智能在航班调度中的未来应用探讨
- 内蒙古自治区赤峰第四中学2024-2025学年高一下学期4月月考历史试题(含答案)
- 2025-2030中国保健品行业市场深度调研及竞争格局与投资研究报告
- 2025年江苏省无锡市锡山区中考英语一模试卷
- (二模)衢州、丽水、湖州2025年4月三地市高三教学质量检测 语文试卷(含答案解析)
- 宜昌市社区工作者招聘真题2024
- 水下潜水艇课件
- 糖尿病酮症酸中毒护理
- 36 阶段统计项目风险管理表甘特图
- 2025-2030中国电信增值行业运行状况与发展前景预测研究报告
评论
0/150
提交评论