基于ASP的新闻发布系统推荐文档.docx
《基于ASP的新闻发布系统推荐文档.docx》由会员分享,可在线阅读,更多相关《基于ASP的新闻发布系统推荐文档.docx(19页珍藏版)》请在冰豆网上搜索。
基于ASP的新闻发布系统推荐文档
软件项目设计课程设计
报告
专业
班级
学号
姓名
完成日期
课程设计内容与要求
通过实现一个完整的软件,体验软件项目开发的工作流程,加深对相关理论知识的理解,提高实际分析设计能力。
完成软件的需求分析、架构设计、模块划分并编程实现。
指导教师:
年月日
指导教师评语
成绩:
指导教师:
_______________
年月日
一、需求分析
1.1需求说明
在当前社会,信息已成为一种隐型的财富,人们对信息的需求再也不是局限于单纯的电视、报纸等大众途径。
随着Internet在中国的发展日新月异,人们在日常生活中也越来越多地使用这项新技术来为自己的工作和生活服务。
人们通过网络来获取信息的需求越来越大。
基于此种考虑,网络开发者们提出了一种“基于ASP的新闻发布系统”,该系统能够实现在线更新最新新闻、设置新闻分类导航等功能,此外,网站管理员也可在线对后台进行管理,例如新闻的修改、删除等操作,以保证新闻的及时、准确性。
ASP是一种简单的、安全的,性能非常之高的、动态的脚本语言。
ASP可以用来开发Web应用程序,ASP具有较高的执行效率,强大的数据库支持和网络支持,具有多平台特性和极大的开放性和扩充性,拥有广泛的应用前景。
通过相关调研,要求该新闻发布系统应具有以下功能:
(1)通过网络浏览各类新闻及发表评论。
(2)新闻能分类显示相关信息。
(3)提供站内新闻的搜索功能。
(4)为后台管理提供管理入口。
(5)后台管理员能编辑各类新闻并且管理新闻和评论。
1.2开发环境
为了保证新闻发布系统运行的效率和可靠性,服务器应具有较高的软硬件配置,客户端的要求不是很高。
此应用程序可广泛运行于互联网,也可适用于内部的局域网。
其运行要求如下:
软件环境:
客户端:
WindowsXP/7,InternetExplorer(IE)等。
服务器端:
WindowsXP/7,InternetInformationServer(IIS)6.0及其以上版本,IE6.0以上版本等。
数据库:
采用SQLServer2008,运行于服务器端。
硬件环境:
主机:
CPUPentium4以上,内存256M以上。
二、详细设计(系统功能、模块划分及详细设计)
2.1用户功能区和管理员功能区
2.1.1用户功能区
根据用户浏览网站的特点,用户进行以下操作。
(1)用户无需注册就可以查看相应新闻信息。
(2)用户可以在本站内搜索自己感兴趣的新闻浏览。
(3)用户可以对新闻发表自己的评论。
2.1.2管理员功能区
(1)管理员可以进行版块管理,对新闻版块进行添加、修改和删除操作。
(2)管理员可以对自己的登录密码进行修改操作。
(3)管理员可以对新闻评论管理。
(4)管理员可以对各个新闻版块的新闻信息管理,对新闻信息进行添加、修改和删除操作。
2.2模块划分
2.2.1新闻分类浏览
读者可以通过各个大类和小类的各个栏目进行新闻浏览。
显示近期热门新闻,近期图片新闻。
读者能很方便的找到自己感兴趣的主题进行阅读。
2.2.2新闻分类检索
如果读者有很明确的阅读目的,例如知道新闻的标题,作者等相关信息,就可以利用图书搜索功能。
2.2.3添加新闻
管理员都可以发表任何新闻,但必须先进入登录页面。
2.2.4新闻审核
管理员可以对新闻进行修改和删除和评论操作。
2.2.5管理新闻版块
管理员可以对新闻版块进行管理。
2.2.6用户管理
可以在线添加新用户。
2.3用例图
管理员用例图和用户用例图如下图1-1,1-2所示:
图1-1管理员用例图
图1-2用户用例图
2.3实体关系图
新闻发布系统的数据库设计中,可采用E-R图进行数据结构分析。
E-R图是概念模型最常用的表示方法,在E-R图中:
1.用长方形表示实体型,在框内写上实体名。
2.用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连,在无向边旁标上联系的类型。
若实体间的联系也具有属性,则把属性和菱形也用无向边连上。
新闻发布系统的E-R图所下图1-3所示:
管理员(管理员账号,密码);
新闻信息(新闻编号,类别编号,新闻标题,新闻内容,新闻图片相对路径,发布时间,点击率);
新闻版块(版块编号,版块名称);
评论信息(评论编号、评论对应的新闻编号、评论者姓名、评论内容、评论时间)。
图1-3新闻发布系统E-R图
三、数据库设计
根据系统要求,可以创建以下数据表:
3.1新闻信息表:
新闻信息表(allnews)的结构如下图1-4所示:
新闻的大类ID使用的是自动编号,每增加一个新的大类,ID自动加1。
图1-4新闻信息表结构
3.2管理员表:
管理员表(Admin)的结构如下图1-5所示:
图1-5管理员表结构
3.3用户信息表:
用户信息表(Users)的结构如下图1-6所示:
图1-6用户信息表结构
3.4新闻类别表:
新闻类别表(newstype)的结构如下图1-7所示,其初始化信息如下图1-8所示:
图1-7新闻类别表
图1-8新闻类别信息初始化表
3.5评论信息表:
评论信息表(plMessage)的结构如下图1-9所示:
图1-9评论信息表结构
四、系统实现
系统的主要功能代码及运行结果如下。
在web.config文件中配置连接字符串如下:
注册模块的主要代码如下:
protectedvoidButton1_Click(objectsender,EventArgse)
{
UserBLLuserBLL=newUserBLL();
Usersusers=newUsers();
users.UserName=Textuname.Text.Trim();
users.Passwords=Textpwd.Text.Trim();
users.SpecificQuestion=Textqusstion.Text.Trim();
users.Answer=Textanswer.Text.Trim();
users.Tel=Texttel.Text.Trim();
users.Birthday=Convert.ToDateTime(Textbir.Text.Trim());
users.headimg=0;
users.ispower=false;
users.Email=Textemail.Text.Trim();
boolresult=userBLL.Add(users);
ljg.Style.Add("border-style","double");
ljg.Style.Add("padding","10px");
ljg.Style.Add("margin","0px0px10px0px");
if(!
result)
{
ljg.Text="注册失败";
ljg.Style.Add("border-color","#FF0000");
ljg.Style.Add("background-color","#FFC");
}
ljg.Text="注册成功";
ljg.Style.Add("border-color","#9adf8f");
ljg.Style.Add("background-color","#d5ffce");
HYBack.Visible=true;
HYBack.Style.Add("text-decoration","underline");
HYBack.Style.Add("color","blue");
}
其运行结果如下图1-10所示:
、
图1-10注册界面
登录模块的主要代码如下:
protectedvoidButton1_Click1(objectsender,EventArgse)
{if(uername.Text.Trim()!
=""&&Tpwd.Text.Trim()!
="")
{
Usersusers=userBLL.GetUserByUserID(uername.Text.Trim());
if(users!
=null)
{
if(Tpwd.Text.Trim().Equals(users.Passwords))
{
Session["UserName"]=uername.Text;
Session["UserID"]=users.UserId;
pp.Controls.Clear();
Literalli=newLiteral();
li.ID="22";
li.Text="欢迎"+uername.Text+"您的登录"+"
"+"现在你可以点击这里"+"underline;color:
Blue;\"title=\"管理我的新闻">管理我的新闻";
pp.Controls.Add(li);
}
else
{
Response.Write("alert('密码不正确!
');window.location='index.aspx'");
}
}
else
{Response.Write("alert('用户名不存在!
');window.location='index.aspx'");
}
}
else
{
Response.Write("alert('用户名与密码不能为空!
');window.location='index.aspx'");
}
}
其运行结果如下图1-11所示:
图1-11用户登录界面
系统主页运行结果如下图1-12所示:
图1-12新闻发布系统主页
添加新闻模块的代码主要如下:
protectedvoidadd_Click(objectsender,EventArgse)
{
stringusername="";
if(Session["UserName"]!
=null)
{
username=Session["UserName"].ToString();
inttype=Convert.ToInt32(newstype.SelectedValue);
stringtitle=titlename.Text.Trim();
stringbody=fedtior.Value;
if(title.Equals(string.Empty))
{
Label_a.Text="标题不能为空";
Label_a.CssClass="submitNotificationError";
return;
}
if(body.Equals(string.Empty))
{
Label_a.Text="新闻内容不能为空";
Label_a.CssClass="submitNotificationError";
return;
}
allnewsallNews=newallnews();
allNews.atypeId=type;
allNews.author=username;
allNews.body=body;
allNews.hits=0;
allNews.title=title;
allNews.wrtime=DateTime.Now;
boolresult=allNewsBLL.Add(allNews);
if(result)
{Label_a.Text="成功"+"
";
Label_a.CssClass="submitNotificationSuccess";
Label_a.Text="underline;color:
Blue;\">返回上一页";}
else
{
Label_a.Text="失败";
Label_a.CssClass="submitNotificationError";
return;
}
}
其运行结果如下图1-13所示:
图1-13添加新闻界面
新闻管理模块的主要代码如下:
allnewsBLLallNewsBLL=newallnewsBLL();
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
bind();
}
}
publicvoidbind()
{
DataTabledataTableallNews=allNewsBLL.GetAllNewsRecord("");
GridView1.DataSource=dataTableallNews;
GridView1.DataKeyNames=newstring[]{"newsid"};//主键
GridView1.DataBind();
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
this.GridView1.PageIndex=e.NewPageIndex;
this.bind();
}
//点击编辑后执行的
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
GridView1.EditIndex=e.NewEditIndex;
bind();
}
//点更新后数据更新到数据库
protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse)
{
intnewID=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
stringtitle=((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString().Trim();
allnewsallNews=allNewsBLL.GetNewsByNewID(newID);
if(allNews!
=null)
{
allnewsallANews=newallnews();
allANews.atypeId=allNews.atypeId;
allANews.author=allNews.author;
allANews.body=allNews.body;
allANews.hits=allNews.hits;
allANews.title=allNews.title;
allANews.newsid=allNews.newsid;
allANews.wrtime=DateTime.Now;
boolresult=allNewsBLL.Update(allANews);
if(!
result)
{
Response.Write("alert('修改失º败');window.location='inglnews.aspx'");//刷新到当前页面
return;
}
bind();
}
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
intnewID=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
boolresult=allNewsBLL.Delete(newID);
if(!
result)
{
Response.Write("alert('删¦除失败');window.location='inglnews.aspx'");
return;
}
bind();
}
protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)
{
GridView1.EditIndex=-1;
bind();
}
其运行结果如下图1-14所示:
图1-14管理新闻界面
由于篇幅所限,在此就不对所有模块一一叙述了,只列举了几个比较重要的模块。
五、总结
经过两个星期的设计和开发,新闻发布系统基本开发完毕。
我在理论和实践两方面的能力都得到了锻炼。
其功能基本符合新闻发布需求,能够完成新闻发布、新闻修改和新闻显示以及新闻评论。
通过本次课程设计,我进一步了解了系统的开发过程和规范。
本系统做到了用户能方便进行新闻浏览并且可以发表自己的评论,管理员可以对新闻信息和评论信息进行修改、删除等操作。
对于新闻分类的问题也通过程序进行了有效的解决。
为了做出该新闻发布系统,访问了大量Web网络开发方面的网站,搜集了大量关于ASP和SQL的中英文资料,也查阅了大量书籍的源代码作为参考和运用,从中学会了许多ASP和关于Web开发方面的知识。
但是由于课程设计时间较短,所以该系统还有许多不尽如人意的地方。
比如页面设计内容不是十分丰富,用户界面不够美观,密码安全处理不够等多方面问题,这些都有待进一步的改善。
在本次课程设计中,我从指导老师身上学到了很多东西。
老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅,非常感谢他们耐心的辅导。
同时我还要感谢在课程设计期间给我帮助的同学们。