欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    湖南大学计算机科学与技术本科毕业论文.doc

    • 资源ID:103695       资源大小:721KB        全文页数:22页
    • 资源格式: DOC        下载积分:5
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要5
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    湖南大学计算机科学与技术本科毕业论文.doc

    1、HUNAN UNIVERSITY毕 业 论 文题目:基于的新闻发布系统的设计与开发 学生姓名 罗 某 某 学 号 123456 年级专业 xx级计算机科学与技术 指导老师 某 老 师 指导组长 某 老 师 二00九年八月二十六日目 录摘要1关键词1英文翻译1前言3正文3一、基于Web的新闻发布系统设计与开发的现状及解决方案3二、基于的新闻发布系统的系统分析和总体设计4(一)系统分析4(二)系统的总体设计4三、基于的新闻发布系统的系统实现5(一)数据库的实现5(二)通用方法与属性的定义6(三)用户登录的实现7(四)新闻的添加9(五)新闻的修改10(五)详细页13(六)主详细页的分页13四、系统发

    2、布与维护18(一)系统发布18(二)系统维护19五、结束语19参考文献19致谢20基于的新闻发布系统的设计与开发 罗某某指导老师:刘某某(湖南大学,湖南 长沙,410000)摘要 本文以一个简单的项目为例子,阐述了一个基于的新闻发布系统的设计与开发的过程。首先从基于Web的新闻发布系统设计与开发的现状及解决方案入手,提出了现在Web的新闻发布系统面临的问题并指出了解决的方案。然后进行了简单的系统分析,指出用ASP. NET开发新闻发布系统的可行性和一些适当的选择。本文以系统设计与开发为重点展开,从数据库的实现、通用方法与属性的定义、用户登录的实现、新闻的添加、修改以及主详细页的分页等方面全面阐

    3、述这一开发过程。最后告诉读者系统部署和系统维护的一般过程和方法,并在结束语中指出真实项目开发与本文阐述的一般原理的不同。关键词 ASP. NET系统分析 主详页 分页 C# IISThe Design and Development Based on News Publishing SystemAuthor: LuoxiangdongGuide Teacher: Liuhaisha(Hunan Uiversity, Changsha Hunan, 410000)Abstract In this article, a simple project as an example, describes

    4、 a process of the design and development based on press release. First, according to the present situation and solution of the design and development based on Web News Publishing System, it proposes a question that the Web News Publishing System faces now and points out a plan of solution. Then with

    5、 some simple systematic analyzing, it puts forward some suitable choices and the possibilities of the usage of to develop the News Publishing System. Focusing on the design and development of the System, this article unfolds, from the database implementation, the definition of common methods and pro

    6、perties, the implementation of users logining, news addition, modification, the distinction between master detail pages and detailed pages and to many other aspects, it relates the whole process of the development. Finally, it tells the reader the general process and methodology of system deployment

    7、 and maintenance, and in closing remarks it also points out the difference between the actual project development and general principles explained in this article. Key words , System Analysis, Master Details Page, C #, IIS前 言自1969年ARPAnet运行以来的40年里,互联网取得到了突飞猛进、日新月异的发展。Web应用是互联上最有名的应用之一,它自上世纪90年代初期诞生以

    8、来同样发展迅猛。中国以发出“越过长城,走向世界”为内容的第一封电子邮件为起点,现在已发展成有近4亿网民、三百多万家网站的网络大国。在众多的网站中,一般都有一个或多个新闻发布系统。并且,由于Web系统开发的相似性,各大网站上的其它系统,如Blog、公文发布系统等都与新闻发布系统类似。开发新闻发布系统的方法、语言和架构很多,其中以与JSP最有发展前途和应用价值。本文以一个简单的新闻发布系统为例子,向读者阐明基于的新闻发布系统的设计、开发和部署的全过程。本文所用操作系统为Windows Server 2003,所用Web服务器为,主要开发工具为Microsoft Visual Studio 2005

    9、开发平台为Microsoft .NET Framework V,主要语言为C#和SQL,客户端浏览器为Microsoft IE6.0和7.0。一、基于Web的新闻发布系统设计与开发的现状及解决方案Web开发都是建立在 (HyperText Transfer Protocol)协议之上的,在客户端一般都以标准的HTML(HyperText Mark-up Language)语言和JavaScript以及CSS(Cascading Style Sheets)作为载体来表达。客户端如Microsoft IE、FireFox等浏览器解释上述客户端语言,将一个真正的图形用户界面呈现给用户。不同的Web

    10、开发系统开发不同之处一般体现在服务器端,包括服务器端的开发语言、运行环境、数据库系统。目前服务器端的开发语言与运行环境主要有ASP、JSP、PHP,各种语言与环境各有其优缺点。ASP是微软于上世纪90年代后期发布的Web开发语言和架构,由于其运行环境要求低、配置简单、对开发人员要求低而风靡世界一时。但是,ASP有许多固有的缺点,比如其书写语言VBScript和Jscript都不是面向对象的、网页运行时每一次都要编译、安全性低等。由于这些缺点其本身都无法克服,所以微软在2000年中期推出了ASP的全新替换版本。是ASP的全新替换版本而不是其简单升级,提供了诸于完全面向对象、可编译、完整的IDE支

    11、持、更多的实用对象和高安全性等许多优点。在基于微软的开发平台上,大部分新的Web开发都采用。可以预见未来一段时间里将是微软平台上的主流Web开发架构,现在工作在Web设计、开发和管理一线的计算机工程师都有必要掌握基于的系统设计与开发的一般过程。二、基于的新闻发布系统的系统分析和总体设计(一)系统分析新闻发布系统的主要功能是实现将政府或者其它组织的实时内容发布到互联网上,主要内容是文字和图片。一般组织中的新闻不是特别多,可以采用Microsoft Office Access数据库。大型组织的网站可能内容特别多、访问量特别大、对安全性要求特别严,一般可以采用Microsoft SQL Server

    12、 2005/2008服务器型数据库系统。本文为演示方便,采用Access数据库。新闻发布系统只能运行在Microsoft .NET Framework上,目前可供选择的.NET Framework版本主要有1.0版、1.1版、2.0版、3.0版、3.5版。在目前选择2.0版比较适合一般用户,它开发简单、网络上实例多、功能实用。Microsoft .NET Framework目前只能运行在Microsoft Server系统服务器上,可供选择的有Windows 2000 Server、Windows Server 2003、Windows Server 2008。在目前选择Windows Ser

    13、ver 2003比较适合一般用户,它安全、稳定、价格相对便宜。开发程序一般用到Microsoft Visual Studio开发工具,目前可供选择的有Visual S 2003、Visual Studio 2005、Visual Studio 2008。在目前选择Visual Studio 2005比较适合一般用户,它稳定、与.NET Framework V结合性好、用户群体大。上述分析结果适合大部分组织和开发人员,也满足大部分组织对新闻发布系统的要求。(二)系统的总体设计新闻发布系统一般包括主详细页,用于显示标题以引导用户浏览新闻。包括一个详细页,用于显示详细内容以供用户浏览。另外,新闻发布

    14、系统正式运行后,其内容要能在线添加,故需要一个后台管理系统。在管理后台之前,需要有一个登录程序以便验证用户的权限。后台管理系统一般包括用户对新闻内容及其属性的修改,对登录用户名与密码的修改。流程图如下:登录成功后台(插入,管理)用户登录插入成功详细页主详细页更 新三、基于的新闻发布系统的系统实现(一)数据库的实现打开Microsoft Office Access 2003新建一个数据库,命名为NewsSystem.mdb。如果所用Access版本是Microsoft Office Access 2007,其默认的文件后缀名已变成.accdb。.accdb才可使用。但目前大部分服务器上并不提供此

    15、程序,故在Microsoft Office Access 2007中仍然需要建立成Microsoft Office Access 2003的.mdb格式。一般一条新闻包含标题、作者、发布时间、浏览次数等基本属性,还可能包含像“是否是热点新闻”、“是否是站长所推荐的内容”等附加属性。在刚才所建立的NewsSystem.mdb中新建一个表,名称为TableArticle,将ID设为主键以自动编号,并设置相应的字段,如图:另新建一个表用于保存用户名与密码等信息,一般有唯一ID号、用户名和密码等属性。在中新建一个表,名称为TableUser,将ID设为主键以自动编号,并设置相应的字段,如图:(二)通用

    16、方法与属性的定义在一个计算机软件系统中,一般有一些方法与属性是通用的。支持通用方法与属性的定义,.NET平台支持DLL文件的自动注册,是.NET平台的一员自然也支持。在已编译的系统里,通用方法被放置在Bin目录(二进制目录)中。在未编译的系统里,程序员应该将通用方法所在的类放置在App_Code(应用程序代码)目录中。具体操作是在Visual Studio 2005先建立一个网站,选择语言为C#,并将网站名称命名为NewsSystem。在NewsSystem下新建立一个目录,命名为App_Code。在App_Cod下建立一个类(Class),命名为DB。在DB中用C#语言定义两个常用的通用方法

    17、和属性:(1)数据库连接字符串属性StrConpublic static string StrCon /数据库连接字符串 get string strCon = Provider=Microsoft.Jet.OleDb.4.0; strCon += Data Source=; strCon += D:/ NewsSystem/NewsSystem.mdb; /假设数据库放在D:/ NewsSystem目录下 /实际开发时此路径一般写入新闻 return strCon; (2)访问数据库的通用方法public static DataTable Table(string sql) OleDbDat

    18、aAdapter objAda = new OleDbDataAdapter(sql, DB.StrCon); / DB.StrCon为上面定义的StrCon属性 objAda.TableMappings.Add(Table, Table2); DataSet objDs = new DataSet(); objAda.Fill(objDs); objAda.Dispose(); return objDs.TablesTable2;上述方法与属性定义在名为DB的类中,DB类的属性为公共静态,以便外部对象可访问。构造函数为私有,以防被外部对象实例化。以上的Table(string)方法使用Ole

    19、Db数据提供程序访问数据库,OleDb数据提供程序能访问所有的关系型数据库,包括Access、FoxPro等。要访问SqlServer、Oracle等服务器型数据库,有更快、更强、更安全的实用对象SqlDataAdapter可使用。除访问数据库的通用方法与属性外,一般还需要定义一些与本应用属性相关的方法与属性,最常见的是获取网站当前运行的虚拟路径的字符串,代码如下:/应用程序的根虚拟路径,此属性返回的值总是以一个“/”结尾public static string WebRootPath() string result = HostingEnvironment.ApplicationVirtua

    20、lPath; if (resultresult.Length - 1 != /) /当应用程序的目录是虚拟目录时, /返回时带有一斜杠 /当应用程序处于根根目录时则没有一斜杠 result += /; return result;此方法在一般网站中调用非常多,原因是开发网站时所用的虚拟路径与网站真正运行时的虚拟路径往往不同。(三)用户登录的实现在。在Login.aspx的设计器插入所需要的控件,最后效果如下图:其中输入用户名的asp:TextBox控制命名为TextBoxUid,输入密码的asp:TextBox控制命名为TextBoxPwd,登录的asp:Button控制命名ButtonLog

    21、in,其事件句柄OnClick=ButtonLogin_Click。当用户输入用户名与密码并单击登录后,Web窗体开始执行下列ButtonLogin_Click,代码如下:protected void ButtonLogin_Click(object sender, EventArgs e) string strUid = this.TextBoxUid.Text; string strPwd = this.TextBoxPwd.Text; string sql = select from TableUser ; sql += where StrUid= +strUid + and StrPw

    22、d=+strUid +; DataTable dt = DB.Table(sql); if (dt.Rows.Count = 1) /验证成功,建立会话变量 this.SessionLoginSuccess = true;/用户登录成功为真 this.Response.Redirect(Insert.aspx); /重定向到Insert.aspx页面,此页用于添加新闻 else this.Response.Write(登录未成功,用户名或者密码错); /验证未成功,提示用户名或者密码错 在用户输入用户名与密码时一般要对输入的内容作简单的限定,即只能输入字母、数字、下划线、汉字等字符,而不能输入

    23、单引号等其它字符,代码如下。function checkKeyCode()var n = event.keyCode;var c = n=48&n=65&n=97&n=122);c |= (n=95)|(n=13)|(n=64);if(c) if(n = 13) fnCts ();/ 此方法调用服务器数据,用Ajax实现 return false; return true;alert(只能输入字母、数字、下划线、汉字。);return false;方法checkKeyCode()在文本框发生onkeypress事件时执行。(四)新闻的添加用户登录成功后就重定向到了页面,这一页面用于向数据库中插

    24、入新的新闻记录。由于这一页其实是一个管理页,所以除了插入新闻记录的功能外,还提供了如“修改记录”、“删除记录”、“管理网站文件”、“修改用户名与密码”等功能。限于篇幅,在此不一一展开。此页的效果如下图:“添加文章”是一个绑定了JavaScript回发事件的服务器链接,回发事件是中的重要概念。其功能用JavaScript实现,核心代码是:var theForm = document.formsformCenter;if (!theForm) theForm = document.formCenter;function _doPostBack(eventTarget, eventArgument)

    25、 /回发事件 if (!theForm.onsubmit | (theForm.onsubmit() != false) ET.value = eventTarget; theForm._EVENTARGUMENT.value = eventArgument; theForm.submit(); 当管理员单击“添加文章”链接时,就会把当前页面上的必要信息以视图状态(ViewStatus,用表单的隐藏域保存)数据的形式发送到服务器。服务器接收到视图状态数据后开始分析,会发现用户单击是的“添加文章”链接。然后执行一个事件(Event)监听方法,链接的服务器标记中指定单击时执行的方法的形式为OnCl

    26、ick=LinkButtonInsert_OnClick。LinkButtonInsert_OnClick()方法的代码如下:protected void LinkButtonInsert_OnClick(object sender, EventArgs e) string strTitle = 记录未初始化,请点击修改; string dtmAddTime = DateTime.Now.ToString();/当前时间 string sql = insert into TableArticle ; sql += (strTitle, lngClickCount, dtmAddTime, ;

    27、sql += isHot, isCommand, isPhotoAndText) ; sql += values ( + strTitle + , 0, + dtmAddTime + ; sql += , 0, 0, 0); DB.Table(sql);/执行sql语句 this.Response.Redirect(ShowSmallClass.aspx);(五)新闻的修改用户插入一条记录成功后,就重定向到了,此页用于显示某个小类型的主详细信息。刚插入的记录会显示在最上方,其标题是“记录未初始化,请点击修改”。点击此链接进入详细页。在上判断当前管理员是否已登录成功,如果成功则显一个“修改”,如

    28、图:上述图中的“修改”在管理员没有成功登录时不会显示,现在管理已成功登录,所以可以单击“修改”,进入更新内容页。页的逻辑比较复杂,在客户端要用大量的JavaScript与CSS处理,在服务器端要用大量的C#与SQL与处理。最后效果如图:要实现上述功能,要执行的代码很多,在客户端实现一个编辑器的关键代码是:第一、在html文档中插入下列代码,它在页面上形成一个空白的内置帧。第二、编写下列JavaScrpr代码,body_onLoad()方法在页面载入时执行,paddingOriginalText()是一个初始化编辑器的方法,如下所示它在body_onLoad()中被调用。function bod

    29、y_onLoad() var objHtmlEditor = findObj(HtmlEditor); objHtmlEditor.document.designMode=on; setTimeout(paddingOriginalText(),500);function paddingOriginalText() var objHtmlEditor = findObj(HtmlEditor); /findObj()函数中引入,作用是在html上找到一个对象 var objHiddenFieldResult = findObj(HiddenFieldResult); objHtmlEditor

    30、document.body.innerHTML = objHiddenFieldResult.value; objHtmlEditor.document.body.style.fontSize = 14px; objHtmlEditor.document.body.style.lineHeight = 28px; objHtmlEditor.document.body.focus();在服务器端将内容更新到数据中的关键代码是:protected void ButtonOK_OnClick(Object Src, EventArgs E) string id = ButtonOK.Comman

    31、dArgument.Trim(); string strTitle = TextBoxTitle.Text.Replace(, ); string strContent = HiddenFieldResult.Value.Replace(, ); string strAuthor = TextBoxAuthor.Text.Replace(, ); string strSource = TextBoxSource.Text.Replace(, ); string lngClickCount = TextBoxClickCount.Text.Replace(, ); string dtmAddTi

    32、me = DateTime.Now.ToString(); string strInputMan = TextBoxInputMan.Text.Replace(, ); string isHot = RadioButtonListHot.SelectedItem.Value; string isPhotoAndText = RadioButtonListPhotoAndText.SelectedItem.Value; string isCommand = RadioButtonListCommand.SelectedItem.Value; double orderBy = double.Par

    33、se(this.TextBoxOrderBy.Text.Trim(); double userAuthority = double.Parse(this.TextBoxUserAuthority.Text.Trim(); string isVisibleSide = RadioButtonListIsVisibleSide.SelectedItem.Value; if (strTitle.Length = 0) strTitle = 无标题; string sql = update TableArticle ; sql += set isPhotoAndText = + isPhotoAndT

    34、ext; sql += , isCommand = + isCommand; sql += , isHot = + isHot; sql += , strInputMan = + strInputMan + ; sql += , dtmAddTime = + DateTime.Now.ToString() + ; sql += , lngClickCount = + lngClickCount; sql += , strSource = + strSource + ; sql += , strAuthor = + strAuthor + ; sql += , strContent = + st

    35、rContent + ; sql += , strTitle = + strTitle + ; sql += , OrderBy= + orderBy; sql += ,UserAuthority= + userAuthority; sql += , IsVisibleSide = + isVisibleSide; sql += where (Id = + id + ); DB.Table(sql); Response.Redirect(Detail.aspx?ID= + id); /重定向到页上面所列的ButtonOK_OnClick方法在单击编辑器下部的服务器端按钮执行。(六)详细页在上述

    36、的更新内容页中有一个确定按钮(限于篇幅上面截图时未予显示,在内容编辑框最下方),管理员编辑完成后单击确定按钮就进入了前面已提到过的详细页。效果如图:页的代码一般比较简单,一般在一个重复区域asp:Repeater内用这样的语句就可实现一般的功能。上图中有一个浏览次数,此次数是用户每浏览一次本新闻就将其值加1,代码如下:protected void AddClickCount(int id) /将点击次数加1 string sql = ; sql = update TableArticle set lngClickCount=lngClickCount+1; sql += where id= +

    37、 id;/id为新闻的id号 DB.Table(sql);/执行sql语句(七)主详细页的分页在前面已提到页用于显示某个小类型的主详细信息,一般情况下是将新闻的标题逐条显示出来。有一个问题是当新闻的条数很多时,一页就显示不下。这时需要对多条新闻记录进行分页,而中提供的分页方法DataList或者DataGrid因含有大量视图状态信息而在一般网站中不适用。这里提供一种自定义的分页方法,其效果图如下:实现此分页效果的关键代码/ Pager类对一个数据表进行分页,返回指定页面大小的指定页码public class Pager private int Page = 1;/当前页private int

    38、PageSize = 5;/默认的页面大小private DataTable DT;/要筛选的数据表private int StartIndex;/在数据表中被选中的数据的起始索引private int EndIndex;/在数据表中被选中的数据的结束索引private int StartPage = 1;/当前数据表分页后的起始页码,此项总为1private int EndPage;/当前数据表分页后的结束页码public bool IsNeedPage;/是否需要分页public Pager(DataTable _dt, int _page, int _pageSize) /构造函数 th

    39、is.DT = _dt; this.Page = _page; this.PageSize = _pageSize; double d = (double)(this.DT.Rows.Count / (double)_pageSize); this.EndPage = (int)Math.Ceiling(d); if (this.Page this.EndPage) this.Page = this.EndPage; this.StartIndex = (this.Page - 1) * this.PageSize; this.EndIndex = this.StartIndex + this

    40、PageSize - 1; if (this.StartIndex DT.Rows.Count - 1) this.EndIndex = DT.Rows.Count - 1; if (this.DT.Rows.Count = this.PageSize) this.IsNeedPage = false; else this.IsNeedPage = true; public DataView GetDV() /供外部调用,返回用于当前页面的数据视图 if (this.IsNeedPage = false) /此时不需要分页 return this.DT.DefaultView; this.DT.Columns.Add(Luoxiangdong_Visible, typeof(bool); for (int i = this.StartIndex; i = this.EndIndex; i+) this.DT.RowsiLuoxiangdong_Visible = true; DataView dv = new DataView(this.DT); dv.RowFilter = Luoxiangdong_Visible=true; DataTable dt2 = dv.ToTable(); dt2.Columns.Remove(Luoxiangdong_Visible);


    注意事项

    本文(湖南大学计算机科学与技术本科毕业论文.doc)为本站会员(peixunshi0)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!




    宁ICP备18001539号-1

    三一文库
    收起
    展开