版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文管理系统本科毕业论文(设计) 题目:本科生毕业论文管理系统 学院: 专业班级: 学号: 学生姓名: 指导教师姓名: 指导教师职称:年月日
毕业论文管理系统摘要毕业论文管理系统是在一个信息全球化的历史背景下进行开发的,此系统实现了将本科毕业生论文答辩的整个流程搬到了网络上进行。在此之前,毕业生进行论文答辩的时候都要通过老师的通知才知道该做什么事情,信息不太公开,并且没有很好的沟通和交流。此系统实现了信息公开化,可以让毕业生对答辩的流程一目了然,同时对答辩过程中产生的各种文件进行了很好的管理。论文重点介绍了论文答辩信息管理系统的实现过程:包括系统分析、系统调查、数据流程分析、功能设计、数据库设计、系统实现等。本系统主要功能有系统管理,毕业答辩定义,学生选题,项目管理,项目调整,论文答辩,论文审核,以及文档管理等功能,满足了多个用户(系主任,教师,学生)的使用。本论文第二部分介绍了相关技术,第三部分介绍了本系统的需求分析,第四部分关于本系统开发过程中的详细设计过程。第五部分是关于系统实现的功能界面。第六部分和第七部分主要介绍了本人在开发本系统时的体会和总结。关键字:毕业论文管理系统选题调整答辩ThesisManagementSystem AbstractThesismanagementsystemisdevelopedunderaglobalhistoricalbackgroundinformation,thissystemenablesthegraduatesofthethesisoftheentireprocessmovedtothenetwork.Priortothis,thethesisgraduatesgothroughwhentheteacherdidnotknowwhattonoticethings,informationthatwasnotpublic,andthereisnogoodcommunicationandexchange.Thissystemrealizestheinformationpublic,allowinggraduatestoprocesstherespondentataglance,whilethevariousdocumentsproducedduringtherespondenthadaverygoodmanagement.Thesispaperfocusesontheimplementationprocessinformationmanagementsystem:includingsystemanalysis,systemsurvey,dataflowanalysis,functionaldesign,databasedesign,systemimplementation.Themainfunctionofasystematicmanagementsystem,graduatingfromthedefinitionoftherespondent,thestudenttopics,projectmanagement,projectadjustments,thesis,dissertationaudit,anddocumentmanagementcapabilitiestomeetthemultipleusers(dean,teachers,students)areused.Thesecondpartdescribestherelevanttechnologies,andthethirdsectiondescribesthesystemneedsanalysis,detaileddesignofthefourthpartofthesystemdevelopmentprocessontheprocess.Thefifthpartisaboutthesystemtoachievethefunctionalinterface.PartVIandPartVIIintroduceshimselfandsummarizeexperienceinthedevelopmentofthesystem.Keywords:Thesismanagementsystem,Topics,Adjust,Reply目录TOC\o"1-3"\h\z\t"论文二级标题,2,论文三级标题,3"1引言 51.1课题研究的背景 51.2课题研究成果应用的实际意义 52相关技术简介 82.1jsp技术 82.2Struts2技术 923Hibernate协议介绍 102.4Ajax架构 122.5jdbc技术 123需求分析 133.1系统实现目标 133.2系统开发环境 133.3功能性需求描述 144系统设计 164.1概要设计 164.2详细设计164.3数据库设计 165系统功能实现 185.1管理主界面 185.2学生选题功能 195.3地图服务发布功能 20(1)发布地图服务 20(2)地图服务汇总 205.4地图网页发布功能 21(1)发布地图网页 21(2)网页汇总页面 235.5地图服务网站 236结论 257致谢 26参考文献 271引言1.1课题研究的背景信息管理系统概念是1961年由美国人J.D.GALLAGHER.首先提出来的,是一门新兴的,及管理科学、信息科学、系统科学为一体的综合型学科。毕业论文管理系统是针对学校本科生毕业大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management
Information
System)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供课题和答辩方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟,
使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。1.2课题研究成果应用的实际意义在当前信息全球化的历史背景下,信息的公开和同步显得尤为重要。在传统的毕业设计文档管理模式下,信息交流往往是老师和学生沟通、管理的瓶颈,教师没有一个同意的毕业设计信息发布平台,学生也没有一个可以查看与咨询的平台。历届的毕业设计从选题、开题、项目任务书编写一直到最后的材料汇总,进十份的不同材料都需要学生打印纸质文档交付给教师,教师往往要保留很多学生的纸质文档,久而久之,纸质文档的丢失、遗漏以及保存的不便等弊端体现出来,而通过OA系统可以灵活地实现点对点交流,点对面交流,信息交流可以在鼠标点击的一个瞬间完成,这种师生间方便快捷的信息交流将为毕业设计文档管理带来质的飞跃。同时,OA系统为学校提供的流程固化与流程优化平台,使得毕业生做毕业设计的各项流程运转更加高效和可控,已然成为建立现在学校管理制度的必备管理平台。OA系统还能够实现信息化的统一更新和发布,当然,OA系统还能把众多的纸质文档信息化,实现无纸化办公,大大方便文档的保存。针对全院的毕业设计文档管理现状,产生了开发一款方便快捷毕业设计文档OA管理系统的想法,本系统的用户定位是全院本科毕业生和老师。也就是说,为全院的毕业生及相关教师提供了一个信息交流平台,他们可以使用该系统所提供的平台交流信息与文档收集。使教师在开展毕业设计的整个活动的各项工作更加规范化,组织各项活动更加方便快捷。2相关技术简介2.1Jsp技术JSP全名为JavaServerPages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%,%>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.2Struts2技术Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小。2.3Hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。2.4Ajax技术AJAX即“AsynchronousJavascript+XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。2.5JDBC技术JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。2.6Json技术JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。简单地说,JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且JSON可以表示比"名称/值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。3需求分析需求分析是软件开发流程中重要的一环,需求分析的基本任务是根据用户的需求,准确定义要完成的系统的目标,回答系统必须“做什么”的问题。它的主要用途是明确系统需求,是用户和开发人员之间进行讨论的基础,并作为系统设计和实现的依据。3.1系统实现目标本系统可以减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。
方便快速的操作,可减少毕业论文信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。
3.2系统结构图本科毕业设计文档管理系统本科毕业设计文档管理系统后台管理模块业务功能模块教师信息管理学生信息管理院信息管理系信息管理专业信息管理班级信息管理毕业设计定义功能项目发布功能学生选题功能项目调整功能项目公布功能3.3功能性需求描述3.3.1学生选题模块功能描述引言:该功能是学生选择项目和老师。学生可以修改或删除已选项目和老师。输入:可选设计题目和内容。加工:学生选择项目和老师,记录学生选择项目和老师。输出:输出学生选择的项目和老师。业务建模3.3.2项目调整功能功能描述引言:该功能是指导老师为每个设计项目选择学生。最后由系主任调整所有学生与毕业设计项目的关系,把学生平均分配到每个项目上。输入:所有的设计题目、学生、指导老师和学生选择的项目和老师情况输入:老师为每个设计项目选择学生,系主任调整所有学生的毕业设计。输出:输出每个学生最后确定下来的毕业设计项目和指导老师业务建模4系统设计4.1概要设计4.1.1学生选题功能流程图学生选题功能用户界面.1学生用户学生用户界面分为两个,分别为老师给定的项目列表页面如图.3-2.1(各项不可修改),和具体项目的详细内容页面如图中3-2.2。(1)老师给定的项目列表页面项目列表页面如图3-2.1显示内容【项目名称】,【提交日期】,【指导老师】,【项目状态】。数据默认以提交日期倒序排列。【项目名称】字段上有超链接,链接到项目详细内容页面,【项目名称】字段上列出项目名称的前10个字。每页显示15行,超过15行在下一页输出其余的。查询内容如下表3-2.1:表3-2.1信息类别信息项产生方式说明自动带出手工选择手工录入必须录入项目查询内容项目编号√文本框项目主题√文本框提交日期√2个文本框项目状态√下拉框,下拉框选项为”未通过”,”待审核”,”已通过”备注:项目列表页面如下:项目名称指导老师项目状态要求学生人数已选人数XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(2)具体项目的详细内容页面项目的详细内容页面如图3-2.2显示内容【项目名称】,【学生数目】,【项目内容】,【项目要求】,【选择】,【返回】。【返回】字段上有超链接,链接到项目列表页面。如果想选择项目则点击【选择】按钮。如果选择成功则给出成功的提示;否则,如果学生已经选择了某个项目,再选择此项目,则给出(“您已选择“xxxx”项目,确定替换为当前项目“xxxx”吗?”)的提示,若学生确认同意,就在数据库中修改此学生选择的项目,项目状态改为“已选择”。否则就给出(“选择失败,请重新选择”)的提示。如果学生已经选择了这个项目,则显示的是“撤销选择”按钮,否则显示“选择”按钮。编辑界面内容如下图3-2.2:表3-2.2信息类别信息项产生方式说明自动带出手工选择手工录入必须录入项目信息项目编号√√字符型,9位。由系统自动生成。生成规则如下:有二部分构成,第一部分为“O”大写常量第二部分为一个8为序列数,不足前面补零。例如:O0000023项目名称√√字符型,50位。学生数目√√数值型,2位项目内容√√文本框项目要求√√文本框项目的详细内容页面如下:(各项不可修改)选择/撤销选择返回项目名称学生数目指导老师研究方向项目内容▲▼项目要求▲▼已选学生Xxxx,xxxx,xxxx,xxxxxx4.1.2项目调整功能流程图.1指导老师用户.2系主任用户项目调整功能用户界面.1系主任用户系主任用户有两个三面,即:系主任调整页面、系主任代指导老师调整页面和调整结果页面。系主任调整页面如图3.3.2-1显示内容【项目编号】,【项目名称】,【指导教师】,【项目状态】(只列出状态为“未选择”的项目)。系主任选择一个状态为“未选择”的项目和一个无项目的学生,点击确认,在数据库中加入一条记录,并修改项目状态改为“已确认”,并给出操作结果的提示。选择下拉列表中的一个指导老师,就可以为该指导老师调整他的毕业论文项目。选择系主任则会返回当前页面。指导老师系主任▼系主任普通老师项目编号项目名称指导教师项目状态▼xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx▼学生姓名落选项目指导老师专业性别▼xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx▼确认图3.3.2-1图3.3.2-22.系主任代指导老师调整页面如图3.3.2-2所示。显示内容【项目编号】,【项目名称】,【项目状态】,【学生姓名】、【专业】、【性别】、【确认】。
在上面的项目列表中,只列出状态为“已选择”的项目。指导老师选择一个项目后,在下面的列表中列出选择此项目的学生。对于有多个学生选择的项目,指导老师选择一个学生,点击“确认”按钮(对于只有一个学生选择的项目,指导老师也要选择学生,然后点击“确认”按钮),数据库中在项目-学生表中删除此项目对应其他学生的记录,并将这些记录中的(学生学号,落选项目编号)加入到学生表1中。并将项目状态改为“已确认”。对于没有学生选择的项目,指导老师不用管。选择身份普通老师▼代老师选择▼系主任xxx普通老师xxx项目编号项目名称项目状态已选人数▼xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx▼学生姓名专业性别▼xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx▼确认图3.3.2-2调整结果页面如图3.3.2-3在此页面可以对调整结果进行修改。选择要修改的项目,然后点击修改,在数据库中将此项目变为没有学生选的项目,将学生变为没有项目的学生,放在学生表1中,然后页面转到调整页面,进行对这些项目的调整。项目名称项目状态指导老师学生姓名专业性别FORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxxFORMCHECKBOXxxxxxxxxxxxxxxxxxxxxxxxx修改返回图3.3.2-.2指导老师用户指导老师用户有两个页面,即:毕业设计项目调整页面和调整结果页面。1.毕业设计项目调整页面如图3.3.2-4显示内容【项目编号】,【项目名称】,【项目状态】,【学生姓名】、【专业】、【性别】、【确认】。在上面的项目列表中,只列出状态为“已选择”的项目。指导老师选择一个项目后,在下面的列表中列出选择此项目的学生。对于有多个学生选择的项目,指导老师选择一个学生,点击“确认”按钮(对于只有一个学生选择的项目,指导老师也要选择学生,然后点击“确认”按钮),数据库中在项目-学生表中删除此项目对应其他学生的记录,并将这些记录中的(学生学号,落选项目编号)加入到学生表1中。并将项目状态改为“已确认”。对于没有学生选择的项目,指导老师不用管。项目名称项目状态已选人数▼xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx▼学生姓名专业性别▼xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx▼确认图3.3.2-4图3.3.2-4调整结果页面如图3.3.2-5项目名称项目状态学生姓名专业性别xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx返回4.2数据库设计Department--系属性名属性的描述属性的约束等说明属性的特性说明DepartID编号INTnotnullprimarykeyDepartName系名称varchar(50)DepartInfo系简介textDepart_College系所属的院INTnotnullREFERENCESCollege(CollegeID)Specialty--专业属性名属性的描述属性的约束等说明属性的特性说明SpecialID编号INTnotnullprimarykeySpecialName专业名称varchar(50)SpecialLength学制intSpecialCategory类别varchar(50)OfDepartINTREFERENCESDepartment(DepartID)College--学院属性名属性的描述属性的约束等说明属性的特性说明CollegeID编号INTnotnullprimarykeyCollegeName学院名varchar(50)CollegeInfo院简介textTeacher--教师属性名属性的描述属性的约束等说明属性的特性说明TeacherID编号INTnotnullprimarykeyTeacherName姓名varchar(50)notnullTeacherSex性别varchar(50)TeacherPass密码varchar(50)notnullState状态char(4)CHECK(State='ok'ORState='no')TeacherTitle职称varchar(50)TeacherUsername账号VARCHAR(50)notnullTeacherOfDepart所在系INTResearch研究方向textTeacherInfo简介textTeacherMail邮件textTeacherPhone电话textTeacherQQQQtext
Student--学生属性名属性的描述属性的约束等说明属性的特性说明StuID编号INTnotnullprimarykeyStuName姓名VARCHAR(50)notnullStuSex性别varchar(50)StuUsername账号VARCHAR(50)StuLearnNum学号VARCHAR(50)notnullStuPass密码VARCHAR(50)notnullState状态char(4)check(T_status='启用'orT_status='禁用')StuClass班级intOfCollege学院varchar(50)StuMail邮件VARCHAR(50)StuPhone电话VARCHAR(50)StuQQQQVARCHAR(50)LoseItemIDINTREFERENCESProject(ProjectID)SelectedStatechar(4)CHECK(SelectedState='未选'ORSelectedState='被选')
Project--项目属性名属性的描述属性的约束等说明属性的特性说明ProjectID编号INTnotnullprimarykeyProjectName项目名VARCHAR(50)notnullSelectedState状态char(4)CHECK(SelectedState='未选'ORSelectedState='被选'), CommitStateintCHECK(CommitState='0'ORCommitState='1'ORCommitState='2')SelectedNumintdefault0ProjectContent内容textProjectRequire要求textStudentNeedNum需要学生数intnotNULLDEFAULT1ProjectSource选题来源VARCHAR(50)ProjectTeacherID出题教师编号INTNOTNULLREFERENCESTeacher(教师编号)ThesisScore成绩INTCHECK(成绩>=0AND成绩=<100)DesignScore毕业论文得分INTCHECK(毕业论文得分>=0AND毕业论文得分=<100)Characters--角色属性名属性的描述属性的约束等说明属性的特性说明CharacterID编号INTnotnullprimarykeyCharacterName角色名VARCHAR(50)notnullCharacterLevel等级INTCHECK(角色等级='1'OR角色等级='2'OR角色等级='3')/*1:管理员,2:系主任,3:教师,4:学生*/备注Class--班级属性名属性的描述属性的约束等说明属性的特性说明ClassID编号INTnotnullprimarykeyClassName班级intnotnullStartYear入学年份intOfSpecial所属专业VARCHAR(50)REFERENCESSpecialty(SpecialID)Graduation_design--毕业设计定义表属性名属性的描述属性的约束等说明属性的特性说明GraduationDesignID编号INTnotnullprimarykeyGraduationDesignNameSumStudent总人数intBeginYearint参加的学生入学年份EndYear毕业年份DefinePeople定义人INTNOTNULLREFERENCESTeacher(教师编号)Date定义时间DATETIMEAnnouncevarchar(1)SelectItemvarchar(1)Adjustvarchar(1)Publishvarchar(1)ProjectTaskvarchar(1)OpeningReportvarchar(1)PaperReviewvarchar(1)Defensevarchar(1)MaterialSummaryvarchar(1)Gradingvarchar(1)Role_Assignment—角色分配属性名属性的描述属性的约束等说明属性的特性说明RoleAssignID编号INTnotnullprimarykeyTeacherID用户char(20)notnullCharacterID角色StartTime开始时间StopTime有效时间State状态Project_GraduationDesign_Teacher—项目_定义_教师表属性名属性的描述属性的约束等说明属性的特性说明ID编号INTnotnullIDENTITY(0,1)primarykeyProjectID项目IDINTnotnullREFERENCESProject(ProjectID)GraduationDesignIDINTnotnullREFERENCESGraduationDesign(GraduationDesignID)TeacherIDINTREFERENCESTeacher(TeacherID)UploadTeacherINTREFERENCESTeacher(TeacherID)UploadTimeDATETIMEStudent_Selected—学生选题表属性名属性的描述属性的约束等说明属性的特性说明ID编号INTnotnullIDENTITY(0,1)primarykeyProjectID项目IDINTnotnullREFERENCESProject(ProjectID)StuID学生INTREFERENCESStudent(StuID)SelectedState状态CHAR(2)Teacher_Selected—老师选学生表属性名属性的描述属性的约束等说明属性的特性说明ID编号INTnotnullIDENTITY(0,1)primarykeyProjectID项目IDINTnotnullREFERENCESProject(ProjectID)TeacherID学生INTREFERENCESStudent(StuID)StuID状态INT4.3详细设计4.3.1学生选题功能使用的类和方法描述包名类说明com.web.dao.service.StudentSelectStudentSelectOperation.java对毕业设计定义的操作类,拥有StudentSelect,deleteSelect,isSelected,getStudents方法com.web.action.service.StudentSelectStudentSelectAction.java用变量接收项目ID,在后台取得学生ID,设置学生是否被选状态再存入。excute类名方法说明StudentSelectOperation.javaBooleanisSelected(intsid)在学生选题表中查找,判断该用户是否选题了BooleanisSelected(intsid,intpid)在学生选题表中查找,判断学生是否选择了某个对应的项目,用于显示学生查看项目时的撤销和选择BooleanaddSelect(intsid,intpid)在学生选题表中操作,该方法用于增加一条学生选题记录,首先判断此学生是否已有项目,如果有则提示是否要更改,如果要更改先删除原有项目,在增加(增加时要将项目对应的已选人数加1),如果用户没有选题则在数据库中增加一条记录,并且要同时将学生表里的落选项目字段设置上booleandeleteSelectByStu(intsid,intpid)在学生选题表中根据学生id删除选题记录,同时将所对应删除项目的已选人数减一booleandeleteSelectByPro(intpid)在学生选题表中根据项目id删除该项目id对应的所有选题记录,同时将项目对应的已选人数字段设置为要求人数的个数。ListgetStudentSelect()该方法查询出(项目名称,指导老师,项目状态,要求人数,已选人数)封装为对象,返回list结果ProjectgetProject(intpid)该方法返回项目信息StringgetStudents(intpid)改方法返回某个项目所对应的学生的姓名,姓名之间用逗号隔开,以字符串返回StudentSelectAction.javaList<Map<String,String>>showResultList()对毕业设计定义的操作类,拥有StudentSelect,deleteSelect,Show,isSelected,getProject,getStudents方法List<Map<String,String>>showProjectInfo()Voidadd()第一轮学生选择项目,如果已经选择了,在次选择的话给提示“是否要修改已选择项目xxxx”,如果是第二轮选择,已经有项目了,则提示“不能修改,请与系主任联系”Voiddelete()4.3.2调整功能使用的类和方法描述包名类说明com.web.dao.service.ProjectAdjustProjectAdjustOperation.java对毕业设计定义的操作类,拥有TeacherSelect,deleteSelect,getProjectList,getStudentList,getTeacherList方法com.web.action.service.ProjectAdjustProjectAdjustAction.java用变量接收项目ID,在后台取得学生ID,设置学生是否被选状态再存入。excute类方法说明ProjectAdjustOperation.javaBooleanadd(inttid,intsid,intpid)在学生选题表中删除与参数中pid相关的所有记录,在老师选学生表中根据参数增加一条记录,并将学生的状态改为已选,将项目状态改为被选Booleanupdate(intsid,intpid)(“修改”功能对应的方法)在老师选学生表里删除此条记录,并在学生表中将对应学生的状态改为未选,在项目表里将项目改为未选ListgetTeacher_Project(inttid)显示作为普通老师的身份时的项目列表,只需要列出该老师的所有项目;自己的身份(默认身份为普通老师),并且可以代其他老师选择,代其他人选择复选框默认为空ListgetTeacher_Project()针对系主任用户,返回未选的项目ListgetStudents(intpid)普通老师点击一个项目,则学生列表显示此项目对应的学生ListgetStudents()针对系主任用户,返回未选项目的学生ListgetResult()返回结果页面ProjectAdjustAction.javaadjust(inttid)首先判断是普通老师还是系主任,如果是普通老师则返回相应的项目和学生页面。如果是系主任用户,则判断身份是普通老师还是系主任身份,如果是系主任身份则返回相应的项目和学生;如果是普通老师身份,看一下是不是代别的老师选了,如果没有则显示自己的项目和学生,要是代别人选择显示其他老师的项目和学生。booleanadd(inttid,intsid,intpid)调用ProjectAdjustOperation.java中的add方法Booleanupdate(intsid,intpid)(修改功能对应的方法)调用ProjectAdjustOperation.java中的updatea方法ListgetTeacher_ProjectXiZhu()针对系主任用户,返回未选的项目ListgetStudentsPuTong()普通老师点击一个项目,则学生列表显示此项目对应的学生ListgetStudentsXiZhu()针对系主任用户,返回未选项目的学生ListgetResult()返回结果页面类图包名类说明com.web.dao.service.ProjectAdjustProjectAdjustOperation.java对毕业设计定义的操作类,拥有TeacherSelect,deleteSelect,getProjectList,getStudentList,getTeacherList方法com.web.action.service.ProjectAdjustProjectAdjustAction.java用变量接收项目ID,在后台取得学生ID,设置学生是否被选状态再存入。excute类方法说明ProjectAdjustOperation.javaBooleanadd(inttid,intsid,intpid)在学生选题表中删除与参数中pid相关的所有记录,在老师选学生表中根据参数增加一条记录,并将学生的状态改为已选,将项目状态改为被选Booleanupdate(intsid,intpid)(“修改”功能对应的方法)在老师选学生表里删除此条记录,并在学生表中将对应学生的状态改为未选,在项目表里将项目改为未选ListgetTeacher_Project(inttid)显示作为普通老师的身份时的项目列表,只需要列出该老师的所有项目;自己的身份(默认身份为普通老师),并且可以代其他老师选择,代其他人选择复选框默认为空ListgetTeacher_Project()针对系主任用户,返回未选的项目ListgetStudents(intpid)普通老师点击一个项目,则学生列表显示此项目对应的学生ListgetStudents()针对系主任用户,返回未选项目的学生ListgetResult()返回结果页面ProjectAdjustAction.javaadjust(inttid)首先判断是普通老师还是系主任,如果是普通老师则返回相应的项目和学生页面。如果是系主任用户,则判断身份是普通老师还是系主任身份,如果是系主任身份则返回相应的项目和学生;如果是普通老师身份,看一下是不是代别的老师选了,如果没有则显示自己的项目和学生,要是代别人选择显示其他老师的项目和学生。booleanadd(inttid,intsid,intpid)调用ProjectAdjustOperation.java中的add方法Booleanupdate(intsid,intpid)(修改功能对应的方法)调用ProjectAdjustOperation.java中的updatea方法ListgetTeacher_ProjectXiZhu()针对系主任用户,返回未选的项目ListgetStudentsPuTong()普通老师点击一个项目,则学生列表显示此项目对应的学生ListgetStudentsXiZhu()针对系主任用户,返回未选项目的学生ListgetResult()返回结果页面5系统实现5.1登陆功能5.1.1登录界面图5管理主界面5.1.2关键代码publicStringexecute(){ Mapsession=ActionContext.getContext().getSession(); //session.clear(); TeacherOperationdao=TeacherOperation.getInstance(); StudentOperationsdao=StudentOperation.getInstance(); Teacherteacher=dao.queryByUser(user); session.clear(); //对提交的教师编号进行在数据库中查找,以确认此编号记录是否存在 //存在才进行进一步的验证 if(teacher!=null){ //验证密码是否一致,同时用户状态是否是启用状态 try{ if(teacher.getState().equals("ok")){ session.put("login","true"); session.put("userid",teacher.gettID()); session.put("userName",teacher.getName()); session.put("user","teacher"); Set<Characters>privilege=teacher.getCharacterSet();//取得老师权限集 for(Charactersc:privilege){ if(c.getCharacterLevel()==1){ session.put("isAdmin","true"); System.out.println("管理员登陆!"); }elseif(c.getCharacterLevel()==2){ session.put("isDean","true"); System.out.println("系主任登陆。"); }else{ session.put("isTeacher","true"); System.out.println("教师登陆。"); } } return"success"; }else{ addActionError(getText("您的帐户已停用,请与管理员联系!")); return"fail"; } }catch(Exceptione){ e.printStackTrace(); return"fail"; } }else{ //验证密码是否一致,同时用户状态是否是启用状态 //判断是否是学生用户 Studentstudent=sdao.queryByUser(user); if(student!=null){ try{ if(student.getState().equals("ok")){ session.put("login","true"); session.put("userid",student.getsID()); session.put("userName",student.getName()); session.put("isStudent","true"); session.put("user","student"); System.out.println("学生登陆。"); return"success"; }else{ addActionError(getText("您的帐户已停用,请与管理员联系!")); return"fail"; } }catch(Exceptione){ e.printStackTrace(); return"fail"; } }else{ addActionError(getText("您的账号或密码错误,请重新登陆!")); return"fail"; } } }5.1.3登陆成功欢迎界面5.2学生选题界面5.2.1选题界面5.2.2关键代码publicStringshowProjectInfo(){ Mapsession=ActionContext.getContext().getSession(); sid=Integer.parseInt(session.get("userid").toString()); //System.out.println("asd2"); ope=StudentSelectOperation.getInstance(); String[]s={"projectID","projectName","tName","selectedState","commitState","studentNeedNum","selectedNum","projectContent","projectRequire","projectSource","thesisScore","designScore"}; List<Map<String,String>>list=newArrayList<Map<String,String>>(); list=toMapUtil.toMap(s,ope.getProject()); for(inti=0;i<list.size();i++){ intproid=Integer.parseInt(list.get(i).get("projectID")); list.get(i).put("studentsName",ope.getStudents(proid));//返回项目对应的学生姓名 list.get(i).put("isSelected",ope.isSelected(sid,proid)==true?"yes":"no");//判断学生是否选择了此项目 } Mapmap=newHashMap();//传json map.put("root",list); map.put("results",list.size()); try{ printJson(map); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull; } /** *增加一条选题记录 *@throwsSQLException */ publicStringadd()throwsSQLException{ Mapsession=ActionContext.getContext().getSession(); sid=Integer.parseInt(session.get("userid").toString()); ope=StudentSelectOperation.getInstance(); System.out.println("sid="+sid+",pid="+pid); booleanf=ope.addSelect(sid,pid); if(f==true) return"success"; else return"fail"; } publicStringdelete(){ Mapsession=ActionContext.getContext().getSession(); sid=Integer.parseInt(session.get("userid").toString()); ope=StudentSelectOperation.getInstance(); booleanf=ope.deleteSelectByStu(sid,pid); if(f==true) return"success"; else return"fail"; }5.3教师调整项目功能5.3.1教师调整项目界面5.3.2关键代码publicStringadjust(){ String[]s={"projectID","projectName","projectState","selectedNum"}; List<Map<String,String>>list=toMapUtil.toMap(s,adjustOpe.getTeacher_Project(tid)); Mapmap=newHashMap();//传json map.put("root",list); map.put("results",list.size()); try{ printJson(map); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull;}publicStringgetStudentsPuTong(){ String[]s={"studentName","special","sex"}; List<Map<String,String>>list=toMapUtil.toMap(s,adjustOpe.getStudents(pid)); Mapmap=newHashMap();//传json map.put("root",list); map.put("results",list.size()); try{ printJson(map); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull;}5.4系主任调整项目功能5.4.1系主任调整项目界面5.4.2关键代码 publicStringgetStudentsXiZhu(){ String[]s={"studentName","sID","loseProject","teacherName","special","sex"}; List<Map<String,String>>list=toMapUtil.toMap(s,adjustOpe.getStudents()); Mapmap=newHashMap();//传json map.put("root",list); map.put("results",list.size()); try{ printJson(map); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull;}/*系主任获得项目*/publicStringgetTeacher_ProjectXiZhu(){ String[]s={"projectID","teacherID","projectName","teacherName","projectState"}; List<Map<String,String>>list=toMapUtil.toMap(s,adjustOpe.getTeacher_Project()); Mapmap=newHashMap();//传json map.put("root",list); map.put("results",list.size()); try{ printJson(map); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull; }5.4.3调整结果页面5.4.4调整结果页面关键代码/*系主任获得项目列表*/publicStringgetResult(){ String[]s={"projectName","projectState","teacherName","studentName","special","sex"}; List<Map<String,String>>list=toMapUtil.toMap(s,adjustOpe.getResult()); Mapmap=newHashMap();//传json map.put("root",list); map.put("results",list.size()); try{ printJson(map); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull;}@SuppressWarnings("unchecked")publicListgetResult(){ Transactiontx=null; try{ this.session=HibernateUtils.getSession(); tx=this.session.beginTransaction(); Stringhql="selectp.ProjectName,p.SelectedState,,,z.SpecialName,s.sexfrom"+ "Teacher_Selectedast_s,Studentass,Projectasp,Teacherast,sClassasc,Specialtyaszwherep.ProjectID=t_s.ProjectID"+ "andt.tID=t_s.TeacherIDands.sID=t_s.StuIDands.sClass=c.ClassIDandc.OfSpecial=z.SpecialID"; Queryquery=session.createQuery(hql); Listl=query.list(); mit(); returnl; }catch(Exceptione){ if(tx!=null) tx.rollback(); e.printStackTrace(); returnnull; }finally{ this.session.close(); //System.out.println(t); }}5.6后续功能界面图6地图编辑6结论毕业论文信息管理系统是学校信息管理系统的一个重要组成部分。它能够为用户提供充足的信息和快捷的查询手段,能有效的帮助学校和老师掌握学生的情况,为学生提供课题和答辩方面的查询。随着科学技术的不断提高,计算机科学日渐成熟,
使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生论文答辩信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。由以上分析,我们可以充分认识到设计并开发一个毕业论文信息管理系统的必要性和迫切性,本次设计和开发的毕业论文信息管理系统应符合学校学生信息管理的规定,满足对学校学生信息管理的需要,并达到操作过程中的直观,方便,实用,安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。毕业论文信息管理系统通过教育网络或互联网把学院的学生论文答辩信息汇聚起来,为学院主管部门提供全面及时的学生答辩信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贷款合同保证书模板
- 软件实施与外包服务
- 辣椒购销合同书
- 运动服装批发协议
- 迟到诚意道歉保证书
- 配电工程招投标通知
- 酒店餐饮用品采购协议
- 酒水订购合同模板
- 采购协议未达成
- 重晶石供应商招募书范本
- 家长会课件:三年级上册期中数学家长会课件
- 初中数学七年级上册《绝对值》说课课件 肖娜
- 不锈钢内衬特氟龙风管系统
- 中国古代建筑欣赏(最全)
- 新生儿高胆红素血症-PPT
- 水平定向钻施工技术培训的讲义课件
- 骆驼的抗沙标配(2020新疆中考说明文阅读试题含答案)
- 铁路客运员(初级)理论考试复习题库汇总(含答案)
- 银行信贷业务中的法律风险防范与控制
- 高中化学-探究亚铁盐和铁盐的性质及转化教学设计学情分析教材分析课后反思
- 二年级道德与法治上册单元作业设计案例
评论
0/150
提交评论