已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要为了方便无为县网友们信息的交流,在结合动态服务网页(ASP.NET)和SQL2005技术下开发了这个界面友好的小型论坛系统(无为论坛)。论坛使用动态服务网页(ASP.NET)技术建设论坛的骨干框架,使用SQL2005制作系统的数据库,利用了DREAMWEAVER(网页设计)、PS(PHOTOSHOP图片处理)等技术设计界面,还结合使用了AJAX技术,通过这些实现了一个功能相对齐全的论坛系统。该论坛为无为县的网友们提供了一个交流的平台,在这里注册用户可以自由地发表自己的观点和对论坛的主题帖子发表自己的看法,还可以及时的解决网友提出的问题,获得对自己有用的知识,同时也可以更快的了解发生在自己身边的事和自己家乡的变化。关键词:动态服务网页 论坛 SQL2005 目 录一、绪论- 1 -1.1 编写目的- 1 -1.2 定义- 1 -1.3 项目前景与意义- 1 -二、需求分析- 2 -2.1 概述- 2 -2.1.1 功能需求- 2 -2.1.2 数据需求- 3 -2.1.3 开发环境- 3 -三、系统整体设计- 4 -3.1 系统模块结构设计- 4 -3.2 系统业务流程图- 4 -四、数据表结构设计- 7 -4.1 数据库表- 7 -4.2 各模块功能解释- 9 -五、详细设计- 11 -5.1 界面设计- 11 -5.2 主要代码- 14 -六、系统总结- 24 -6.1系统的优缺点- 24 -6.2个人感想- 24 -致 谢- 25 -参 考 文 献- 26 - 安徽财贸职业学院毕业论文一、绪论1.1 编写目的软件设计的任务是将软件需求变换成为软件的具体设计方案。概要设计根据软件需求导出软件的体系结构;详细设计给出软件模块的内部过程描述。该文档是设计结果的详细描述,也是程序员编写程序的功能依据。1.2 定义BBS系统是各种信息交流和传布的场所,它不同于电视杂志等传统的媒体,任何人都可以在论坛上发表自己的言论,不受任何限制。除了可以发表文字信息外还可以上传和转帖图片、视频和音乐,还可以设置文字的字体、颜色、字号,还可以选择有趣的表情图案。只要花几分钟注册你就能畅游BBS,从中获得无穷的乐趣。作为家乡论坛网站,在获取乐趣的同时,更深层次的说,他可以让所有的无为人随时随地了解发生在家乡的大大小小的事情和家乡的发展与变化。还可以加强无为人的凝聚力,让远离家乡的人,在外地可以更好更多的交流,并且可以互帮互助。通过这种论坛形式的交流,会让大家更加热爱自己的家乡,进而更好的建设家乡。1.3 项目前景与意义论坛系统服务已经是互联网站一种极为常见的互动交流服务。论坛可以向网友提供开放性的分类专题讨论区服务,可以在此发表自己的某些观感、交流某些技术、经验乃至人生的感悟与忧欢,亦可以作为网友之间的交流渠道。通过论坛的方式,增强人与人、个人与团体、团体与团体之间的交流联系,在Internet上实现信息的传递,提高办事效率。因此论坛建设在Internet应用上的地位显而易见,它已成为现代人沟通和获取信息的重要组成部分,从而倍受人们的重视。二、需求分析2.1 概述软件的需求分析是从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出我们的软件产品。这个步骤是对用户业务需求的一个升华,是一个用户业务管理流程优化,转化为软件产品,从而提升管理而实现的质的飞跃,这一步是否成功,直接关系到开发出来的软件产品能否得到用户认可,顺利交付给客户,客户能否真正运用我们的产品帮助他解决业务或管理问题。2.1.1 功能需求为了系统的个模块能够正常使用、系统更加人性化,还为了满足系统的实用性及安全性,本系统包含4个角色:游客,用户,管理员,版主。游客的各项功能:游客可以浏览论坛,可以看帖,可以发帖,但是不可以回帖,只有注册了以后成为本论坛的以后,才可以执行用户功能。用户的各项功能:一旦成为本论坛用户可以拥有以下功能:1、用户登录2、发贴3、查看帖子4、回帖5、修改个人资料管理员的各项功能:1、添加新的版主2、添加版块3、修改版主资料4、管理帖子5、管理版主6、管理图片版主的各项功能:1、修改本版块2、查看版主信息3、修改版主信息4、查看帖子5、管理本版块的帖子2.1.2 数据需求用户必须注册后再登录进入系统,系统用户的数据包括用户名、用户密码、用户类型。用户名在整个系统中是唯一的。用户浏览帖子时,数据应当包括用户名、帖子主题。用户根据某一主题可以发表帖子,发表帖子需要的数据包括用户名、Email、版块分类名、发表帖子标题、发表帖子内容。用户回复帖子的数据包括用户名、Email、回复帖子序号、回复的内容、版块分类名。管理员进入后台管理时,需要数据包括管理员ID、管理员密码。版主进去后台管理时,需要的数据包括版主名、版主密码。2.1.3 开发环境本系统使用SQL Server2005作为后台的数据管理系统,而在前台使用Visual S2008作为开发工具。SQL Server 是Microsoft公司开发的大型关系数据库管理系统,具有强大的关系数据库创建、开发、设计和管理功能。SQL Server2005将数据库与Internet紧密连接,可以通过Web浏览器显示数据的操作,具有客户机/服务器的结构。SQL Server 2005 提供了对分布式事务处理的支持,并对开发工具具有良好的支持,为大型数据库项目提供了企业级解决方案。Visual S2008,随着网络经济时候的来临,微软公司的.NET战略的创建的创建就是希望帮助用户,能够在任何时候、任何地方、利用任何工具都可以获得网络上的信息,并享受网络通信所来的快乐。ASP.NET可以使用任何与.NET兼容的语言编写应用程序。此外,任何ASP.NET应用程序都可以完全使用.NET Framework。三、系统整体设计3.1 系统模块结构设计BBS论坛系统的主要功能模块及其关系BBS论坛系统论坛版块管理会员管理会员登录会员注册帖子管理帖子发表帖子回复帖子浏览帖子检索版主管理图3-1 功能模块图3.2 系统业务流程图输入会员信息息息息开始通过会员信息持久化结束不通过检验合法性(1)会员注册业务流程图 图3-2 会员注册正确错误开始输入用户信息检验用户名密码根据角色授权结束束(2)会员登录业务流程图 图3-3 会员登录否开始是否会员持有会员权限管理结束(3)会员管理业务流程图图3-4 会员管理否是开始是否管理员持有管理员权限管理版块结束(4)论坛版块管理业务流程图图3-5 版块管理否是开始用户是否登录发表帖子持久化结束(5)帖子发表业务流程图图3-6 发表帖子四、数据表结构设计4.1 数据库表 在这个数据库管理系统中要建立5张数据表,包括用户表(tb_User)、主题帖子表(tb_Topic)、回复帖子表(tb_Revert)、版块表(tb_Board)、管理员表(tb_Admin)、版主表(tb_Host)以及图片管理表(tb_Image)。(1)用户表包含(用户名、密码、性别、出生日期、头像、邮箱、角色)这7个字段,详细信息如下表所示:字段名数据类型字段大小说明UserNamenvarchar50用户名(主键)UserPwdnvarchar50密码Sexbit性别Birthdaysmalldatetime出生日期PhotoContentnvarchar200头像Emailnvarchar50邮箱UserRolesnvarchar20权限表4-1 用户表(2)主题帖子表包含(主题ID、主题名称、主题内容、发帖人、发表时间、发帖人的权限、版块名称)这7个字段,详细信息如下表所示:字段名数据类型字段大小说明TopicIdnvarchar50主题编号(主键)TopicNamenvarchar1000标题TopicContentnvarchar4000发帖内容DeliverPeoplenvarchar50发帖人(外键)DeliverTimesmalldatatime发帖时间DeliverPopnchar10回复者角色BoardIdnvarchar50版块号(外键)表4-2 主题帖子表(3)回帖表包含(回帖ID、主题ID、回帖人姓名、回复时间、回复内容、回帖名称、回帖人的权限)这7个字段,详细信息如下表所示:字段名数据类型字段大小说明RevertIdnvarchar20回复编号(主键)TopicIdnvarchar50 主题号(外键)RevertPeoplenvarchar50回复者(外键)RevertTimesmalldatatime回复时间RevertContentnvarchar4000回复内容RevertName nvarchar50回复主题RevertPopnchar10回复者角色表4-3 回复帖子表(4)版块表包含2个字段:版块ID、版块名称,如下表所示:字段名数据类型字段大小说明BoardIdnvarchar50版块编号(主键)BoardNamenvarchar100版块名表4-4版块表(5)管理员表包含管理员姓名、管理员密码、管理员角色3个字段,如下表所示:字段名数据类型字段大小说明AdminNamenvarchar20管理员ID(主键)AdminPwdnvarchar30密码AdminRightnvarchar20权限表4-5管理员表(6)头像表包含头像ID、头像内容2个字段,如下表所示:字段名数据类型字段大小说明PhotoIdnvarchar20图片编号(主键)PhotoContentnvarchar200图片内容表4-6头像表(7)版主表包含(版主名称、版主密码、版块名称、性别、出生日期、头像、邮箱、角色)这8个字段,具体信息如下表所示:字段名数据类型字段大小说明HostNamenvarchar50版主编号(主键)HostPwdnvarchar50密码BoardIdnvarchar50版块编号Sexbit性别Birthdaysmalldatetime出生日期PhotoContentnvarchar200头像Emailnvarchar50邮箱HostPopnchar10权限表4-7版主表4.2 各模块功能解释用户登录模块:新用户注册成功之后,在登录界面输入注册时填写的正确用户名、密码之后,再输入出现的验证码之后便可以进入本系统。如果用户名和密码正确,但是输入的验证码错误,则不允许进入本系统,显示验证码输入错误,重新输入。用户注册模块:建立账号,如果游客以前没有建立账号,则只可以浏览论坛的主题话题和发表帖子,但是不可以回复有关帖子,只有当游客在本论坛注册成为论坛的用户后,才能进行相关操作。同时在用户创建新账号的时候,必须输入用户名(系统会在提交时检查该用户名是否已存在)。用户在建立新账号之后就可以具有合法登录系统的身份,可以进行相关的操作。用户信息资料管理模块:在用户登录成功之后,可以修改用户自己的信息,进一步完善用户自己的资料和修改注册时用户填写的资料。主题帖子模块:用户可以根据需要浏览自己感兴趣的帖子,获得所需信息。用户可以发表话题,还可以根据帖子主题浏览帖子内容和回复帖子。查询模块:用户只要输入想查询的用户名,点击查询按钮,便可以查询出该用户发表的所有帖子以及该用户发表的帖子序号、标题、发帖的时间、发帖人等详细信息,方便用户快速的找到自己想要的信息。管理员信息管理模块:管理员输入正确用户名、密码之后便可进入到后台管理系统。管理员可以对版块进行管理,对版主进行管理,对用户进行管理,还可以对用户及版主头像进行管理。主题帖子管理模块:管理员可以对用户发表的帖子进行管理,管理员可以按主题帖子序号,主题名,发表的话题进行看帖,修改帖子和删除帖子等操作。版主管理模块:管理员可以根据版块具体要求的不同,添加这一版块的版主负责管理此版块,来分担管理员的管理论坛的工作,可以更好的为广大用户服务,版主可以修改自己的资料,可以快速查看本版块的帖子,可以对本版块的帖子进行管理。当然,管理员和版主拥有普通用户的一切功能。 五、详细设计5.1 界面设计(1)主界面:显示主要版块和版主信息,用户、版主、管理员可以登录到不同页面图5-1 首页(2)管理员界面:管理员在此可以对(版主、版块、图片、用户)信息进行增删改查图5-2 管理员页面(3)修改信息页面:可以对个人信息进行修改图5-3 信息修改页面(4)发帖页面:显示发帖人姓名和Email,帖子名称和内容不能为空,版块可以选择图5-4 发表帖子页面(5)帖子信息页面:显示所有帖子的信息,包括发帖人和发表时间,可以进行回复图5-5 帖子列表页面5.2 主要代码登录代码public partial class Common_Login : System.Web.UI.Page UserManage usermanage = new UserManage();/实例化对象 HostManage hostmanage = new HostManage(); AdminManage adminmanage = new AdminManage(); protected void Page_Load(object sender, EventArgs e)/分角色登录,根据传递的id不同,登录到不同页面 if (Request.QueryStringid = 0) Label1.Text = ; if (Request.QueryStringid = 1) Label1.Text = ; if (Request.QueryStringid = 2) Label1.Text = ; protected void btnLogin_Click(object sender, EventArgs e) if (txtName.Text = string.Empty) Response.Write(alert(登录名不能为空!); return; else /用session来保存已经登录的用户信息 if (Request.QueryStringid = 0) SessionID = 0; DataSet ds = null; usermanage.UserName = txtName.Text;/验证用户名与密码 usermanage.UserPwd = txtPwd.Text; ds = usermanage.Login(usermanage); if (ds.Tables0.Rows.Count 0 & txtCode.Text = Request.CookiesCheckCode.Value)/设置验证码 SessionName = txtName.Text; SessionPop = 用户; Response.Redirect(./TopicRun/TopicShow.aspx);/跳转到帖子列表 else Response.Write(alert(用户名称或密码不正确!); if (Request.QueryStringid = 1) SessionID = 1; DataSet ds = null;/实例化一个数据集对象 hostmanage.HostName = txtName.Text; hostmanage.HostPwd = txtPwd.Text; ds = hostmanage.Login(hostmanage); if (ds.Tables0.Rows.Count 0 & txtCode.Text = Request.CookiesCheckCode.Value) SessionName = txtName.Text; SessionPop = 版主; Response.Redirect(./BoardRun/BoardInfo.aspx);/跳转到版块信息页面 else Response.Write(alert(版主名称或密码不正确!); if (Request.QueryStringid = 2) SessionID = 2; DataSet ds = null; adminmanage.AdminName = txtName.Text; adminmanage.AdminPwd = txtPwd.Text; ds = adminmanage.Login(adminmanage); if (ds.Tables0.Rows.Count 0 & txtCode.Text = Request.CookiesCheckCode.Value) SessionName = txtName.Text; SessionPop = 管理员; Response.Redirect(./HostRun/HostManage.aspx);/跳转到版主管理页面 else Response.Write(alert(管理员名称或密码不正确!); protected void btnClose_Click(object sender, EventArgs e) Response.Write(window.close();); 发帖代码public partial class TopicRun_DeliverTopic : System.Web.UI.Page TopicManage topicmanage = new TopicManage();/实例化对象 BoardManage boardmanage = new BoardManage(); UserManage usermanage = new UserManage(); HostManage hostmanage = new HostManage(); protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) ddlBName.DataSource = boardmanage.GetAllBoard(tb_Board);/从数据库中获取所有版块 ddlBName.DataTextField = BoardName;/显示版块名称 ddlBName.DataBind();/将信息绑定到DropDownList DataSet ds = null; string strName = ; if (SessionName = null)/游客发帖,显示头像 strName = 匿名; labName.Text = strName; labEmail.Text = 无; imgPhoto.ImageUrl = ./Images/Visiter.jpg; else strName = SessionName.ToString(); if (SessionPop.ToString() = 用户)/会员发帖,显示会员名、头像与Email usermanage.UserName = strName; ds = usermanage.FindUserByName(usermanage, tb_User); labName.Text = strName; labEmail.Text = ds.Tables0.Rows05.ToString(); imgPhoto.ImageUrl = ds.Tables0.Rows04.ToString(); return; if (SessionPop.ToString() = 版主)/会员发帖,显示版主名、头像与Email hostmanage.HostName = strName; ds = hostmanage.FindHostByName(hostmanage, tb_Host); labName.Text = strName; labEmail.Text = ds.Tables0.Rows06.ToString(); imgPhoto.ImageUrl = ds.Tables0.Rows05.ToString(); return; if (SessionPop.ToString() = 管理员)/管理员发帖,显示管理员名与头像 labName.Text = strName; labEmail.Text = 无; imgPhoto.ImageUrl = ./Images/Admin.jpg; return; protected void btnSubmit_Click(object sender, EventArgs e) /点击确定按钮,发表帖子 string strName = ; string strPop = ; if (txtTName.Text = string.Empty) Response.Write(alert(帖子名称不能为空!); return; if (SessionName = null)/游客发帖 strName = 匿名; strPop = 游客; else strName = SessionName.ToString(); strPop = SessionPop.ToString(); topicmanage.TopicID = topicmanage.GetTID();/调用GetTID方法,自动生成TopicID topicmanage.TopicName = txtTName.Text; boardmanage.BoardName = ddlBName.SelectedValue;/用户可以选择所要发表帖子的所在版块名称 topicmanage.BoardID = boardmanage.FindBoardByName(boardmanage, tb_Board).Tables0.Rows00.ToString();/通过版块名称查找版块ID topicmanage.TopicContent = FreeTextBox1.Text; topicmanage.DeliverTime = DateTime.Now; topicmanage.DeliverPeople = strName; topicmanage.DeliverPop = strPop; topicmanage.AddTopic(topicmanage);/发表帖子,提交到数据库 Response.Write(alert(帖子发表成功!); txtTName.Text = FreeTextBox1.Text = string.Empty;/同时将FreeTextBox置空 protected void btnCancel_Click(object sender, EventArgs e) txtTName.Text = FreeTextBox1.Text = string.Empty; 用户管理代码public partial class Admin_UserManage : System.Web.UI.Page UserManage usermanage = new UserManage(); protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) gvUserInfo.DataSource = usermanage.GetAllUser(tb_User).Tables0.DefaultView;/获取所有用户信息 gvUserInfo.DataKeyNames = new string UserName ;/将用户的姓名显示在数组中 gvUserInfo.DataBind();/绑定 for (int i = 0; i usermanage.GetAllUser(tb_User).Tables0.Rows.Count; i+) /转换显示用户的出生日期 gvUserInfo.Rowsi.Cells2.Text = Convert.ToDateTime(usermanage.GetAllUser(tb_User).Tables0.Rowsi3.ToString().ToLongDateString(); protected void btnFind_Click(object sender, EventArgs e) gvBind();/定义绑定新方法 protected void gvUserInfo_PageIndexChanging (object sender, GridViewPageEventArgs e) /设置当前页的索引 gvUserInfo.PageIndex = e.NewPageIndex; gvBind (); protected void gvUserInfo_RowDataBound(object sender, GridViewRowEventArgs e) /提示信息,确认要删除吗 if (e.Row.RowType = DataControlRowType.DataRow) (LinkButton)(e.Row.Cells6.Controls0).Attributes.Add(onclick, return confirm(确定要删除吗?); protected void gvUserInfo_RowDeleting(object sender, GridViewDeleteEventArgs e) /删除某一行信息 usermanage.UserName = gvUserInfo.DataKeyse.RowIndex.Value.ToString(); usermanage.DeleteUser(usermanage); gvBind();/执行删除操作后,重新绑定到页面 protected void gvUserInfo_RowCommand(object sender, GridViewCommandEventArgs e) /更新用户信息 if (e.CommandName = Update) SessionName = gvUserInfo.RowsConvert.ToInt32(e.CommandArgument).Cells0.Text; SessionPop = 用户; Response.Redirect(./Common/ModifyInfo.aspx); /转到修改用户信息页面 public void gvBind()/用于绑定的方法 if (txtName.Text = string.Empty) gvUserInfo.DataSource = usermanage.GetAllUser(tb_User).Tables0; gvUserInfo.DataBind(); for (int i = 0; i usermanage.GetAllUser(tb_User).Tables0.Rows.Count; i+) gvUserInfo.Rowsi.Cells2.Text = Convert.ToDateTime(usermanage.GetAllUser(tb_User).Tables0.Rowsi3.ToString().ToLongDateString(); else usermanage.UserName = txtName.Text; gvUserInfo.DataSource = usermanage.FindUserByName(usermanage, tb_User).Tables0; gvUserInfo.DataBind(); for (int i = 0; i usermanage.FindUserByName(usermanage, tb_User).Tables0.Rows.Count; i+) gvUserInfo.Rowsi.Cells2.Text
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东学校推迟上学通知书
- 广仁大街停电公告通知书
- 广西征兵复检通知书
- 应山疫情封闭通知书
- 府谷县初中开学通知书
- 延安欠薪清零通知书
- 建业学校开学通知书
- 开发商逾期收房通知书
- 开州区摆摊整顿通知书
- 当阳小区封控通知书
- 蜜雪冰城是如何实现成本领先的
- 电子商务公司薪资体系
- 幼儿教资(综合素质)及答案
- 列车电子防滑器-电子防滑器原理
- 钣金加工过程作业指导书
- 电子元器件标示及实物对照
- 自主移动机器人教学课件第4章 导航规划 2 避障规划和轨迹规划
- 耕地合法永久转让协议书
- 芜湖仅一机械有限公司年产500万套汽车零部件及通讯设备压轴件生产线项目(承诺制项目)环境影响报告表
- 压力管道强度计算书
- 律师尽职调查工作方案
评论
0/150
提交评论