毕业设计论文管理系统内容摘要:

“添加新学生”链接,进入学生新增页面,新增一条学生信息。 类设计 本系统主要分 Entity类 (实体类 )和 Bean类(业务管理类)两部分。 (1) Entity类 面向对象的编程思想中,所有的东西都可以视为对象,我们将主要的对象抽象出来,在实体类中进行描述,而我们的业务,主要就是操作这些实体类。 系统中主要的实体类有:用户( User)、所有题目( Topic)、学生( Student)、教师( Teacher)、院系( Department)、角色( Role)、专业( Major)、开题报告( OpeningReport)、已选题目( SelectedTopic)、论文( Paper)。 系统内部分实体类关系如图。 Entity类 (实体类 )放于 包内。 实体类的变化都将由 Hibernate传输到数据库中。 图 部分实体类关系 (2) 业务类 根据 Action、 service、 DAO 三层分类的不同,我们将业务代码主要分为三类,用于接收用户业务请求的代码属于 Action类,主要放在。 用 于 处理 详细 业务 的逻 辑处 理的 代码 属 于 service 类 , 主要 放 在 包中,负责对数据库操作的属于 DAO 类,主要放在 中。 除此之 外,一些公用的如加密解密的工具类,则放在 的包中。 C la s s _ Ma jo r D e p a r tm e n tStu d e n tte a c h e r TopicSe le c te d Su b je c t O p e n in g r e p o r t1* 1**1 *1*111 11Pa p e r*1u s e r1111R o leU s e r R o le*11* ① 论文选题: 首先教师在系统中出题,出题时,调用请求 ,然后再 TopicService中进行逻辑处理,然后调用 TopicDao,进行数据库操作,当操作成功后,会返回验证信息,前台页面根据返回的信息,从而判断是进入成功提示页面还是失败提示页面。 上传题目时会上传题目的参考资料,在逻辑处理层 TopicService 中,进入另外一条处理通道,调用文件处理服务,将文档保存在服 务器上。 整个流程的时序图如图 所示。 图 出题教师添加毕业设计题目时序图 教师在出题完毕之后,学生可以进行选题操作。 系统首先获取所有的可选题目Topic,然后选题 selectsubject,当选题成功后,系统就在数据库中生成一条新的选题记录,同时在该题目的选择状态进行修改,并且在题目表 Topic 中,将是否已选择修改为已选择。 图 学生选题过程 其中 ChooseTopicAction主要的方法包括: input()、 list ()、 choose ()、 cancel ()、myTopic()五个方法。 这些方法的具体描述如表 所示。 表 ChooseTopicAction类主要方法描述 方法名 参数 返回值 功能描述 Input 无 String, Struts 2 的 result 名称 为学生分页显示题目列表 list 无 String, Struts 2 的 result 名称 获取并显示题目的参考资料列表 choose 无 String, Struts 2 的 result 名称 判断题目是否可选并完成选题 cancel 无 String, Struts 2 的 result 名称 学生取消选题 myTopic 无 String, Struts 2 的 result 名称 学生查看自己的选题 : 学生 : 教师 : T o p i c : Se l e ct e d Su b j e ct : O p e n i n g re p o rt1 : C re a t e ()2 : L i st ()3 : Se l e ct Su b j e ct ()3 . 1 : C re a t e ()3 . 2 : C h a n g e St a t u s( )4 : L i st ()5 : L i st () 业务逻辑类 TopicService 的主要方法描述如表 所示。 表 TopicService 类主要方法描述 方法名 参数 返回值 功能描述 list 无 ListTopic 显示所有选题 search Page page, Integer majorID, String tid, String title, Boolean isSelected, Integer year ListTopic 根据条件查询选题 get int id Topic 根据 ID 查找题目 delete int id, String savePath String 根据 ID删除题目,返回执行结果信息 save String title, String tid, File[] upload, String[] uploadFileName, String savePath String 教师添加毕业设计题目 返回结果信息 remove int fileid, String attach, String savePath String 删除参考资料 返回结果信息 cancel final int stid String 取消选题 changeFinalTitle int stid, String ft Void 学生更改最终题目 choose final String stuID, final String topicID String 学生选题 返回结果信息 append int id, String tid File[] upload, String[] uploadFileName, String savePath String 添加参考资料 返回结果信息 ② 参数设置 本系统使用 XML文件存储系统的运行参数。 为减少服务器的开销,当初始运行系统时,我们通过公共类读取文件中的参数。 并且公共类采用单例模式,无需每次调用都要创建新的对象。 该类主要方法如表 所述。 表 CommonInfo 类主要方法 方法名 参数 返回值 功能描述 getXXX 无 String/int 获取参数 setXXX String/int Void 设置参数值 update 无 无 将参数写入文件 init 无 无 初始化类时读取文件内参数 getInstance 无 CommonInfo 获取 CommonInfo 类实例 ③ 用户登录及管理 系统在登录时,通过 UserAction 获取用户的登陆请求,获得请求中的用户名和密码,将用户名和密码传入 UserService 中进行正确性验证,验证通过后,将前台所需要的数据传输到前台,为了系统安全性,在登陆请求传输时,我们对密码进行了 MD5 加密,以防止通过截取数据包的方式获取用户名和密码。 登陆之后,用户可以修改个人的一些非关键信息,如 地址,同时,用户可重置密码,重置密码的操作,也将由 UserAction操作。 ④ 权限控制 为防止有恶意用户进行不当操作,系统加入了权限控制。 主要通过自定义的拦截器 SecurityAdmin 完成。 在操作之前判断用户是否有足够的权限可以执行对应的action。 该类放在。 通过注解的方式我们进行权限控制。 当执行方法时,拦截器会获取 action类中相关方法的注解,由此可以判断当前用户是否有权限执行该方法。 如果有则执行该 方法,否则在后台添加错误信息传递到前台提醒用户登录。 SecurityAdmin工作流程如图 所示。 图 SecutrityAdmin工作流程 数据库设计 数据库在信息管理系统中,处于中心位置,用户可操作的所有信息都存储在数据库中。 设计优良的数据库对于系统的运行效率有着极大的提高。 本节对数据库系统和表结构的设计进行了讲解。 (1) 数据库系统 MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle公司。 Mysql是最流行的关系型数据库管理系统,在 WEB应用方面 MySQL是最好的 RDBMS(Relational Database Management System:关系数据库管理系统 )应用软件之一 .它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。 (2) 数据库表设计 ① 学生和教师的信息 表 Student 表结构 列名 类型 长度 约束 备注 Id Varchar 13 主键 学号 Grade Int 11 非空 年级,如 2020 : U se rS t ru t s 2 A ct i o nS e cu ri t yI n t e rc e p t o r1 : re q u e st () 1 . 1 : i n t e rc e p t ()1 . 1 . 1 : i n vo ke () Name Varchar 10 学生姓名 Sex Varchar 1 男,女 MajorID Int 11 外键 () 专业号 ClassID Varchar 20 外键 () 班级号 Email Varchar 30 Phone Varchar 20 MinorID Int 11 外键 () 表 Teacher 表结构 列名 类型 长度 约束 备注 Id Int 11 主键 教师号 Name Varchar 10 教师姓名 Sex Varchar 1 男,女 MajorID Int 11 外键 () 专业号 Desc_ Varchar 202000 Email Varchar 30 Phone Varchar 20 学生表( Student)用于存储学生的学号、年级、姓名、性别、专业代码、班级代码、邮箱地址、电话号码等相关身份信息,表结构参见表。 外键专业号和班级号则分别对应专业表 (Major)和班级表 (Class)。 教师表( Teacher)用于存储出题教师的号码、姓名、性别等身份信息,表结构参见表。 专业号 (majorID)通过外键参照专业表( Major)。 ③ 用户信息存储 用户表主要包括用户 Id、用户名称、密码、类型、最后登录时间等字段。 通过用户类型 (Type)来划分学生和老师。 表结构参见表。 角色表存储系统内可用的角色,主要包括角色 ID,角色名等字段,目前有学生、教师、管理员等角色,角色的划分以角色等级 level字段区分。 表结构参见表。 用户 角色表存储了用户 id 和角色 id 字段。 表结构参见表。 用于在登陆时获取登陆用户的权限信息,前台以此判断需要展现的内容。 表 User 表结构 列名 类型 长度 约束 备注 Userid Varchar 20 主键 用户 ID Username Varchar 20 非空 用户名字 Password Varchar 32 非空 密码 Type Varchar 20 非空 类型 _grant Bit 1 非空 是否能授权 Enable Bit 1 非空 是否可用 lastLoginTime Datetime 0 最后登录时间 lastLoginAddress Varchar 30 最后登陆 IP 地址 lastLogoutTime Datetime 0 最后登出时间 表 role 表结构 列名 类型 长度 约束 备注 Id Int 11 主键 自增主键 Rolename Varchar 20 非空 角色名称 _desc Varchar 50 角色描述 Level Int 2 非空 角色级别 表 Userrole 表结构 列名 类型 长度 约束 备注 Id Int 11 主键 Userid Varchar 20 外键 () 用户 ID Roleid Int 11 外键 () ④ 毕业设计题目及论文选题 题目表( Topic)用于存储教师提供的所有可选题目。 表结构参见表。 题目表中字段包括:论文题目,出题教师 ID,论文对应届数,是否被选以及参考资料 对应的文件组。 论文题目被学生选中后需要更新该表的 Selected 字段。 选题表( SelectedTopic)用于存储学生已选的题目的信息,主要字段包括:学生学号,题目的 ID,出题教师 ID,选题学生届数,学生最终确定的题目和答辩小组评分和教师评分。 选题表结构见表。 表 Topic。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。