留言板系统的设计与实现.doc
《留言板系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《留言板系统的设计与实现.doc(16页珍藏版)》请在冰豆网上搜索。
![留言板系统的设计与实现.doc](https://file1.bdocx.com/fileroot1/2022-10/9/48d3c4de-13ca-4ca1-ada1-5c30cd06b2e9/48d3c4de-13ca-4ca1-ada1-5c30cd06b2e91.gif)
目录
一、设计目的 1
二、需求分析 1
三、模块分析及设计 2
四、数据库设计 2
4.1系统概念结构设计 2
4.1.1数据字典 2
4.1.2系统E-R图 3
4.1.3系统流程图 4
4.2逻辑结构设计 5
五、制作过程及要点 6
5.1类库建立 6
5.2验证码 6
5.3留言内容界面 7
5.4留言页面 7
5.5登录界面 9
5.6注册页面 12
5.7修改密码界面 13
5.8管理员界面 14
设计总结 15
附录.........................................................15
一、设计目的
留言板管理系统主要是提供大众一个操作系统,便于网上交流,谈论。
功能块的响应操作分别由对应的子模块实现。
通过互联网把你想说的话及想问的事发表出去,方便大家交流。
同时,留言板的后台通过一个简化的自动的信息管理系统,使网友留言管理工作系统化,规范化,自动化,从而达到提高网络作用和管理的目的。
本设计研究的留言板是一种电子便签管理系统,是用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
Email
邮箱
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";
SqlCommandcmd=newSqlCommand(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()+"')";
SqlCommandcmd=newSqlCommand(strsql,con);
cmd.ExecuteNonQuery();
con.Close();
Response.Write("