1、1计算机学院实 训 报 告班 级 姓 名学 号指导老师 二一六年 七 月 八 日2实训进度及成绩评定课题名称: BBS论坛系统、设计进度及完成情况日 期 内 容2016.5.162016.5.22选题、需求分析,总体设计2016.5.232016.5.29搭建数据库,完成项目流程图2015.5.302016.6.5注册、登录、登录首页设计2016.6.62016.6.12注册提交验证、编辑个人信息、发表新话题2016.6.132016.6.19系统测试、报告整理、完成答辩2016.6.202016.6.26删除话题、编辑话题、管理员用户管理2016.6.272016.7.3删除用户、一并删除其
2、发表的帖子2016.7.42016.7.10帖子回复、注册上传头像、成绩评定设计成绩: 指导老师: 3目录第一章 系统概述 .41.1 课题的研究背景 .41.2 开发环境分析 .412.1 操作系统的选择 412.2 数据库的选择 512.3 开发语言的选择 51.3 JAVA语言 .5第二章 系统分析 .62.1 分析需求 .62.2 功能分析 .62.3 系统运行总体流程 .7第三章 系统设计与实现 .93.1数据库的设计 93.1.1 E-R 图 93.1.2 系统数据库表结构 .103.2 系统主界面 113.3普通用户 .113.4版主 .133.5 管理员 13第四章 调试过程中
3、的问题及系统测试情况 154.1 系统测试原理 154.2 系统测试方案 154.2.1 测试环境 .154.2.2 测试内容 .15第五章 总结 16参考文献 .174第一章 系统概述1.1 课 题 的 研 究 背 景近些年来,随着计算机的普及与发展,“Internet”一词已经让我们不再感到陌生,随着 E 时代的到来,新的理念和结构也在不断的形成和完善,计算机网络技术的发展对人类技术史的发展产生了不可磨灭的深远影响。计算机网络技术的发展推动了人类的科学技术的发展,同时给人们的学习,工作和生活带来了诸多的好处,特点主要体现在以下几个方面: 快捷性、自由性、开放性、互动性、创新性。伴随着计算机
4、网络技术的迅猛发展和广泛应用,人类进入了全新的网络经济时代。信息化、数字化、全球化、网络化应是 21 新世纪人类社会的重要特征,其中,以计算机网络迅猛发展而形成的网络化则是推动信息化、数字化和全球化的基础和核心。计算机网络技术的发展将以其融合一切现代先进信息技术的特殊优势而在 21 世纪形成一场崭新的信息技术革命,并进一步推动社会信息化和知识经济的发展。而计算机网络系统和相关技术也必将在 21 世纪社会信息化和知识经济浪潮中更快更大的发展。基于 J2EE 的 BBS 论坛系统是在网络环境的支持下,支持用户进行发表文章、实时对话等功能的先进模式,BBS 作为一种简便、松散、充满个性的现代电子远程
5、通讯手段,现在在国内得到广泛的应用。BBS 论坛是互联网上很常见的一种实时动态的交流平台。当进入本系统时,首先以游客身份进入论坛首页浏览内容。同时可以选择注册或登录功能。如选择注册流程,则会跳转至注册页面,填写相关信息后成功注册成为注册用户。若选择登录功能,则会跳转至用户登录界面。注册用户分为普通用户和管理员两种身份,当输入用户名和密码并验证无误后普通用户可以进行浏览、回复发布话题、修改个人信息、管理自己发表的话题及回复功能;管理员除了拥有普通用户的权限以外还可以对人员和模块进行管理。在设计方面,本系统采用 B/S 三层结构,同时使用 JSP 技术进行页面的设计,从系统的安全性和代码的可重用性
6、方面考虑,运用 JavaBean 对程序的关键代码进行封装,用户信息验证使用 JavaScript 后台数据库选用 Mysql 数据库,设计数据库的工具选用 Navicat。1.2 开发环境分析1.2.1 操作系统的选择基于 Win7 系统的简单操作,应用便捷,使用广泛等优点,本系统的设计开发选择Win7 系统。1.2.2 数据库的选择MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL 数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。其优点主要如以下:1 它使用的核心线程是完全多线程,支持多处理器。 52 有多种列类型:1、2、3、4、和
7、 8 字节长度自有符号无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和 ENUM 类型。 3 它通过一个高度优化的类库实现 SQL 函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。 4 全面支持 SQL 的 GROUP BY 和 ORDER BY 子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和 MIN()。你可以在同一查询中混来自不同数据库的表。 5 支持 ANSI SQL 的 LE
8、FT 0UTER JOIN 和 ODBC。 6 所有列都有缺省值。你可以用 INSERT 插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。 7 MySQL 可以工作在不同的平台上。支持 C、C、Java、Perl、PHP、Python和 TCL API。1.2.3 开发语言的选择开发语言选择 JAVAWeb 语言。Java 是由 Sun Microsystems 公司推出的 Java 面向对象程序设计语言(以下简称Java 语言)和 Java 平台的总称。由 James Gosling 和同事们共同研发,并在 1995 年正式推出。Java 最初被称为 Oak,是 1991 年为
9、消费类电子产品的嵌入式芯片而设计的。1995 年更名为 Java,并重新设计用于开发 Internet 应用程序。用 Java 实现的 HotJava浏览器(支持 Java applet)显示了 Java 的魅力:跨平台、动态 Web、Internet 计算。从此,Java 被广泛接受并推动了 Web 的迅速发展,常用的浏览器均支持 Javaapplet。另一方面,Java 技术也不断更新。Java 自面世后就非常流行,发展迅速,对 C+语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。2010 年 Oracle 公司收购 Sun Microsyst
10、ems。1.3 JAVA 语 言1)组成:Java 由四方面组成:Java 编程语言,即语法。Java 文件格式,即各种文件夹、文件的后缀。Java 虚拟机(JVM),即处理*.class 文件的解释器。Java 应用程序接口(Java API)。2)体系:Java 分为三个体系,分别为 Java SE(J2SE,Java2 Platform Standard Edition,标准版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。3)优势
11、:与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。6Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET 平台以及模仿 Java 的 C
12、#语言。Java 是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。第二章 系统分析2.1 分析需求联网随着时代的脚步早已迈进 Web2.0 时代,Web2.0 相对 Web1.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。BBS 作为最早也是最成功的互联网社交工具早已经成为互联网的主流社区形式平面设计公司业务管理系统的主要内容。当进入本系统时,首先以游客身份进入论坛首页浏览内容。同时可以选择注册或登录功能。如选择注册流程,则会跳转至注册页面,填写相关信息后成功注册成为注册用户。若选择登录功能,则会跳转至用户登录界面。注册用户分为普通用户和管理
13、员两种身份,当输入用户名和密码并验证无误后普通用户可以进行浏览、回复发布话题、修改个人信息、管理自己发表的话题及回复功能;管理员除了拥有普通用户的权限以外还可以对人员和模块进行管理。2.2 功能分析1)注册功能:通过单击注册链接进入注册页面,用户可输入用户名、密码、昵称、性别、电子邮箱等信息进行注册。输入之后,单击提交成功注册。系统同时会做简单的验证,若用户名和密码为空时,则弹出警示框。2)登录功能:根据用户提供的信息表单从数据库中获取用户信息,验证用户提交的信息和数据库的信息是否一致。如果用户名和密码输入与数据库中存储数据相同则以普通用户身份跳转到论坛首页,否则登录失败并停留在当前页面。3)
14、分页功能:在对应的 Action 中通过查询所有记录,并通过定义进行分页。4)编辑个人信息:从数据库中提取用户信息,用户可以根据需要对之前设定的个人信息进行修改或补充,单击保存后将新的内容覆盖到原来的信息上。5)浏览话题:每个主题要列出所有话题,根据最新更新时间排序。所有用户(包括匿名登录用户)都可以对整个论坛所有话题进行浏览。6)新建话题:如果是注册用户,会在论坛首页看到“发表文章”的按钮,单击后通过链接进入发帖界面,编辑后可成功提交并在前台显示。7)删除话题:如果是当前用户登录界面,关于本人发表的话题可以看到“删除”链接,单击后会弹出警示框确定是否删除,可以确定删除或者取消删除。8)编辑话
15、题:如果是当前用户登录界面,关于本人发表的话题可以进行看成“编辑”链接,用户可以对自己发布的帖子进行多次编辑重新发布。9)回复功能:注册用户在进入具体话题后,可以在页面最下方看到回复填写界面。编辑内容后提交,可以在该话题下查看到发布的回复,匿名用户则无此功能。710)用户管理:管理员身份拥有对所有注册用户的管理功能,包括查看用户注册时提交的信息以及目前的状态。同时可以在这里添加或取消用户版主的权利,并可以对用户进行删除。版主是介于普通用户和管理员之间可以对其权限范围的版面进行文章管理的人,有管理员进行设定。 2.3系统运行总体流程图 2-1 后台管理系统运行流程图管理员登录时,输入用户名:正版
16、河图,输入密码:hetu,选择管理员身份,如果输入错误则需要返回登录页面继续输入。如果输入正确,则可以进入后台管理的操作界面。这时,管理员可以执行后台管理功能。可执行的功能包括:用户的查询、设置版主身份以及用户的删除;帖子查询以及删除操作。管理人员在完成后台的维护工作之后,只需要点击退出,管理员便可以退出后台管理系统。开 始管 理 员 登 录用 户 名 密 码 正 确 ?后 台 操 作 界 面设置论坛信息 管理社区信息 管理用户退 出 网 站结 束YN所有帖子管理 所有用户管理 设置或取消版主8图 2-2 用户前台运行流程图首先,用户需要注册一个账号和密码,然后在登录页面输入已注册的账号密码。
17、如果输入错误,则要重新回到登录页面输入正确的账号密码。如果输入正确,则可以进入用户操作页面进行相应的操作。然后点击注销,用户退出本网站。需要注意的是,用户注册时要先上传头像在填写注册信息。这个信息是后台管理人员在后台维护界面设定的。同样也可以在用户注册页面给用户以人性化的小提示。第三章 系统设计与实现3.1 数据库设计3.1.1 E-R图开 始用 户 注 册用 户 登 录用 户 名 密 码 正 确 ?用 户 操 作 界 面退 出 系 统结 束YN91)用户:图 3-1 用户 E-R 图2)帖子:图 3-2 帖子 E-R 图3)回复:10图 3-3 回复 E-R 图3.1.2 系统数据库表结构1
18、)User :表 1 user 表Id Namepwdsexbirthday eamil phonedescription statusidentity picture2)topic:表 2 topic 表id title content createdate writer subjected3)huifu:表 3 huifu 表id content Topcid writer createdate4)zhuti 表:表 4 zhuti 表id Name description createdate5)banzhu 表:表 5 banzhu 表id Uid Bid Identity113.2系
19、统主界面图 3-4 系统主界面 用户进入系统主界面时,会看到如上图所示的界面,此时,用户若点击帖子名会弹出提示用户登录的提示框。(输入错误信息)图 3-5 登录界面 图 3-6 登录错误信息提示用户登录时,若是管理员或版主,则需要在登录时选择相应的身份,普通用户不用选择。输入信息不正确时会出现图 3-6 所示提示,点击确定后返回登陆界面继续输入。3.3普通用户:12图 3-7 普通用户登陆界面编辑个人信息:用户在登录主机面选择编辑个人信息后,会跳转 到图 3-8 所示的界面。按照要求填写后,点击提交按钮,返回到登陆主界面。此时,数据库中保存的用户个人信息已经被修改。 图 3-8 编辑个人信息我
20、发表过的帖子:图 3-9 我发表过的帖子 用户点击 “我发表过的帖子” ,跳转到此界面,同时显示该用户发表过的所有帖子。新建帖子:图 3-10 新建帖子13用户选择新建弹出此页面后,在标题、主题、正文栏输入相应内容后,点击提交系统会将内容连同当前时间保存到数据库中。回复:图 3-11 查看单个帖子 图 3-12 回复用户在首页选择感兴趣的帖子,点击帖子名会在另一页面显示该帖的具体内容及所有关于该帖的回复(图 3-11)。点击回复后跳转到回复页面,用户可以发表自己的意见。3.4版主:图 3-13 版主首页版主是管理员从普通用户中选择出来的一部分人,相对普通用户,他们可以对自己负责的相应版块内的所
21、有帖子进行操作。3.5 管理员3-14 管理员登陆首页用户管理:14管理员可以看到所有用户的信息,同时可以对用户进行操作。当要删除用户时会弹出确认对话框。点击确定后该用户连同该用户发表过的所有帖子会被一并删除。此外,管理员还可以选择版主,进行身份设置。图 3-15 用户管理 设置版主:用一个用户仅可以担任一个版块的版主,所以当管理员进行设置时,若该用户已经是版主,则会弹出左图所示的对话框进行提示。管理员还可以取消某一用户的版主身份,只需要点击板块后面的取消按钮即可。图 3-16 版主设置帖子管理;图 3-17 帖子管理 管理员可以查看所有用户发表的所有帖子,所有帖子会按照发表的时间分页显示在该
22、页面,每页可以显示五条记录。管理员可以选择跳转到某一页面进行查看。当发现某帖不符合论坛发帖要求时可以对其进行删除。15第四章 调试过程中的问题及系统测试情况4.1 系统测试原理一:木桶原理:什么是木桶?在软件产品生产方面就是全面质量管理(TQM)的概念。产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至 文化因素也会影响最终产品的质量。应该说,测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品质量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。二:bug 的 80-20 原则:80% 的
23、软件缺陷常常生存在软件 20% 的空间里。这个原则告诉我们,如果你想使软件测试有效地话,记住常常光临其高危多发 “ 地段 ” 。在那里发现软件缺陷的可能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。4.2 系统测试方案4.2.1 测试环境使用 MyEclipse 编译运行。 MyEclipse,是在 eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于 Java、Java EE 以及移动应用的开发。MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。测试环境 硬件:Intel PentiumIV
24、2.0G 处理器,内存 512M,100M 网卡软件: Windows2000 操作系统、 JDK 5.0 Update 8、MySql测试辅助工具 无4.2.2 测试内容测试用例:测试用例应由输入数据和预期的输出数据两部分组成。测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。测试用例应长期保留。1) 新建帖子:功能描述 点击新建,发表新话题用例目的 测试选择新建模块是否正常运行前提条件 用户登录系统输入/动作 期望的输出/相应 实际情况示例 1:点击新建 显示新建帖子页面 与期望输出相同示例 2:按要求输入内容,并点击提交 返回登陆首页 与期望输出相同示例 3:点击我发表过的帖子
25、可以找到刚刚发表的帖子 与期望输出相同162) 编辑个人信息功能描述 编辑修改个人信息用例目的 测试选择编辑个人信息模块是否正常运行。前提条件 用户已登录并选择编辑个人信息输入/动作 期望的输出/相应 实际情况示例 1:点击编辑个人信息 显示编辑个人信息页面 与期望输出相同示例 2:按要求输入信息 返回登陆首页 与期望输出相同3)用户管理:功能描述 管理员查看并操作所有用户用例目的 测试用户管理模块正常运行前提条件 管理员登录并选择用户管理输入/动作 期望的输出/相应 实际情况示例 1:点击用户管理 显示所有用户信息 与期望输出相同示例 2:点击删除 显示相应用户同时删除该用户发表的帖子 与期
26、望输出相同示例 3:选择版块编号,授予版主身份呢若用户已为版主,显示“该用户已是版主提示框” ,否则将该用户设为版主与期望输出相同实例 4:点击取消按钮 删除用户当前的版主身份,将其变为普通用户 与期望输出相同第五章 总结这次项目实训到此已经顺利结束,通过这次的实训,我学到了很多。在过去 3 年时间内我学习了很多的课程及编程语言,虽然通过学习对这些课程有所了解和掌握,但是始终处于理论知识的掌握阶段,并没有真正应用于实践设计开发,所以对知识的掌握还不够全面和熟练。而且并不能真正独立的开发出一个完整的应用于实际的系统。通过这次的实训,我已经可以完成这一任务,对自身的编程能力也有了很大的提高。这次开
27、发的系统是一个动态网页,而不是简单的静态网页,因此采用了在开发动态网页方面比较先进的 JSP 作为开发语言。JSP 是一种 WEB 编程脚本语言。当然在学习的过程中曾经碰到过一些让人头痛的问题,我都一一解决了,直到系统全部完成,也让我在解决问题方面的能力得到了提高。整个开发的过程对我来说是一次能力的真正提高的过程;是一次将理论应用于实践的过程;是将以前所学知识充分利用的过程,比如 Java,数据库概论等等;是一次真正的实践过程。17总体说来,在这次长达八个周的实训中,我真正学到了很多有用的东西,是一些在课堂内所学不到的知识,收获很大。当然也发现了很多不足。这次实训感触比较深刻的一点那就是自己闭
28、门造车你就永远不会知道自己有哪些不足,还有哪些地方需要改进。毕竟一个人的力量有限,有些地方可能想不起来运用那个组件比较适合,多个人一起思考就会发现有更好更适当的方法。希望今后的自己在编程的时候可以考虑更加周全,有更大的进步。最后,感谢指导老师和同学们在开发的期间,给我的无私的帮助。曾经遇到过很多疑难,正是与同学们的相互探讨使我获益匪浅,才能让我继续前进的脚步。短短几个月时间内,除了学会了基本软件系统的开发外,更重要的是学到了兢兢业业,奋发向上的精神!这种精神将是我今后人生前进道路上的一种力量,所以我再次衷心地感谢老师和我的同学们,谢谢你们了!参考文献1王珊,萨师煊主编.数据库系统概论(第四版).北京:高等教育出版社,2006.52耿祥义 程跃平主编 JAVA 面向对象程序设计(第二版) 清华大学出版社3高翔 李志浩主编 JavaWeb 开发与实践(第一版) 人民邮电出版社