《2022年毕业设计方案管理系统的设计方案与实现设计方案说明书 .pdf》由会员分享,可在线阅读,更多相关《2022年毕业设计方案管理系统的设计方案与实现设计方案说明书 .pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计管理系统的设计与实现XXX Tutor: XXXAbstract:This system can resolve the problem which we met in the work of graduation design,such as inefficiency in the work,inconvenient for count the data,and hard to manage the data.This system which based on the web technology and B/S structure use J2EE as its platform
2、 and SQL Server for its database.Its a system that to manage the graduation design.This system implement the function of adding subject,selecting the subject,and managing the subject. Keywords:SQL SERVER 。J2EE。Graduation design management。B/S structure 1.概述 . 1 1.1 背景分析 . 1 1.2 毕业设计系统的现状 . 1 2 需求分析
3、. 1 2.1 功能需求 . 1 2.2 开发与运行环境 . 1 2.3 系统实现过程. 2 3 总体设计 . 2 3.1 系统模块设计. 2 3.2 数据事项分析. 2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 36 页2 / 36 3.3 数据库模型图 . 3 4. 详细设计 . 4 4.1 数据库设计 . 4 4.1.1 关系模式 . 4 4.1.2 数据库表的结构定义. 4 4.2 数据库中关系设计 . 7 4.3 操作流程 . 7 5 系统实现 . 8 5.1 建立数据库 . 8 5.2 程序设计 . 8 5.2.1 主
4、界面 . 8 5.2.2 基本的实现类. 9 5.2.3 基本的信息管理模块. 9 5.2.4 登录模块 . 11 5.2.5 立题模块 . 13 6 系统测试与性能分析. 15 6.1 系统测试方案. 15 6.2 系统功能测试. 16 总 结 . 17 致谢 . 18 参考文献 . 18 外文资料 . 18 外文资料翻译. 24 附录 A:源码 . 28 附录 B:软件使用说明书 . 34精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 36 页1.概述1.1 背景分析毕业设计管理问题是高校教师必须面对的工作,但陕西理工学院各个院系一
5、直使用Excel 表格管理、分析毕业设计。使用Excel 软件分析统计毕业设计制作情况,该软件存在许多不足,如:立题不灵活,选题必须集中,对于整个院系选题有诸多不便;毕业设计评分也必须集中录入等;统计毕业设计制作情况也不能自动完成。毕业设计是实现高等学校人才培养目标的重要教案环节,也是培养大学生创新能力、实践能力和创业精神的重要实践环节,是学生提高专业素质和实践能力的综合训练,是对学生大学期间学习效果的全面检验。通过这套毕业设计管理软件可以解决毕业设计过程管理工作中存在的工作效率低,交互性差等问题,对高校管理学生毕业设计意义重大。因此为了克服上述缺陷,编写一个使实现教师立题、学生选题、教师对选
6、题信息进行管理的系统,再根据各个评分给出综合测评,达到管理自动化、精确化、智能化是非常必要的,因此可以把毕业设计管理系统作为毕业设计的课题,正好可以利用所学知识开发一个毕业设计管理系统来实现毕业设计的管理。1.2 毕业设计系统的现状本课题开发的目的在于解决以往毕业设计管理过程中存在的问题,解决效率低、容易出错等问题,从而对毕业设计信息进行更好的管理,对毕业设计的数据进行统计分析。提高各个管理效率,减少教师工作量。其次,通过本课题可以使自己更进一步的了解软件开发流程,同时对J2EE 平台与MS SQL SERVER 有进一步的了解,使用更加熟练。2 需求分析2.1 功能需求高等院校的毕业设计涉及
7、到了教师立题、学生选题、课题管理功能,这些功能则需要教研室、办学层次、课题类型、课题来源、教师、学位、专业、专业方向、教师、学生和课题等信息多种信息的支持。从管理的角度可以将毕业设计管理系统分为八个部分:课题信息管理、职称学位管理、专业信息管理、用户信息管理、立题信息管理、选题信息管理、其他信息管理和统计信息管理。课题信息管理、职称学位管理、专业信息管理、用户信息管理、立题信息管理、选题信息管理和其他信息管理包括这些信息的添加、删除、修改及查询操作;统计信息包括学生人数信息、学生选题数目、题目来源、题目类型、毕业论文设计)的篇数统计等信息的操作。核心功能主要为教师立题、学生选题、课题管理。2.
8、2 开发与运行环境毕业设计管理系统的开发与运行环境如下:开发环境: Window 7+JDK 6.0 开发工具: MyEclipse 6.5 数据库管理系统:MS SQL Server 2005 服务器: tomcat 6.0 运行环境: Window 98/ME/2000/XP/7以及 Linux 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 36 页2 / 36 2.3 系统实现过程首先根据系统功能分析设计出数据库,包括各个数据表和数据表关系图的详细结构。实现功能模块时,因为要实现教师立题、学生选题以及选题管理模块,故应先将职称、
9、学位、专业信息、教研室、办学层次、课题类型、课题来源这些独立模块分别实现,其次实现独立模块分别实现,在实现学生、教师模块,最后实现立题、课题管理模块。即在这里分别对系统各个功能模块分别对立设计和调试,最后将各个模块通过菜单栏集成到一起,最后进行系统整体设计的调试。在访问数据库时,本系统采用hibernate实现数据库的操作,在基本实现类中实现数据库的各种访问操作,其他的类直接或间接继承基本类。这种实现方式可以减少代码冗余,避免数据库的反复连接,从而提高系统的开发效率。3 总体设计3.1 系统模块设计根据系统功能分析,得到如图3.1 所示的系统功能模块结构图。毕业设计管理系统的设计与实现立题信息
10、管理选题信息管理用户信息管理专业信息管理职称学位管理课题信息管理其他信息管理课题管理初次审核最终审核选题管理选题列表管理学生管理教师管理专业管理方向管理职称管理学位管理类型管理来源管理教研室管理办学层次图 3.1 系统功能模块图3.2 数据事项分析根据系统的功能,模块结构和管理流程,以及毕业设计管理系统的需求,总结出如下的数据项:1)学位信息数据:学位代码,学位名称。2)教研室信息数据:教研室代码,教研室名称。3)专业信息数据:专业代码,专业名称。4)专业方向信息数据:方向代码,方向名称。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共
11、36 页3 / 36 5)办学层次信息数据:办学层次代码,办学层次名称。6)职称信息数据:职称代码,职称名称。7)课题来源信息数据:课题来源代码,课题来源名称。8)课题类型信息数据:课题类型代码,课题类型名称。9)教师信息数据:工号,教师姓名,性别,职称,所属教研室,联系电话,电子邮件地址,是否为管理员,学位信息,登录密码。10)学生信息数据:学号,姓名,性别,所在年级,专业信息,专业方向信息,层次类别,联系电话,电子邮件,登录系统口令,是否选题标志,毕业年份,指导教师成绩,评阅成绩,答辩成绩1,答辩成绩2,答辩成绩3,答辩成绩4,答辩成绩5,答辩平均成绩,百分制总成绩,五级总成绩。11)选题
12、信息数据:课题编号,立题教师,课题名称,所属专业信息,所属专业方向信息,课题来源信息,课题类型信息,课题完成地点,完成课题所需课时,课题内容的描述,课题已具备的条件,完成人具备的条件,最终成功形式,初审意见,终审意见,立题时间,初审标志,初审时间,终审标识,终审时间,选该选题学生,该选题是否已选,老题还是新题,老题题号。3.3 数据库模型图根据系统需求,分析出数据库模型图,如如3.2 所示。图 3.2 数据库模型图学位信息(tb_degree)PKiddegreeNodegreeName学生信息(tb_student)PKidstudentNostuNamesexFK1level_idFK2I
13、nterested_idFK3major_idtelphoneemailpasswordelectiv_flag grade2tutorResultestimatorResultappraiser1专业方向(tb_interested)PKidinterestedNointerestedName专业信息(tb_major)PKidmajorNomajorName办学层次(tb_level)PKidlevelNolevelName教师信息(tb_teacher)PKidteacherNoteacherNamesexFK1title_idFK2department_idFK3degree_idte
14、lphoneemailadminpassword职称信息(tb_title)PKidtitleNotitleName教研室(tb_department)PKiddepartNodepartName选题信息(tb_subject)idFK1teacher_idFK2major_idFK3interested_idFK4subSource_idFK5subType_idFK6student_idsubjectNosubjectNamestudentNumaddresstimes contentconditionrequestresultcheckUpFirstcheckUpLastfillInDa
15、techeckFlage1checkDate1checkFlage2checkDate2electivFlagoldOrNewoldSubjectNo课题类型(tb_subType)PKidtypeNotypeName课题来源(tb_subSource)PKidsourceNosourceName精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 36 页4 / 36 4. 详细设计4.1 数据库设计4.1.1 关系模式根据数据事项分析和数据库模型图得出关系模式如下:1)学位信息数据:标识列,学位代码,学位名称。2)教研室信息数据:标识列,
16、教研室代码,教研室名称。3)专业信息数据:标识列,专业代码,专业名称。4)专业方向信息数据:标识列,方向代码,方向名称。5)办学层次信息数据:标识列,办学层次代码,办学层次名称。6)职称信息数据:标识列,职称代码,职称名称。7)课题来源信息数据:标识列,课题来源代码,课题来源名称。8)课题类型信息数据:标识列,课题类型代码,课题类型名称。9)教师信息数据:标识列,职称外键),所属教研室外键),学位信息外键) ,工号,教师姓名,性别,联系电话,电子邮件地址,是否为管理员,登录密码。10)学生信息数据:标识列,专业信息外键),专业方向信息外键),层次类别外键) ,学号,姓名,性别,所在年级,联系电
17、话,电子邮件,登录系统口令,是否选题标志,毕业年份,指导教师成绩,评阅成绩,答辩成绩1,答辩成绩2,答辩成绩3,答辩成绩 4,答辩成绩 5,答辩平均成绩,百分制总成绩,五级总成绩。11)选题信息数据:标识列,立题教师外键),所属专业信息外键),所属专业方向信息外键),课题来源信息外键),课题类型信息外键),选该选题学生外键),课题编号,课题名称 ,课题完成地点,完成课题所需课时,课题内容的描述,课题已具备的条件,完成人具备的条件,最终成功形式,初审意见,终审意见,立题时间,初审标志,初审时间,终审标识,终审时间,该选题是否已选,老题还是新题,老题题号。4.1.2 数据库表的结构定义数据表名称与
18、结构如下:学位信息数据表:表名tb_degree ),结构见表4.1 。表 4.1 tb_degree表结构教研室信息数据表:表名 ,结构见表4.3 表 4.3tb_major表结构字段名称类型长度能否为空备注id int 4 Not Null 标识列,主键degreeNo nvarchar 20 Not Null 学位代码degreeName nvarchar 30 Not Null 学位名称字段名称类型长度能否为空备注id int 4 Not Null 标识列,主键departNo nvarchar 20 Not Null 教研室代码departName nvarchar 30 Not N
19、ull 教研室名称精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 36 页5 / 36 专业方向数据表:表名(tb_interested,结构见表4.4 表 4.4 tb_interested表结构办学层次数据表:表名tb_level ),结构见表4.5 表 4.5 tb_level表结构职称数据表:表名tb_title ),结构见表4.6 表 4.6 tb_title表结构课题来源数据表:表名tb_subSource),结构见表4.7 表 4.7 tb_subSource表结构课题类型数据表:表名tb_subType),结构见表4.8
20、 表 4.8 tb_subType表结构教师数据表:表名,结构见表4.10 表 4.10 tb_student表结构课题数据表:表名(tb_subject,结构见表4.11 id int 4 Not Null 标识列,主键teacherNo nvarchar 20 Not Null 教师工号teacherName nvarchar 30 Not Null 教师姓名sex nvarchar 20 Not Null 性别Title_id int 4 Null 职称代码 (外键 department_id int 4 Null 所属教研室代码外键)degree_id int 4 Not Null 学
21、位信息 level_id int 4 Not Null 层次类别 外键) -如本科、专升本interested_id int 4 Not Null 专业方向信息外键)telphone nvarchar 20 Not Null 联系电话email nvarchar 20 Not Null 电子邮件地址password nvarchar 20 Not Null 登录系统口令electiv_flag boolean 1 Not Null 是否选题标志grade2 int 4 Null 毕业年份tutorResult int 4 Null 指导教师成绩estimatorResult int 4 Nul
22、l 评阅成绩appraiser1 int 4 Null 答辩成绩1 appraiser2 int 4 Null 答辩成绩2 appraiser3 int 4 Null 答辩成绩3 appraiser4 int 4 Null 答辩成绩4 appraiser5 int 4 Null 答辩成绩5 average int 4 Null 答辩平均成绩finallyPersent int 4 Null 百分制总成绩finallyFive nvarchar 20 Null 五级总成绩字段名称类型长度能否为空备注id int 4 Not Null 标识列,主键subjectNo nvarchar 20 Not
23、 Null 课题编号teacher_id int 4 Not Null 立题教师编号 id(标识列 level_id tb_student(学生 tb_major(专业 id(标识列 major_id major_id tb_student(学生 tb_subject(课题 tb_interested interested_id interested_id tb_student(学生 tb_subject(课题 tb_title( 职称 id(标识列 title_id tb_teacher(教师 tb_degree(学位 id(标识列 degree_id tb_teacher(教师 tb_de
24、partment(教研室 id(标识列 department_id tb_teacher(教师 tb_student(学生 id(标识列 student_id tb_subject(课题 tb_teacher(教师 id(标识列 teacher_id tb_subject(课题 tb_subSource subSource_id tb_subject(课题 tb_subType subType_id tb_subject(课题 4.3 操作流程立题流程是教师添加一个课题,然后再由管理员进行审核,通过初审和终审则进入选题库。立题流程如图4.1 所示major_id int 4 Not Null
25、所属专业代码外键)interested_id int 4 Not Null 所属方向代码外键)subSource_id int 4 Not Null 课题来源 外键)subType_id int 20 Not Null 课题类型 外键)address nvarchar 20 Not Null 课题完成地点times int 1 Not Null 完成所需课时数content nvarchar 50 Null 课题内容的描述condition nvarchar 50 Null 课题已具备的条件request nvarchar 50 Null 完成人具备的条件result nvarchar 50
26、Null 最终成果形式checkUpFirst nvarchar 50 Null 初审意见checkUpLast nvarchar 50 Null 终审意见fillInDate datetime 8 Null 立题时间checkFlage1 boolean 1 Null 初审标志checkDate1 datetime 4 Null 初审时间checkFlage2 boolean 1 Null 终审标志checkDate2 datetime 8 Null 终审时间student_id int 4 Null 该选题学生学号 this.getHibernateTemplate(.delete(ent
27、ity。 public void delete(Class clazz,Serializable id if(get(clazz,id!=null this.getHibernateTemplate(.delete(get(clazz,id 。 public int count(final String hql,Object .params List list=getHibernateTemplate(.find(hql,params。if(list.size(0return list.get(0.intValue(。 return 0。 public List findEntityListB
28、yHql(String hql, Object. params return this.getHibernateTemplate(.find(hql,params 。 public List find(String hql,Object . params return getHibernateTemplate(.find(hql,params 。 public void insert(Object entity this.getHibernateTemplate(.save(entity。 Autowired private HibernateTemplate hibernateTemplat
29、e 。public HibernateTemplate getHibernateTemplate( return hibernateTemplate。 public void setHibernateTemplate(HibernateTemplate hibernateTemplate this.hibernateTemplate = hibernateTemplate 。 5.2.3 基本的信息管理模块基本信息包括:专业信息、专业方向、职称、学位、课题类型、课题来源、教研室、办学层次等信息,因为起实现类似,在此只对教研室信息的管理做出说明。添加窗口如图5.2 所示,列表如图5.3 所示,修
30、改窗口如如5.4 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 36 页10 / 36 图 5.2 添加教研室窗口图 5.3 教研室列表窗口图 5.4 修改教研室窗口精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 36 页11 / 36 主要实现代码如下:/* * 添加一个教研室信息 * return 教研室列表页面 */ public String add( getDepartmentService(.saveOrUpdate(getDepartment(。getP
31、age(.setData(getDepartmentService(.findByPage(getPage(。return department-list。 /* * 查看分页信息的教研室信息 * return page.data */ public String list( getPage(.setData(getDepartmentService(.findByPage(getPage(。return department-list。 /* * 修改一个教研室信息 * return 教研室列表页面 */ public String update( getDepartmentService(
32、.saveOrUpdate(getDepartment(。getPage(.setData(getDepartmentService(.findByPage(getPage(。return department-list。 5.2.4 登录模块登录分别为管理员、教师和学生三个角色登录,在登录的时候用户须选择角色进行登录,登录界面如图5.5 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 36 页12 / 36 图 5.5 登录界面主要实现代码如下:public String login( throws IOException H
33、ttpServletResponse response = ServletActionContext.getResponse(。this.beforAnsy(。PrintWriter out = response.getWriter(。HttpSession session=ServletActionContext.getRequest(.getSession(。String srand = (String session.getAttribute(code。 /获取验证码String uname = getTeacher(.getTeacherNo(。/ 获取用户名String pwd =
34、getTeacher(.getPassword(。/获取密码String s = getTeacher(.getCore(。/ 获取用户角色if(!getVerifycode(.equalsIgnoreCase(srand out.print(。out.print(alert(验证码错误! 。window.location=/GraduateDesign/index.jsp。 else if(s=student|s.equals(student / 判断如果角色是学生的话则进行学生登录校验if(getStudentService(.checkLogin(uname, pwd setStuden
35、t(getStudentService(.getByNo(uname。session.setAttribute(user, getStudent(。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 36 页13 / 36 return index2。else out.print(。out.print(alert(用户名或密码错误 。window.location=/GraduateDesign/index.jsp。 else if(s=teacher|s.equals(teacher / 如果角色是教师的话则进行教师教研登录if(get
36、TeacherService(.checkLogin(uname, pwd setTeacher(getTeacherService(.getByNo(uname。session.setAttribute(user, getTeacher(。return index1。else out.print(。out.print(alert(用户名或密码错误 。window.location=/GraduateDesign/index.jsp。 else / 如果角色是管理员的话就进行管理员登录校验if(getTeacherService(.checkLogin(uname, pwd, true set
37、Teacher(getTeacherService(.getByNo(uname。session.setAttribute(user, getTeacher(。return index。else out.print(。out.print(alert(用户名或密码错误, 或者检查你是否为管理员 。window.location=/GraduateDesign/index.jsp。 return null。 5.2.5 立题模块(1)添加课题如图5.6所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 36 页14 / 36 图 5.6
38、 添加课题添加课题主要代码如下:public String add( getSubjectService(.saveOrUpdate(getSubject(。getPage(.setData(getSubjectService(.findByPage(getPage(。returnsubject-list。(2)初次审核和最终审核初次审核和最终审核实现基本一致,故在此只展现最终审核。点击左侧的菜单最终审核即可跳转至要审核的列表页面,如5.7图所示。再点击【终审】按钮即可跳转至审核页面,如图 5.8所示。图 5.7 最终审核列表精选学习资料 - - - - - - - - - 名师归纳总结 -
39、- - - - - -第 16 页,共 36 页15 / 36 图 5.8 最终审核主要代码如下所示:public String check2( Subject subject = getSubjectService(.getById(getSubject(.getId(。subject.setCheckDate2(getSubject(.getCheckDate2(。 /设置初审日期subject.setCheckUpLast(getSubject(.getCheckUpLast(。 /设置初审意见subject.setCheckFlage2(getSubject(.isCheckFlage
40、2(。 / 设置最终审核标志getSubjectService(.saveOrUpdate(subject。getPage(.setData(getSubjectService(.findByPage2(getPage(。return subject-list2。 6 系统测试与性能分析6.1 系统测试方案根据系统测试目的结合面向对象的方法,给出以下的测试方案:(1)先对对立模块进行测试,因为不能保证独立模块的正确性也就无法保证与之关联的模块的正确性,如果独立模块在开发的后期发现,则要改动的地方相对会很多,所以在开发非独立模块精选学习资料 - - - - - - - - - 名师归纳总结 -
41、- - - - - -第 17 页,共 36 页16 / 36 之前要确独立模块已开发完成且测试正确。(2)设计测试测试用例时,给出一个测试预期结果,测试的结果要和预期结果一致才可以。在测试之时要考虑到不合法输入的处理。6.2 系统功能测试根据系统功能,采用黑盒测试方法,分别对专业信息、专业方向、职称、学位、课题类型、课题来源、教研室、办学层次、学生、教师、立题、选题分别做出测试,该系统均能实现以上功能。由于功能太多,故在这里只展现部分测试。(1)专业信息管理测试添加一个专业代码为003,专业名称为网络工程,运行前的专业列表如图6.1 所示,添加成功后的界面如图6.2 所示。图 6.1 添加前
42、的专业列表界面图 6.2 添加后的专业列表界面(2)立题管理测试添加一个为立题测试的课题,然后分别做出初审和终审,审核完成后查看其是否已进入选题库。在添加选题的时候假如只输入课题名,则不能提交,会有如图6.3 所示;当成功添加一个课题后则可以在初审列表中查看,如图6.4 所示;初审完成后则会出现在终审列表,如图6.5 所示。终审完成后在学生选题列表中就可以找到该选题,如图6.6 所示。图 6.3 添加课题非法输入精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 36 页17 / 36 图 6.4 初审列表图 6.5 初审列表图 6.6
43、选题列表 is a Java-based scripting technology. Is advocated by Sun Microsystems Inc., together with a number of companies involved in the establishment of a dynamic web page 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 36 页19 / 36 technology standards. JSP technology is somewhat similar to ASP
44、technology, It is a traditional HTMLpage file (*. htm, *. html to insert Java program segment (Scriptlet and JSP tag (tag, To form the JSP file pages form transmits the result by HTML the browser. This both are helpful in the author protects own code, and can guarantee any based on the HTML Web brow
45、sers complete usability.2.2 may entrust with heavy responsibility the module The overwhelming majority JSP page relies on may entrust with heavy responsibility, the cross platform module (JavaBeans or Enterprise the JavaBeans module carries out complex processing which the application procedure requ
46、ests. The development personnel can share and exchange the execution ordinary operation the module, or causes these modules uses for more users and the customer 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 36 页20 / 36 association. Has accelerated the overall development process based on mod
47、ules method, and causes each kind of organization obtains balanced in their existing skill and in the optimized result development endeavor. 2.3 uses marking The Web page development personnel will not be the familiar script language programmers. The JSP technology has sealed many functions, these f
48、unctions are easy to use, marking to carry on the dynamic content production with JSP in the related XML to need. The standard JSP marking can visit and the instantiation JavaBeans module, the establishment or the retrieval module attribute, downloads Applet, as well as the execution difficulty with
49、 codes and the time-consuming function with other methods. 2.4 adapts the platform Nearly all platforms support Java, JSP+JavaBeans to be possible to pass unimpeded nearly under all platforms. Transplants from a platform to other platform, JSP and JavaBeans does not even need to translate, because t
50、he Java byte code is standard has nothing to do with the platform. 2.5 database connection In Java connects the database the technology is the JDBC, Java procedure is connected through the JDBC driver and the database, operations and so on execution inquiry, extraction data. Sun Corporation has also