新闻发布系统的设计与实现.docx
《新闻发布系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《新闻发布系统的设计与实现.docx(20页珍藏版)》请在冰豆网上搜索。
新闻发布系统的设计与实现
1.引言
近年来,Internet的高速发展带动了整个世界新闻传播的速度,我们每一刻都可以从网络上知晓世界上发生的事情。
电脑的普及,移动视频,智能手机等传媒终端的迅速的发展。
使传统的信息传播媒体如电视、广播、报纸等逐渐被人们抛弃,满足不了人们对外界瞬息万变的信息的好奇心,因而人们越来越习惯依赖网络新闻媒体。
新闻的传播方式发生了巨大的变化,人们更多的开始关注网络新闻媒体。
这种媒体不但具备新闻传播的特点:
及时、准确。
还具有信息量大、方便管理、方便阅读等特点。
有了新闻发布系统后,可以随意查询新闻,快速找到自己喜欢的新闻,并可以发表自己的评论,也方便了管理员使其能够更加清晰的管理新闻,很好地提高了管理者的效率。
当今,网络已成为了人们日常生活信息来源的主要途径,人们都习惯于通过上网来获取信息,在这种发展形势下,网络新闻逐渐深入我们的生活,成为获得信息的一个重要手段。
由于Internet的信息容量大,传播范围广,信息传播及时并且内容准确,大大满足了人们的需要。
把所有的信息都上传到网络,供大家相互浏览、评论,使网络的信息量越来越大,所以我们迫切的需要开发一个基于网络的新闻信息浏览系统。
2.新闻发布系统的需求分析
性能需求
该系统在性能功能上应达到如下需求:
1)操作简单、界面友好:
完全控件式的页面布局,使得新闻的录入工作更简便,许多选项包括新闻分类、来源部门等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。
对常见网站的新闻管理的各个方面:
新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了网站对即时新闻的管理要求;
2)即时可见:
对新闻的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;
3)系统运行应该快速、稳定、高效和可靠;
4)在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
用户根据对新闻系统的需求分析的上述要求及新闻系统模型结构,新闻的功能模块分为四个大的部分,新闻的管理,新闻的查询,新闻类别的管理,用户的管理。
新闻管理包括新闻的浏览,新闻的添加和新闻的删除;新闻的查询是按照新闻的发布时间进行查询;新闻类别的管理包括新闻类别的浏览,添加和删除;用户的管理包括对用户的基本信息的浏览,添加和删除。
制定出新闻系统的系统功能模块图。
该新闻系统的系统功能模块划分如图4-1所示
图4-1新闻系统功能模块图
运行环境要求
硬件设备要求
客户机硬件要求:
具有PentiumIII处理器以上且满足以下要求的计算机:
最低64MB内存,最小GB硬盘。
服务器硬件要求:
具有PentiumIII处理器以上且满足以下要求的计算机:
最低256MB内存,最小8GB硬盘。
软件设备要求
客户端
操作系统:
Windows98/NT/2000/XP或更高版本
浏览器:
IE以上或Netscape同等版本以上
服务端
系统设计工具:
VisualStudio2005或者VisualStudio2008
数据库:
SQLserver2005
3.系统设计
新闻系统的设计模型结构
系统的功能模块
新闻的功能模块分为四个大的部分,新闻的管理,新闻的查询,新闻类别的管理,用户的管理。
新闻管理包括新闻的浏览,新闻的添加和新闻的删除;新闻的查询是按照新闻的发布时间进行查询;新闻类别的管理包括新闻类别的浏览,添加和删除;用户的管理包括对用户的基本信息的浏览,添加和删除。
系统的功能模块图如图3-1所示
图3-1系统的功能模块图
用户管理功能模块的关系
本新闻系统的用户分为管理员用户和普通的用户。
普通用户在新闻管理上可以浏览新闻的基本信息,添加新闻;在新闻查询上可以按照新闻的发布时间对新闻进行查询。
管理员用户除了拥有普通用户的功能外,还可以在用户管理上对用户进行用户的基本信息的浏览,用户管理和新闻类别管理是管理员用户所特有的操作,用户管理包括对所有用户的添加、浏览和删除;新闻类别管理是在进行新闻类别界面对新闻界面的浏览,添加和删除。
用户的功能模块图如图3-2所示
图3-2用户功能模块图
系统工作流程分析
用户进入系统后,按照其身份的不同,可进入不同操作界面。
但是其工作的流程是大致相同的。
如果是管理员用户,则进入管理员身份的新闻系统,管理员可以进行新闻管理、新闻查询、用户管理和新闻类别的管理,管理员的新闻管理不但有新闻的添加和浏览,还可以对新闻进行删除操作;新闻查询是按照时间对新闻进行精确地查询,并在查询界面返回查询结果;用户可以在每个页面新闻之间相互跳转,只要点击相应页面的连接就可以实现。
其工作流程图如图3-3所示
图3-3系统工作流程图
新闻系统的功能模块简介
新闻的功能是新闻系统的重点模块,进一步了解与熟悉新闻系统的功能模块,才能够很好的完成新闻系统,掌握新闻系统的工作流程,明确每一个新闻系统界面的功能。
下面是对新闻管理系统功能模块的一些说明。
新闻类别管理
管理员发布WebServices,使得用户可以通过WebServices向数据转换服务器发送执行作业的请求。
用户调用发布的WebServices,输入相关的参数,服务器调用适当的作业服务器和作业来处理请求,最后将需要的结果返回。
(1)新闻类别的录入,包括类别编号和类别名称等信息;
(2)新闻类别的增加;
(3)新闻类别的删除;
新闻的管理
通过对后台数据库相关内容的修改能够实现对新的新闻内容进行添加和讲过去的新闻删除,为此系统的核心部分。
(1)基本新闻信息的录入,包括新闻标题、新闻内容和所属类别等;
(2)基本新闻信息的增加;
(3)基本新闻信息的删除;
新闻查询模块
(1)按照新闻类别分页显示新闻;
(2)按照日期分页显示新闻。
编辑用户信息
(1)系统用户信息的录入,包括用户名和密码等信息;
(2)系统用户信息的增加;
(3)系统用户信息的删除。
4.详细设计
数据库设计
本系统定义的数据库中包含以下3个表:
新闻类别表:
category、新闻基本信息表:
news、和用户信息表:
xtuser。
首先根据新闻系统设计计划表的的内容及相关的属性,并使用数据库工具创建表。
下面分别介绍这些表的结构及相关内容,表建立好后,新闻系统的用户可以根据具体的新闻系统的实现新闻系统的功能。
新闻类别表category
新闻类别表category用来保存新闻类别数据,结构如表所示。
表新闻类别表category的结构
编号
字段名称
数据结构
说明
1
cateID
int
新闻类别编号
2
catename
varchar(50)
新闻类别名称
(其中cateID是表category的主键)
在设计数据库结构时,很多表都需要设计一个整型字段作为标识列,这几乎已经成为惯例,例如表category中的cateID字段。
所谓标识列,就是可以惟一标识一行记录的列,在表中不会存在两条标识列相同的记录。
如果其他表需要引用表category中的数据,则在表中添加一个cateID字段就可以了。
有的程序设计人员习惯于直接使用名称字段作为标识列,例如表category中的catename字段。
这样,如果修改catename字段的值,就需要同时修改其他所有表的相应字段的值,从而造成不必要的麻烦。
在系统中,cateID字段对于用户来说是透明的,用户感觉不到它的存在,也无法对其进行修改。
其中新闻类别编号的int是自增长的的。
在SQLserver2005中创建的category表如图4-1所示
图4-1新闻类别表category
基本新闻表news
基本新闻表news用来保存网上新闻的基本信息,结构如表所示。
表基本新闻表news的结构
编号
字段名称
数据结构
说明
1
ID
int
新闻编号
2
title
varchar(50)
新闻标题
3
[content]
text
新闻内容
4
postTime
datetime
提交时间
5
poster
varchar(50)
提交人
6
cateId
int
新闻类别编号
(其中ID是表news的主键,主键ID自增长的)
在SQL Server 2005中,可以使用char、varchar和text等3种数据类型存储非Unicode字符数据。
char和varchar只能存储最多8000个字符,其中char用于存储固定长度的字符数据,varchar用于存储可变长度的字符数据。
如果需要存储的数据很大,则可以使用text数据类型,例如表News中的Content字符,因为新闻内容的数据量通常会超过8000个字符。
text数据类型也是可变长度的,最多可为47个字符。
其中新闻编号ID是自增长的。
在SQLserver2005中创建的news表如图4-2所示
图4-2基本新闻表news
用户信息表xtuser
用户信息表xtuser用来保存用户的基本信息,这个表主要涉及新闻系统用户的各项基本的信息,每个用户的基本信息包括用户ID、用户名、密码、真实姓名、电子邮件和是否是管理员6项,其结构如表所示
表用户信息表xtuser的结构
编号
字段名称
数据结构
说明
1
userID
int
用户ID号
2
username
varchar(50)
用户名
3
userpwd
varcahr(50)
密码
4
Ename
varchar(50)
用户姓名
5
Email
varchar(50)
电子邮箱
6
admin
int
是否为管理员
((0为是管理员,1为不是管理员),userId是表xtuser的主键,用户ID号userId是自增长的。
)SQLserver2005中创建的xtuser表如图4-3所示
图4-3用户信息表xtuser
各主要窗体页的图形界面介绍
新闻系统的页面设计是基于各个窗体的图形界面的。
新闻系统的各个主要界面包括用户的登录界面,新闻管理界面,新闻查询界面,新闻类别管理界面和用户管理界面5个大的部分。
设计者根据需求分析中的新闻系统的要求,完成对新闻系统的页面设计。
登录界面
登录界面包括用户名和密码,及一个身份的选择,在VisualStudio中的工具栏中分别选择Label、DropList、TextBox和Buttton控件,选中每个控件,修改每个控件属性中的“text”,更改为要显示出的内容,根据需要调整其位置及大小,如修改密码的属性为password,使其显示为密码形式等。
登录界面的设计如图4-4所示
图4-4用户登录界面
新闻管理界面
新闻管理界面是显示新闻内容的一个重要界面,在上面不但可以浏览到用户提交的新闻,还可以连接到其他的管理界面,并可以转到新闻添加的界面。
所要用到的控件是Hyperlink、Label、TextBox和Buttton,并需要添加一个GridView的表,根据新闻数据库中的有关新闻的信息,完善GridView表的内容。
因为是GridView表格,所以完成表格列的的基本信息后要对表格进行数据绑定,在数据绑定时绑定的列的名称一定要与数据库中列的名称一致,GridView表中包含删除一项,所以要对删除的RowDeleting属性进行修改完善。
添加后的新闻管理界面设计显示如图4-5所示
图4-5新闻管理界面
新闻管理界面还应包括新闻添加的界面,点击新闻添加按钮,就可以跳转到新闻添加页面。
添加新闻界面是用户填写新闻基本信息的界面。
设计者要根据需要把控间的每个属性进行完善,例如新闻的各项基本信息选项不可为空,如果为空,则新闻添加不成功,并要给出提示等等。
添加新闻的设计如图4-6所示
图4-6添加新闻界面
新闻查询界面
新闻查询界面是用户按照新闻的提交时间来进行查询的一个操作界面,新闻查询也要使用一个GridView表,其显示格式要与新闻管理中的新闻表一样,普通用户和管理员用户都可以通过单击“开始查询”来查找新闻,并可以点击“重新查询”来进行重新查询。
所以新闻查询界面的设计如图4-7所示
图4-7新闻查询界面
新闻类别管理界面
新闻类别管理是新闻进行分类和添加新闻时进行新闻选择的一个重要管理,管理员用户可以添加和删除新闻类别,添加和删除新闻类别在一个界面之上,用户并可以在此界面上连接到其他的管理界面,所要用到的控件是Hyperlink、Label、TextBox和Buttton,及一个GridView的新闻表格,表格的形式应与新闻管理中的新闻表格一致(没有新闻删除一列)新闻类别管理的界面设计如图4-8所示
图4-8新闻类别管理界面
用户管理界面
用户管理包括管理员用户对所有用户的添加和删除,在用户管理界面上可以看到所有的用户的各项基本信息,通过点击“添加用户”按钮来进入用户添加界面,对用户的基本信息进行添加,通过返回用户管理界面进行添加后的用户信息查看。
点击“删除”来删除用户。
用户管理界面的设计如图4-9所示
图4-9用户管理界面
用户管理应包括一个添加用户基本信息的界面,同新闻的基本信息添加一样。
用户的各项基本信息的空间属性也需要进行相关的完善。
除了各项必须要填写的信息外,密码要设置成不可见的形式,另外确认密码的属性也要设置为源输入密码一致。
添加用户的操作设计如图4-10所示
图4-10添加用户界面
系统部分重要功能及代码
新闻系统设计用户登录,新闻管理,新闻添加,新闻删除,新闻查询,新闻类别管理,新闻类别添加,新闻类别删除,用户管理,添加用户,删除用户等,在新闻系统的每个前台创建好新闻系统的各个界面以后(ASPX界面),需要连接调用WebServices方法。
WebServices所用到的WebMethod一共有2个,其中一个是userWeb,包括登录时的CheckUser(),添加用户时的用到的AddUser(),登录用户管理界面时出现数据表DataTableUserManage(),以及删除删除用户的DeleteUser()等等,另一个newsWeb,包括添加新闻时用到的AddNews(),新闻类别管理时出现的数据表格用到的Category(),删除新闻时用到的DeleteNews(),删除新闻类别时用到的DeleteCategory(),核对新闻数据表格时用到的CheckNews()等等。
新闻系统所要用到的全部WebServices的方法如图4-11(a)和图4-11(b)所示
图4-11(a)NewWebServices方法
图4-11(b)UserWebServices方法
用户登录
用户登录界面包括用户名,密码和用户身份的选择,首先要创建名为“”的文件。
在设计好文件样式后,要编辑每个功能按钮的代码。
对于“登录”按钮,在“中的代码为:
protectedvoidButton_Login_Click(objectsender,EventArgse)
{
UserWebServiceuserWS=newUserWebService();
stringusername=;
stringpwd=;
intchr=(username,pwd);
if(chr==0)
{
("~/");
}
elseif(chr==1)
{
("~/");
}
else
{
=;
="用户名与密码不一致,请重新输入!
";
}
上述部分代码的功能是用户输入用户名和密码后,点击登录系统会根据用户输入用户名和密码,作出判断:
如果是管理员,则进入到管理员的新闻管理界面;如果是普通用户,则进入到普通用户的新闻管理界面;如果输入的用户名和密码不符,则不能成功登陆,系统会自动提示“用户名与密码不一致,请重新输入!
”
上述代码是在“文件中编写的,而在上述代码里面调用了WebServices的方法,在UserWeb的文件下的WebMethodCheckUser()的代码如下:
[WebMethod]
publicintCheckUser(stringusername,stringpwd)
{
oString(),news[0].ToString()));
}
}
}
由于在上述代码中调用了WebServices方法,在NewsWeb中获取分类的GetCategory方法的代码如下:
[WebMethod]
publicArrayListGetCategory()
{
ArrayListlst=newArrayList();
DBdb=newDB();
();
stringsql="SELECT*FROMcategory";
SqlDataReaderreader=(sql);
while())
{
object[]news=newobject[2];
news[0]=(int)reader["cateID"];
news[1]=reader["catename"].ToString();
(news);
}
();
returnlst;
}
用户完成新闻的基本信息填写后,点击“确定“按钮,就可以对新闻进行添加,如果基本信息填写不完全,则系统会自动提示用户把新闻基本信息填写完整,之后才可以成功提交新闻。
添加新闻的关键代码如下:
protectedvoidButton1_Click(objectsender,EventArgse)
{
NewsWebServicenewsWS=newNewsWebService();
boolresult=,,,);
if(result)
{
("('新闻添加成功!
')");
}
else
{
("('新闻添加失败,请联系管理员!
')");
}
}
在添加新闻的上述代码中调用了WebServices方法,在NewsWeb中的AddNews方法代码如下:
[WebMethod]
publicboolAddNews(stringtitle,stringcontent,stringposter,intcateID)
{
DBdb=newDB();
();
stringsql="INSERTINTOnews(title,content,posttime,poster,cateID)VALUES('"+title+"','"+content+"','"++"','"+poster+"',"+cateID+")";
intaffectedRows=(sql);
();
returnaffectedRows>0;
}
用户如果想继续添加新闻,则点击“继续“按钮,就可以继续添加新闻,即用户返回添加新闻的页面就可以继续添加新闻了,继续添加新闻的代码如下:
protectedvoidButton2_Click(objectsender,EventArgse)
{ells[0].Text);
NewsWebServicenewsWS=newNewsWebService();
if(uid))
{
("('新闻删除成功!
')");
DataTabledt=();
=dt;
();
}
else
{
=;
="删除失败!
";
}
}
删除新闻在此要调用WebServices方法,在NewsWeb中DeleteNews方法的关键代码如下:
[WebMethod]
publicboolDeleteNews(intnid)
{
eplace("'","''")+"'AND'"+().Replace("'","''")+"'";
SqlDataReaderreader=(sql);
DataTabledt=newDataTable();
(reader);
();
returndt;
}
点击“重新查询”按钮则会重新对新闻进行查询,重新查询的代码是:
protectedvoidButton2_Click(objectsender,EventArgse)
{
ells[0].Text);
NewsWebServicenewsWS=newNewsWebService();
if(cid))
{
("('新闻类别删除成功!
')");
("~/");
}
else
{
=;
="删除失败!
";
}
}
删除新闻类别时调用了WebServices方法DeleteCategory(),中DeleteCategory的关键代码如下:
[WebMethod]
publicboolDeleteCategory(intcid)
{
ells[0].Text);
UserWebServiceuserWS=newUserWebService();
if(uid))
{
("('用户删除成功!
')");
DataTabledt=();
=dt;
();
}
else
{
("('用户删除失败,请联系管理员!
')");
}
}
在上述代码中调用了WebServices方法DeleteUser(),中的DeleteUser方法的代码如下:
[WebMethod]
publicboolDeleteUser(intuid)
{
[2]杨晓东.互联网发展新技术及其应用展望[J].中国教育信息化,2009,(6):
1-2.
[3]唐燕涛.新闻发布系统在高校管理中的应用.高教论坛,2005年03期.131-132.
[4]廖德伟.基于.NET架构的新闻发布管理系统的设计与实现[D].南昌大学,2009.
[5]钱能.C++程序设计教程(第二版)[M].北京:
清华大学出版社,.
[6]Howard.ATaxonomyofComputerandNetworkAttacks[M].
org/research/JHThesis/Word6/Li-vinShen.Projectfeasibilitystudy:
thelceytosuccessfulimplementationofsustainable
andsociallyresponsibleconstructionmanagementpractice[M].journalofCleaner
Production,2010,(18):
254-25