ASP新闻发布系统.doc_第1页
ASP新闻发布系统.doc_第2页
ASP新闻发布系统.doc_第3页
ASP新闻发布系统.doc_第4页
ASP新闻发布系统.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

存档资料 成绩: 华东交通大学理工学院课 程 设 计 报 告 书所属课程名称 ASP.NET程序设计项目教程 题 目 基于ASP.NET的新闻发布系统 分 院 电 信 分 院 专业班级 电子商务2011-2 学 号 20110210460228 学生姓名 龚 云 凯 指导教师 程 志 平 2014年1月1日 华东交通大学理工学院课程设计报告目录第1章 前言1第2章 系统分析21.1系统需求分析21.2开发环境2第3章 系统设计43.1 系统架构43.3数据库的设计5第3章 网站的主要功能设计71. 登陆界面的设计72.会员注册界面83. 管理员登陆103.1新闻的添加113.2新闻的添加与删除123.3新闻的搜索133.4新闻的修改143.5新闻的删除143.6批量删除153.7用户的删除与查看173.8留言的删除与查看184. 普通用户的登陆:184.1新闻的浏览184.2浏览新闻194.3收藏夹功能204.4留言功能214.5显示所有留言214.6个人资料的修改22第4章 系统调试264.1程序调试概述264.2调试本系统分析26第5章 设计心得28参考文献(资料)29第 29 页 共 32 页第1章 前言在我国,由于网民数目的大量增多,新闻媒介逐渐由纸质变为网络化信息化,新闻发布系统在我国虽然起步晚,但是研发和进步速度巨大,所用技术多种多样,逐渐同世界先进设计接轨,常用的技术如Asp,Jsp,PHP等等,网络编程发展已逐渐成为一种产业。相较于国内,国外的网络更为发达和普及,互联网全球的发展形势是这样的:由于带宽的增长,尤其是在国外发达国家已经实现了光纤到户,日本、韩国这些国家。像美国因为它的有线网和卫星网的之间竞争,加上电信网络运营商,也在大量发展固网的光纤业务,所以互联网的业务多样化,而且非常高带宽化,五年以前大家接触的互联网,还是打开网上看新闻,现在做的比较多的,一个是搜索,一个是互联网社区,比如开心网、校园网,再一个就是下载音乐、视频、在线观看,互联网一个重要的趋势,就是高带宽的应用已经成为人们主流的应用。网络的发展必定带来信息量的增加,尤其是新闻发布系统更是层出不穷,应用范围巨大。 常见的新闻发布管理系统种类有两种:一种是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用;另一种是基于ASP和脚本语言,将动态网页和数据库结合,通过应用程序来处理新闻,这是目前较为流行的做法。 本文研究的思路及主要成果 该系统是基于B/S(Browser/Server,浏览器/客户端)模式实现,基于.NET平台架构开发设计,主要实现对校园新闻的发布与管理功能,对新闻内容信息的浏览阅读等。 随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。第2章 系统分析1.1系统需求分析 随着信息化产业逐渐进入各行各业,并成为经济的基础,对实行信息化必须有一个明确的方向,这也是客不容缓的事。新闻信息作为当前信息化的重要组成部分,而新闻管理作为新闻信息中的一个重要环节,必须同信息化同步,以促使整个经济和新闻事业的发展。 本系统功能模块包括:新闻管理,用户管理,系统管理模块、留言、留言的删除与管理。数据的操作主要是:数据添加、数据修改、数据查询。“管理员用户”实现的功能如下:一、“新闻管理”是对新闻添加、新闻审核、新闻转移、新闻管理,通过数据库绑定控件实现对信息直接的增、删、查、改。二、“留言的查看/删除”实现的功能是对留言的查看和删除。三、“用户管理”是对后台的用户进行管理,用户账号信息的更和添加管理员。“普通用户”所具备的的功能:1、 新闻的浏览与留言。2、 对新闻添加收藏。3、 修改个人的资料。 1.2开发环境 数据库是数据管理的一种技术,是计算机科学的一个分支。数据库管理系统已发展成为现代通用系统软件。由于数据库具有数据的结构化、可控冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。 由于用到的数据表格多,另外考虑到实际情况,我们选用SQL Server作为数据库开发,而没有选择Access,主要是因为Access存放的记录,在实际运用中不适合此系统;而SQL Server是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用SQL Server数据库。用C#语言进行编码。C#编程语言是微软在.NET计划中重要的开发语言,它具有语法简单,功能强大,快速应用,语言自由,强大的Web服务器控件,支持跨平台,与XML相融合等。因此选择C#编程语言。ASP.NET是Active Server Page.NET Framework的缩写,意为“基于动态WEB应用程序的技术服务器网页”。ASP. NET是微软公司开发的代替ASP的一种应用,它可以与数据库和其它程序进行交互,是一种功能强大的编程工具。ASP. NET的网页文件的格式是.aspx,现在常用于各种动态网站中。ASP. NET是一服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP. NET网页可以包含HTML标记、普通文本、脚本命令、.css、以及COM组件等。利用ASP.NET可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的Web应用程序。与HTML相比,ASP.NET网页具有以下特点:(1)利用ASP.NET可以实现突破静态网页的一些功能限制,实现动态网页技术;(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;(3)服务器上的ASP.NET解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;(4)ASP.NET提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。(5)ASP可以使用服务器端ActiveX组建来执行各种各样的任务。第3章 系统设计3.1 系统架构进入该发布系统根据级别的不同分为管理员和普通的用户,所拥有的功能如下图所示:新闻的浏览普通用户登陆新闻的留言留言的查看个人资料的修改新闻发布系统用户的删除与管理新闻的增删查改留言的查看,删除管理员登陆新闻发布管理模块业务流程图:3.3数据库的设计根据所需要实现的功能,共设计6张数据表设计数据库的名称为news,共设6张表,名为admin(管理员的信息)、users(普通用户的信息)、collection(存放用户收藏的信息)、leave_word(存放用户留言的信息)、news(新闻的内容)、photos(图片信息)。数据表的创建(以news表为例),设置newsid为主键,同时作为表user、collection、leave_word、photo四张表的辅键,设置的属性如下图所示:创建news表的代码如下:CREATE TABLE dbo.news(newsid int IDENTITY(1,1) NOT NULL,subjects varchar(50) NULL,contents varchar(1000) NULL,sysdate datetime NULL,type int NULL,author varchar(10) NULL,seenum int NULL, CONSTRAINT PK_news_76CBA758 PRIMARY KEY CLUSTERED (newsid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYALTER TABLE dbo.news ADD CONSTRAINT DF_news_seenum_77BFCB91 DEFAULT (0) FOR seenumGO创建好所有的表格之后,各个变量形成以下的函数依赖关系:第3章 网站的主要功能设计1. 登陆界面的设计登陆界面需要实现以下功能:1. 输入用户名和密码,输入后能通过数据的调用,提示相关的错误。当输入正确的用户名和密码后进入相关页面。2. 可以新用户的注册。3. 可以选择用户的级别(管理员和普通用户)。设计完毕后,效果如如下所示:确定按钮的代码如下:protected void btnConfirm_Click(object sender, System.EventArgs e)if(this.rBtnUser.Checked)string sql=select * from users where username=+this.txtUserName.Text+ and userpwd=+this.txtPwd.Text+;if(DB.ExecuteSqlEx(sql)=1)Response.Write(javascript:alert(验证失败!请注册后再登录););elseSessionusername=this.txtUserName.Text;Response.Redirect(default.aspx);elsestring mysql=select * from admin where adminname=+this.txtUserName.Text+ and adminpwd=+this.txtPwd.Text+;if(DB.ExecuteSqlEx(mysql)=1)Response.Write(javascript:alert(请使用正确的账户登录!););elseSessionadminname=this.txtUserName.Text;Response.Redirect(manage.aspx);用户注册按钮的代码:protected void lBtnRegister_Click(object sender, System.EventArgs e)Response.Redirect(register.aspx);2.会员注册界面点击会员注册按钮后,跳转入register.aspx页面,该页面的效果图如下所示: 点击确定按钮触发btnConfirm_Click事件,执行以下代码时,首先调用CheckUserName函数,该函数的功能是检测注册的用户名是否已存在,当用户填完正确的信息后会提示“恭喜!您已注册成功,请登录”,否则则提示“您使用的用户名已存在!”代码如下所示:protected void btnConfirm_Click(object sender, System.EventArgs e)if(this.CheckUserName(this.txtUserName.Text)string sex=;if(this.rBtnM.Checked)sex=男;elsesex=女;int age=0;age=Convert.ToInt32(this.txtAge.Text);string sql=insert into users(username,userpwd,sex,age,email) values(+this.txtUserName.Text+,+this.txtPwd.Text+,+sex+,+age+,+this.txtEmail.Text+);if(DB.ExecuteSql(sql)=0)Response.Write(javascript:alert(恭喜!您已注册成功,请登录););Response.Redirect(login.aspx);elseResponse.Write(javascript:alert(您使用的用户名已存在!););protected void btnCancel_Click(object sender, System.EventArgs e)Response.Redirect(register.aspx);private bool CheckUserName(string username)string sql=select * from users where username=+username+;if(DB.ExecuteSqlEx(sql)=1)return false;elsereturn true;3. 管理员登陆管理员可实现的功能有新闻的添加、删除、修改,用户的查看、删除,留言的查看与删除。以管理员的身份登陆后,进入以下页面:进入该页面后拥有管理新闻,管理用户,管理留言三大模块。3.1新闻的添加点击进入新闻的添加页面,并输入相关的新闻信息,出现如下图所示的效果图:鼠标单击按钮的触发事件:protected void btnConfirm_Click(object sender, System.EventArgs e)string datetime=DateTime.Now.ToString();string sql=insert into news(subjects,author,contents,type,sysdate) values(+this.txtsubject.Text+,+this.txtauthor.Text+,+this.txtcontent.Text+,+dl1.SelectedItem.Value+,+datetime+);DB.ExecuteSql(sql);Response.Write(javascript:alert(添加成功!););sql=select * from news where sysdate=+datetime+;conn.Open();SqlCommand cmd=new SqlCommand(sql,conn);Sessionnewsid=cmd.ExecuteScalar().ToString();当新闻添加成功后会弹出一个对话框,如下图所示:3.2新闻的添加与删除当点击修改/删除新闻按钮时,会进入以下的页面,该页面功能有新闻的搜索,修改及删除。当页面载入时会执行Page_load事件,并执行一下代码,得到下图所示的页面:protected void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面if(!this.IsPostBack)this.btndelselect.Attributes.Add(onclick,return confirm(确认删除吗?);this.BindToDataGrid();3.3新闻的搜索新闻的搜索可以分为按作者查找、按主题查找、按内容查找,以按主题查找为例,在新闻搜索框中输入123,并按照标题查找,得到如下图所示的结果:代码如下:protected void btnfind_Click(object sender, System.EventArgs e)find=this.ddlfind.SelectedItem.Value;findcontent=this.txtfind.Text;this.dg.CurrentPageIndex=0;this.BindToDataGrid();3.4新闻的修改当点击编辑后,会跳转到一个名为 modifynew.asp 的页面,在此页面可以对新闻进行编辑,再次进行类似于新闻添加的代码操作。3.5新闻的删除新闻的删除分为批量删除和单个新闻的删除。单个新闻的删除即直接点击删除字样,选中名为123标题的新闻,此时如图所示,点击删除操作后,页面如下图所示: 代码如下所示:private void dg_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)string newsid=this.dg.DataKeyse.Item.ItemIndex.ToString();string sql=select * from photo where newsid=+newsid+;conn.Open();SqlCommand cmd=new SqlCommand(select * from photo where newsid=+newsid+,conn);SqlDataReader sdr=cmd.ExecuteReader();while(sdr.Read()string fileName=sdrfilename.ToString();File.Delete(Server.MapPath(upload)+fileName);sdr.Close();conn.Close();string sql1=delete from photo where newsid=+newsid+;DB.ExecuteSql(sql1);string sql2=delete from leave_word where newsid=+newsid+;DB.ExecuteSql(sql2);string sql3=delete from collection where newsid=+newsid+;DB.ExecuteSql(sql3);string sql4=delete from news where newsid=+newsid+;DB.ExecuteSql(sql4);this.BindToDataGrid();3.6批量删除当许多的新闻都需要进行删除时,一个一个的进行删除就会显得十分的繁琐,为了是更加的任性话,加入了批量删除的功能。在这我们如需删除标题名为国际新闻和国家主席习近平发表的新闻内容,我们可以 选中删除后面的多选框,然后点击页面下方的“选中删除内容”按钮,会弹出确认删除的对话框,点击确定即可对选中的新闻进行删除操作。效果图如下所示:点击“删除选中新闻”按钮所触发的按钮代码如下:protected void btndelselect_Click(object sender, System.EventArgs e)foreach(DataGridItem dl in this.dg.Items)CheckBox chk=(CheckBox)dl.FindControl(chkSelect);if(chk.Checked)string newsid=this.dg.DataKeysdl.ItemIndex.ToString();conn.Open();SqlCommand cmd=new SqlCommand(select * from photo where newsid=+newsid+,conn);SqlDataReader sdr=cmd.ExecuteReader();while(sdr.Read().string fileName=sdrfilename.ToString();File.Delete(Server.MapPath(upload)+fileName);sdr.Close();conn.Close();string sql1=delete from photo where newsid=+newsid+;DB.ExecuteSql(sql1);string sql2=delete from leave_word where newsid=+newsid+;DB.ExecuteSql(sql2);string sql3=delete from collection where newsid=+newsid+;DB.ExecuteSql(sql3);string sql4=delete from news where newsid=+newsid+;DB.ExecuteSql(sql4);this.BindToDataGrid();点击“删除选中新闻”按钮后弹出如下图对话框代码如下:private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)if(e.Item.ItemType=ListItemType.Item|e.Item.ItemType=ListItemType.AlternatingItem)(LinkButton)e.Item.Cells3.Controls0).Attributes.Add(onclick,return confirm(确认删除吗?);3.7用户的删除与查看点击查看/删除用户,进入updateusers页面,在此页面可以进行用户的搜索、查看用户的信息,删除用户,批量删除操作,由于这些功能与新闻的添加删除,修改所使用的方法类似,代码便不再重复,下面是效果演示:用户的查找:用户的删除3.8留言的删除与查看当用户浏览新闻,对新闻内容作出评价是,作为管理员需要审核这些评论的内容,当评论的内容有不符合网络规范以及相关法律法规时需要对留言进行删除操作。由于代码的内容与新闻的添加删除类似,在此便不做累述。4. 普通用户的登陆: 普通用户所需要的功能是对新闻的浏览,评论,以及用户信息的修改。4.1新闻的浏览 用户输入正确的账号密码登陆后,即可进入主页面。页面的效果图如下所示: 在此页面需要实现当用户未登录,直接访问此页面时,会识别用户的登陆状态,从而直接跳转到用户登陆页面,控制此功能的代码如下:protected void Page_Load(object sender, System.EventArgs e)if(Sessionusername=null&Sessionadminname=null)Response.Redirect(login.aspx);/ 在此处放置用户代码以初始化页面4.2浏览新闻当用户点击新闻标题后,进入浏览界面,效果如如下所示:加载选中的新闻是,所调用的代码如下:public partial class shownew : System.Web.UI.PageSqlConnection conn=DBController.CreateConn();protected void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面if(!this.IsPostBack)int newsid=Convert.ToInt32(Request.QueryStringnewsid);see();string sql=select * from news where newsid=+newsid;SqlCommand mycmd=new SqlCommand(sql,conn);conn.Open();SqlDataReader getdata=mycmd.ExecuteReader();while(getdata.Read()this.txtsubject.Text=getdatasubjects.ToString();this.txtcontent.Text=getdatacontents.ToString();this.sysdate.Text=getdatasysdate.ToString();this.seenum.Text=getdataseenum.ToString();mycmd.Dispose();getdata.Close();conn.Close();this.BindToDataGrid();this.BindToTable();4.3收藏夹功能在此页面可以观看新闻,可以将喜欢的新闻加入收藏夹中,可以对新闻内容进评论,可以对其他留言观看。添加入收藏夹功能的实现点击触发btnAddToCollection_Click事件,并把用户名与新闻的编号读入数据库中,并弹出对话框提示添加成功,相关数据加入到collection数据表中。代码如下:protected void btnAddToCollection_Click(object sender, System.EventArgs e)string newsid=(Request.QueryStringnewsid).ToString();conn.Open();string sql=insert into collection(username,newsid) values(+Sessionusername+,+newsid+);SqlCommand cmd=new SqlCommand(sql,conn);cmd.ExecuteNonQuery();conn.Close();Response.Write(javascript:alert(已添加到您的收藏夹!););此时收藏夹的页面如下图所示:4.4留言功能对新闻评论功能的实现:当用户浏览完新闻,需要发表一下自己的见解,写好自己想说的内容之后,提交评论,此时触发btnConfirm_Click事件,调用以下代码:protected void btnConfirm_Click(object sender, System.EventArgs e)if(Page.IsValid)int newsid=Convert.ToInt32(Request.QueryStringnewsid);string sql=insert into leave_word(username,newsid,title,content,posttime) values(+Sessionusername+,+newsid+,+this.txttitle.Text+,+this.txtcont.Text+,+DateTime.Now.ToString()+);conn.Open();SqlCommand mycmd=new SqlCommand(sql,conn);mycmd.ExecuteNonQuery();mycmd.Dispose();conn.Close();this.BindToTable();4.5显示所有留言当用户需要观看其他会员的留言时,点击“显示所有留言”,触发BtnShowAllLeaveWord_Click事件,并且跳转入showlw.aspx 页面。点击后效果如如下所示:protected void lBtnShowAllLeaveWord_Click(object sender, System.EventArgs e)string newsid=(Request.QueryStringnewsid).ToString();Response.Redirect(showlw.aspx?newsid=+newsid);4.6个人资料的修改当用户需要对个人的信息进行修改时,点击导航条上方的修改资料,进入如下页面:当填好信息后,点击确认即可修改个人信息,此时用户的信息被写回到数据库的user表中。代码如下:protected void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面if(!this.IsPostBack)conn.Open();string sql=select * from users where username=+Sessionusername+;SqlCommand cmd=new SqlCommand(sql,conn);SqlDataReader sdr=cmd.ExecuteReader();if(sdr.Read()this.txtUserName.Text=sdrusername.ToString();this.txtPwd.Text=sdruserpwd.ToString();this.txtPwdConfirm.Text=sdruserpwd.ToString();this.txtAge.Text=sdrage.ToString();this.txtEmail.Text=sdremail.ToString();if(sdrsex.ToString()=男)this.rBtnM.Checked=true;elsethis.rBtnF.Checked=true;sdr.Close();conn.Close();override protected void OnInit(EventArgs e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/InitializeComponent();base.OnInit(e);/ / 设计器支持所需的方法 - 不要使用代码编辑器修改/ 此方法的内容。/ private void InitializeComponent() #endregionprotected void btnConfirm_Click(object sender, System.EventArgs e)string sex;if(this.rBtnM.Checked=true)sex=男;elsesex=女;string sql=update users set userpwd=+this.txtPwd.Text+,sex=+sex+,age=+this.txtAge.Text+,email=+this.txtEmail.Text+ where username=+Sessionusername+;DB.ExecuteSql(sql);Response.Write(javascript:alert(更新成功!););第4章 系统调试4.1程序调试概述程序调试是根据软件开发各阶段的规格说明和程序的内部结构,而精心设计一批测试用例,并利用这些数据运行程序、发现错误的过程。是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。程序调试主要有两种方法,即静态调试和动态调试。程序的静态调试就是在程序编写完以后,由人工“代替”或“模拟”计算机,对程序进行仔细检查,主要检查程序中的语法规则和逻辑结构的正确性。实践表明,有很大一部分错误可以通过静态检查来发现。通过静态调试,可以大大缩短上机调试的时间,提高了效率。 程序的动态调试贯穿在编译、连接和运行的整个过程中。根据程序编译、连接和运行时计算机给出的错误信息进行程序调试,是程序调试中常用的方法,也是最初步的动态调试。在此基础上,通过“分段隔离”、“设置断点”、“跟踪打印”进行程序的调试。 动态调试常用两种方法:黑盒法和白盒法。黑盒法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和特征,只依据需求说明书检查程序功能;白盒法是把测试对象看作一个打开的盒子,测试人员必须了解程序内部结构,对所有逻辑路径进行测试。 实践表明,对于查找某

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论