基于asp.net网上论坛BBS毕业设计

获取项目源文件,联系Q:1415736481,可指导毕设,课设

摘要

随着Internet技术的飞速发展,论坛已经成为当今网络上不可或缺的一种交流方式之一。教育论坛通常如同一些教学类的博客。或者是教学网站,中心放在对一种知识的传授和学习和相互交流,在计算机软件等技术类的行业,这样的论坛发挥着重要的作用,通过在论坛里浏览帖子,发布帖子能迅速的与很多人在网上进行技术性的沟通和学习。譬如CSDN论坛。它是当今Internet上的一种信息服务系统,它提供一种公共电子模块,可以让人们对某个主题进行讨论,如此可以达到集思广益的效果。该论坛系统是利用Asp.net和SQL SERVER2005技术开发,实现了论坛的动态管理,使得信息的管理更加及时、高效,方便用户及时上网浏览所有有用的信息,发表自己对问题的看法。一些在工作中或者是在学习中所遇到的等等不解的问题,可以发表在该论坛中,浏览者在登录后可以回答提问者所提的问题,帮助解疑。达到知识、技术交流的目的。该论坛提供了一个互相交流的渠道,为交流者的信息交流提供了便利。

系统实现了在线讨论、疑难问题询问,浏览,查询发表的帖子等功能。论坛用户分为管理员,和普通注册用户,以及游客。管理员拥有管理论坛帖子的权限,和管理注册用户的权限。注册用户可以发表自己的话题,同时可以就自己感兴趣的内容进行讨论,回复等。游客只可以浏览论坛中的内容,无法进行发帖,回帖的操作。

经过严格的分析,系统采用SQL SERVER2005建立完整性和一致性的数据库,前台采用开发工具Visual Studio2010旗舰版,使用它的可视化组建来完成功能完备,易于操作和管理论坛系统。

关键字:SQL Server ASP.NET,论坛,技术交流

 

 

 

 

 

 

 

 

 

 

 

 

 

I

Abstract

With the rapid development of Internet technology, BBS has become the most network over the course of the first one way to communicate. "Education BBS usually as some kind of teaching blog. Or is teaching website, center on to a kind of knowledge and learning and communicate with each other in the computer software, technical industry, this BBS play an important role in the BBS, through to post, post can rapid and a lot of people online and technical communication and learning. For example, the CSDN BBS. It is today the Internet on information service system, it provides a kind of public electronic module, can let people discussed in a theme, so can achieve the effect of ideas. The BBS system is using asp.net and SQL SERVER2005 technology development, realize the BBS of dynamic management, make the information management more timely, efficient, convenient users browse the Internet in time all the useful information, to speak out on the development of the problem. Some in the work or study with, and so on, don't understand published in this BBS, visitors after the login screen can answer the questions of the questioner, help to knowledge, technology explained. The objective of the exchange. This BBS provides a mutual communication channels for communication, who provides the convenience for the exchange of information.

The system realizes the online discussion, difficult problem ask, view, inquires the post published etc. Function. BBS users into administrators, and ordinary registered users, and tourists. Administrators have management BBS permissions, have to create, edit, and delete BBS module, and management of the registered user permissions. Registered users can give your topic, also is the content they are interested in discussion, to reply, etc. Visitors can only browse the content of BBS, unable to post, reply operation.

Results the strict analysis, system USES SQL SERVER2005 establish integrity and consistency of the database, front desk the development tools Visual Studio2010 flagship version, and use it to finish a visualization of function complete, easy to operation and management BBS system.

 

Keywords:SQL Server ,ASP.NET,BBS, Technical Communication

 

 

 

 

 

 

 

 

 

 

II

目录

第一章 前 沿.................................................................................................................. 1

1.1选题背景............................................................................................................ 1

1.2论坛的发展与现状............................................................................................ 2

1.3课程任务简介.................................................................................................... 3

第二章 技术选型............................................................................................................ 4

2.1 实施平台........................................................................................................... 4

2.2开发语言............................................................................................................ 4

2.3数据库................................................................................................................ 5

2.4 服务器选择....................................................................................................... 5

第三章 系统分析............................................................................................................ 6

3.1可行性分析........................................................................................................ 6

3.1.1技术可行性............................................................................................. 6

3.1.2社会可行性............................................................................................. 6

3.1.3运行可行性............................................................................................. 6

3.2 需求分析........................................................................................................... 6

3.2.1 功能需求................................................................................................ 6

3.2.2 数据流图................................................................................................ 6

3.3任务目标............................................................................................................ 6

3.3.1基本性能................................................................................................. 6

3.3.2开发目标................................................................................................. 6

第四章 系统设计............................................................................................................ 7

4.1.1系统目标设计......................................................................................... 7

4.1.2开发设计思想......................................................................................... 7

4.2系统模块设计.................................................................................................... 7

4.2.1模块功能描述......................................................................................... 8

4.2.2 系统功能结构........................................................................................ 9

4.2数据库设计...................................................................................................... 10

4.2.1数据库概念的结构设计....................................................................... 10

4.2.2数据库逻辑结构设计........................................................................... 10

第五章 详细设计.......................................................................................................... 12

5.1主界面设计...................................................................................................... 12

5.2登录功能及注册功能的设计.......................................................................... 13

5.3 发帖即回贴功能的设计................................................................................. 18

5.4搜索功能设计.................................................................................................. 21

5.5管理功能设计.................................................................................................. 22

第六章 系统测试.......................................................................................................... 27

6.1 系统测试概述................................................................................................. 27

6.1.1 测试目标.................................................................................................. 27

6.1.2 被测试系统特点...................................................................................... 27

6.1.3 被测试系统环境需求.............................................................................. 27

6.2测试方案.......................................................................................................... 27

6.2.1 测试要点分析.......................................................................................... 27

6.2.2 测试内容.................................................................................................. 27

致谢................................................................................................................................ 28

参考文献........................................................................................................................ 29

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

第一章 前沿

1.1选题背景

       论坛又名网络论坛BBS,全称为Bulletin Board System(电子公告板)或者Bulletin Board Service(公告板服务)。是Internet上的一种电子信息服务系统。它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。它是一种交互性强,内容丰富而便捷的Internet电子信息服务系统。用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。

那么什么是BBS(论坛)呢?BBS的英文全称是Bulletin Board System,翻译为中文就是“电子布告栏系统”。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果机上运行。早期的BBS与一般与街头和校园内的公告板性质相同,只不过是通过来传播或获得消息方式不同而已。一直到开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。目前,通过BBS系统可随时取得各种最新的信息;也可以通过BBS系统来和别人讨论计算机……等等各种有趣的话题;还可以利用BBS系统来发布一些“征友”、“廉价转让”、“招聘人才”及“求职应聘”等启事;更可以召集亲朋好友到聊天室内高谈阔论……这个精彩的天地就在你我的身旁,只要您在一台可以访问互联网的计算机旁,就可以进入这个交流平台,来享用它的种种服务。

目前,通过BBS系统可随时取得国际最新的软件及信息,也可以通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事,而且这个园地就在你我的身旁。只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域,进而去享用它无比的威力!首先说明一下,上面说的“论坛”一般就是大家口中常提的BBS。在网络以外的现实世界中,“论坛”是指一种高规格、有长期主办组织、多次召开的研讨会议。著名的论坛有:博鳌亚洲论坛,精英外贸论坛等等。一种后缀修饰词,一般用于企业、个人、网站等用词。比如:80后之窗论坛、生活121论坛、企业论坛、爱看txt小说论坛、论坛会议、百度论坛等。

 论坛的发展也如同网络,雨后春笋般的出现,并迅速的发展壮大。现在的论坛几乎涵盖了我们生活的各个方面,几乎每一个人都可以找到自己感兴趣或者需

要了解的专题性论坛,而各类网站,综合性门户网站或者功能性专题网站也都青

睐于开设自己的论坛,以促进网友之间的交流,增加互动性和丰富网站的内容。 论坛就其专业性可分为以下两类: 一、综合类论坛:综合类的论坛包含的信息比较丰富和广泛,能够吸引几乎全部的网民来到论坛,但是由于广便难于精,所以这类的论坛往往存在着弊端即不能全部做到精细和面面俱到。通常大型的门户网站有足够的人气和凝聚力以及强大的后盾支持能够把门户类网站做到很强大,但是对于小型规模的网络公司,或个人简历的论坛站,就倾向于选择专题性的论坛,来做到精致。 二、专题类论坛:此类论坛是相对于综合类论坛而言,专题类的论坛,能够吸引真正志同道合的人一起来交流探讨,有利于信息的分类整合和搜集,专题性论坛对学术科研教学都起到重要的作用,例如购物类论坛、军事类论坛,情感倾诉类论坛,电脑爱好者论坛,动漫论坛,这样的专题性论坛能够在单独的一个领域里进行版块的划分设置,但是有的论坛,把专题性直接坐到最细化,这样往往能够取到更好的效果,如返利论坛、养猫人论坛等等,吉他论坛,90后创业论坛等。

论坛功能性

  如果按照论坛的功能性来划分,又可分为四类。一:教学型论坛,这类论坛通常如同一些教学类的博客。或者是教学网站,中心放在对一种知识的传授和学习,在计算机软件等技术类的行业,这样的论坛发挥着重要的作用,通过在论坛里浏览帖子,发布帖子能迅速的与很多人在网上进行技术性的沟通和学习。譬如金蝶友商网。二:推广型论坛 ,这类论坛通常不是很受网民的欢迎,因其生来就注定是要作为广告的形式,为某一个企业,或某一种产品进行宣传服务,从2005年起,这样形式的论坛很快的成立起来,但是往往这样的论坛,很难具有吸引人的性质,单就其宣传推广的性质,很难有大作为,所以这样的论坛寿命经常很短,论坛中的会员也几乎是由受雇佣的人员非自愿的组成。三:地方性论坛,地方性论坛是论坛中娱乐性与互动性最强的论坛之一。不论是大型论坛中的地方站,还是专业的地方论坛,都有很热烈的网民反向,比如百度、长春贴吧、 北京贴吧 、山东同乡网或者是清华大学论坛 运城论坛长沙之家论坛 罗定E天空等,地方性论坛能够更大距离的拉近人与人的沟通,另外由于是地方性的论坛,所以对其中的网民也有了一定行的局域限制,论坛中的人或多或少都来自于相同的地方,这样即有那么点点的真实的安全感,也少不了网络特有的朦胧感,所以这样的论坛常常受到网民的欢迎。四:交流性论坛,交流性的论坛又是一个广泛的大类,这样的论坛重点在于论坛会员之间的交流和互动,所以内容也较丰富多样,有供求信息,交友信息,线上线下活动信息,新闻等,这样的论坛是将来论坛发展的大趋势。

 

 

1.2论坛的发展与现状

       早期的论坛系统是基于CGI的系统,例如雷奥、Yuzi、UT,其中UT以其简洁、稳定、快速成为性能最优秀的论坛系统,不过配置要求较高,只有少数发行论坛使用,而且早就停止了开发;而Yuzi的BBS3000在当时也颇有影响,但漏洞较多,后来转型到了ASP平台;现在大部分CGI论坛已经退出了历史舞台。

       2002年之后,随着ASP的流行,论坛系统又迅速崛起新一批新星:Leadbbs、BBSXP、动网,Leadbbs于两年前止步于3.14版,但由于其简洁和稳定性现在仍然有一定的用户在使用;BBSXP是从BBS3000转型而来,但技术实力有限,市场占有率有限;而动网无疑是其中的佼佼者,不断更新换代,加上技术水平门槛低,培养了大批用户,动网则成为使用最为广泛的论坛系统。

       在中国ASP论坛系统大行其道之间,国外的优秀论坛系统如VBB、PHBB、IPB等也被陆续引进汉化,但都是基于PHP+MYSQL平台,技术门槛稍高,且本地化、插件的开发部都落后于其他ASP系统,所以这部分系统虽然性能优秀,但是仍然只有少数技术网站在使用,未得到大规模普及,不过这些系统为国人开发PHP论坛提供了很好的参考。

       随着主机市场的繁荣,加上经历了长时间的摸索和对国外PHP论坛的借鉴,20004年国内的PHP论坛开始获得了较好的发展,其中Discuz!2.5是里程碑产品,虽然后期走向了商业化,但免费的2.5版本,使用非常广泛,PHP论坛从此走入了主流时代。在国内明间大型论坛中,Discuz!占据绝对优势,其次是phpwind,动网只占据了很小的份额,但在中小型论坛中,动网占有率仍然是最高。为了争夺市场,动网暂停了ASP版本的后续开发,转而开发php版本,在Dvbbs7.1版本发布之后沉寂一年多,又推出了动网论坛PHP1.0版。而Phpwind也推出了了多用户论坛系统uu1001。现在Discuz、Phpwind、动网在国内论坛市场可谓三足鼎立,同时相互之间的竞争也促进了论坛系统的发展,例如AJAX功能、RSS订阅、博客系统、同其他CMS系统的整合、跨平台支持等等。而论坛系统从早期个人或民间团队的开发也转型到了成立公司进行运营管理和专业团队的系统开发,这样论坛系统的发展提升将更有保障。

 

1.3课程任务简介

  本次课程的任务是建立一个网上在线论坛,为网上学习提供一个相互交流的信息平台,该系统能够将访问者的信息写入数据库;允许访问者在系统中发表新的

主题。查阅其他访问者发布的信息,并且能够回复其他访问者的主题。系统实现自动分页功能,对所发表的主题按照关键字来进行独立搜索并显示符合条件的留言信息;完成本次课程的设计,需要以下知识的掌握:

  1. 掌握Asp.net的基本技术;
  2. 熟练掌握SQL数据库相关知识;
  3. 掌握VS2010网页制作的知识;
  4. 初步掌握软件开发测试的一般流程和方法。

第二章  技术选型

本章中首先讨论了开发系统所使用到的相关技术,包括实施平台的选择、开发工具及开发语言的选择、数据库服务器的选择。系统服务器的选择,为系统开发做好充分的准备。

 

2.1 实施平台

     系统采用微软.NET构建的系统平台,.NET既是一种规范也是一种产品,.NET开发工具Visual Studio2010的易使用使得它在Java很难实现的“用户应用也可以编程”得以实现,.NET能够支持多种语言,比如VB.NET,C#,支持同一个IDE,支持同一个框架和调试器。它是一个非常丰富的平台,原是很多专有软件才能提供的像容错,可扩展性等功能都会构件在.NET平台上,同时也是一个廉价的应用平台,它是完善新一代网络计算的环境平台。

 

 

2.2开发语言

     系统采用的主要开发语言是Asp.net,Asp.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到Asp.net的Web应用中。Asp.net同时也是language-independent(语言独立化)的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript , C++、F++。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向Asp.net。

   

总的来说,Asp.net具有以下特点:

  1. 高效率与安全性
  2. 支持现有的网络编程标准
  3. 消除大量的程序错误

 

 

 

 

 

 

2.3数据库

    系统使用的数据库系统是SQL Server 2005。SQL Server 2005 通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2005 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从CEO 到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQL Server 2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。   

商业智能增强体现在以下几个方面:

.端到端的集成BI平台

.集成服务

  .分析服务

.报表服务

技术

性能

 

高可用性

 

SQL Server 2005的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统。

 

管理工具

 

SQL Server 2005引进了一套集成的管理工具和管理应用编程接口(APIs),以提供易用性、可管理性、及对大型SQL Server配置的支持。

 

 

安全性增强

 

SQL Server 2005旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。

 

可伸缩性

 

SQL Server 2005可伸缩性的先进性包括表格分区、复制能力的增强和64位支持。

 

2.4 服务器选择

    服务器的选择一直是项目配置的重点之一,服务器的好坏决定着应用程序的运行效率。系统采用.NET技术平台,主要针对自身的特殊性,系统对服务器的要求不是很高,所以可以使用性能较高的普通PC作为服务器。

   

 

 

 

 

第三章系统分析

论坛是基于Internet的应用系统,所有功能都通过应用程序服务器和用户浏览器之间的交互完成。与系统相关的数据由数据库服务器来维护和组织。图3.1是对系统的简单描述。由Internet网络连接的用户及系统管理员通过浏览器反馈给用户。

    本章将利用软件工程的知识,从用户使用的角度出发,对论坛系统进行需求分析,包括分析系统目标、特点、客户需求、功能性需求、性能需求等。

3.1可行性分析

    可行性分析是指当前情况下高校研究这个论坛系统有必要,是否具有所需的必要条件。从当前实际情况出发,研究这个论坛系统是很有必要的,可以使得学生之间进行信息交流和数据共享。

3.1.1技术可行性

    最近几年,论坛系统技术得到了充分的发展与完善,使得开发系统在技术上成为可能,利用Visual Studio 2010开发工具,使得系统不存在技术上的障碍。

      1. 社会可行性

     根据现有的硬件设施、软件设施和人员素质等方面考虑,论坛系统在学院内应该可以得到较好的应用。该系统既可以在校园内(或单独部门的局域网)上运行,也可以在因特网上运行。

      1. 运行可行性

系统平台可以是Windows系列等,服务器端要求SQL Server2005或者

上版本作为后台数据库。而客户端只要在Windows平台下连接到Internet上即可运行。

3.2 需求分析

3.2.1 功能需求

   系统是针对高校信息化教育的发展现状,开拓学生与学生之间的交流而设计的论坛系统。系统界面友好、健康,操作维护简单。

3.2.2 数据流图

    数据流图(PDF)是一种图形化技术,它描述信息和数据从输入移动到输出的过程中所经受的变换。按照系统的业务流程来分析系统中的信息流向,可画出系统的数据流图如下:

 

 

 

 

 

 

论坛系统管理员

 

论坛管理系统

论坛用户

用户信息

帖子情况

当前日期

数据库

帖子表

用户信息

 

 
 

 

 

 

 

 

 

 

 

 

 

 

图3-1

       

图3-2

3.3任务目标

3.3.1基本性能

系统主要的功能包括:新用户的注册,用户密码修改,用户发表贴子。管理员登陆可以管理用户,删除贴子,贴子属性的设置等操作。对于这些功能基本可以应付一般的用户需要。

3.3.2开发目标

系统预期的目的是为了做成交互式的网页,方便客户端和浏览器端之间的交流。通过该论坛,人们能够相互交流沟通,把疑惑在论坛里公布,大家献计献策,共同学习,共同进步。

3.3.3应用目标

数据库论坛系统是一个用于用户与用户之间互相交流的系统。用户可以浏览论坛上的贴子,并且能够注册成为会员用户。论坛注册会员能够修改自己的资料信息,发布贴子,让大家积极参与讨论。论坛管理员能够便于管理论坛,包括用户信息管理,贴子管理,对于与学习或技术无关的帖子以及不健康或是不利于社会稳定的贴子能进行删除操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第四章 系统设计

经过需求分析阶段的工作,本章给出了系统设计的目标和思想,首先针对系统模块进行详细的分析和设计,接着进行数据库设计,包括实体的确立,实体关系的确立,数据表的创建以及每个表格各自段的属性的确立等。

4.1功能设计

4.1.1系统目标设计

     系统的主要设计目标是:充分利用网络优势,有效管理和使用网络资源,形成一套完整的交流体系。

4.1.2开发设计思想

         系统界面友好,生动,新颖。

         论坛系统的特点是信息处理比较量大,因此在管理上实现起来有一定的困难。在系统设计过程中,为了克服这些困难,满足计算机管理需要,我们采取了下面一些原则:实现设计化规范、科学化;程序代码标准化,统一化,确保系统的可维护性和实用性;界面尽量简单化,做到实用、方便,尽量满足学生需求。

    1. 系统模块设计

4.2.1模块功能描述

该论坛系统在功能和设计的需求上划分了明确的模块板式,其主要的三个模块是系统管理模块,帖子管理模块和搜索模块。下面将详细介绍几个模块的主要功能

  1. 系统管理模块:主要包括用户的名称,邮箱,性别等基本信息的修改管理。

2帖子管理模块:这个模块是系统中最重要的模块之一,有了它的存在,用户就能浏览帖子,发布帖子,回复帖子。能让用户查询帖子的发布日期、发布人。

  1. 搜索模块管理:该模块具体是让用户可以根据自己的要求,在论坛上方便快捷的知道自己所需要的资料。

4.2.2 系统功能结构

  网上论坛是一个典型的ASP.NET应用程序。进入论坛首页后,论坛注册的用户与普通游客间的区别存在于随着用户等级的不同,所拥有的功能不同。系统结构图如下图4-1所示。

 

 

 

 

 

网站功能模块

用户注册

回复帖子信息

 

浏览帖子详细页

 

删除用户信息

 

查询用户信息

 

添加用户信息

 

添加新帖子

 

用户登录

 

修改用户信息

 

发表新帖

用户信息

回复/浏览帖子

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                    图4-1论坛系统功能模块图

 

 

    1. 数据库设计
      1. 数据库概念的结构设计

  这一设计阶段的主要任务是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,建立一个概念的数据模型,为以后的逻辑结构设计打下基础。

   根据分析,系统分别建立了用户,帖子,管理员等实体,一个板块包含了N个帖子。管理员拥有管理所有帖子、用户信息的权限。用户可以任意浏览其中的内容。

      1. 数据库逻辑结构设计

在上面的实体以及实体之间的基础上,可得各个表之间的关系。论坛系统数

据中的各个表的设计结果如下面几个表格所示,每个表格表示数据库中的一个表。

 

  1. 用户表。该表主要存储了系统用户的信息。具体结果如下:

表4-1 用户表(tb_User)

 

 

 

 

 

序号

字段名称

字段类型

字段描述

备注

1

UserId

int

id

 

2

UserName

nvarchar(150)

登录名

主键

3

UserPwd

nvarchar(150)

登录密码

 

4

mail

nvarchar(150)

用户邮箱

 

5

P_image

nvarchar(150)

头像路径

 

6

QQ

int

用户QQ

 

 

 

2. 帖子主题表:主要存储了发布帖子的信息

表4-2 帖子主题表(tb_Content)

序号

字段名称

字段类型

字段描述

备注

1

ContId

int

帖子id

主键

2

Subject

nvarchar(650)

帖子主题

 

3

[Content]

text

帖子内容

 

4

UserName

nvarchar(150)

发表人姓名

 

5

P_image

nvarchar(150)

头像路径

 

6

CreateTime

datetime

发表时间

 

7

IsTop

 

置顶

 

       

 

3. 帖子回复表:主要存储了帖子的回复信息

表4-3 帖子回复表(tb_hf)

序号

字段名称

字段类型

字段描述

备注

1

hfId

int

回复帖子id

主键

2

ContId

int

主题帖子id

 

3

hf_Content

text

回复内容

 

4

hf_name

nvarchar(150)

回复姓名

 

5

P_image

nvarchar(150)

头像路径

 

6

hf_time

datetime

回复时间

 

 

4. 管理员表:该表主要存储了管理员的信息

表4-4 管理员表(tb_Admin) 。该表主要存储了管理员的信息

序号

字段名称

字段类型

字段描述

备注

1

id

int

id

主键

2

Admin_Name

varchar(50)

管理员名称

 

3

Admin_Pwd

nvarchar(150)

登录密码

 

4

tel

nvarchar(150)

管理员电话

 

 

 

第五章 详细设计

5.1主界面设计

    设计一个友好、美观、有特色的用户界面对一个系统来说是很重要的,特别是主界面给用户一个良好的第一印象就更加显得重要,在设计中,充分考虑到美观和实用。设计了一个较理想的界面。

    主界面(Index.aspx)一共分为三个部分,上面的导航条及图像。导航条有主页,会员注册,会员登陆,注销登陆,发帖,搜索信息,修改密码。左边部分为一个日历,右边部分为帖子列表。下图5-1为本论坛系统的首页面。该页面主要用到了一个GrideView控件和一个日历控件。

     其核心代码如下:

Page.Title = "好学网-学习交流论坛";

        if (!IsPostBack)        //页面第一次进行加载时进行数据绑定

        {

            Bind();

        }

public void Bind()              //主页中控件GridView1的数据源方法

    {

        DBbase db = new DBbase();

        string sql = "select * from tb_Content order by CreateTime desc";

        DataSet ds = db.ReturnDataSet(sql);

        GridView1.DataSource = ds.Tables[0].DefaultView;

        GridView1.DataBind();           //设置GridView1的数据源

        DataBind();     //进行绑定

    }

    Protectedvoid GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

    {

        GridView1.PageIndex = e.NewPageIndex;       //获取或设置当前页的索引

      Bind();

    }

图5-1论坛系统主界面

 

5.2登录功能及注册功能的设计

   用户通过在用户登陆界面输入合法的用户名和密码来进入系统。并且在通过用户信息验证后界面上会显示欢迎用户登录的话语。若登录的用户为游客,则其只能浏览信息,不能进行发布信息或回复信息。下图5-2为本论坛会员的登录主界面:

protected void Button1_Click(object sender, EventArgs e)

{

string sql = "select * from tb_User where UserName ='" + txt_UserName.Text.Trim() + "' and UserPwd ='" + txt_Pwd.Text.Trim() + "'";

    DBbase db = new DBbase();

    SqlDataReader dr = db.ExceRead(sql);

    dr.Read();

if (dr.HasRows)

 {//获取用户名保存在Session变量中

    Session["UserName"]=dr["UserName"].ToString();                        

    Session["Pwd"] = dr["Password"].ToString();

    Label1.Text = "登陆成功";

    Response.Redirect("Index.aspx");

    dr.Close();

  }

  else

  {

       Label1.Text = "用户名或密码错误!";

  }

}

登陆成功后,将用户名保存在Session["UserName"]中。

图5-2 登录系统主界面

登陆后的用户可以进入系统后更具需要进入修改密码界面,更改自己的用户密码。

protected void Button1_Click(object sender, EventArgs e)        //修改密码事件

{

        DBbase db = new DBbase();

        string name = Session["UserName"].ToString();

        string sql = "update tb_User set UserPwd='" + TextBox2.Text.Trim() + "' where UserName='" + name + "'";

        bool b = db.Command(sql);

        if (b == true)

        {

Session["UserName"] = null;

            Response.Write("<script language=javascript>alert('密码修改成功,请重新登录!');location='UserLogin.aspx';</script>");

        }

        else

        {

            Response.Write("<script>alert('密码修改失败!');location='Index.aspx'</script>");

        }

}

图5-3 修改密码主界面

 

 

 

游客可以注册本论坛系统,成为本系统的会员。会员用户可以发帖和回复帖子。注册主界面如下图。其核心代码为验证码和上传图片。

protected void ImageBind()   //注册用户将自己的个性图像上传到服务器的协议文件下下{

    if (FileUpload1.HasFile)       //判断用户是否已选择图片

    {

     string str = FileUpload1.PostedFile.FileName; 

     string filename = str.Substring(str.LastIndexOf("\\") + 1);  //得到上传的文件名

     string fileExtension = System.IO.Path.GetExtension(filename).ToLower();

    if (fileExtension == ".jpg" || fileExtension == ".JPG" || fileExtension == ".gif" || fileExtension == ".GIF" || fileExtension == ".BMP" || fileExtension == ".bmp") //判断是否为图片类型

    {

      if (this.FileUpload1.PostedFile.ContentLength > 20 * 1024)

  {

    Response.Write("<script>alert('上传图片必须小于20k!');</script>");

  }

  else

  {

    FileUpload1.PostedFile.SaveAs(Server.MapPath("./Images/") + filename);

    string filepath = "./Images/" + filename;

    Image1.ImageUrl = filepath;

    Image1.DataBind();

   }

  }

   else

   {

     Response.Write("<script>alert('非图片类型,不允许上传!');</script>");

   }

  }     

else

{

  Response.Write("<script language=javascript>alert('请选择图片!');history.back();</script>");

 } }

 

验证码(CreateIdCode.aspx)部分代码如下:

protected void Page_Load(object sender, EventArgs e)

{

   //取得随机产生的字符串

   string str = RandomNum(4);

   //存储到服务器

   Session["str"] = str;

   //设置用业来写随机字符串的图片

   Bitmap img = new Bitmap(80, 20);

   //定义图形对象

   Graphics g = Graphics.FromImage(img);

   //清空背景色

      g.Clear(Color.Chocolate);

      Font f = new Font("Arial", 10, FontStyle.Bold);

      Brush b = SystemBrushes.WindowText;

      g.DrawString(str[0].ToString(), f, b, new PointF(0, 0));

      g.DrawString(str[1].ToString(), f, b, new PointF(20, 0));

      g.DrawString(str[2].ToString(), f, b, new PointF(40, 0));

      g.DrawString(str[3].ToString(), f, b, new PointF(60, 0));

      Response.ContentType = "image/jpeg";

      Response.Clear();

      img.Save(Response.OutputStream, ImageFormat.Jpeg);

      img.Dispose();

      Response.Flush();

    }

    //产生随机字符串

    public string RandomNum(int n) //

    {

       Stringstrchar= "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";

       string[] VcArray = strchar.Split(',');

       string VNum = "";

       //记录上次随机数值,尽量避免产生几个一样的随机数          

       int temp = -1;

       //采用一个简单的算法以保证生成随机数的不同

       Random rand = new Random();

       for (int i = 1; i < n + 1; i++)

       {

           if (temp != -1)

           {

              //unchecked 关键字用于取消整型算术运算和转换的溢出检查。

              //DateTime.Ticks 属性获取表示此实例的日期和时间的刻度数。

              rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));

            }

            //Random.Next 方法返回一个小于所指定最大值的非负随机数。

            int t = rand.Next(61);

            if (temp != -1 && temp == t)

            {

                return RandomNum(n);

            }

            temp = t;

            VNum += VcArray[t]; }

        return VNum;//返回生成的随机数

    }

图5-4 会员注册主界面 

为了系统安全,本系统将管理员登录与普通会员登陆界面分开。在浏览器中输入URL:…Forum/WebBack/Login.aspx即可进入管理员登录主界面。管理员登陆界面如下图5-5所示:

图5-5 管理员登录主页面

 

 

5.3 发帖即回贴功能的设计

   注册用户登录后可以进入发帖页面发表自己的话题。界面顶部为用户的当前位置,发布帖子需要有帖子主题,不能为空,不可以超过80字。界面如下图所示:

代码如下:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)

{

   if (txt_content.Value == String.Empty)  //判断帖子内容是否为空

   {

      Response.Write("<script language=javascript>alert('请输入内容!!');history.back();</script>");

    }

   string name = Session["UserName"].ToString();

   DBbase db = new DBbase();

   string strimage = "select * from tb_User where UserName='" + name + "' ";

   SqlDataReader dr = db.ExceRead(strimage);

   dr.Read();

   string image = dr["P_image"].ToString();

   dr.Close();

   string sql = "insert into tb_Content(Subject,Content,UserName,CreateTime,P_image) values('" + txt_title.Text.Trim() + "','" + txt_content.Value + "','" + name + "','" + DateTime.Now + "','" + image + "')";

bool state = db.Command(sql);   //调用DBbase中的Command方法执行插入操作

        if (state == true)          //插入操作操作执行成功时

        {

            Response.Write("<script language=javascript>alert('帖子发表成功!');location='Index.aspx';</script>");

        }

        else   //插入操作操作执行失败

        {

            Response.Write("<script language=javascript>alert('发表失败,请重新发表!');history.back();</script>");

        }

    }

 

注册用户可以对感兴趣的帖子进行回复,发表自己的看法和意见,其主界面如5-7所示:

                    图5-7 回帖界面

回帖中主要用到了两个GrideView控件和一个文本框。一个GrideView用来绑定楼主的发帖,另一个用来绑定回帖的内容。

只给出部分代码,如下所示:

public void DataBind2()               //回帖的数据绑定

{    int contid = Convert.ToInt32(Request["id"]);    //获取该主题帖子的id号

     int curpage = Convert.ToInt32(lb_Curpage.Text); //设置当前页

     string sql = "select  * from tb_hf where ContId='" + contid + "' order by hf_time asc";

DataSet ds = db.ReturnDataSet(sql);

        PagedDataSource pds = new PagedDataSource();    //创建一个数据绑定控件

        pds.DataSource = ds.Tables[0].DefaultView;

        pds.AllowPaging = true;

        pds.PageSize = 4;

        pds.CurrentPageIndex = curpage - 1;           //获得当前页的页码

        LinkButton1.Enabled = true;

        LinkButton2.Enabled = true;

        LinkButton3.Enabled = true;

        LinkButton4.Enabled = true;

        if (curpage == 1)       //"首页"和"上一页"不显示

        {

            LinkButton1.Enabled = false;

            LinkButton2.Enabled = false;

        }

 

        if (curpage == pds.PageCount)       //"最后一页"和"下一页"不显示

        {

            LinkButton3.Enabled = false;

            LinkButton4.Enabled = false;

        }

        lb_Count.Text = Convert.ToString(pds.PageCount);

        DataList2.DataSource = pds;

        DataList2.DataKeyField = "ContId";  //DataList2的主键为ContId

        DataList2.DataBind();

    }

    protected void LinkButton1_Click(object sender, EventArgs e)    //首页

    {

        lb_Curpage.Text = "1";

        DataBind2();

    }

    protected void LinkButton2_Click(object sender, EventArgs e)    //上一页

    {

        lb_Curpage.Text = Convert.ToString(int.Parse(lb_Curpage.Text) - 1);

        DataBind2();

    }

    protected void LinkButton3_Click(object sender, EventArgs e)     //下一页

    {

        lb_Curpage.Text = Convert.ToString(int.Parse(lb_Curpage.Text) + 1);

DataBind2();

    }

    protected void LinkButton4_Click(object sender, EventArgs e)    //末页

    {

        lb_Curpage.Text = lb_Count.Text;

        DataBind2();

    }

5.4搜索功能设计

    随着系统的应用,注册用户的增加,帖子的数量也会随之增加,用户为了节约时间,可以使用搜索功能来寻找需要的帖子。其界面如图5-8

 

图5-8搜索功能

代码如下:

public void Bind()              //主页中控件GridView1的数据源方法

{

   string key = TextBox1.Text;

   if (key == "") //搜索关键字为空时

   {

     Response.Write("<script language=javascript>alert('请输入搜索内容!');history.back();</script>");

    }

    else

    {

       DBbase db = new DBbase();

       string sql = "select * from tb_Content where Subject like '%" + key + "%' ";

       DataSet ds = db.ReturnDataSet(sql);

       GridView1.DataSource = ds.Tables[0].DefaultView;

       GridView1.DataBind();           //设置GridView1的数据源

       DataBind();     //进行绑定

     }}

5.5管理功能设计

    管理员可以对用户信息进行管理,包括修改和删除用户信息。界面如下图:

图5-8

主要用到了一个GrideView控件。用来修改会员的信息。

public void Bind()          //设置GrideView1的数据源

{

    DBbase db = new DBbase();

    string sql = "select * from tb_User";

    SqlDataAdapter dap = db.ReturnDataAdapter(sql);

    DataTable dt = new DataTable();

    dap.Fill(dt);

    GridView1.DataSource = dt;

    GridView1.DataKeyNames = new string[] { "UserId" };

    GridView1.DataBind();

 }

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)     //GrideView1的行编辑事件,即会员信息修改

{

   int id = e.NewEditIndex;    //获取所编辑行的索引

   GridView1.EditIndex = id;

   Bind();     //绑定数据源

   string sql = "select * from tb_User";

   DBbase db = new DBbase();

   SqlDataAdapter dap = db.ReturnDataAdapter(sql); //调用DBbase下的方法ReturnDataAdapter,返回一个SqlDataAdapter数据适配器

   DataSet ds = new DataSet();

     dap.Fill(ds, "tb_User");

 }    ProtectedvoidGridView_RowCancelingEdit(objectsender,GridViewCancelEditEventArgs e)    

//取消编辑

GridView1.EditIndex = -1;   //设置索引为-1,即返回上一步

    Bind();

}

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)          //更新数据

{

     DBbase db = new DBbase();

     int id = e.RowIndex;        //获取所编辑行的索引

     string key = GridView1.DataKeys[id].Value.ToString();

     stringtxt1= ((TextBox)GridView1.Rows[id].Cells[1].FindControl("TextBox1")).Text;  //获取GridView1中的TextBox1的值

     stringtxt2= ((TextBox)GridView1.Rows[id].Cells[1].FindControl("TextBox2")).Text;

     stringtxt3= ((TextBox)GridView1.Rows[id].Cells[1].FindControl("TextBox3")).Text;

     string sql = "update tb_User set UserName='" + txt1 + "',UserPwd='" + txt2 + "',mail='" + txt3 + "' where UserId= " + key;

    SqlDataAdapter dap = db.ReturnDataAdapter(sql);     //调用DBbase下的方法ReturnDataAdapter,返回一个SqlDataAdapter数据适配器

    DataTable dt = new DataTable();

    dap.Fill(dt);

    GridView1.DataSource = dt;

    GridView1.EditIndex = -1;

    GridView1.DataBind();  //数据绑定

    Bind();

 }

 

 

管理员对帖子进行管理页面设计如下5-9:

图5-9

删除帖子核心代码如下:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)          //删除数据

{

    DBbase db = new DBbase();

    int id = e.RowIndex;    //获取所删除行的索引

    int ContId = int.Parse(GridView1.DataKeys[id].Values[0].ToString());

    string sql1 = "delete from  tb_Content where ContId='" + ContId + "'";           //在删除帖子主题时,同时也删除回复表tb_hf中的回帖

    string sql2 = "delete from  tb_hf where ContId='" + ContId + "'";

    bool add = db.Command(sql1);

    bool add1 = db.Command(sql2);

    if (add == true)

   {

      Response.Write("<scriptlanguage=javascript>alert('删除成功!');location='DeletePosts.aspx';</script>");

   }

   else

   Response.Write("<script language=javascript>alert('请输入内容!!');history.back();</script>");

   GridView1.DataBind();

   DataBind(); }

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

   if (e.Row.RowType == DataControlRowType.DataRow)

   {

     e.Row.Attributes.Add("onMouseOver", "Color=this.style.backgroundColor;this.style.backgroundColor='#FFF000'");

//高亮显示指定行

       e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=Color;");  //设置审核状态,并且设置相应的颜色

      ((LinkButton)(e.Row.Cells[5].Controls[0])).Attributes.Add("onclick", "return confirm('是否删除当前行数据!')");

     }

 }

可以为系统添加管理员,以及修改管理员密码:

图5-10 添加管理员及修改密码

protected void Button1_Click(object sender, EventArgs e)    //修改管理员密码

{

   string name = Session["UserName"].ToString();

   string sql = "update tb_Admin set Admin_Pwd='" + txt_Pwd.Text.Trim() + "' where Admin_Name='" + name + "'";

   DBbase db = new DBbase();

   bool add = db.Command(sql);

if (add == true)

   {

      Response.Write("<script language=javascript>alert('信息修改成功!!');history.back();</script>");

    }

   else

    {

       Response.Write("<script language=javascript>alert('信息修改失败!!');history.back();</script>");

     }  }

protected void Button1_Click(object sender, EventArgs e)    //添加管理员

{   string name = txt_User.Text.Trim();

    string pwd = txt_Check.Text.Trim();

    string tel = txt_Tel.Text.Trim();

    string sql = "insert into tb_Admin(Admin_Name,Admin_Pwd,tel)values('" + name + "','" + pwd + "','" + tel + "')";

    DBbase db = new DBbase();

    bool add = db.Command(sql);

    if (add == true)

   {

     Response.Write("<script language=javascript>alert('管理员添加成功!!');history.back();</script>");

}

 }

  

 

 

 

 

 

第六章 系统测试

6.1 系统测试概述

6.1.1 测试目标

    1.对系统功能的正确性,可靠性,易用性等特性进行测试与评价,并提出改进方案。

    2.通过各性能指标的分析处理,对系统的性能状况做出整体分析与评估。

6.1.2 被测试系统特点

    被测系统刚刚部署完毕,正处于试运行阶段。其主要功能包括信息的发布以及广大论坛用户之间的信息交互。该系统共有系统管理模块,帖子管理、搜索模块组成。其中系统管理面向用户后台管理。

6.1.3 被测试系统环境需求

    操作系统:Windows2000以上版本。

    数据库:SQL Server2005 开发语言:Asp.net

   

6.2测试方案

6.2.1 测试要点分析

对于web系统,不但需要检查和验证系统是否按照设计的要求实现了各项功能,而且还要测试系统在不同类型的浏览器端的显示是否合适。此外,web系统对于用户界面要求也远远超过了串通的C/S架构的软件,更加关注页面的视觉效果,因此,web页面设计是否合理,风格是否统一,是否方便用户浏览器也是测试应该注意的一个方面。

 

6.2.2 测试内容

    1.页面链接测试  2.表单测试 

    3.界面测试      4.平台兼容性测试

  • 7
    点赞
  • 0
    评论
  • 21
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

IT源码

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值