留言板系统的设计与实现Word文件下载.docx
《留言板系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《留言板系统的设计与实现Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述。
login表基本信息
序号
字段
别名
1
Uname
用户名
2
Upass
密码
3
Email
邮箱
4
Phone
电话
5
Addr
地址
management表基本信息
账号
messages表基本信息
ID
Title
主题
Content
内容
Times
时间
4.1.2系统E-R图
E-R图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。
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"
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<
num;
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("
<
script>
alert('
用户未登录成功!
'
)<
/script>
login.aspx"
protectedvoidButton1_Click(objectsender,EventArgse)
stringstrsql="
insertintomessagesvalues('
+Label1.Text+"
'
+TextBox2.Text+"
+TextBox3.Text+"
+DateTime.Now.ToString()+"
)"
SqlCommandcmd=newSqlCommand(strsql,con);
cmd.ExecuteNonQuery();
con.Close();
留言成功!
Response.Redirect("
messageout.aspx"
取消"
protectedvoidButton2_Click(objectsender,EventArgse)
TextBox2.Text="
TextBox3.Text="
5.5登录界面
图(三)
在登录界面,用户首先选择"
角色"
,"
用户"
则跳转到留言内容界面(图一),"
管理员"
则进入管理界面(图六)。
在此页面,用户还可以注册用户、修改密码。
注册用户"
则进入注册界面(图四),"
修改密码"
则进入修改密码界面(图五)。
登录"
this.ImageButton1.ImageUrl="
image.aspx"
if(this.TextBox1.Text=="
)
Label1.Text="
用户名不能为空!
br>
if(this.TextBox2.Text=="
Label1.Text+="
密码不能为空!
if(this.TextBox3.Text=="
请输入验证码!
else
if(RadioButtonList1.SelectedItem.Value.ToString().Trim()=="
selectUpassfromloginwhereUname='
+this.TextBox1.Text+"
andUpass='
+this.TextBox2.Text+"
DataSetds=newDataSet();
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
stringaa=this.TextBox3.Text.ToString();
if(aa==Convert.ToString(Session["
]))
]=this.TextBox1.Text.ToString();
验证码错误,注意大小写!
用户名或者密码错误!
catch
输入的用户名不存在!
elseif(RadioButtonList1.SelectedItem.Value.ToString().Trim()=="
stringstrsql1="
selectUpassfrommanagementwhereUname='
SqlCommandcmd=newSqlCommand(strsql1,con);
if(dr.HasRows)
management.aspx"
}}}
5.6注册页面
图(四)
用户注册成功后,将跳转到登录界面(图三)。
注册"
SqlCommandcmd=con.CreateCommand();
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.CommandText=strsql;
cmd.ExecuteNonQuery();
注册用户成功!
用户名存在,请选择其它用户名'
}}
5.7修改密码界面
图(五)
用户修改密码成功后,不在进行登录,直接进入留言板内容界面(图一)
确认"
事件:
protectedvoidButton1_Click1(objectsender,EventArgse)
+this.TextBox4.Text+"
cmd.CommandText=strsql1;
SqlDataReaderdr1=cmd.ExecuteReader();
if(dr1.Read())
dr1.Close();
SqlCommandcmd2=con.CreateCommand();
stringstrsql=string.Format("
updateloginsetUpass='
+TextBox2.Text+"
whereUname='
+TextBox1.Text+"
cmd2.CommandText=strsql;
cmd2.ExecuteNonQuery();
修改密码成功!
{Response.Write("
用户名或原始密码错误!
5.8管理员界面
图(六)
在此界面,只授予管理员删除留言的权限。
设计总结
经过近一个星期的努力,终于设计出一个基本达到要求的设计。
其功能比较完整,用户界面良好,但是也存在着一些缺陷:
(1)仅授予管理员删除留言的权限
(2)不能针对性的回复留言(3)留言内容仅支持一般汉字等等。
这一段时间的努力,最后的结果固重要,但更重要的是它让自己了解了设计的一般过程。
在做一个项目的时候,首先是进行需求分析,既各种功能需求以及系统结构都要在需求分析中做出来。
接下来做的就是逻辑结构设计,通过逻辑结构设计出数据库。
然后就是详细设计,通过需求分析中对各种功能的描述,利用自己所学的知识编写出相应的功能模块界面,这是个比较繁琐的阶段,需要大量的编写和修改各部分代码,以确保系统整体的可运行性。
最后就到了验收成果的阶段,通过系统的运行测试,了解系统的一些问题和不足,并做出一定的修改,最终得到了现在的成果。
这个学期的学习中,我终于体会到Asp.Net和SQLServer2005功能的功能丰富,表达能力强,使用灵活方便,应用面广。
随着社会的发展,人类需要处理的数据越来越多,对数据管理的要求也越来越重要。
软件的发展也从面向程序发展成为面向数据。
附录
参考文献:
1、陈志泊主编《数据库原理及应用教程》人民邮电出版社
2、闫洪亮主编《ASP.NET程序设计》上海交通大学出版社