基于asp.net网上论坛BBS毕业设计
获取项目源文件,联系Q:1415736481,可指导毕设,课设
摘要
随着互联网技术的发展速度日益加快, 论坛已经成为当今网络交流中不可或缺的重要平台之一. 教育论坛通常类似于一些教学性质的博客网站, 或者是一个教学网站, 其核心在于对知识传授、学习以及相互交流的过程进行管理. 在计算机软件等相关行业的领域中, 这样的论坛发挥着重要的作用, 通过提供丰富的资源库让用户能够快速获取信息并参与讨论. 例如论坛就是这样一个成熟的在线信息服务平台, 它能够提供一个公共电子模块供用户讨论特定主题, 从而实现集思广益的目标. 该系统采用Asp.net技术和SQL SERVER2005作为核心框架, 实现了对论坛内容的动态管理与更新, 使得信息更新更加及时、高效. 用户可以通过登录系统便捷地浏览各类有用信息并发表个人见解. 在工作或学习过程中遇到的问题也可以在此平台上提出, 其他用户则可以通过登录后回答问题的方式参与讨论帮助他人解答疑问. 通过这种方式不仅能够促进知识与技术的交流还能搭建起一个互相分享与学习的信息平台
系统具备了网络讨论区、问题解答区等功能,并提供内容浏览、信息检索服务。论坛成员包括管理员、注册用户以及访客。管理员可行使论坛管理及账号管理职责。注册用户能够创建主题并参与话题交流,在线互动体验较为丰富。而访客仅限于查看内容,并无发布或参与互动的权利。
经过深入的分析后发现,
系统应用SQL SERVER 2005搭建了一个完整性与一致性并存的数据库。
使用Visual Studio 2010旗舰版作为前端开发工具,
借助其功能强大的可视化界面构建模块完成了一系列功能模块。
便于用户操作及维护论坛系统的功能。
关键字: SQL Server ASP.NET,论坛,技术交流
I
Abstract
With Internet technology developing rapidly, BBS has emerged as a primary platform for communication. Education BBS typically serves as a teaching blog or website centered around disseminating knowledge and fostering learning interactions among individuals in computer software and technical industries. This platform plays a crucial role in facilitating dynamic management through features like posting and discussion. For instance, BBS stands out today as an information service system offering public modules for thematic discussions. The system employs ASP.NET and SQL SERVER2005 technologies to ensure efficient information management, enabling users to access timely and useful content while addressing issues encountered in their work or studies. After login, visitors can engage by answering questions posed by others, aiding in knowledge sharing. The objective is to foster mutual understanding through communication channels provided by this platform.
The system achieves several key functions including facilitating online discussions posing challenging questions allowing content viewing engaging in inquiries regarding posted articles as well as managing various modules. BBS users consist of administrators ordinary registered users and tourists. Administrators hold comprehensive management rights enabling them to create edit and delete different modules while also managing user-specific permissions. Registered users are allowed to initiate topics discuss subjects of interest as well as provide replies regarding existing posts. Tourists can only access existing content without the ability to create new topics or participate in discussions.
经过严格的分析,该系统基于SQL SERVER 2005技术确保了数据库的完整性和一致性;前台管理中采用Visual Studio 2010旗舰版开发工具;并利用其完成功能全面、易于操作与管理的BBS系统。
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 上的一种电子信息服务系统 。该系统提供一块公共电子白板功能 ,让每个用户均可在此线上写下自己的观点 ,既可发布信息也可表达个人意见 。此系统兼具较强的互动性和便捷性 ,为互联网提供了丰富多样的信息服务 。通过 BBS 平台用户能够获取多种信息服务 ,包括信息发布 、讨论交流以及实时聊天等功能
那么什么是BBS(论坛)呢?它的英文全称是 Bulletin Board System(缩写为BBS),中文直译为‘电子布告栏系统’。最初仅用于发布股票市场等类信息,并且当时它连文件传输的功能都没有。此外它也只能在苹果电脑上运行。尽管如此早期的BBS与一般与街头及校园内的公告栏性质上是相同的只不过它们传播或接收消息的方式有所不同而已。随着网络技术的发展逐步普及开来。后来又有许多人尝试将苹果电脑上的BBS系统迁移至个人电脑中使用。近年来由于爱好者们的不懈努力BBS的功能也得到了极大的拓展和提升。目前通过这个系统您可以即时获取最新资讯您还可以在此平台与其他好友讨论各种有趣话题并发布各类启事如征友廉价转让招聘人才及求职应聘等信息您还可以邀请亲朋好友进入讨论室畅谈天下大事只要您有一台连接因特网的电脑就能方便地享受这一交流平台带来的丰富服务
当下可以通过BBS系统随时获取最新的软件资讯与信息资源;此外,在这个平台中还能够便捷地参与计算机软硬件、互联网技术、多媒体应用以及程序设计等方面的讨论话题;同时通过BBS系统还可以发布征友启事、廉价转让信息以及公司产品广告等内容;只要您拥有一台计算机、一台调制解调器以及一条电话线就可以轻松接入这个"超时代"的信息平台,并享受到其中的强大功能;值得注意的是,在网络空间之外的真实世界中,“论坛”一词通常是指那些具有较高规格并经长期主办组织支持的专业研讨会议;例如著名的博鳌亚洲论坛、精英外贸论坛等都是这类高规格论坛的经典案例;另外一种辅助名词词性标记通常是用于企业、个人或网站等场合的技术术语;例如80后之窗论坛生活121论坛企业论坛爱看txt小说论坛等等都是此类技术术语的具体应用
如雨后春笋般涌现的网络平台
要了解的专门论坛类型;然而,在众多网站中,并非所有都具备完整的功能。
创建自己的论坛平台以加强网友之间的互动,并提升互动性并充实网站内容。 论坛按照专业性可分为两类: 一、综合类论坛:这类论坛包含信息较为全面广泛,在吸引更多网民的基础上虽然具备一定的广泛性但却难以做到全面细致地覆盖所有方面因此存在不足即无法实现全面细致地满足所有需求通常大型门户网站凭借较高的知名度和强大的支持系统能够有效整合门户类资源从而形成强大的平台优势但对于小型网络公司或个人性质的论坛站倾向于选择专注于某一领域(即专题性论坛)以实现更加精细的专业化运营 二、专题性论坛:相较于综合类论坛而言这类专门针对特定群体或领域(即主题性强)的版块设置能够吸引志同道合的群体进行深入探讨有利于实现信息分类整合与搜集功能同时在学术科研教学等领域发挥着重要作用例如购物 forums 军事 forums 情感倾诉 forums 电脑爱好者 forums 动漫 forums 等等这些专业性强的版块能够在细分领域内形成专业的生态体系其中一些专门针对细化领域(即返利 forums 养猫人 forums 等等)或新兴领域(如吉他 forums 90后创业 forums 等等)运营能够取得更好的效果
论坛功能性
按照论坛的功能性划分,则可分为四大类别。第一类为教学型论坛,此类论坛常类似于一些教学性质的博客网站或是专业教学网站,核心在于知识传授与学习,尤其在计算机软件等技术领域具有重要作用。通过浏览及发布帖子的方式,在网上可迅速与众多技术爱好者进行交流学习,例如金蝶友商网等平台即是如此。第二类为推广型论坛,这类论坛由于其本质就是用于广告宣传,往往难以吸引长期关注者,从2005年开始出现此类平台后不久即迅速衰落,其会员多系受聘人员被动加入而非自愿选择。第三类是地方性论坛,此类论坛因其娱乐性和互动性强而备受关注,涵盖大型综合平台下的地方站点或专业地方社区网站等平台均可见其身影,例如百度贴吧、长春贴吧、北京贴吧等都是广受欢迎的地方性社区网站平台;由于地域限制的存在,参与此类社区的人群多来自相同区域,这种归属感加上网络化的虚幻感使其成为网民交流的重要场所之一。第四类为交流性论坛,这类论坛强调会员间的互动交流功能为主导发展方向,包含商品供求信息、交友信息等内容板块外还设有各类线上线下的活动信息及新闻资讯等丰富版块内容
按照功能划分则可分为四类:教学型、推广型、地方性和交流型四大类别
1.2****论坛的发展与现状
传统的网络论坛大多采用基于CGI的技术架构,在这一技术框架下涌现出众多知名的社区平台。如Re奥(Re奥)、艺紫(Yuzi)等较为知名的产品中,UT凭借其简洁明了的设计风格和快速运行的速度,在当时被认为是最佳选择。尽管配置门槛相对较高,在开发初期可能需要额外的人力物力投入,并且随着时间推移这一技术路线逐渐被边缘化;而艺紫(Yuzi)最初使用的BBS3000系列软件虽然在当时的市场上颇受关注,并且为许多用户提供了便捷的功能模块,在后来逐渐转向以ASP技术为基础的新一代平台以应对日益复杂的网络安全威胁;如今基于CGI技术的网络社区逐渐淡出人们的视野。
2002年之后,随着ASP技术的兴起,网络论坛行业迎来了新的发展机遇,涌现出一批新的代表性论坛平台:如Leadbbs、BBSXP以及动网等品牌;其中,Leadbbs自两年前推出至3.14版本后,虽然因简洁易用性受到一定欢迎,但仍有不少用户在其使用;而BBSXP则是在原有BBS3000的基础上进行技术转型,但因技术实力有限而导致市场占有率相对较低;相比之下,动网凭借不断推出新版本以及较低的技术门槛优势,不仅吸引了大量用户群体,而且成为了当前应用最为广泛的网络论坛软件。
在中文 ASP 论坛系统盛行期间,国外优秀的论坛系统如 VBB、PHBB、IPB 等也陆续进行了汉化工作,并均基于 PHP+MySQL 平台构建,然而其技术门槛相对较高,在本地化支持及功能扩展方面与部分 ASP 系统相比仍有明显差距。因此虽然这些系统在性能上表现较为出色但尚未得到广泛的推广和应用。不过这些系统仍为国内开发者在 PHP 论坛建设方面提供了重要的参考价值
在主机市场蓬勃发展的背景下,在经历了漫长的技术探索过程后
1.3****课程任务简介
本次课程的目标在于创建一个网络上的在线论坛, 旨在为网上的学习者提供一个信息交流的平台. 该系统具备将参与者的数据记录至数据库的能力; 并且允许参与者在平台上发布新的讨论内容.
主题部分需进一步完善,请联系管理员补充完整
- 熟悉 ASP.NET 的基础技术;
- 深入理解 SQL 数据库的核心领域知识;
- 精读 VS2010 网页制作的技术细节;
- 了解软件开发测试的基本步骤与技巧。
第二章 技术选型
在本章中,首先探讨了开发系统所涉及的关键技术。这些技术包括实施平台的选定、采用何种开发工具以及选择哪种编程语言等核心要素。在选择系统服务器的过程中,确保了系统的全面性与稳定性。
2.1****实施平台
基于微软.NET构建的系统平台,.NET既是行业标准又是产品,.NET开发工具Visual Studio2010因其易用性使得Java难以实现的功能'用户应用也可以编程'得以在.NET中实现,.NET支持多种编程语言,例如VB.NET,C#,这些语言可以在同一个集成开发环境中(IDE)运行,.NET还提供了一个统一的开发框架和调试环境,能够整合诸如错误处理、扩展性等功能,将许多传统上需要不同软件才能提供的功能整合到一个平台上,同时提供了一个经济且高效的解决方案,.NET成为 next-generation network computing 的理想基础
2.2****开发语言
系统主要采用的语言是Asp.net。它是建立在通用编程语言基础之上的执行环境。这种技术能在大多数Web应用开发环境中顺利运行。其核心组件如标准库、消息传输机制及数据交互接口均能在Asp.net环境中无缝集成。该技术具备高度兼容性,在不同编程语言之间实现信息共享。允许开发者根据需求选择最合适的编程语言来开发软件或采用多种混合编程模式。支持的主要编程语言包括C#(融合了C++与Java的优势)、VBScript以及JScript等脚本型语言。随着多编程范式技术的发展成熟度提升,在未来这种技术将能帮助现有的基于COM+架构的应用成功迁移至Asp.net平台。
总的来说,Asp.net具有以下特点:
- 高效率与安全性
- 支持现有的网络编程标准
- 消除大量的程序错误
2.3****数据库
所采用的数据库平台为SQL Server 2005这一技术解决方案,在多个关键领域进行了显著改进包括提升系统的扩展能力优化数据集成性和增强管理工具的有效性等多方面的工作最终使得微软在全球商业智能(BI)领域占据了领先地位。该技术通过提供了一套完整的解决方案使得组织内部的关键信息能够迅速而有效地传递给每位员工从而实现了系统的扩展性和灵活性从首席执行官到普通信息系统工作者所有人都能够便捷地获取和处理相关信息并据此作出更加明智和有效的决策。这一平台整合了强大的数据分析功能以及灵活的数据可视化工具为企业利用现有分布在不同平台上的应用带来了显著的价值提升无论这些应用最初是如何分散部署都能为企业创造更大的效益
商业智能增强体现在以下几个方面:
.端到端的集成BI平台
.集成服务
.分析服务
.报表服务
| 技术 | 性能 |
|---|---|
| 高可用性 | SQL Server 2005的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统。 |
| 管理工具 | SQL Server 2005引进了一套集成的管理工具和管理应用编程接口(APIs),以提供易用性、可管理性、及对大型SQL Server配置的支持。 |
| 安全性增强 | SQL Server 2005旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。 |
| 可伸缩性 | SQL Server 2005可伸缩性的先进性包括表格分区、复制能力的增强和64位支持。 |
2.4****服务器选择
在项目配置过程中,在项目的各个阶段都需要进行详细的规划和安排,在这个过程中,“ server selection”一直是一个关键考量因素。特别针对自身的特点,“ system requirements for servers are relatively low.” 因此可以选择性能优越的普通个人计算机作为 " server" 的基础.
第三章系统分析
基于互联网的应用系统构成了论坛的基础结构。各项功能均依赖于应用程序服务器与用户浏览器之间的互动完成。相关数据将由数据库服务器存储并进行管理。图3-1则简要展示了系统的构成要素。通过互联网浏览器访问的用户以及系统管理员均能向论坛发送反馈信息
本章旨在利用软件工程的知识,以用户体验为导向对论坛系统的功能需求及性能需求进行全面分析,并涵盖系统目标及其特点等各项内容。
3.1****可行性分析
该可行性分析旨在确定在当前环境下开展这项研究是否必要,并需满足所需的基础条件。基于目前的实际情况开展这项研究具有重要的意义,并将有助于促进学生之间的信息交流以及数据共享。
3.1.1****技术可行性
近年来论坛系统技术获得了长足的进步,在技术和功能上实现了全面突破。借助Visual Studio 2010开发平台进行软件开发后,在技术和性能上均实现了显著提升。
1.
社会可行性
基于现有的硬件资源、软件平台以及人才储备等几个方面进行评估后可知, 该论坛系统具备良好的应用前景, 它能够在校园网环境中运行, 同时也可以通过因特网实现功能拓展
1.
运行可行性
系统平台可以是Windows系列等,服务器端要求SQL Server2005或者
上一个版本充当了后端数据库系统。而客户端只需通过Windows平台连接至互联网即可访问。
3.2****需求分析
3.2.1****功能需求
该论坛系统旨在针对高校信息化教育的发展现状促进学生间的互动交流平台。其界面设计合理、功能完善,并且易于管理。
3.2.2****数据流图
Data Flow Diagrams (PDF) is a visualization tool that maps the transformation of information and data from input to output. By analyzing the system's process flow, we can create Data Flow Diagrams to illustrate the information flow within the system.
| 论坛系统管理员 |
|---|
| 论坛管理系统 |
|---|
| 论坛用户 |
|---|
| 用户信息 |
|---|
| 帖子情况 |
|---|
| 当前日期 |
|---|
| 数据库 |
|---|
| 帖子表 |
|---|
| 用户信息 |
|---|
图3-1
图3-2
3.3****任务目标
3.3.1****基本性能
系统的主要功能包括注册新用户、修改密码以及发布帖子。管理员登录后可执行相关操作如管理user account、删除相应的帖子内容以及设置帖子属性等具体操作。上述功能足以满足一般用户的日常需求。
3.3.2****开发目标
系统的预期目标是开发一个互动式网页,并为客户端与浏览器提供便捷的交流渠道。借助该论坛平台, 人们能够进行交流沟通, 将疑问发布至论坛中, 并分享解决方案. 共同学习与进步, 共同发展与提升.
3.3.3****应用目标
数据库论坛系统为用户提供了一个交流平台。用户可以在论坛上浏览各种话题,并注册成为会员以完善个人资料。会员用户能够发布自己的内容,并吸引其他用户参与讨论。论坛管理员具备全面管理权限包括管理会员信息、帖子分类以及删除不符合规定的帖子
第四章****系统设计
在需求分析阶段所完成的工作基础上展开论述,在本章中阐述了系统总体设计方案的核心目标与技术路线。随后对系统的各个功能模块进行了全面而细致的设计工作,并在此基础上完成了数据库的设计工作。具体而言,在数据库层面首先进行了表层结构的设计与规划,并详细规划了数据表的架构,并对每个表格中的字段属性进行了精确设定。接着明确了各实体间的关联关系,并在此基础上完成了各数据表之间的关联机制设置。最后完成了所有相关功能模块的具体实现方案制定与技术细节规划
4.1****功能设计
4.1.1****系统目标设计
系统的主要设计目标是:充分挖掘网络潜力,并科学配置和管理好网络资源,在此基础上建立起一套完善的沟通机制。
4.1.2****开发设计思想
系统界面友好,生动,新颖。
论坛系统的规模较大,在日常运营中涉及的信息处理工作量也相对较大,在这种情况下,在系统管理方面确实存在一定的挑战性。在系统设计过程中, 为了充分克服上述困难, 同时适应计算机化的管理要求, 我们遵循以下基本原则: 遵循规范化和科学化的设计原则; 确保程序代码遵循标准化和统一化的规则; 设计界面应尽可能简洁明了, 同时充分考虑学生的实际需求。
1. **系统模块设计**
4.2.1****模块功能描述
该论坛系统将系统功能与设计理念的要求划分为独立的模块板式,并着重明确了其中最为关键的部分包括系统管理模块、帖子管理模块以及搜索模块**。其中最为关键的部分包括系统管理模块、帖子管理模块以及搜索模块。**
- 系统管理模块:主要包括用户的名称,邮箱,性别等基本信息的修改管理。
第2部分:此模块作为系统的核心功能模块之一具有不可替代的作用。由于其存在用户即可进行信息发布以及参与各种形式的互动活动。该功能可让用户查询帖子的具体发布时间及其作者信息。
搜索模块管理:该模块具体负责管理用户根据自身需求,在论坛上快速便捷地获取自己所需的信息资源。
4.2.2****系统功能结构
网上论坛是一个典型的ASP.NET应用实例。在加入论坛首页之后,在注册用户与非注册访客之间存在区别:当用户的等级变化时,在获得的功能上也存在差异。系统架构图如图4-1所示。
| 网站功能模块 |
|---|
| 用户注册 |
|---|
| 回复帖子信息 |
|---|
| 浏览帖子详细页 |
|---|
| 删除用户信息 |
|---|
| 查询用户信息 |
|---|
| 添加用户信息 |
|---|
| 添加新帖子 |
|---|
| 用户登录 |
|---|
| 修改用户信息 |
|---|
| 发表新帖 |
|---|
| 用户信息 |
|---|
| 回复/浏览帖子 |
|---|
图4-1论坛系统功能模块图
1. **数据库设计**
数据库概念的结构设计
在这一设计阶段的任务是基于需求分析,在生成多个满足用户需求的实体及其关联性上构建基于概念的数据架构,并为其后续的逻辑架构奠定基础。
基于分析结果,在系统中分别创建了'用户'、'帖子'以及'管理员'等多个实体类型。每个板块内包含有N个独立的帖内容。每位管理员均具有管理所有帖内容以及查看全部用户资料的信息权限。普通用户则可随时浏览板块内的各种帖内容。
1.
数据库逻辑结构设计
基于上述实体及其间的联系,在此基础上可得各表间的相互关系。该论坛系统的规模。
数据库中的各个表的设计方案具体体现为以下几个表格, 每个表格具体对应一个数据库中的表
- 用户表。该表主要存储了系统用户的信息。具体结果如下:
表4-1 用户表(tb_User)
| 序号 | 字段名称 | 字段类型 | 字段描述 | 备注 |
|---|---|---|---|---|
| 1 | UserId | int | id号 | |
| 2 | UserName | nvarchar(150) | 登录名 | 主键 |
| 3 | UserPwd | nvarchar(150) | 登录密码 | |
| 4 | nvarchar(150) | 用户邮箱 | ||
| 5 | P_image | nvarchar(150) | 头像路径 | |
| 6 | 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所示的是本论坛系统的主要起始界面。
其核心代码如下:
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(); //进行绑定
}
protected void GridView1(PageChangeEvent
{
GridView1.PageIndex = e.NewPageIndex; //获取或设置当前页的索引
Bind();
}
图5-1论坛系统主界面
5.2****登录功能及注册功能的设计
工作人员通过在用户登录界面输入合法的用户名和密码完成身份认证,并且当用户的用户名和密码经过验证无误后,在界面上会显示欢迎消息。若登录账户为游客账号,则该账户仅享有浏览功能而无发布或回复消息的权利。下图5-2为本论坛会员的登录主界面:
protected void Button1_Click(object sender, EventArgs e)
{
根据用户的输入信息生成相应的SQL语句。将拼接为动态字符串的字段值赋值给变量sql,并通过参数txt_UserName.Text.Trim()与txt_Pwd.Text.Trim()提取并处理相应的数据内容。确保数据完整性与准确性的情况下进行操作。此操作会生成类似于"select * from tb_User where UserName = '..." and UserPwd = '..." 的SQL语句,并将结果返回给调用端口使用。其中包含txt_UserName和txt_Pwd的内容作为查询条件。
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 = "更新密码为:" + Trim(TextBox2.Text) + " ,其中用户名为:" + name.ToString();
bool b = db.Command(sql);
if (b == true)
{
Session["UserName"] = null;
Call Response.Write()
Write Response.()
}
else
{
Response.Write("");
}
}
图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();
当文件后缀名为.jpg、.JPG等时
确定文件是否属于图片格式
当前代码块支持.jpg、.JPG、.gif、.GIF等图像文件
{
if (this.FileUpload1.PostedFile.ContentLength > 20 * 1024)
{
Response.Write("");
}
else
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("./Images/") + filename);
string filepath = "./Images/" + filename;
Image1.ImageUrl = filepath;
Image1.DataBind();
}
}
else
{
Response.Write("");
}
}
else
{
Output a script tag with JavaScript language and trigger an alert with the message '请选择图片!', then return to the previous page;
} }
验证码(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) //
{
Stringbuilder characterSet = $strchar = "0-9,A-Z,a-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 会员注册主界面
为了确保系统的安全性, 本系统实现了对管理员 login 功能与普通会员 login 功能的独立化设计。通过浏览器访问...地址即可进入管理用户 login 页面。管理用户 login 界面如图5-5所示:
图5-5 管理员登录主页面
5.3****发帖即回贴功能的设计
当注册用户完成登录时, 将能够访问发帖页面并发布自己的话题. 在界面上方显示用户的当前位置信息, 并要求撰写帖子时必须包含主题字段, 该主题字段不可为空且长度不得超过80个字符. 如图所示的界面布局展示了相关信息位置.
代码如下:
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (txt_content.Value == String.Empty) //判断帖子内容是否为空
{
OutputContentToScreen( "" )
}
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) values(''{txt_title.Text.Trim},{txt_content.Value},{name},{DateTime.Now},${image})'')
bool state = db.Command(sql); //调用DBbase中的Command方法执行插入操作
if (state == true) //插入操作操作执行成功时
{
使用Response.Write函数输出JavaScript脚本
}
else //插入操作操作执行失败
{
向响应端输出一个JavaScript指令,在其中嵌入一段HTML代码块(),用于显示错误提示信息:无法成功发表文章,请建议您重新提交您的文章内容;同时触发浏览器的历史记录后退功能(history.back())。
}
}
注册成员能够对感兴趣的内容做出回应,并分享自己的观点与见解;其主界面如图5至7号所示。
图5-7 回帖界面
在回帖功能中, 主要涉及两个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 == "") //搜索关键字为空时
{
该脚本将执行一个嵌套在<...>中的JavaScript代码段,并在alert中显示提示信息,并返回历史记录条目
}
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) //GridView1中的行编辑操作
{
int id = e.NewEditIndex; //获取所编辑行的索引
GridView1.EditIndex = id;
Bind(); //绑定数据源
string sql = "select * from tb_User";
DBbase db = new DBbase();
$\sqlmap = \db\returnDataAdapters(\ sql ); // 通过调用 DBbase 库中的 ReturnDataAdapter 方法生成一个 SqlDataAdapter 实例
DataSet ds = new DataSet();
dap.Fill(ds, "tb_User");
protected void GridView_Row Cancellation Editing(objectId sender, GridView_Cancel/EditEventArgs 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 equals ((Grid control) GridView1.Rows[id].Cells[1].FindControl("TextBox1")).Text; //用于获取GridView1中对应的TextBox控件的文本内容
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.ToString() + " set UserName='" + txt1 + "',UserPwd='" + txt2 + "',mail='" + txt3 + "' where UserId= " + key;
\texttt{SqlDataAdapters}中引用DBbase库中的ReturnAdapter方法以实现数据适配器的创建
DataTable dt = new DataTable();
dap.Fill(dt);
GridView1.DataSource = dt;
GridView1.EditIndex = -1;
GridView1.DataBind(); //数据绑定
Bind();
}
管理员对帖子进行管理页面设计如下5-9:
图5-9
删除帖子核心代码如下:
public virtual class DataGrid.RemoveRow(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 ContentId='" + ContentId + "'"; // 在删除帖子主题时, 同时也会删除对应的回复表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派生出一个事件处理程序来执行以下操作:首先生成一个JavaScript脚本文件,并在其内部包含如下内容:使用alert函数输出删除成功的提示信息;接着设置响应位置属性为DeletePosts.aspx;最后关闭该JavaScript脚本文件。
}
else
向客户端发送响应数据时执行以下操作:生成包含JavaScript脚本的对象,并在其中嵌入alert函数以显示提示信息,并使用history.back()方法回滚到之前的页面。
GridView1.DataBind();
DataBind(); }
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Set("onMouseEnter", "Color=this.style.backgroundColor;this.style.backgroundColor='#FFF000';");
//高亮显示指定行
e.Row.Attributes.assign("mouseover event", "this.style.backgroundColor = colorValue;"); //设置审核状态,并且设置相应的颜色
((LinkButton)(e.Row.Cells[5].Controls[0])).Attributes.Append("onclick", "set"("MessageBox.Show", "'是否删除当前行数据!'"));
}
}
可以为系统添加管理员,以及修改管理员密码:
图5-10 添加管理员及修改密码
protected void Button1_Click(object sender, EventArgs e) //修改管理员密码
{
string name = Session["UserName"].ToString();
定义字符串变量sql为执行以下操作:将更新tb_Admin表中的Admin_Pwd字段的值为'Trimmed后的txt_Pwd.Text';在条件子句中指定Admin_Name字段并赋值name变量。
DBbase db = new DBbase();
bool add = db.Command(sql);
if (add == true)
{
响应头写入包含JavaScript脚本的内容并执行相关操作
}
else
{
Documenthtmlechoptionwrite(显示alert框'信息修改失败!!'; 调用history对象的back方法;)
} }
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();
sql = @"
select
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)
{
该脚本将执行嵌套在双引号内的JavaScript代码块,并触发历史记录的后退操作
}
}
第六章 系统测试
6.1****系统测试概述
6.1.1****测试目标
针对系统功能的关键特性(如正确性、可靠性及易用性)实施测试与评估,并建议采取改进措施
2.通过各性能指标的分析处理,对系统的性能状况做出整体分析与评估。
6.1.2****被测试系统特点
该被测系统已成功完成部署,并已进入测试运行阶段。其主要功能体现在信息发布以及广大论坛用户的互动交流上。该系统包含多个功能模块,并其中包括系统的管理系统、信息发布管理系统以及数据搜索管理系统。其中系统的后台管理系统负责对用户进行基础信息维护与服务。
6.1.3****被测试系统环境需求
操作系统:Windows2000以上版本。
数据库:SQL Server2005 开发语言:Asp.net
6.2****测试方案
6.2.1****测试要点分析
为了确保Web系统的可靠性和功能性, 不仅需要对系统进行功能实现度检验, 还要考察其在各种主流浏览器中的兼容性表现。另外, Web系统的界面美观性要求远超传统C/S架构软件, 更加注重页面布局与色彩搭配, 因此, 网页设计科学性、协调性以及用户体验便利性都是测试工作的重要考量因素。
6.2.2****测试内容
1.页面链接测试 2.表单测试
3.界面测试 4.平台兼容性测试
