版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基础与信息工程学院 课程设计报告书 (2012-2013学年上学期期末设计)课程名称 : 网络程序设计 题 目 : bbs论坛网站 专业班级 : 指导教师 : 设计周数 : 设计组员信息: 目录摘要 3一系统概述 31.1总体概述 31.2开发背景 41.3开发目的 51.4需求分析 6二系统分析 5 2.1开发语言描述 5 2.2数据库选用 6 2.3论坛系统流程图 6三系统设计 7 3.1总体规划 8 3.2系统功能结构图 8 3.3开发环境 9四.数据库设计 9 4.1 er图 9 4.2数据表概述 10 4.3主数据表结构 104.4视图 14 五系统界面设计及实现 14 5.1后台开
2、发 14 5.2 前台开发 19六关键技术22 6.1公共类 22 6.2验证码的编写25 6.3搜索技术的编写25 6.4忘记及找回密码27 6.5datalist分页技术29七总结 32摘要当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在结合及c#开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。论坛在strutshibernatespring扩展struts框架的基础上,用当今主流的网站开发技
3、术jsp语言进行开发。论坛将采用b/s体系结构,人们通过浏览器就可以访问教学网站的主页,保证服务器的安全。数据库采用免费,小巧,易用的sql2000数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型bbs论坛!一系统概述1.1 总体概
4、述进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的c/s结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器服务器的b/s结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作系统平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于internet,而且投资
5、小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用isp的服务器资源,因而受到越来越多中小型企业的青睐。随着internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨问题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为web信息库的重要组成部分,自网上论坛诞生20多年以来,随着web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工
6、作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。1.2 开发背景1978年在美国芝加哥开发出一套基于8080芯片的cbbs/chicago (computerized bulletin board system/chicago),此乃最早的一套bbs系统。之后随着苹果机的问世,开发出基于苹果机的bulletin board system和大众信息系统(peoples message system)2种bbs系统。19
7、81年ibm个人计算机诞生时,并没有自己的bbs系统。直到1982年,buss lane 才用basic语言为ibm个人计算机编写了一个原型程序。其后经过几番增修,终于在1983年通过capital pc user group(cpcug)的communication special interest group会员的努力,改写出了个人计算机系统的bbs。经thomas mach整理后,终于完成了个人计算机的第1版bbs系统rbbs-pc。这套bbs系统的最大特色是其源程序全部公开,有利于日后的修改和维护,因此后来在开发其他的bbs系统时都以此为框架,所以rbbs-pc赢得了bbs鼻祖的美称。
8、大约是从1991年开始,国内开始了第一个bbs站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,bbs才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的bbs站,按其性质划分,可以分为2种:一种是商业bbs站,如新华龙讯网;另一种是业余bbs站,如天堂资讯站。由于使用商业bbs站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余bbs站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络china fidonet(中国惠多网)。于是,各地的用户都可以通过本地的业余bbs站与远在异地的网友互
9、通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余bbs站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的bbs站的服务和技术水平是业余的,而是指这类bbs站的性质。一般bbs站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平国内的bbs站,大多数还是大型综合性bbs站。随着计算机的普及,特别是宽带的普及,bbs的活动将会进一步高涨。但是,随之而来对专注于领域方面的bbs将会慢慢增加需求。尽管bbs的数量在不断增长,但bbs的发展过程,也出现了一些问题。由于国内
10、使用的bbs架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 而国内自己开发的bbs基本上都是处于最原始的jsp model1模式, 这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了bbs站点的扩展,于是在这种情况下,本文提出了目前比较流行的,基于模式的的bbs论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型bbs论坛!1.3 开发目的综上所述,本文提出了目前比较流行的,基于
11、asp.net(c#)模式的bbs论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型bbs论坛!1.4需求分析编写一个论坛之前,我们首先要考虑该论坛的主要功能,即系统开发时经常提到的需求。一般论坛有3种角色:游客(即没有注册的用户)、已经注册的用户和管理员。没有注册的用户在进入论坛后、只能浏览模块,主题等 ;已经注册的用户在登录进入论坛后,还可以在各类贴子发表自己的评论、发表帖子并加以编辑等;管理员登录之后,有对用户、论坛模块和论坛贴子进行添加、修改和删除的权利。二.系统分析2.1开发语言的描述:本系统是基于面向对象思想的c#语言平台进行编写,平
12、台具有以下优点1. 简化结构:平台支持简化的、基于组件开发模型,标准的所有服务器都支持该模型。2. 提高开发效率:由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。3.重用性好:可以从现有的软件组件装配出服务器端应用程序,这与从现有的可以装配出客户端应用程序一样,使软件能够重用。4.易于维护:基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。2.2数据库的选用:我们是基于sql2000,因为以前电脑上就装了sql2000,所以只有基于它来做数据。虽
13、然sql2000已经是很老了但是他也有优点。通过这种配置,你能够充分利用你的硬件。在这样的系统中,两个服务器都在运行,而不是只有一台服务器运行,而另一台处于等待故障发生的备用模式,因此你能够充分利用你购买的机器。microsoft sql server 2000 能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同时连接到 sql server 2000 实例。sql server 2000 为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新相同的数据。sql server 2000 还在多个用户之间有效地分配可用资源,比如内存、网络带宽和
14、磁盘 i/o。 超大型 internet 站点可将其数据分开存放在多台服务器上,从而使处理负荷分散到多台计算机上,使站点能为成千上万的并发用户提供服务。2.3论坛系统流程图:管理员管理贴子管理模块管理用户浏览贴子回复贴子浏览模块发表帖子否是是否登录用 户 三系统设计3.1 总体规划论坛系统主要由前台用户模块和后台管理模块两部分组成。 前台功能模块包括用户注册、登录、修改个人信息、浏览模块、贴子、发表帖子、回复帖子等功能。 后台管理模块后台主要包系统管理员对用户、模块和贴子的管理等功能3.2系统功能结构图3.21 论坛系统前台功能图回复帖子编辑帖子修改个人信息浏览贴子发表帖子浏览模块找回密码用户
15、注册用户等录论 坛 前 台 功 能 结 构 图 3.2.2论坛系统后台结构图删除用户/模块/贴子添加用户/模块/贴子管理贴子管理模块管理用户管 理 员 登 录 浏览 / 编辑模块/贴子3.3开发运行环境一般普通计算机操作系统:windows平台数据库:sql server 2000开发环境:asp.net开发语言:c#语言服务器:iis5.1四数据库设计 (1).用户基本信息表 和用户详细信息表是一对一的关系,一个用户只对应一个详细的信息表(2).用户基本信息表和文章表是一对多的关系,即一个用户可以发表多篇文章和回复.(3).论坛模块和论坛文章表是一对多的关系,在一个论坛中可以含有多个文章和回
16、复.4.1 er图:用户m发表n帖子 详细资料11n管理管理员 1 n添加1修改论坛帮助1m4.2数据表概要说明4.3主数据表结构:tb_user(用户信息表)如下图tb_admin(管理员信息表)tb_module(模块信息表)tb_card(贴子信息表)tb_mark(用户积分表)tb_help(用户帮助表)tb_receivecard(回帖信息表)4.4视图在该论坛系统中还创建了3个视图。分别为视图userinfo_view、moduleinfo_view和cardinfo_view。视图userinfo_view用于显示用户信息及该用户的积分头衔。视图moduleinfo_view用于
17、显示模块的详细信息及包含帖子。视图cardinfo_view用于显示帖子的详细信息,包括对该帖子的回复信息及日期等。五系统界面的设计与实现对于系统来说,用户界面设计将非常重要,因为一个交互良好的界面能够加深浏览者的印象.设计的实现可以分为两个部分。第一部分为站点的规划及草图的绘制,这一部分可以在纸上完成。第二部分为网页的制作,这一过程是在计算机上完成的.设计首页的第一步是设计版面布局。我们可以将网页看作传统的报刊杂志来编辑,这里面有文字、图像乃至动画,我们要做的工作就是以最适合的方式将图片和文字排放在页面的不同位置统一,是指设计作品的整体性,一致性。设计作品的整体效果是至关重要的,在设计中切勿
18、将各组成部分孤立分散,那样会使画面呈现出一种枝蔓纷杂的凌乱效果。设计是有原则的,无论使用何种手法对画面中的元素进行组合,都一定要遵循五个大的原则:统一、连贯、分割、对比及和谐5.1后台开发:本系统后台管理模块功能主要有:管理员浏览模块、帖子、发表帖子、回复帖子以及模块、帖子和用户的添加、删除等操作。由于模块、帖子和用户的添加、删除等操作的代码实现大致相同,所以我们在后面主要介绍论坛帖子的各种操作。论坛首页的实现:数据表:tb_card tb_modudle 技术:datalist分页技术1. 前台页面设计论坛首页的主要功能是使用户能够浏览论坛中帖子信息,并查看发帖人的详细信息,而且可以通过“模
19、块主题”或“帖子标题”超链接查看其详细信息。如图:2后台登陆模块设计 数据表:tb_user tb_admin 技术:检索数据 网站前台任何页面可以通过(登录)按钮进入后台登陆页。后台登陆页面中使用了验证码技术,这样一来可以防止使用机器人程序恶意登陆本站后台,但与前台登录不同的是,这里必须选中“管理员登录”复选框,方可进入后台,如下图:3后台管理贴子页面设计数据表:tb_card 技术:简单模糊查询管理贴子模块主要包括浏览贴子、发表帖子、回复帖子、搜索帖子、查看贴子详细信息、修改帖子信息和删除帖子7部分功能,如下界面:3.1帖子详细信息数据表:tb_card tb_modudle 技术:简单模
20、糊查询当管理员单击某条记录的(详细信息)按钮时,及可以进入详细页面,该页面运行如下:3.2修改帖子数据表:tb_card tb_modudle 技术:数据表修改当管理员单击某条记录的(修改)按钮时,即可进入贴子信息修改页面,运行如下:3.3浏览贴子数据表:tb_card 技术:简单模糊查询浏览贴子页面主要是为了使管理者或用户能随时查看论坛中的贴子数量和贴子信息而设置的,运行如下;3.4回复贴子数据表:tb_card tb_revertcard 视图:cardinfo_view 技术:数据表信息添加管理员或用户浏览贴子时,可以看到对该贴子的回复内容,并随时发表自己对该帖子的评论,运行如下:3.5
21、发表帖子数据表:tb_card tb_module 技术:数据表信息添加管理员或已经注册的用户在登录论坛系统后,都可以发表自己的帖子,运行如下:3.6搜索帖子数据表:tb_card 技术:简单模糊查询在该论坛中,程序可以根据指定查询条件和查询关键字找出用户想要查看的贴子,用户还可单击帖子后面的(详细信息)按钮查看相应贴子的详细信息,运行如下:5.2 前台开发前台设计分析论坛前台模块主要包括以下功能:游客:浏览模块、浏览贴子;用户:注册、找回密码、登录、浏览模块、浏览帖子、回复帖子、发表帖子和修改个人信息等游客、用户浏览模块、贴子功能,用户发表帖子、回复帖子和个人修改信息等功能与后台管理模块中贴
22、子的相应操作类似,这里不再做详细描述。用户注册数据表:tb_user 技术:数据表信息添加5.2.1用户注册:是为了保存用户的一些基本信息。包括用户id、用户登录名、密码、密码问题、问题答案、性别及其他信息,运行结果如下: 5.2.2忘记密码数据表:tb_user 技术:简单查询忘记密码是为了已注册过的用户找回密码而设计的。找回密码主要分为3个页面来完成。页面1:输入已注册的用户id;页面2:系统会根据用户输入的id号把相应的密码问题列出来,并提示输入密码问题答案;页面3:如果问题答案正确,则成功找回密码。3个页面的运行结果分别如下图所示。密码找回页面的代码实现非常简单,主要就是判断一下输入的
23、用户id是否存在,以及该用户的密码提示问题和密码提示答案死否正确。用户信息模块功能流程图进入登录页面游客登录?输入账号密码帐号正确进入主界面结束nyyn权限管理组件:在论坛中的的用户一定会遇到关于权限的问题,比如没有登陆的用户只可以查看帖子,而即使登陆的用户,也只可以对自己应有的权限进行操作,不可以操作管理员的功能.解决此类问题,本系统是通过判断特定的session来判断用户的权限,当用户登陆成功后,组件会发送相应的用户session,之后每次用户对论坛进行操作,都要先通过session,来判断用户的权限.登陆系统后台管理前端显示用户数据库用户管理查询数据库信息修改新建用户用户删除帖子查看登陆
24、界面信息输入提交确认身份 n y测试及实现: 每个模块都可以独立的运行,但是有些功能是几个模块连在一起的!所以当单独运行一个独立的模块会有些错误!但是集成在一起就没有问题了。总体来说是可以完整没有错误的运行实现。 六关键技术:6.1公共类的编写 本项目共设计了三个公共类如下: 6.11数据库连接类datacon datacon类中的getcon()方法用来连接数据库,类型为sqlconnection。代码如下:using system;using system.data;using system.data.sqlclient;using system.configuration;using s
25、ystem.web;using system.web.security;using system.web.ui;using system.web.ui.webcontrols;using system.web.ui.webcontrols.webparts;using system.web.ui.htmlcontrols;/ / datacon 的摘要说明/ public class dataconpublic datacon() public sqlconnection getcon() string sqlcon = integrated security=sspi;persist sec
26、urity info=false;user id=sa;initial catalog=db_bbs;data source=.; sqlconnection mycon = new sqlconnection(sqlcon); return mycon; 6.12数据库操作类dataoperate新建一个类dataoperate,用来执行数据库操作并绑定到相关控件上,以下为创建类dataoperate时系统自动生成的代码:该类中包含三个方法,datacom方法、gvbind方法和databind方法。datacom方法功能:首先向该方法传递一个sql语句,然后与sql server数据库建立
27、连接,应用sqlcommand对象执行所传sql语句,最后应用try_catch_finally语句进行异常处理,如果执行该sql语句成功则返回true,反之返回false。gvbind方法功能:gvbind方法返回数据的类型为bool型,它主要是执行sqldataadapter中的sql语句,并将其绑定在gridview控件上,相应功能执行成功后返回true,否则返回false。databind方法功能:databind方法返回数据的类型为bool型,它主要是执行sqldataadapter中的sql语句,并将其绑定到datalist控件上,相应功能执行成功后返回true,否则返回false
28、。using system;using system.data;using system.data.sqlclient;using system.configuration;using system.web;using system.web.security;using system.web.ui;using system.web.ui.webcontrols;using system.web.ui.webcontrols.webparts;using system.web.ui.htmlcontrols;/ / dataoperate 的摘要说明/ public class dataoper
29、atepublic dataoperate() datacon datacon = new datacon(); public bool datacom(string sqlstr) sqlconnection sqlconn = datacon.getcon(); sqlconn.open(); sqlcommand sqlcomm = new sqlcommand(sqlstr, sqlconn); try sqlcomm.executenonquery(); return true; catch return false; finally sqlconn.close(); public
30、bool gvbind(gridview gv, string sqlstr) sqlconnection sqlconn = datacon.getcon(); sqlconn.open(); sqldataadapter sqldataadapter = new sqldataadapter(sqlstr, sqlconn); dataset mydataset = new dataset(); sqldataadapter.fill(mydataset); gv.datasource = mydataset; try gv.databind(); return true; catch r
31、eturn false; finally sqlconn.close(); public bool databind(datalist dl,string sqlstr) sqlconnection sqlconn = datacon.getcon(); sqlconn.open(); sqldataadapter myadapter = new sqldataadapter(sqlstr, sqlconn); dataset mydataset = new dataset(); myadapter.fill(mydataset); dl.datasource = mydataset; try
32、 dl.databind(); return true; catch return false; finally sqlconn.close(); 6.2验证码的编写本论坛为了防止用户利用非法方式注册、登录、灌水、采用了验证码技术。验证码通过ascii码随机生成4为字符串组成的验证码,代码如下:using system;using system.data;using system.configuration;using system.web;using system.web.security;using system.web.ui;using system.web.ui.webcontrols
33、;using system.web.ui.webcontrols.webparts;using system.web.ui.htmlcontrols;using system.text;/ / validatecode 的摘要说明/ public class validatecodepublic validatecode() public string validatecode() byte bytes = new byte100; random randobj = new random(); int code; for (int i = 0; i 0) sessionuserid = txt
34、userid.text;/给fillquepwd.aspx和findpwd.aspx页传值 response.redirect(fillquepwd.aspx); else response.write(alert(没有该用户id);location=javascript:history.go(-1); return; sqlconn.close(); protected void page_load(object sender, eventargs e) sqlconnection sqlconn = mycon.getcon(); sqlconn.open(); sqlcommand sq
35、lcom = new sqlcommand(select userquepwd from tb_user where userid= + convert.tostring(sessionuserid) + , sqlconn);/接受filluserid页传值 txtquepwd.text = convert.tostring(sqlcom.executescalar(); sqlconn.close(); protected void btnsure_click(object sender, eventargs e) sqlconnection sqlconn = mycon.getcon(
36、); sqlconn.open(); sqlcommand sqlcom = new sqlcommand(select count(*) from tb_user where useranspwd= + txtanspwd.text + and userid= + convert.tostring(sessionuserid) + , sqlconn); int count = convert.toint32(sqlcom.executescalar(); if (count 0) page.response.redirect(findpwd.aspx); else response.wri
37、te(alert(提示问题答案输入有误!);location=javascript:history.go(-1); return; sqlconn.close(); 6.5datalist分页技术 在本论坛的开发实现过程中,很多地方都用了datalist分页技术,相对gridview中自带的分页功能来说,datalist分页技术则需要开发人员通过手动编写代码的方式来实现,这使得开发在选择分页时更加自由,下面我们来着重介绍一下datallist. 在使用datalist控件分页时,为了使结果清晰明了,先在网页上添加2个label框,分页显示当前页数为多少页,总共有多少页,然后添加4个linkbutton控件来执行分页,代码如下: 第一页 上一页 下一页 最后一页 datalist分页通过代码实现,其中需要定义3个方法,分别为calculaterecord、createsource和listbind方法,他们分别用来计算总记录、设定在数据库中查找条件和将数据库执行结果绑定到datalist控件,代码如下:datacon mycon = new datacon(); dataoperate sqlbind
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重要信息保密责任制度
- 2026年保山中医药高等专科学校单招综合素质考试题库与答案详解
- 2026年云南机电职业技术学院单招综合素质考试题库与答案详解
- 2026年安徽省亳州市高职单招职业技能考试题库带答案详解
- 2026年广东南华工商职业学院单招职业适应性测试题库与答案详解
- 2026年四川省泸州市高职单招职业技能考试题库附答案详解
- 2026年安徽电气工程职业技术学院单招职业适应性测试题库带答案详解
- 2026年新疆应用职业技术学院单招职业技能考试题库带答案详解
- 2026年山东省滨州市高职单招职业适应性测试考试题库带答案详解
- 2026年泉州医学高等专科学校单招综合素质考试题库与答案详解
- 学术英语写作(初阶) Unit 01
- 开挖机劳务合同范本
- GB/T 46561-2025能源管理体系能源管理体系审核及认证机构要求
- 《民航企业管理》课程教学大纲
- 精神科院感难点
- 2026年张家界航空工业职业技术学院单招职业技能测试必刷测试卷新版
- 《万以上数的认识》课件
- 分镜头脚本写作课程
- 特种设备检验合同范本
- 5.1《人要自强》大单元教学课件
- 酒店厨房食材采购及验收指南
评论
0/150
提交评论