基于java的大学生社团管理系统设计(含源文件)

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye

摘要
    随着科学技术的不断发展,人们所需管理的信息逐渐变多,使快速并准确地在信息库里搜索出自己所需的信息成为了一件难事。因此,为了让大家更好地管理自己的手中的信息,本文设计出一个基于B/S模式的南昌工程学院社联社团管理系统以方便南昌工程学院社团联合会的人员更好地管理他们手中的信息。该系统是在MyEclipse8.5集成开发工具和Apache的tomcat服务器环境下,结合JSP、JDBC、struts2和jQuery框架等技术完成的。其数据库系统和主要开发语言用的分别采用MySQL和Java。其主要模块有:会员登录、会员账号管理、社团等模块,具体实现了:会员注册,会员权限管理,社团物品管理、活动管理、经费管理等功能。

关键词:B/S模式  信息管理  数据库  服务器


Abstract
    With the continuous development of science and technology, people gradually change the information needed to manage multiple, so quickly and accurately search the information they needed from the information repository to become difficult.Therefore, in order to allow everyone to better manage their information in the hands, the paper design Nanchang Institute of Technology Associations management system based on B / S mode to facilitate personnel Nanchang Institute of Technology Associations to better manage their information in the hands of.The system is under MyEclipse8.5 integrated development tools and Apache tomcat server environment, combined with JSP, JDBC, struts2 and jQuery framework and other technical to complete. Its main development language and database systems were used by the MySQL and Java. The main modules are: Login, account management, associations and other modules, the concrete realization: the membership registration, membership management, association goods management, activity management, fund management and so on.

Key Words:B / S mode; information management; database;server


目录
摘要    I
Abstract    II
第一章 绪论    1
1.1 课题背景及目标    1
1.2 课题开发语言和环境的选择    2
1.3 课题开发架构的选择    2
1.4 课题主要技术的介绍    3
第二章 系统的需求分析    5
2.1 可行性分析    5
2.1.1 经济可行性    5
2.1.2 技术可行性    5
2.1.3 法律可行性    5
2.2 功能需求分析    5
第三章 系统的整体设计    7
3.1系统模块设计    7
3.2 系统功能设计    7
3.2.1 注册模块    7
3.2.2 登录模块    8
3.2.3 角色管理模块    8
3.2.4 管理员模块    8
3.2.5 会员账号模块    8
3.2.6 个人信息维护模块    8
3.2.7 社团模块    9
3.2.8系统流程图    9
3.3 数据库的设计    10
3.3.1数据库的需求分析    10
3.3.2 各表的关系图    11
3.3.3 数据库的逻辑设计    12
第四章 系统功能实现    17
4.1注册模块    18
4.2 登陆模块    18
4.3 角色管理模块    19
4.3 管理员模块    20
4.4 会员账号模块    21
4.5 个人信息维护模块    21
4.6 社团模块    22
4.6.1社团活动子模块    22
4.6.2 社团物品子模块    22
4.6.3社团经费子模块    23
4.6.4社团管理子模块    24
第五章 系统调试与测试    25
5.1 测试环境    25
5.2 部分系统模块和子模块测试    25
5.2.1 注册模块测试    25
5.2.2 登录模块测试    27
5.2.3 会员账号模块测试    29
5.2.4社团活动子模块测试    32
结束语    33
参考文献    34
致谢    35
附录部分主要代码    36
1 web.xml中主要的代码    36
2struts.xml中主要代码    36
 

第一章 绪论
技术不断发展,科技不断的进步的今天,软硬件价格都不断下降,其推动了人们对电脑的使用,也推动着人们要求对自己手中数据的存储要求,目前大部分公司企业都有自己的信息库,有些是以档案的形式保存,有些是请人开发出自己的一套系统来管理自己的信息,对于稍微大一点的公司来说,往往会选择后一种。
1.1 课题背景及目标
这些年来,南昌工程学院社团不断地成熟,各社团规模也不断地扩大,南昌工程学院社团联合会(社联)面对的是大量社团和会员信息存储和管理的问题,例如社团活动的更新、社团物品的管理、社团经费的管理以及社团会员信息的管理等等,对于这些信息如何存放,应该存放在那里,对于社联来说显得尤为的重要。
以往社联人对于数据的存储大部分都是以纸质稿的形式或者电子稿的形式来存储的,然而保存的信息和数据随着时间的推移变得越来越多,当要寻找自己想要的数据的时候,他们只能把以前存档的档案拿出来,一个一个的排查和统计出自己想要的信息,面对着一叠又一叠的数据或者一个又一个的文档,只有头痛的份了,假如今天领导要求社联的相关工作人员统计到目前为止一共拥有多少个会员,工作人员可能就要打开每一年的资料,从中找出相关的数据进行统计,稍有疏忽,可能就会因为漏了某个数据或者某些文档内容不全,而导致统计数据的不准确,即使统计的数据都准确,对于领导来说这是一个多么简简单单的需求,然而我们的工作人员来说可能就要花费大量的时间和汗水来完成这个任务,面对这些问题,开发一个南昌工程学院(南工)社联社团管理系统也是非常有必要的,我们把每一年的相关社团和会员的数据录入系统中,当我们要获得数据的时候我们可能就仅仅需要点击一个按钮即可完成,这样不仅提高了工作人员的效率,而且提高了社联人的工作兴趣,让社联人有更多的时间关注更重要的事情。
南工社联社团管理系统是信息管理与现代化办公设备的结合的产物,是可以让社联对社团管理时,减少年复一年的重复输入、计算、统计等工作,让这些繁琐的工作交给计算机,来减少工作人员的工作量和出错的可能性,让存储的数据在需要的时候能够及时获得、修改、删除,并且对时间、地点、以及工作人员不需要太多的硬性要求,社联人手中只需要一台能上网的计算机和一个Web浏览器客户端即可,然而对于这些硬性的要求是很容易满足,从而更好、更方便的实现社团的管理。

1.2 课题开发语言和环境的选择
(1)Java语言
    Java语言是一种完全面向对象的语言,有良好的健壮性和安全性,更重要的是它的平台无关性,但是Java虚拟机不是跨平台的,开发者可以根据个人电脑上安装的操作系统安装相对应的虚拟机即可。选择这种语言还有一个重要的原因是Java语言有很多的开源组织做坚实的后盾,他们开发的很多源代码都对外免费公布,在开发的时候,我们只要知道它的接口是什么即可,其未来发展前景非常乐观,也大大的降低了开发周期和开发成本。
(2)myeclipse集成开发工具
    Myeclipse是一种广受Java编程爱好者喜爱的集成开发工具,其是eclipse开发工具中包含的一个非常好的插件,在myeclipse环境中支持编码、调试、测试、以及三大框架的整合(struts spring hibernate 简称SSH)甚至支持web发布功能和数据库的编码,其功能非常强大,也非常好用。
(3)MySQL数据库
    对web的开发应用方面来讲,MySQL数据库是众多数据库系统中一个非常好的关系数据库管理系统,使用起来非常简单,配合navicat使用效果更佳,而且源代码又是开放的,体积又非常的小、速度又快、安装的过程特别简单等特点,是小型公司和企业的挚爱。
(4)tomcat服务器
    Tomcat服务器是一个开源的、免费的轻量级应用服务器,占用系统资源比较小,扩展性能也非常好,有sun参与规范,更有Apache提供强力的技术支持,在中、小型系统或者并发量不是特别多的系统中应用很广,对于我这个Java初学者来说是一个非常好也是非常明智的选择。

1.3 课题开发架构的选择
    学计算机相关专业的或者是稍微懂点计算机技术的朋友都知道系统的架构大致可以分为二种:一种是基于C/S模式的架构,也就是我们常提到的客户机/服务器(client/server)模式;另一种是基于B/S模式下的架构,也就是目前常见的浏览器/服务器(browser/server)模式。南工社联社团管理系统采用的是B/S模式架构,对于这种架构有如下原因:

扫描二维码关注公众号,回复: 12680026 查看本文章

(1)    开发成本的角度考虑:
如果系统采用的C/S模式进行开发,虽然提高了系统的安全性,但是需要编程人员去编写服务器端程序和客户端程序,并且还要为此系统编写对应的传输协议,这样对编程人员的整体技能要求比较高,而且加大本系统开发周期,相应的提高了开发本系统的成本。然后采用B/S模式进行开发,就避免了这个问题,编程人员只需要关注服务器程序的开发,采用浏览器作为客户端即可。
(2)    用户的角度考虑
对于用户来说,每个人的电脑上都至少有一个浏览器,用户根本不需要为了使用本系统去安装对应的客户端,节约了用户的系统内存,也减少了下载客户端的麻烦,当系统更新的时候,用户不必更新客户端,节约了用户的时间,也增加了用户的体验感。
(3)    长远发展的角度考虑
本系统采用B/S模式进行开发,方便以后对系统的升级和维护,个人也一直认为,C/S模式已经慢慢向B/S模式转型,在未来的应用程序中将大量采用B/S模式进行开发。

1.4 课题主要技术的介绍
(1)Struts2简介:
    Struts2是一种实现了MVC(MODELVIEWCONTROLLER)的轻量级框架,对于系统来说,其不仅满足了系统的稳定性和扩展性要求,对于编程爱好者来讲,Struts2框架式是非常容易学,而且很好用的。它的历史方面,Struts2的前身是WebWork,如果Struts2比喻是一个人的话,那么Struts2的母亲是WebWork,而他的父亲是Struts1,因为Struts2是在先前的Struts1基础上融入了WebWork先进的设计理念,并在WebWork的核心技术上进行扩展的,它弥补了Struts1的不足,可以说是取WebWork的精华,去Struts1的糟粕吧。
(2)JSP简介
    JSP是服务器端的一种网页技术,是以前的SUN公司为服务器端动态网页技术制定的一种规范,它是java服务器页面的英文缩写,编写的JSP文件是以“.jsp”结尾,在JSP文件中,我们可以写Java代码片段,可以写Java表达式,也可以写Java声明,甚至能够直接使用request、response、session、application等九个隐含对象
(3)JavaScript(JS)
    JS是基于对象和事件驱动的,并且是相对较安全的一种客户端脚本编程语言,在本系统中本人大量使用JS进行前端页面校验,比如判断用户输入的用户名是否为空,输入两次的密码是否一致,输入的是否是正确Email地址,用户输入社团活动名称是否已经超过了两百个字符等输入框都是采用JavaScript进行校验的。JavaScript还可以制作出一些特别的动态效果,比如在本系统中,当用户在第一个下拉框中选择了信息工程学院,那么用户就可以选择在这个学院中所有的专业。而且在本系统大量使用的jquery框架和Ajax技术,其底层都是JavaScript代码,只是第三方为开发方便对其进行的封装。

 
第二章 系统的需求分析
2.1 可行性分析
2.1.1 经济可行性
在软硬件高速发展的今天,Internet技术也在飞速发展,网络已经大量普及,对于当代的大学生来说,电脑人手一台已不是什么不可能的事了,本系统使用的对象完全不需要额外的开销。而且本系统的开发都是从采用节约成本的角度考虑,使用的Java语言是开源的,使用myeclipse集成开发工具也可以是绿化版,使用的MySQL数据库也可以是免费的,使用的Apache的tomcat服务器也是免费的,这样本系统的经济可行性是没有问题的。
2.1.2 技术可行性
    通过这个信息系统采用的是struts2框架,是市场上流行的一大框架,其健壮很好,使用也比较简单,使用的jsp、js等技术都是编程人员基本掌握的主要技术,如果在技术实现时发现自己的能力有限,我们可以通过众多的开源社区和Java爱好者中寻找帮助,所以对系统的实现,技术方面是完全可行的。
2.1.3 法律可行性
    此系统完全由本人单独开发,在法律上是没有的任何争议,在系统使用的框架、技术、和插件都是免费的,所以在法律的角度考虑是没有问题的。

2.2 功能需求分析
    根据南昌工程学院社团联合会目前的结构和现状,南工社联社团管理系统需要完成的基本任务如下:
(1)    用户可以在登录系统前,进行注册成为会员,登录此系统
(2)    用户填写基本信息中,必须填写的内容有学号、用户名、密码、确认密码、真实姓名、电话,可选填写的内容有性别、个人相片、身份证号码、生日、QQ码、Email、家庭地址、寝室地址、所在学院、所在专业、兴趣、备注信息等字段,并且生日是填写身份证号后自动填写的。
(3)    用户登录系统后系统将根据用户的角色来识别用户有哪些权限
(4)    普通用户登录系统之后只能查看自己的个人的信息,并限定报社团的个数
(5)    管理员身份登录系统之后,管理员可以所有的模块进行管理
(6)    进入会员账号模块后,可以通过学院、专业、用户名、状态进行筛选;点击用户名之后可以查看用户的所有信息;可以设置某个用户的状态;可以修改用户的部分信息;可以添加、删除用户。
(7)    选择社团活动,可以通过社团名称、活动名称、活动状态模糊查询出所有符合条件的活动信息;点击活动名称可以查看活动的基本信息;可以设置某个活动的状态;可以修改活动的某些信息;可以添加、删除某个活动。
(8)    选择社团物品,可以通过社团名称、物品名称、状态进行搜索所有符合条件的相关信息;当物品已还时只显示查看物品的详情按钮,当物品未还时显示物品的还物单和查看详情按钮;点击还物单时可以跳到还物单页面填写相关信息;点击查看详情可以跳到另一个页面查看物品的详细信息;点击添加物品可以进行物品的添加;点击查看物品按钮可以进入社团物品的子页面,选择物品名称、物品的状态可以筛选出符合条件的相关信息。
(9)    选择社团经费,可以通过社团名称查看符合条件的所有申请记录;可以申请经费。
(10)    选择社团管理,可以查询出所有的社团信息;可以点击社团名称查看社团的基本信息;可以通过社团名称和状态可以查询出符合要求的所有社团信息;可以设置社团的状态;可以修改社团的部分信息;可以添加、删除某个社团。
(11)    选择角色管理,可以查看所有的角色信息,可以修改角色的部分信息;可以设置角色的状态;可以添加、删除某个角色。
(12)    选择管理员模块,您可以查看所有的系统用户的角色,也可以对用户的角色进行修改;也可以给用户进行角色添加和删除。
(13)    点击退出可以退出系统,回到登录页面。

 
第三章 系统的整体设计
3.1系统模块设计
根据系统的功能需求,本系统模块大致可以分为登录、注册、系统主页面、角色管理、管理员、会员账号、个人基本信息、社团模块,以及社团模块中有社团活动子模块、社团物品子模块、社团经费子模块、社团管理子模块。其详细的系统模块设计如图3.1所示。

 
图3.1 系统模块设计图

3.2 系统功能设计
3.2.1 注册模块
    当用户填写完必填项(输入框后面有“*”为必填项)即可注册,但是需要填写符合要求的信息,例如学号不能为空,长度不能超过10个字符;用户名不能为空,长度不能超过100,不能为中文,当离开输入框时还会校验用户名是否存在;两次输入的密码是否一致等等,如果用户想填写所有的信息,可点击可选项按钮,进行填写,但是填写的必须符合要求才能进行注册,注册成功将调到用户的登入页面。
3.2.2 登录模块
    当用户输入用户名和密码后,要求用户输入验证码,点击登录后系统会去users表(用户表)中去查该用户是否已经注册,输入的密码是否正确,并校验验证码和session中保存的数据是否一致。注意的是用户在输入框中输入数据时前后有无空格并不影响,且用户看不清验证码时,用户可以点击图片进行更换,验证码的大小写忽略。
3.2.3 角色管理模块
    当用户点击角色管理模块之后,判断用户是否有该权限,如果没有权限则提示用户没有该模块的访问权限。如果拥有此模块的权限将进入此模块,显示所有的角色的概要信息;可以通过角色名和状态信息查询符合要求的所有角色;显示某角色已经暂停使用,可以点击启动按钮启动该角色;显示某角色已启动,可以点击暂停按钮暂停该角色;可以点击删除按钮删除某个角色;可以点击增加进行角色的添加,输入符合格式的数据后进行添加;点击修改后,可以修改角色的某些信息;点击角色名可以查看该角色的详细信息,但不能修改信息。
3.2.4 管理员模块
当本系统用户在进入管理员模块以后,也会去进行权限判断。进入模块之后显示所有用的角色概要信息,点击用户名可以查看该用户名拥有的角色信息,但不能修改;当用户的角色显示启动状态,可以点击暂停按钮对该用户的角色进行暂停;当用户的角色显示暂停状态,可以点击启动按钮对该用户的角色进行启动;当点击修改按钮后可以对该用户的角色信息进行更改;当点击删除按钮后可以删除相对应的用户角色信息;当点击添加按钮后可以对其他用户进行角色分配。
3.2.5 会员账号模块
当用户点击会员账号模块之后,也会进行权限的判断。进入模块之后显示所有的会员账号的概要信息;可以通过学院、专业、用户名、状态查询符合条件的所有用户信息;点击用户名可以查看该用户名的所有基本信息,但是不能修改;当会员用户的状态显示为暂停状态时,可以点击开通按钮对该用户进行开通;当会员用户的状态显示为开通状态,可以点击暂停按钮对该用户进行暂停,暂停后用户不能使用此系统;点击修改按钮可以对用户的部分基本进行修改;点击删除按钮可以删除对应的用户;点击添加按钮可以添加会员。
3.2.6 个人信息维护模块
当登录的系统用户点击个人基本信息维护模块后,可以查看自己的基本个人信息,点击密码修改按钮后跳到修改密码页面修改自己的登录密码;点击参加社团后可以选择参加社团。
3.2.7 社团模块
3.2.7.1社团活动子模块
选择社团活动模块后,也会进行权限的判断。进入社团活动页面,可以通过社团名称,活动名称,状态搜索符合条件的所有活动信息;点击活动名称可以查看该活动的所有信息;可以根据活动的状态启动或暂停活动;可以点击修改按钮修改活动信息;可以点击删除按钮删除活动;可以点击添加按钮添加活动。
3.2.7.2 社团物品子模块
选择社团物品模块后,也会进行权限的判断。进入社团活动页面,可以通过社团名称,物品名称,归还状态搜索符合条件的所有物品信息;当归还状态显示已还,只可以点击查看详情按钮查看物品的详细信息;当归还状态显示未还,不仅可以查看物品的详细信息,而且可以点击还物单进行物品的归还;可以点击添加物品按钮进行物品的添加;可以点击查看物品按钮进入所有物品的详细页面,当物品时可用状态是除了可以设置物品的状态、修改物品信息、丢弃物品之外,可以填写借物单。
3.2.7.3 社团经费子模块
选择社团经费模块后,也会进行权限的判断。进入社团经费页面之后,可以通过社团名称查看符合条件的申请记录,可以点击申请经费单进行申请。
3.2.7.4 社团管理子模块
选择社团管理模块后,也会进行权限的判断。进入社团管理页面之后,显示所有的社团信息;可以通过社团名称和社团状态搜索出符合要求的社团信息;可以点击社团名称查看社团的详细信息,但不能修改;当社团的状态是启动状态时,可以暂停该社团;当社团的状态是暂停状态时可以开通此社团;点击修改按钮可以修改对应的社团信息;点击删除按钮可以删除该社团;可以点击添加按钮进行社团的添加。
3.2.8系统流程图
    系统流程图如图3.2所示。

 
图3.2 系统流程图

3.3 数据库的设计
3.3.1数据库的需求分析
根据系统的需求分析可以总结出有如下表和表字段。
(1)    会员表(users):会员的所有信息都保存在此表,其字段包含有用户的id编号、学号、用户名、密码、真实姓名、性别、头像、身份证、出生日期、QQ号、联系方式、EMAIL、家庭地址、寝室地址、所在的学院、所在的专业、兴趣和爱好、备注信息、创建时间、会员的状态等等。
(2)    社团表(league):社团的所有信息都保存在此表,其字段有社团id、社团名字、概要、创建日期、修改时间、创建人、状态等等。
(3)    社团活动表(activity):存放所有的活动信息,关联到社团表的id,其字段有活动id、活动名称、创建人、内容、创建时间、开启时间、结束时间、文档的最后修改时间、状态、对应的社团id等等。
(4)    活动的物品表(goods):存放所有的物品信息,其字段有物品id、物品名称、总数量、剩余数量、添加物品的时间、最后修改时间、状态等等。
(5)    社团物品表(league_goods):因为一个社团可以借多个物品,一个物品可以被多个社团借,它们是多对多的关系,所以需要一个中间表,其字段有社团物品id、社团id、物品id、借出数量、归还数量、借出时间、归还时间、借物人、归还物品人、借出登记人、归还登记人、归还状态等等。
(6)    经费表(fund):存放记录添加经费、减少经费的记录,其字段有经费id、添加或减少经费金额、添加或减少经费人、添加或减少经费时间、剩余经费。
(7)    社团经费表(league_fund):存放社团的申请记录,其字段有id、申请理由、申请人、申请金额、批准人、申请时间、批准时间、申请社团id等等。
(8)    角色表(role):对角色信息进行存放,表中包含的字段有角色id、角色名、角色描述、角色状态等等。
(9)    用户角色表(user_role):对用户的角色信息进行存放,由于一个本系统用户可以对应多个系统角色,一个角色又可以让多个用户使用,它们之间存在多对多关系,所以这个用户角色表是一个中间表,字段有用户角色id、用户id和角色id。
3.3.2 各表的关系图
各表的关系图如图3.3所示:
 
图3.3各表的关系图

3.3.3 数据库的逻辑设计
    下面介绍各表的详细介绍:
(1)    会员表(users)总共有20个字段,如表3-1所示。

表3-1 用户表
字段名称    字段类型    长度    是否为空    字段的描述
id    Int    11    否    用户id(主键)
Number    Char    10    否    用户的学号
Username    Varchar    50    否    用户名
Password    Varchar    50    否    用户的密码
Realname    Varchar    50    否    用户的真实姓名
Gender    Char    1    是    用户的性别
Photo    Varchar    200    是    头像,存放用户头像路径
Idcard    Char    18    是    用户的身份证号码
Birthday    Char    10    是    出生日期(由身份证得来)
QQ    Varchar    15    是    用户的QQ号码
Telephone    Char    11    否    用户的电话号码
Email    Varchar    50    是    用户的Email地址
Address    Varchar    100    是    用户的家庭地址
Dormitory    Varchar    30    是    用户的寝室地址
Academy    Varchar    30    是    用户所在学院
Special    Varchar    50    是    用户所在专业
Interest    Varchar    200    是    用户的兴趣和爱好
Remark    Varchar    200    是    用户的备注信息
Status    Char    3    否    用户的状态1开通 2暂停 0 删除
Create_date    Date    0    否    用户的创建时间

(2)    社团表(league)总共有7个字段,如表3-2所示。

表3-2 社团表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    10    否    社团id(主键)
Name    Varchar    200    否    社团的名字
Summary    Text    0    是    社团概要
Create_date    Date    0    是    社团的创建日期
Last_modify_date    Date    0    是    最后修改时间
Create_person    Varchar    50    是    社团创建人
Status    Char    3    是    状态0删除 1开通 2暂停

(3)    经费表(fund)共5个字段,如表3-3所示

表3-3 经费表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    50    否    经费id(主键)
Add_or_
Delete_fund    Double    50    否    添加或减少经费额
Add_or_
Delete_person    Varchar    50    否    添加或减少经费的人
Add_or_delete_
person    Datetime    0    否    添加或减少经费的时间
Remain_fund    Double    50    否    剩余经费


(4)    社团经费表(league_fund)共8个字段,如表3-4所示。

表3-4 社团经费表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    100    否    社团经费id(主键)
Reason    Text    0    否    申请理由
Applicant    Varchar    50    否    申请人名字
Application_Money    Double    10    否    申请金额
Approve_person    Varchar    50    否    批准人名字
Application_date    Datetime    0    否    申请时间
Approve_date    Datetime    0    否    批准时间
League_id    Int    10    否    申请部门id

(5)    物品表(goods)共7个字段,如表3-5所示。

表3-5 物品表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    100    否    物品id(主键)
Name    Varchar    200    否    物品名称
Quantity    Int    100    否    物品总数量
Remain_quantity    Int    100    否    剩余数量
Create_date    Datetime    0    否    创建时间
Last_modify_Date    Datetime    0    否    最后修改时间
Status    Char    3    否    状态0丢弃 1可用 2不可用

(6)    社团物品表(league_goods)共12个字段,如表3-6所示。

表3-6 社团物品表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    10    否    社团物品id(主键)
League_id    Int    10    否    物品借出的社团id
Goods_id    Int    100    否    物品id
Quantity    Int    100    是    借出物品的数量
Return_quantity    Int    100    是    归还数量
Lead_date    Datetime    0    是    物品借出时间
Return_date    Datetime    0    是    物品归还时间
Lead_person    Varchar    50    是    借物品的人
Return_person    Varchar    50    是    归还物品的人
Lead_enrol_person    Varchar    50    是    借出登记人
Return_enrol_person    Varchar    50    是    归还登记人
status    char    3    否    状态0全部1归还2未还

(7)    活动表(activity)共10个字段,如表3-7所示。

表3-7 活动表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    100    否    活动id(主键)
Name    Varchar    200    否    活动名称
Create_activity_person    Varchar    50    否    活动的创建人
Content    Text    0    是    活动内容
Create_date    Date    0    是    创建时间
Start_date    Varchar    30    是    活动的开始时间
Close_date    Varchar    30    是    活动的结束时间
Last_modify_date    Date    0    是    文档最后修改时间
Status    Char    3    否    活动的状态
League_id    Int    10    否    对应社团的id

(8)    角色表(role)共4个字段,如表3-8所示。

表3-8 角色表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    10    否    角色id(主键)
Name    Varchar    50    否    角色名
Description    Varchar    200    是    角色描述
Status    Varchar    3    否    状态0:删除1:开启2:暂停

(9)    用户角色表(user_role)总共3个字段,如表3-9所示。

表3-9 用户角色表
字段名称    字段类型    长度    是否为空    字段的描述
Id    Int    10    否    用户角色id(主键)
User_id    Int    50    否    用户id
Role_id    Varchar    100    否    角色id(分号分开)

 
第四章 系统功能实现
    系统的总体结构如图4-1、图4-2所示。

  
图4-1所示                    图4-2所示

(1)    *.xml是一个配置文件,可以根据用户的触发的.action找到对应的处理action类进行处理
(2)    js文件夹是存放js文件,其中FOAssociation.js是自己写的JS校验代码,jquery1.4.3.js、prototype1.6.0.3.js是第三方封装的JS代码。
(3)    upload/photo文件夹是保存用户上传的头像,每个注册用户只能上传一张图片,只能上传*.jpg、*.gif、*.png格式的文件。
(4)    jsp文件夹是存放各个模块的jsp文件。
(5)    lib文件夹是存放所有的jar包

4.1注册模块
    用户进入登录用户页面时,如果还没有注册用户是无法登录系统的,需要点击注册进入注册页面,其结构如图4-3所示。

 
图4-3注册模块结构图

(1)    regist.jsp
注册页面regist.jsp,让用户填写必填信息和其它基本信息,所有信息必须符合要求才能完成注册。
(2)    AddUserValidateAction.java
当用户输入用户名之后,会异步的触发一个请求,检查输入的用户名是否存在,AddUserValidateAction.java中调用userDao中的findUserByUsername(username)完成检查。
(3)    ToRegistAction.java
当用户正确填完基本信息之后,当用户点击注册就会通过配置文件找到ToRegistAction类进行图片的保存和用户信息的添加。

4.2 登陆模块
    用户进入登录页面,可以输入正确的用户名、密码、以及验证码完成登录,其结构如图4-4所示。

 
图4-4登录模块结构图

(1)    login.jsp
login.jsp是登入系统的一个入口页面
(2)    ImageUtil.java
是一个产生验证码图片的一个类,可以调用者可以调用得到一个验证码和验证码中对应的信息。
(3)    BaseAction.java
BaseAction类是CheckCodeAction、LoginAction、LoginInterceptor的一个基类里面放的是一个Map对象,用户保存用户的登录信息和验证码信息。
(4)    CheckCodeAction.java
当用户进入登录页面后,浏览器会通过img标签中的url地址中的checkCodeAction.acton发送到系统中找到CheckCodeAction类,execute方法处理时会返回验证码信息,并保存验证码对应的数据到session中。
(5)    LoginAction.java
是用于判断输入的用户名、密码、验证码是否正确,正确将保存用户的信息到session中,并返回success根据struts.xml跳到主页面,否则返回fail跳到登录页面,并告诉用户那些输入有误。

4.3 角色管理模块
角色模块,主要用于角色的分配,大致结构如4-5所示。

 
图4-5角色管理模块结构图

(1)    role_list.jsp、role_add.jsp、role_modify.jsp等
分别是展现角色的信息、添加角色的页面、修改角色页面等
(2)    FindAllRoleAction.java、ModifyRoleAction.java、AddRoleAction.java等
分别用于调用查找所有的角色信息、修改某个角色的信息、添加某个角色方法的action等。

4.3 管理员模块
管理员模块,主要是用户分配角色功能,其大致结构如图4-6所示。

 
图 4-6 管理员模块

(1)    userRole_list.jsp、userRole_add.jsp、userRole_modify.jsp等
分别是管理员查看所有的用户角色页面、添加用户角色页面、修改用户角色页面等
(2)    FindAllUserRoleAction.java、ModifyUserRoleAction.java、AddUserRoleAction.java等分别是调用查找所有用户角色信息、修改用户角色、添加用户角色方法的action。

4.4 会员账号模块
    会员账号模块其结构图与上面的大致相同,会员账号和下面其它模块的结构就不画出来,详细介绍实现的一个大致流程:
点击会员账号将进入到user_list.jsp会员主页面如图4-7所示,展现所有会员的信息,选择学院、专业、用户名、状态后点击搜索按钮将可以查看到所有的符合条件的信息;点击开通按钮可以开通用户,开通后会提示用户开通成功;点击暂停按钮可以暂停用户,暂停成功之后提示用户暂停成功;点击修改后将调到user_modify.jsp页面,填写了相应的修改信息之后,点击修改后将跳到原来的页面user_list.jsp页面;点击删除按钮可以将该记录删除;点击增加按钮后将调到user_add.jsp页面,填写相应信息之后将跳到会员主页面。

 
图4-7 会员的主页面

4.5 个人信息维护模块
    点击个人信息维护后将显示个人信息,还可以限定报几个社团。
    
4.6 社团模块
4.6.1社团活动子模块
    点击社团活动后进入activity_list.jsp社团活动主页面,如图4-8所示。选择社团名称和状态、输入活动名称后点击搜索按钮可以查出符合条件的所有活动信息;点击开通按钮后可以开通活动;点击暂停按钮后可以暂停活动;点击修改按钮之后将会跳到activity_modify.jsp页面,点击修改后将回到活动主页面;点击活动名称后将跳到activity_detail.jsp页面查看所有的活动信息;点击添加按钮后跳到activity_add.jsp页面,填写完对应的相关信息后点击添加即可完成活动的添加。

 
图4-8社团活动主页面

4.6.2 社团物品子模块
    点击社团物品后进入goods_list.jsp社团物品主页面,如图4-9所示。选择社团名称、物品名称、状态后点击搜索可以查出所有符合条件的相关信息。点击查看详情按钮跳到leagueGoods_detail.jsp页面查看物品的详细信息,点击还物单按钮可以跳到returnGoods_add.jsp归还物品的页面,填写了相关信息将跳到社团物品的主页面。点击查看物品按钮后跳到goods_detail.jsp物品详细页面如图4-10所示,选择物品名称和状态后点击搜索可以查出符合条件的物品信息,点击不可用按钮可以将物品设置为不可用;点击可用按钮可以将物品设置为可用;点击修改按钮之后跳到goods_modify.jsp页面,填写相关信息,点击修改按钮后将跳到goods_detail.jsp页面;点击丢弃按钮可以丢弃此物品;点击还物单后可以跳到leadGoods_add.jsp借物单填写借物信息。

 
图4-9社团物品主页面

 
图4-10物品的详细主页面

4.6.3社团经费子模块
    点击社团经费后进入fund_list.jsp社团经费主页面。如图4-11所示。选择社团名称,或者申请人;点击搜索后可以查出相关信息;点击查看详情按钮之后可以查看该申请记录;点击申请经费按钮后会带上社团名称和申请人调到申请经费页面,填写完对应 的信息后可以点击保存进行经费的申请;点击添加经费按钮后跳到添加 经费页面进行经费的添加;点击查看经费页面后跳到经费详情页面,查看所有的添加删除经费记录,输入添加或申请经费人和选择状态可以查询出对应的记录。
 
图4-11社团经费的详细主页面

4.6.4社团管理子模块
    点击社团管理后进入league_list.jsp社团管理主页面,如图4-12所示。输入社团名称,选择状态后,点击搜索后可以查出相关信息,点击社团名称后跳到league_detail.jsp页面查看社团的详细信息;点击暂停后可以暂停社团;点击开通可以将社团开通;点击修改按钮,可以跳到league_modify.jsp页面,填写需要修改的信息后,点击修改按钮即可对信息进行修改;点击删除按钮可以将社团删除;点击增加按钮,可以跳到league_add.jsp页面,填写相关信息后点击添加即可完成新增。

 
图4-12社团管理主页面
 
第五章 系统调试与测试
5.1 测试环境
本系统的测试环境如下:
    操作系统:window8版本
    内存:4G
    CPU:AMDA10-5750M2.5GHz
    服务器:tomcat6.5
    数据库:MySQL5.6
    浏览器:火狐浏览器

5.2 部分系统模块和子模块测试
5.2.1 注册模块测试
    在用户初次使用登录系统时,需要进行用户注册,进入登录页面后点击注册链接后进入注册页面,如图5-1所示。输入一个系统已经存在的用户,看系统是否会提示用户已经存在;输入密码以及重复密码,检测系统是否提示用户两次密码输入不一致;真实姓名长度输入超过30个字符看系统是否提示用户输入的字符过长;输入一个非法的电话号码,看系统是否提示手机号码格式错误。测试结果如图5-2所示。

 
图5-1注册页面


 
图5-2注册页面测试结果

点击可选项后,出现页面如图5-3所示,当输入正确的身份证号后,看系统是否能自动计算生日;输入非法的qq号或qq号长度不符合,看系统是否提示qq号不正确;输入一个非法的Email地址看系统是否检测用户输入的是一个非法Email地址;当家庭地址和寝室地址输入过程看系统是否提示输入长度过长;选择一个学院后看是否能级联的在专业下拉框中显示该学院所有的专业。测试结果如图5-4所示

 
图5-3可选项

 
图5-4可选项测试结果

5.2.2 登录模块测试
    用户在进入系统之前需要进入登录页面如图5-5所示,随便输入一个用户进行登录,看系统是否提示用户不存在,提示结果如图5-6所示;输入一个系统已经存在的用户,在输入一个错误的密码后点击登录看系统是否会提示用户输入的密码不正确,提示结果如图5-7所示;用户名密码都输入正确的时候看系统是否会提示用户验证码输入不正确,提示结果如图5-8所示。

 
图5-5用户登录模块

 
图5-6提示用户名不存在

 
图5-7提示用户名密码不正确

 
图5-8提示输入验证码有误

5.2.3 会员账号模块测试
进入会员账号页面时,如图5-9所示

 
图5-9会员账号界面

选择信息工程学院和计算机科学与技术专业后点击搜索按钮后看是否能得到学院都为information(信息工程学院)计算机专业的会员,如图5-10所示

 
图5-10信息工程学院计算机科学与技术的所有会员

在前面的基础之上,再输入用户名为“j”,看系统是否能查出含有j的所有会员信息,如图5-11所示

 
图5-11信息工程学院计算机科学与技术用户名中含有j的所有会员

在前面的基础之上再选择以暂停看系统是否能查出所有为暂停态的所有会员如图5-12所示

 
图5-12所有暂停状态的会员

在前面的基础之上,点击开通按钮将用户名为aihj的用户开通,看该会员状态是否为开通态,也就是说图5-12上用户名为aihj的用户将移除,如图5-13所示

 
图5-13用户名开通后的结果

在前面的基础之上,点击修改按钮将用户的学号改成10个8,查看系统是否修改成功,如图5-14所示

 
图5-14 修改用户学号的结果

点击添加按钮,添加学号为10个9,用户名、密码、真实姓名都是tyro11,电话为18770074823,
如图5-15所示,查看系统是否添加会员成功,如图5-16所示

 
图5-15添加的信息

 
图5-16添加后的记录

点击用户名后如图5-17所示
 
图5-17 详细信息

5.2.4社团活动子模块测试
    社团活动的主页如图5-18所示

 
图5-18社团活动主页面

其他的模块测试结果跟会员账号模块测试结果大致一样,这里就不一一截图了。

 
结束语

    南昌工程学院社联管理系统从题目的构思,到数据库设计,到系统设计,再到毕业论文的编写均由本人独立完成,也是本人独立完成的第一个项目。
开发此系统借助了不少的开发工具,例如在JetBrainsWebStorm工具中完成了静态页面的编写,在myeclipse集成环境中完成了所有的java代码,数据的设计借助的是navicate工具,也借助了其他开源的第三方插件例如prototype-1.6.0.3.js、jquery-1.4.3.js、fckeditor。此系统,让我更加了解开发一个系统的流程,也培养了我一种独立思考的能力。在短短的几个月时间里,我发现了自己很多的不足,第一在技术方面学的不是很扎实,特别是css的布局还需要进一步的学习,第二动手能力还很弱,看视频教程看了不少,但是实际操作的还是很少,导致有些技术时间就了就忘记了,第三代码的检查和调试能力还有待提高,在myeclipse中的debug模式调试Java代码和浏览器自带的开发人员工具调试JavaScript都还不是很熟练。
由于是第一次独立开发,经验不足,只能严格按照MVC模式进行开发,本系统在开发架构选择上并未使用SSH(springstrutshibernate)进行开发,仅仅是选择了struts架构对系统进行第一次开发。设计时没有可参考的系统,可能在系统设计的不是很好,还有很多需要改进的地方,希望以后在时间允许的前提下进行第二次开发,结合SSH框架对系统进行改造,简练对数据库的操作和事务的控制,让一些繁琐的事情交给hibernate框架去做。在实现对文件的上传时,由于本系统使用文件上传功能不是很频繁,所以并没有抽取出来,不是很符合面向对象理念,在今后将会提炼出来,并丰富其功能,让其成为一个FileUtil类,只给外开放一些接口,供其它程序调用,增强程序的可重用性。


 
参考文献

[1]叶核亚.Java程序设计实用教程.北京:电子工业出版社,2010.2
[2]李兴华、王月清.java web开发实战经典基础篇,2009
[3]李兴华. Java开发实战经典[M].清华大学出版社,2009
[4]李刚.Java疯狂讲义.北京:电子工业出版社,2012.1
[5]李钟蔚、马文强、王殊宇.Java项目开发实例自学手册.北京:人民邮电出版社:2008.9
[6]张海潘.软件工程导论.北京:清华大学出版社,2008.2
[7]孙卫琴李洪成著 Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2006
[8]王珊,萨师煊.数据库系统概论.北京:高等教育出版社,2008
[9]Cay S. Horstmann,Gary Cornell著,程峰,黄岩波等译. Java核心技术卷Ⅰ基础知识第6版[M] .北京:机械工业出版社,2005

 
致谢

在接到选题通知之前,朱院长要求我们提前准备课题,那时自己刚好在学习Java语言,当时就在想毕业设计就用Java语言开发吧,然而要自己想一个题目,对于我们这种Java初学者又没有独立开发经验的人来说确实不是一件很容易的事情,但是自己又想给自己的大学生活和学习留下一个特别地又有意义的回忆,所以为了想出这样一个的题目,我整个礼拜一有时间就在想这件事,终于有一个晚上,半夜做梦的时候我想了一个题目,那就是现在的毕业设计课题,也许说出来不会有很多人相信,但是这确实是题目的由来。
    当把这个题目申请下来的时候,我确实很开心,因为那是我自己想出来的题目,在此非常感谢朱院长和指导老师李老师的认可。
    南工社团联合会是一个“特别能吃苦,特别能战斗”的团队,在这个团队里,因为志同道合或兴趣相投而聚集了来自四面八方的朋友。南工社联社团管理系统是本人根据在社联工作时的现状设计出来的,在此感谢社团联合会给我灵感,也感谢她丰富了我的大学生活和情感。
    本设计是在李璠老师精心的指导下完成的,从课题的确认到系统设计,再到系统的实现,都凝聚着李老师的辛勤和汗水,南工社联社团管理系统的设计和实现以及毕业论文的编写能够顺利的完成都与李老师工作认真的态度是分不开的,在此再次向李老师表示真诚的谢意。在系统的实现时,遇到一些技术问题,幸好有一帮好朋友和同事在旁边一直支持和帮助我,在此感谢那些帮助过我的朋友和同事,感谢你们的技术支持。
    最后衷心的感谢所有教过我的所有老师,感谢你们四年的教导,感谢母校提供良好的教学环境,也感谢身边的每个朋友和亲人。


 
附录部分主要代码
1 web.xml中主要的代码
<filter>
    <filter-name>FOAssociation</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>FOAssociation</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

2struts.xml中主要代码
由于代码过多占的篇幅比较多,在排版比较困难所以在此选择截图方式。如图9-1、图9-2、图9-3、图9-4、图9-5所示。

 
图9-1 
图9-2

 
图9-3

 
图9-4

 
图9-5
 

猜你喜欢

转载自blog.csdn.net/weixin_55459367/article/details/114149097