留言板系统的设计实现分析.docx
- 文档编号:23387665
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:19
- 大小:157.61KB
留言板系统的设计实现分析.docx
《留言板系统的设计实现分析.docx》由会员分享,可在线阅读,更多相关《留言板系统的设计实现分析.docx(19页珍藏版)》请在冰豆网上搜索。
留言板系统的设计实现分析
一、设计目的
留言板管理系统主要是提供群众一个操作系统,便于网上交流,谈论。
功能块的响应操作分别由对应的子模块实现。
通过互联网把你想说的话及想问的事发表出去,方便大家交流。
同时,留言板的后台通过一个简化的自动的信息管理系统,使网友留言管理工作系统化,规化,自动化,从而到达提高网络作用和管理的目的。
本设计研究的留言板是一种电子便签管理系统,是用ASP和SQLSever编写的网络应用程序,留言操作相对简单,在进入后,可看到留言容。
留言板提供完备的信息发布功能,在网络用户交流中有很大的作用。
而我们这个留言板仅仅是简单的留言和管理员对留言进展操作的工具,该留言板简单实用,而且具备了大多数留言板的根本功能。
科学技术在不断地提高,计算机网络技术也日渐成熟,器强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用,现在许多国外和国的均实现了网上注册、网上查询、网上发表信息等一系列的网上信息效劳。
通过计算机网络实现了足不出户就可以了解各种信息、咨询问题、搜索资料等,有了这样的一个网络平台,节省了大量的人力物力。
二、需求分析
对于一个系统,我们要从其性能、功能、用户界面、平安性等反面考虑,系统必须完成的功能如下:
1.留言板管理系统前端的主要功能是:
(1)用户注册。
(2)用户登录。
(3)用户发表容。
(4)用户修改密码。
(5)用户浏览留言容。
2.留言板管理系统后台管理的主要功能:
(1)管理员登陆。
(2)管理员删除用户发帖信息。
3.留言板管理系统性能要求:
(1)页面响应速度快。
(2)页面美观整洁。
三、模块分析及设计
模块分析与设计是对一定围的不同功能或一样功能不同性能、不同规格的产品进展功能分析的根底上,划分并设计出一系列功能模块,通过模块的选择和组合构成不同的顾客定制的产品,以满足市场的不同需求。
在上节容中,已对本系统的所需求的功能进展了设计,结合其功能,制作出本系统的功能模块图,如下图:
留言板系统
普通用户
管理员
登
陆
修改密码
留
言
查看
留言
注册
用户
登
陆
删除
留言
四、数据库设计
4.1系统概念构造设计
4.1.1数据字典
数据字典是系统中各类数据描述的集合,是进展详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表构造的描述。
login表根本信息
序号
字段
别名
1
Uname
用户名
2
Upass
密码
3
4
Phone
5
Addr
地址
management表根本信息
序号
字段
别名
1
Uname
账号
2
Upass
密码
messages表根本信息
序号
字段
别名
1
ID
序号
2
Uname
用户名
3
Title
主题
4
Content
容
5
Times
时间
4.1.2系统E-R图
E-R图提供了表示实体〔即数据对象〕、属性和联系的方法,用来描述现实世界的概念模型。
n
1
用户
用户名
密码
地址
留言内容
序号
用户名
主题
内容
时间
发表留言
账号
密码
管理员
删除
4.1.3系统流程图
流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的容,流程线表示操作的先后次序。
留言内容
修改
初始密码
提交
登陆
登陆?
留言
是
留言
否
留言内容
新用户
注册
密码
4.2逻辑构造设计
逻辑构造设计就是把概念构造设计阶段所设计好的根本E-R图转换为与SQL数据库所支持数据模型相符合的逻辑构造。
关系模型如下所示:
a)login表〔用户名,密码,,,地址〕
b)messages表〔序号,用户名,主题,容,时间〕
c)management表〔账号,密码〕
五、制作过程及要点
5.1类库建立
publicclassdb
{
publicdb()
{
}
publicstaticSqlConnectionCreateConnection()
{
SqlConnectioncon=newSqlConnection("server=(Local);database=message;IntegratedSecurity=True");
returncon;
}
}
5.2验证码
protectedvoidPage_Load(objectsender,EventArgse)
{
this.GenImg(this.GenCode(4));
Session["image"]=this.GenCode(4);
}
privatestringGenCode(intnum)
{
string[]source={"0","1","2","3","4","5","6","7","8","9","0","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"};
stringcode="";
Randomrd=newRandom();
for(inti=0;i { code+=source[rd.Next(0,source.Length)]; } returncode; } privatevoidGenImg(stringcode) { BitmapmyPalette=newBitmap(60,20); Graphicsgh=Graphics.FromImage(myPalette); Rectanglerc=newRectangle(0,0,60,20); gh.FillRectangle(newSolidBrush(Color.Blue),rc); gh.DrawString(code,newFont("宋体",16),newSolidBrush(Color.White),rc); myPalette.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); gh.Dispose(); myPalette.Dispose(); } 5.3留言容界面 图〔一〕 翻开后,首先浏览到留言容〔图一〕,当用户要留言的时候,那么跳转到留言页面〔图二〕。 "留言"事件代码: protectedvoidButton3_Click(objectsender,EventArgse) { Response.Redirect("messages.aspx"); } 5.4留言页面 图〔二〕 在跳转到该页面之前,系统会检测用户是否登录,如果用户未登录,那么直接跳转到用户登录页面〔图三〕,如果用户登录,那么可提交留言。 在此页面,可统计注册会员的人数,用户名为用户登陆时,系统用session对象传递自动显示。 "留言"事件代码: protectedvoidPage_Load(objectsender,EventArgse) { try { this.Label1.Text=Session["Uname"].ToString(); SqlConnectioncon=db.CreateConnection(); con.Open(); stringstrsql="selectcount(*)fromlogin"; Sqlmandcmd=newSqlmand(strsql,con); SqlDataReaderrd=cmd.ExecuteReader(); while(rd.Read()) { this.Label2.Text=rd[0].ToString(); } rd.Close(); con.Close(); } catch { Response.Write(""); Response.Redirect("login.aspx"); } } protectedvoidButton1_Click(objectsender,EventArgse) { SqlConnectioncon=db.CreateConnection(); con.Open(); stringstrsql="insertintomessagesvalues('"+Label1.Text+"','"+TextBox2.Text+"','"+TextBox3.Text+"','"+DateTime.Now.ToString()+"')"; Sqlmandcmd=newSqlmand(strsql,con); cmd.ExecuteNonQuery(); con.Close(); Response.Write(""); Response.Redirect("messageout.aspx"); } "取消"事件代码: protectedvoidButton2_Click(objectsender,EventArgse) { TextBox2.Text=""; TextBox3.Text=""; } 5.5登录界面 图〔三〕 在登录界面,用户首先选择"角色","用户"那么跳转到留言容界面〔图一〕,"管理员"那么进入管理界面〔图六〕。 在此页面,用户还可以注册用户、修改密码。 "注册用户"那么进入注册界面〔图四〕,"修改密码"那么进入修改密码界面〔图五〕。 "登录"事件代码: protectedvoidPage_Load(objectsender,EventArgse) { this.ImageButton1.ImageUrl="image.aspx"; } protectedvoidButton1_Click(objectsender,EventArgse) { if(this.TextBox1.Text=="") { Label1.Text="用户名不能为空! } if(this.TextBox2.Text=="") { Label1.Text+="密码不能为空! } if(this.TextBox3.Text=="") { Label1.Text+="请输入验证码! } else { SqlConnectioncon=db.CreateConnection(); con.Open(); if(RadioButtonList1.SelectedItem.Value.ToString().Trim()=="用户") { stringstrsql="selectUpassfromloginwhereUname='"+this.TextBox1.Text+"'andUpass='"+this.TextBox2.Text+"'"; Sqlmandcmd=newSqlmand(strsql,con); DataSetds=newDataSet(); SqlDataReaderdr=cmd.ExecuteReader(); try { if(dr.Read()) { stringaa=this.TextBox3.Text.ToString(); if(aa==Convert.ToString(Session["image"])) { Session["Uname"]=this.TextBox1.Text.ToString(); Response.Redirect("messageout.aspx"); } else { Label1.Text="验证码错误,注意大小写! "; } } else { Label1.Text="用户名或者密码错误! "; } } catch { Label1.Text="输入的用户名不存在! "; } con.Close(); } elseif(RadioButtonList1.SelectedItem.Value.ToString().Trim()=="管理员") { stringstrsql1="selectUpassfrommanagementwhereUname='"+this.TextBox1.Text+"'andUpass='"+this.TextBox2.Text+"'"; Sqlmandcmd=newSqlmand(strsql1,con); DataSetds=newDataSet(); SqlDataReaderdr=cmd.ExecuteReader(); try { if(dr.HasRows) { stringaa=this.TextBox3.Text.ToString(); if(aa==Convert.ToString(Session["image"])) { Session["Uname"]=this.TextBox1.Text.ToString(); Response.Redirect("management.aspx"); } else { Label1.Text="验证码错误,注意大小写! "; } } else { Label1.Text="用户名或者密码错误! "; } } catch { Label1.Text="输入的用户名不存在! "; } con.Close();}}} 5.6注册页面 图〔四〕 用户注册成功后,将跳转到登录界面〔图三〕。 "注册"事件代码: protectedvoidButton1_Click(objectsender,EventArgse) { try { SqlConnectioncon=db.CreateConnection(); con.Open(); Sqlmandcmd=con.Createmand(); stringstrsql=string.Format("insertintologin(Uname,Upass,Email,Phone,Addr)values('{0}','{1}','{2}','{3}','{4}')",TextBox1.Text,TextBox2.Text,TextBox4.Text,TextBox5.Text,TextBox6.Text); cmd.mandText=strsql; cmd.ExecuteNonQuery(); Response.Write(""); Response.Redirect("login.aspx"); con.Close(); } catch { Response.Write(""); }} 5.7修改密码界面 图〔五〕 用户修改密码成功后,不在进展登录,直接进入留言板容界面〔图一〕 "确认"事件: protectedvoidButton1_Click1(objectsender,EventArgse) { SqlConnectioncon=db.CreateConnection(); Sqlmandcmd=con.Createmand(); con.Open(); stringstrsql1="selectUpassfromloginwhereUname='"+this.TextBox1.Text+"'andUpass='"+this.TextBox4.Text+"'"; cmd.mandText=strsql1; DataSetds=newDataSet(); SqlDataReaderdr1=cmd.ExecuteReader(); if(dr1.Read()) { dr1.Close(); Sqlmandcmd2=con.Createmand(); stringstrsql=string.Format("updateloginsetUpass='"+TextBox2.Text+"'whereUname='"+TextBox1.Text+"'"); cmd2.mandText=strsql; cmd2.ExecuteNonQuery(); Response.Write(""); Response.Redirect("messageout.aspx"); Session["Uname"]=this.TextBox1.Text.ToString(); } else {Response.Write("");} con.Close();} 5.8管理员界面 图〔六〕 在此界面,只授予管理员删除留言的权限。 设计总结 经过近一个星期的努力,终于设计出一个根本到达要求的设计。 其功能比拟完整,用户界面良好,但是也存在着一些缺陷: 〔1〕仅授予管理员删除留言的权限〔2〕不能针对性的回复留言〔3〕留言容仅支持一般汉字等等。 这一段时间的努力,最后的结果固重要,但更重要的是它让自己了解了设计的一般过程。 在做一个工程的时候,首先是进展需求分析,既各种功能需求以及系统构造都要在需求分析中做出来。 接下来做的就是逻辑构造设计,通过逻辑构造设计出数据库。 然后就是详细设计,通过需求分析中对各种功能的描述,利用自己所学的知识编写出相应的功能模块界面,这是个比拟繁琐的阶段,需要大量的编写和修改各局部代码,以确保系统整体的可运行性。 最后就到了验收成果的阶段,通过系统的运行测试,了解系统的一些问题和缺乏,并做出一定的修改,最终得到了现在的成果。 这个学期的学习中,我终于体会到Asp.Net和SQLServer2005功能的功能丰富,表达能力强,使用灵活方便,应用面广。 随着社会的开展,人类需要处理的数据越来越多,对数据管理的要求也越来越重要。 软件的开展也从面向程序开展成为面向数据。 附录 参考文献: 1、志泊主编? 数据库原理及应用教程? 人民邮电 2、闫洪亮主编? ASP.NET程序设计? 交通大学
";
";
";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 留言板 系统 设计 实现 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)