您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 综合/其它 > 软件工程导论期末考试
《软件工程导论》2010-2011第二学期期末考试专业:信息管理与信息系统姓名:孙新学号:080403010035第1页公司新闻发布系统参考西南大学计算机信息管理专业学生毕业设计一、可行性分析公司新闻发布系统是用于显示最新的公司信息,以及用户对信息的评价,在前台浏览信息的时候无需验证的一个新闻系统。后台主要对信息的整理与收集,从而更好的方便的读者,减少了一些用户为了专门了解产品信息而查阅其他多信息网站的麻烦。本系统是使用JAVA语言的ASP技术开发,完全体现了JAVA语言纯面向对象的特点,更易于理解。二、需求分析传统的网站新闻管理方式有两种,一是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用。二是基于ASP和脚本语言,将动态网页和数据库结合,通过应用程序来处理新闻,这是目前较为流行的做法。人们对最新信息的需求和发布迫切的需要及时性,而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。通过对其它一些新闻系统的调查发现,一般新闻系统功能如下:前台按分类显示新闻;搜索新闻;后台管理:●添加、删除和修改新闻●添加、删除和修改用户●添加、删除和修改新闻分类●添加新闻(添加成功后的新闻根据管理员权限分为可发布新闻和待审核新闻)需要新闻审核,说明添加后的新闻分为两种:直接发布新闻和待审核新闻,同时待审核的新闻通过管理员或审核员经审核后才可以上传到网站,管理员有不同的权限,需要有个管理权限的功能,在系统中应该有个超级管理员,具有所有权限,能够对系统进行全面管理,同时管理员可以修改自己的一些信息。根据企业网站新闻发布管理的实际需求,在首页中能显示最热门新闻、头条新闻和最近发布的几条新闻等,同时在后台发布新闻时可以添加图片,也可以添加HTML语法,在前台能自动根据所显示的图片和HTML语法来显示新闻。在后台管理中,因为有权限的管理员才能登录管理后台,所以需要有个登录验证模块,而且需要根据用户权限的不同显示不同的管理目录,在管理新闻和用户时,当数据少时管理起来还比较方便,如果一多则想找到某条新闻或某个用户就很难,所以需要有个查找(新闻标题、用户)模块用于查找新闻或用户。根据以上需求分析,该系统要实现的主要功能为:前台显示新闻部分●用户登录区●显示最热门的前几条新闻●显示推荐的前几条新闻第2页●显示最新的前几条新闻●搜索新闻功能●显示所有新闻分类(即部门)●按分类/部门显示其下的所有新闻●新闻详细信息浏览阅读●图片新闻(自动生成缩略图)以滚动形式在首页显示且只显示前几条●网站友情链接(可在管理中添加设置)●网站公告可显示发布了新闻但没通过审核的一些相关通知等后台管理部分●登录验证●根据权限显示相应的管理目录●添加、修改和删除新闻●管理发布新闻●管理审核新闻●分类管理●用户管理●网站风格设置、系统设置等三、概要设计(E-R图)企业新闻发布系统的系统数据库采用的是SQLServer。要开发数据库程序,首先要规划自己的数据库,要尽量使数据库设计合理。既包含必要信息,又能节省数据库的存储空间。那么,在建立数据库之前,就需要对数据库进行概要的设计。首先要对数据库进行E-R图设计,通过系统数据库E-R图能直观的规划出所需要的数据库功能。图3-1用户信息E-R图图3-2新闻类别信息E-R图UsersidPostimeContentUserldNewsld第3页图3-3新闻信息E-R图图3-4评论信息E-R图由以上图3-1到图3-4可以看出,新闻发布系统的数据库(news)建立了用户信息表(Users)、新闻信息表(News)、新闻类别表(Category)、评论信息表(Discuss)四个主要为主的数据表,用户信息表中有五个属性,分别有用户名、密码、用户姓名等。新闻信息表中有八个属性,分别是新闻编号、新闻类别编号、新闻内容等。新闻类别表中有两个属性,分别有新闻类别编号、新闻类别名称。评论信息表中有五个属性,分别是评论编号,评论人名称等。四、详细设计1.设计目标根据新闻系统的需求进行开发设计,主要实现如下目标:●界面设计友好、美观、数据要准确、安全、可靠。●强大查询功能,方便用户浏览网站的所有信息。●设计会员登陆功能,保证新闻留言的安全性。●实现对信息、产品种类的添加、修改、删除,便于更新网站内容。●系统最大限度地实现易维护性和易操作性。2.开发及运行运行环境本系统运行时需要以下条件:第4页硬件平台:●CPU:P41.8Hz。●内存:512MB以上。软件平台:●操作系统:WindowsXP/Windows2000/Windows2003。●数据库:SQLServer。●开发工具:java。●浏览器:IE6.0以上。●分辨率:最佳效果1024×768像素。3.逻辑结构设计本系统数据库采用SQLServer数据库,系统数据库名称为news_system。数据库中共包含五张表。(1)数据表概要说明(2)主要数据表的结构●admin(管理员信息表)管理员信息表主要用来保存管理员的相应信息。●guest_book(留言信息表)留言信息表用来保存会员用户的留言信息。●news(新闻信息表)新闻信息表用来存储产品种类信息。●news_type(消息类型表)消息类型表用来记录所存入消息的类型。4.公共类的设计在开发过程中,经常会用到一些公共类,如获得道歉时间类、数据库连接类等,这些类可能会在程序中被重复执行。公共类的应用可以使诚寻的代码更加工整,增强了代码的重用性,所以开发系统时首先要编写这些公共类。(1)获得当前系统时间类获得当前系统时间类封装在CountTime类中。Java,text包中的DateFormat类是日期/时间格式化子类的抽象类。该类的静态方法getDateInstance()可获得默认语言环境的日期格式。CountTime类的代码如下:packageJCrazy;importjava.unit.Dtae;importjava.text.DateFormt;publicclassCountTime(){publicStringcurrenrlyTime(){Datedate=newDate();DateFormatdateFormat=DateFormat.getDateInstance(DateFormat.FULL);ReturndataFormat.format(date);}}(2)数据库连接类在开发的时候我们要连接SQLServer数据库,这就必须要求我们对数据库进行连接,所以数据库连接是必不可少的,如果我们每次操作都进行数据库连接那一定是很麻烦的,并且影响整个系统的运行速度。虽然影响不是很大,但是问题能避免的时候我们一定要避免保证代码的精炼,这就必须写一个公共的数据库连接类,只要有这个类我们每次连接数据库的时候只需调用一下这个方法就行了。下面是这个公共数据库连接类:第5页packageJCrazy;importjava.sql.Connection;importjava.sql.DriverManager;publicclassDBConn{privatestaticfinalStringdriver=com.mysql.jdbc.Driver;//MYSQl连接数据库驱动privatestaticfinalStringurl=jdbc:mysql://localhost:3306/new_system;privatestaticfinalStringpassword=root;publicstaticConnectiongetConnection(){Connectionconn=null;try{Class.forName(driver);conn=DriverManager.getConnection(url,user,password);}catch(Exceptione){e.printStackTrace();}returnconn;}}5.网站前台主要功能设计(1)网站首页页面设计网站首页是用户直接访问的页面,所以必须要让用户一访问就能看出来这个网站的主题思想是什么,一下就能体现出这个网站的中心内容。并且首页的模块之间要联系紧密,更好的让用户理解明白。在这个页面上我们要做到所有查看消息的功能都能实现,或者说有能实现查询信息功能的连接。(2)主要产品新闻显示这是网站上必须具有的一个功能。主要信息是当前最新、最热的新闻摘要,从这里就能了解最近比赛的基本信息,所以此功能很重要。在此我们运用JAVA代码来查询调用数据库中的新闻信息,创建front_newsDBO类来调用此类中的get_news_list()方法提取数据,同时以表格的形式将该信息的标题显示在前台index.jsp页面上,我们将显示该条信息题目的同时将该信息ID显示出来并且将次ID传到下一个详细信息页面中,利用此ID查出该条信息的全部内容。基本代码如下:①front_newsDBO类中get_news_list(intpageNum,intnews_type_id)方法:packageJCrazy;importjava.sql.*;importjava.util.*;publicclassfront_newsDBO{publicListget_news_list(intpageNum,intnews_type_id){Connectionconn=null;PreparedStatementps=null;ResultSetrs=null;Listlist=newArrayList();try{//在进行数据库操作时候存在异常,try/catch方法捕获处理异常。conn=newconnection().getConnection();//直接调用数据库连接类进行数据库连接。第6页Stringsql=select*fromnewswherenews_type_id=?limit?,5;ps=conn.prepareStatement(sql);ps.setInt(1,news_type_id);ps.setInt(2,(pageNum-1)*5);rs=ps.executeQuery();while(rs.next()){//循环遍历ResultSet对象。newsVOvo=newnewsVO();//创建JavaBean对象用来封装所查询出来的数据。vo.setNews_title(rs.getString(news_title));vo.setNews_author(rs.getString(news_author));vo.setNews_date(rs.getDate(news_date));vo.setNews_content(rs.getString(news_content));vo.setNews_img_path(rs.getString(news_img_path));vo.setNews_type_id(rs.getInt(news_type_id));vo.setNews_id(rs.getInt(news_id));list.add(vo);//讲Java对象添加到List对象中。}}catch(Exceptione){e.printStackTrace();}finally{//以下是关闭数据连接资源。try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(conn!=null){newconnection().closeConn();}}catch(Exceptione){e.printStackTrace();}}returnlist;//最后返回List对象,用以获取其中的Java对象。}②网页中提取数据代码:tablewidth=246border=0align=lefttrtdcolspan=2 &n
本文标题:软件工程导论期末考试
链接地址:https://www.777doc.com/doc-2011364 .html