《程序语言综合课程设计》设计报告学院:信息工程学院组长:黄敏(计算机中加141, 06号)成员:刘存国(计算机中加141, 16号)指导老师杨书新完成时间:2016年07月1日目录第一章需求分析 (1)1.1 功能需求 (1)1.2 性能需求 (1)1.3 用户界面需求 (2)1.4 安全需求 (2)第二章总体设计 (3)2.1 系统功能描述 (3)2.2 E-R模型 (4)2.3 系统功能模块划分 (5)2.4 系统流程图 (6)第三章数据库设计 (7)3.1概念设计 (7)3.2逻辑设计 (7)3.3物理设计 (7)第四章详细设计与实现 (9)4.1前台界面和功能实现 (9)4.2后台界面和功能实现 (12)总结 (25)致谢 (25)第一章需求分析1.1 功能需求本系统的目的是实现新闻发布系统的基本功能。
(1)查看新闻任何用户均可以使用查看新闻功能,查看新闻功能在新闻首页显示最新新闻,用户可以点击首页的新闻标题链接查看相关新闻内容,可以根据新闻首页的分类新闻(如国内、社会等)查看你想要了解的新闻消息,也可以通过或者通过点击自己感兴趣图片的下方链接来查看相关新闻。
(2)站内新闻检索功能任何用户均可以使用新闻搜素功能,可通过关键词以及标题来搜索符合的新闻。
(3)Admin管理员登录功能当用户需要使用新闻管理功能时,需要先以管理员的身份登录系统,在地址栏中输入管理员登录的地址,进入登录页面。
用户在登录页面输入用户名和密码以及随机产生的验证码,若登录失败,则清空输入,并简要显示错误原因,管理员登录页面等待下一次登录,否则登录成功,从而使用新闻管理功能。
(4)新闻类别管理Admin管理员登录后,可以对新闻的类别进行添加修改删除功能。
(5)新闻发布功能获得权限的用户可以使用新闻发布功能。
用户通过点击“添加新闻”项进入新闻发布页面,填写新闻的主题、标题、作者、摘要以及相关内容和图片,按提交键即可,发布时间取当前系统时间,不需用户填写。
(6)新闻管理功能管理员登录后,可进行新闻管理操作,包括对现有新闻的删除和修改。
在管理页面上,用户可通过单击每条记录右侧的“修改”或“删除”超链接来进行操作。
当管理员本次维护结束后,可通过“login out”退出该页面。
1.2 性能需求(1)Tomcat可以免安装,体积小,运行效率高,能很方便的在Windows和linux 系统下发布。
同时使用mysql数据库,安装方便且免费使用,mysql在Windows 和linux下都能被良好的支持。
而JSP不但可以使用Myeclipse,也可使用dreamweaver编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均作为本系统运行环境。
(2)界面设计友好美观、数据要准确安全可靠;实现对新闻信息的添加、修改、删除,便于更新网站内容;系统最大限度地实现易维护性和易操作性;对于一个新闻发布系统而言新闻信息是很多的,而且使用的人数较多,所以对系统的安全性有着比较高的要求,对于数据库,要设置不同用户的权限,数据的修改必须由合法用户操作。
1.3 用户界面需求网站页面是用户直接访问的页面,所以必须要让用户访问就能看出来这个网站的主题思想是什么,一下就能体现出这个网站的中心内容。
并且首页的模块之间要联系紧密,更好的让用户理解明白。
1.4 安全需求由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的安全就能得到保障,同时也能防止别人抄袭源代码。
本系统的管理员可以有多名,为防止暴力猜解密码,在设计后台登录模块时需考虑验证码的设计。
第二章总体设计高效的新闻发布系统可简便维护工作,使用新闻发布系统,管理员只需设计标题、内容和图片等新闻,系统将自动生成对应的网页,使新闻发布和管理变得很轻松。
而对于前台界面,为适应多个用户的需求,必须达到友好、方便、简洁和易用的特点。
本文将根据前期的需求分析,对新闻发布系统进行总体设计。
2.1 系统功能描述新闻发布及管理系统包括新闻类别管理、新闻发布管理、新闻查询和图片处理等模块。
具体描述如下。
1.新闻类别管理:(1)新闻类别的录入,包括类别名称等信息;(2)新闻类别的修改;(3)新闻类别的删除;(4)新闻类别的查询。
2.新闻发布管理:(1)基本新闻信息的发布,包括新闻标题、新闻内容和所属类别等;(2)基本新闻信息的修改;(3)基本新闻信息的删除;3.图片处理模块:(1)选择图片文件;(2)上传图片文件;(3)存储图片新闻;(4)修改新闻图片;(5)删除新闻图片;(6)在网页中浏览新闻图片。
4.新闻查询模块:(1)按照新闻类别分页显示新闻;(2)按照日期分页显示新闻;(3)按照新闻发布者查询。
5.系统用户管理功能:(1)系统用户信息的录入,包括用户名和密码等信息;(2)系统用户信息的修改;(3)系统用户信息的删除。
2.2 E-R模型根据分析可划分出新闻信息、用户信息、评论信息以及新闻信息类别和几个实体,具体E-R模型如下。
(1)新闻信息图2-1 新闻信息实体的E-R图(2)用户信息图2-2 用户信息实体的E-R图(3)新闻类别信息图2-3 新闻类别信息实体的E-R图图2-4 ER关系模型图2.3 系统功能模块划分从功能的内容可以看到,该新闻发布系统可以实现6个完整的功能。
我们根据这些功能,设计出系统的功能模块。
图2-5 系统功能模块图新闻发布及管理系统的功能模块之间的关系:图2-6 新闻发布及管理系统的功能模块图2.4 系统流程图图2-7 系统的基本流程图任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可进行新闻的查看,根据标题或关键字进行浏览自己喜欢的新闻。
点击登录与注册,进入登录页面,未注册的用户能够选择注册,已注册的用户输入自己的用户名和密码可进入后台管理,有新闻的发布、新闻的管理、新闻的类别管理等。
点击login out即可退出本新闻系统。
第三章数据库设计3.1概念设计新闻发布系统中,主要需要以下数据来保持相应的信息:1.新闻信息表:用于保存新闻信息的基本信息。
2.管理员信息表:用于保存新闻发布系统管理员的信息。
3.新闻主题信息表:用于保存新闻主题信息。
3.2逻辑设计本系统主要涉及四张表:新闻信息表(newsinfo)、管理员表(userinfo)、主题信息表(topic)。
前面我们已给出他们的E-R图。
上述四表的关系如下图所示:图3-1 逻辑关系图3.3物理设计本系统主要涉及四张表:新闻信息表(newsinfo)、管理员表(userinfo)、主题信息表(topic)。
我们采用了MySql数据库,在数据库中使用数据表来储存现有的新闻信息。
1.存储新闻信息的newsinfo表,其中表的结构如表3-1所示。
2.使用数据表userinfo来储存管理员的信息,表的结构如下表3-2所示。
3.使用数据表topic来储存新闻主题的信息,表的结构如下表3-4所示。
第四章详细设计与实现4.1前台界面和功能实现4.1.1主页功能介绍1.在index.jsp页面有普通用户登录窗口,用户可以在主页面浏览新闻,和查看热点新闻列表和每条新闻的详情,用户点击“登录与注册”后在窗口输入账号密码后,登入成功,或者注册。
2.主页面的名称为index.jsp 如下图图4-1 前台主页面图任何用户输入域名后直接进入到主页面,以上是从数据库加载的新闻列表和新闻话,题在主页实现的功能有:1.查看从数据库加载出来所有的新闻主题、新闻列表;2.用户可以点击右上角的“登录与注册”,跳转到后台登录界面。
3.主页的主要实现代码<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.*"%><%@ page import="xw.XinwenBean"%><html ><head></head><body><div id="all"><div class="banner"><ul class="img"><li><a href="#"><img src="images/banner1.png"></a></li> <li><a href="#"><img src="images/banner2.png"></a></li> <li><a href="#"><img src="images/banner3.png"></a></li> <li><a href="#"><img src="images/banner4.png"width="1188px"></a></li></ul><ul class="num"></ul><div class="btn btn_l"><</div><div class="btn btn_r">></div></div><div class="heading"><ul><li><a>首页</a></li> <li class="fu"></li><li><a>新闻</a></li> <li class="fu"></li><li><a>图片</a></li> <li class="fu"></li> <li><a>视频</a></li> <li class="fu"></li><li><a>娱乐</a></li> <li class="fu"></li><li><a>时尚</a></li> <li class="fu"></li><li><a>体育</a></li> <li class="fu"></li><li><a>财经</a></li> <li class="fu"></li><li><a>汽车</a></li> <li class="fu"></li> <li><a>房产</a></li> <li class="fu"></li><li><a>购物</a></li> <li class="fu"></li> <li><a>博客</a></li> <li class="fu1"><a href="login.jsp">登入与注册</a></li></ul></div></div><div class="main"><div class="up"><%List<XinwenBean> list = (List<XinwenBean>)request.getAttribute("list");if (list == null || list.size() < 1) {out.print("<ul><li bgcolor='#FFFFFF' colspan='5'>没有任何新闻信息!</li></ul>");} else {%><ul><%for (XinwenBean xw : list) {String str=xw.getTitle();if(str.length()>15){str=str.substring(0,15)+"......";}%><li><ahref="Chakan.jsp?title=<%=xw.getTitle()%>"><%=str%></a></li><% }%> <% }%></ul><div width="98%" align="center" style="padding-top:10px;"> <%=request.getAttribute("bar")%></div></div><div class="down"><h2>天下要闻</h2><p> 迷惘的人,是因为迷失在物欲纵横的世界里,无法自拔,终日无所事事,庸庸碌碌过完一生,如行尸走肉;人不应作没有思想的芦苇,随波逐流。