目 录
第一章 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究内容 2
第二章 开发环境与技术 3
2.1 Java语言 3
2.2 JDK简介 3
2.3 Eclipse开发工具 4
第三章 系统分析 5
3.1可行性分析 5
3.1.1运行可行性分析 5
3.1.2技术可行性分析 5
3.1.3经济可行性分析 5
3.2系统流程分析 6
3.3 系统性能分析 8
3.3.1系统的安全性 8
3.3.2系统易维护性 8
3.3.3系统可扩展性 8
3.4系统功能分析 9
第四章 系统设计 12
4.1界面设计原则 12
4.2功能模块设计 12
4.3数据库设计 15
4.3.1数据库E-R图 15
4.3.2 数据库表结构 18
第五章 系统实现 23
5.1 管理员功能实现 23
5.1.1 团长管理 23
5.1.2 学生管理 23
5.1.3 论坛管理 24
5.2 团长功能实现 24
5.2.1 社团管理 24
5.2.2 社团申请管理 25
5.2.3 社团活动管理 25
5.3 学生功能实现 26
5.3.1 社团信息 26
5.3.2 社团活动 26
5.3.3 在线论坛 27
第六章 系统测试 28
6.1 测试方案 28
6.2 系统测试用例 30
6.2.1 登录功能测试 30
6.2.2 注册功能测试 30
6.3 测试的结果 31
结 论 32
参考文献 33
致 谢 34
第1章 系统设计
不管是好用还是不好用的系统,在如今的互联网时代都会被广而告之,但是能留存下来的,必然是好用的,并且好看的系统,不好用并且不好看的系统用户会逐渐抛弃的。所以,开发的系统必须是有主题的,要打开系统就明白这个系统主要的作用和功能,所以设计这方面需要下苦功夫的。
4.1界面设计原则
一般都是图片,文字以及各种输入框和按钮等组成的界面,每个界面的内容都大不相同,如何设计成页面的统一,操作的统一,这是下面需要讨论的问题。
第一点:界面设计必须符合人体工程学。人体工程学是一门入微级别的学问,主要考虑人类在各种工作状态下如何提高生产效率。所以说,界面设计的首要目的,就是为了提升效率。
第二点:有效导航是必须的。导航的目的,就是帮助操作人员的记忆能力,提高操作效率而生的,所以导航一定要设置的符合模块的功能,让用户一看到导航就会知道是哪个模块,需要哪些操作,这些步骤是必不可少的,如果把所有功能放到一个页面呈现平面化布局,肯定不合适,所以合适的导航能够帮助工作。
第三点:界面设计的统一性。统一性不是说背景图片是同一个图片或者背景是同一个色系,而是说让操作系统统一。比如导航就统一用树状结构,有模块有层次,理解容易。多项搜索如果一行放不下,就收起,可以选择多项也可以模糊查询,这些都要符合人类正常认知才可以。
所以说,系统设计的核心就是界面设计,主要的业务处理逻辑只要能处理,需要下大力气的还是页面设计。
4.2功能模块设计
本小节运用功能结构图来描述管理员具备的详细的功能,对管理员的功能结构图绘制结果如图4.1所示。管理员管理论坛,管理团长以及学生,管理社团成员,社团活动,社团等信息。
图4.1 管理员功能结构图
本小节运用功能结构图来描述团长具备的详细的功能,对团长的功能结构图绘制结果如图4.2所示。团长管理社团,社团活动,审核社团申请以及社团活动申请信息,管理社团成员等。
图4.2 团长功能结构图
本小节运用功能结构图来描述学生具备的详细的功能,对学生的功能结构图绘制结果如图4.3所示。学生申请加入社团,申请参加社团活动,在论坛模块发帖,评论帖子等。
图4.3 学生功能结构图
4.3数据库设计
在系统后台选择数据库的时候,首先第一条就是要满足使用需要,只要满足使用需要,再对数据库的使用友好度和性能上进行分析。选择当前分布最广发的关系型数据库是完全能满足需要的,并且在数据的设计上也有完美的设计顺序,最重要的是符合人们的直观要求。
4.3.1数据库E-R图
下面主要是描述E-R图模型的。对于用户的需求,要具体化,比如有个角色需要有登录,那么最基本的设定必须有账号和密码,那么像姓名,性别其他的对象关系,其实是有从属关系的,通过这样具体化分析,可以得到数据的格式要求,并且能得到数据之间的直接关系。然后可以通过专业的Visio工具来进行E-R图的创建,遵守约定的E-R图表达方式,就可以对数据进行图标形式的描述,并且之间的关系更容易理解。
(1)图4.4即为学生这个实体所拥有的属性值。
图4.4 学生实体属性图
(5)图4.8即为上面介绍的实体中存在的联系。
图4.8 实体间关系E-R图
4.3.2 数据库表结构
在程序开发的过程中,系统设计里面包含有数据库的设计,一般都在功能设计的后面进行数据设计,为什么有这样的顺序呢?那是有原因的。数据库设计不能凭空想象,必须符合数据的定义,而数据只是在使用过程之中产生,其实并没有具体化的表现,所以要把数据进行结构的整理,字段的规划。比如用户账号可能是中文或者英文,以及数字形式存在,更或者可能包含一些符号,那么账号字段的设计就只能是文本形式存在,不能是数据形式或者是时间形式存在,以此类推,数据表结构的设计就是在对系统的具体实现数据进行描述规划的一种行为。所以在这个环节尤其要注意,否则可能使用过程中会发现很多不可预料的问题。
对本系统的数据库的要求就是,要严格遵循数据实现原则,符合数据定义范式。对每个表都要进行具体分析,并且表之间的关系更应该有逻辑性,如果违反前面的要求,那么数据很有可能出现问题,所以要把数据之间的关系用E-R图形式画出来,这样理解起来更直观,更不容易出错,效率也更高。
表4.1 论坛表
字段 注释 类型 空
id (主键) 主键 int(11) 否
forum_name 帖子标题 varchar(200) 是
xuesheng_id 学生 int(11) 是
tuanzhang_id 团长 int(11) 是
users_id 管理员 int(11) 是
forum_content 发布内容 text 是
super_ids 父id int(11) 是
forum_state_types 帖子状态 int(11) 是
insert_time 发帖时间 timestamp 是
update_time 修改时间 timestamp 是
create_time 创建时间 timestamp 是
表4.2 社团表
字段 注释 类型 空
id (主键) 主键 int(11) 否
tuanzhang_id 团长 int(11) 是
shetuan_name 社团名称 varchar(200) 是
shetuan_photo 社团照片 varchar(200) 是
shetuan_types 社团类型 int(11) 是
shetuan_renshu 社团人数 int(11) 是
shetuan_clicknum 点击次数 int(11) 是
shetuan_content 社团详情 text 是
shetuan_delete 逻辑删除 int(11) 是
create_time 创建时间 timestamp 是
表4.3 社团活动表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuan_id 团长 int(11) 是
shetuanhuodong_name 社团活动名称 varchar(200) 是
shetuanhuodong_photo 社团活动照片 varchar(200) 是
shetuanhuodong_types 社团活动类型 int(11) 是
shetuanhuodong_zuida 最大活动人数 int(11) 是
shetuanhuodong_content 社团活动介绍 text 是
shetuanhuodong_delete 逻辑删除 int(11) 是
create_time 创建时间 timestamp 是
表4.4 社团活动收藏表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuanhuodong_id 社团活动 int(11) 是
xuesheng_id 学生 int(11) 是
shetuanhuodong_collection_types 类型 int(11) 是
insert_time 收藏时间 timestamp 是
create_time 创建时间 timestamp 是
表4.5 社团活动留言表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuanhuodong_id 社团活动 int(11) 是
xuesheng_id 学生 int(11) 是
shetuanhuodong_liuyan_text 留言内容 text 是
insert_time 留言时间 timestamp 是
reply_text 回复内容 text 是
update_time 回复时间 timestamp 是
create_time 创建时间 timestamp 是
表4.6 社团活动申请表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuanhuodong_order_uuid_number 订单号 varchar(200) 是
shetuanhuodong_id 社团活动 int(11) 是
xuesheng_id 学生 int(11) 是
shetuanhuodong_order_yesno_types 审核状态 int(11) 是
shetuanhuodong_order_yesno_text 审核意见 text 是
insert_time 预约时间 timestamp 是
create_time 创建时间 timestamp 是
表4.7 社团成员表
字段 注释 类型 空
id (主键) 主键 int(11) 否
xuesheng_id 学生 int(11) 是
shetuan_id 社团 int(11) 是
insert_time 加入时间 timestamp 是
create_time 创建时间 timestamp 是
表4.8 社团收藏表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuan_id 社团 int(11) 是
xuesheng_id 学生 int(11) 是
shetuan_collection_types 类型 int(11) 是
insert_time 收藏时间 timestamp 是
create_time 创建时间 timestamp 是
表4.9 社团留言表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuan_id 社团 int(11) 是
xuesheng_id 学生 int(11) 是
shetuan_liuyan_text 留言内容 text 是
insert_time 留言时间 timestamp 是
reply_text 回复内容 text 是
update_time 回复时间 timestamp 是
create_time 创建时间 timestamp 是
表4.10 社团申请表
字段 注释 类型 空
id (主键) 主键 int(11) 否
shetuan_order_uuid_number 订单号 varchar(200) 是
shetuan_id 社团 int(11) 是
xuesheng_id 学生 int(11) 是
shetuan_order_yesno_types 审核状态 int(11) 是
shetuan_order_yesno_text 审核意见 text 是
insert_time 预约时间 timestamp 是
create_time 创建时间 timestamp 是
表4.11 团长表
字段 注释 类型 空
id (主键) 主键 int(11) 否
username 账户 varchar(200) 是
password 密码 varchar(200) 是
tuanzhang_name 团长姓名 varchar(200) 是
tuanzhang_phone 团长手机号 varchar(200) 是
tuanzhang_id_number 团长身份证号 varchar(200) 是
tuanzhang_photo 团长头像 varchar(200) 是
sex_types 性别 int(11) 是
tuanzhang_email 电子邮箱 varchar(200) 是
create_time 创建时间 timestamp 是
表4.12 管理员表
字段 注释 类型 空
id (主键) 主键 bigint(20) 否
username 用户名 varchar(100) 否
password 密码 varchar(100) 否
role 角色 varchar(100) 是
addtime 新增时间 timestamp 否
表4.13 学生表
字段 注释 类型 空
id (主键) 主键 int(11) 否
username 账户 varchar(200) 是
password 密码 varchar(200) 是
xuesheng_name 学生姓名 varchar(200) 是
xuesheng_phone 学生手机号 varchar(200) 是
xuesheng_id_number 学生身份证号 varchar(200) 是
xuesheng_photo 学生头像 varchar(200) 是
sex_types 性别 int(11) 是
xuesheng_email 电子邮箱 varchar(200) 是
create_time 创建时间 timestamp 是
第2章 系统实现
程序开发人员对功能具体实现后,都要描述自己编写的功能实现,一般都通过文字描述功能,实现用图片截图的形式出现,通过这样的设定,可以让更多得人明白系统的实现结果,达到更容易理解程序操作的目的。
5.1 管理员功能实现
5.1.1 团长管理
管理员点击导航栏的团长管理链接就进入团长管理界面。团长管理界面如图5.1所示。本功能允许管理员对团长的基本资料进行修改,添加,查询,删除。
图5.1 团长管理界面
5.2 团长功能实现
5.2.1 社团管理
团长在社团管理界面可以对社团的信息进行管理。社团管理界面如图5.4所示。团长需要添加社团,查询社团,修改社团等操作。
图5.4 社团管理界面
5.3 学生功能实现
5.3.1 社团信息
学生点击导航栏的社团信息链接就进入社团信息界面。社团信息界面如图5.7所示。本功能允许学生收藏社团,申请加入社团,发布社团的留言等。
图5.7 社团信息界面