数据库课程设计留言板系统.docx

上传人:b****8 文档编号:10863019 上传时间:2023-02-23 格式:DOCX 页数:20 大小:480.27KB
下载 相关 举报
数据库课程设计留言板系统.docx_第1页
第1页 / 共20页
数据库课程设计留言板系统.docx_第2页
第2页 / 共20页
数据库课程设计留言板系统.docx_第3页
第3页 / 共20页
数据库课程设计留言板系统.docx_第4页
第4页 / 共20页
数据库课程设计留言板系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据库课程设计留言板系统.docx

《数据库课程设计留言板系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计留言板系统.docx(20页珍藏版)》请在冰豆网上搜索。

数据库课程设计留言板系统.docx

数据库课程设计留言板系统

第一章总体设计

1.1需求分析

1.2模块设计

第二章系统分析

2.1留言板管理系统前端的主要功能

2.2留言板管理系统后台管理的主要功能………………………………………

2.3留言板管理系统性能要求……………………………………………………

第三章详细设计

3.1.数据库分析……………………………………………………

3.2.E-R图……………………………………………………………

3.3.管理员表

3.4.用户信息表

3.5.留言信息表

3.6.数据库快照及字段说明

3.7.数据库连接详细设计

第四章前端页面设计

 

第一章总体设计

1.1需求分析

随着网络热潮的发展,各种各样的网站正成倍的迅速增长,面对各种网站,论坛的发展,人们开始更多的在网上交流。

这就需要一个发表留言的系统——留言板。

通过这样的系统,可以做到信息的规范管理、科学统计和快速的发表言论。

由于计算机和网络的普及,若建立一个留言板系统,人们便可以通过网络的登陆成为会员,取得发表言论上午资格,也使得留言板管理工作系统化,规范化,自动化。

1.2模块设计

留言板系统的基本功能包括用户信息的录入、查询、修改和删除。

用户留言及头像的前台显示功能。

其中还包括管理员的登录信息。

整体功能设计图如下所示:

 

第二章系统分析

2.1留言板管理系统前端的主要功能

(1)用户注册。

(2)用户登录。

(3)用户发表主题。

(4)用户回复。

(5)用户修改个人注册信息。

(6)用户查看所有发帖以及回复信息。

(7)用户查看自己发表的主题。

(8)用户对主题进行各种查询。

2.2留言板管理系统后台管理的主要功能

(1)管理员登陆。

(2)修改用户注册信息。

(3)管理员修改用户发帖或回复的信息。

(4)管理员删除用户发帖或回复的信息。

(5)对用户发帖信息进行加精处理。

2.3留言板管理系统性能要求

(1)页面响应速度快。

(2)页面美观整洁。

 

第三章详细设计

3.1数据库分析

用户需求具体管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。

3.2数据库概念结构设计:

E-R图

 

 

 

3.3管理员表

Createtableadmin(

Anochar(10)primarykey,

Pwdchar(10)

Insertintoadmin(ano,pwd)values('gao','111')

管理员(姓名、密码)对应E—R图如下:

 

3.4用户信息表

createtableusers(

unochar(20)primarykey,

unamechar(20),

sexchar(20),

pwdchar(20),

imgchar(100),

用户信息(账号、性别、姓名、密码、头像)对应E—R图如下:

3.5留言信息表

createtablejiaoliu(

jnointidentity(1,1)primarykey,

unochar(20),

nerongchar(2000),

foreignkey(uno)referencesusers(uno)

ondeletecascade

onupdatecascade

 

留言信息(用户账号、留言信息)对应E—R图如下:

 

 

3.6数据库快照及字段说明(数据库为SQLserver2005)

普通用户表:

user

表格属性

说明

是否为主码

user_name

用户注册的用户名。

password

用户名的密码。

user_sex

用户输入的性别。

user_qq

用户输入的qq号码。

user_email

用户输入的email地址。

主题表:

theme

表格属性

说明

是否为主码

theme_id

主题id。

theme_user_name

发表主题的用户名。

theme_content

主题的内容。

click_number

主题被点击的次数。

dateline

发表的时间。

message_number

留言的数量。

theme_name

主题名。

is_good

是否被加精。

用户留言表:

message

表格属性

说明

是否为主码

message_id

留言id

message_date

留言时间。

message_content

留言内容。

message_user_name

留言者的用户名

theme_id

留言对应的主题。

 

管理员账户表:

admin

表格属性

说明

是否为主码

admin_name

管理员用户名。

admin_password

管理员用户密码。

3.7数据库连接详细设计:

系统管理模块:

(代码实现)

voidCLoginDlg:

:

OnOK()//响应按钮连接数据库

{

CStringstr,strPasswd;

_RecordsetPtrpRS;//Recordset对象

UpdateData();//更新数据

//打开数据库

if(pTheConn->GetState()==adStateClosed)

pTheConn->Open(m_strDSN.AllocSysString(),"","",-1);

pRS.CreateInstance(__uuidof(Recordset));//创建Recordset对象实例

strPasswd=CCrypt:

:

Encrypt(m_strPasswd,123);//密码加密

//设置过滤条件

str="ID='"+m_strUser

+"'andPASSWD='"+strPasswd

+"'andAUTHORITY='5'";

try

{

pRS->Filter=str.AllocSysString();

pRS->Open("PERSON",

pTheConn.GetInterfacePtr(),

adOpenStatic,adLockReadOnly,adCmdTable);

}

catch(_com_error*e)

{

CStringError=e->ErrorMessage();

AfxMessageBox(e->ErrorMessage());

}

catch(...)

{

AfxMessageBox("打开数据集对象出错!

");

}

inta=pRS->RecordCount;

if(pRS->RecordCount==1)//判断认证是否通过

{

EndDialog(IDOK);//关闭对话框

}

else

MessageBox("请确认用户名和密码,注意大小写!

","认证失败");

}

voidCSalaryDlg:

:

OnSystemConnect()//显示用户登录窗口

{

CLoginDlgLoginDlg;

if(LoginDlg.DoModal()==IDOK)//认证通过

m_wndStatusBar.SetPaneText(1,"已连接到数据库:

"+LoginDlg.m_strDSN);

}

voidCSalaryDlg:

:

OnSystemDisconnect()//断开连接

{

//关闭Connetion对象

if(pTheConn->GetState()==adStateOpen)

pTheConn->Close();

m_wndStatusBar.SetPaneText(1,"尚未登录数据库,请按F2登录");

第四章前端页面设计

 

主页面(图1)

用户浏览主页面,将会显示所有标题信息。

如果用户没有登陆则会在右上角用红色的字体显示“登陆”和“注册”。

标题按时间顺序降序排列,标题如果被加精则会在标题名称后面显示红色的“[精品]”。

在标题名前显示了点击数和留言数。

主页面中还有搜索标题的功能可对标题进行模糊查询,并进行了不为空的验证(主页面代码太多,省略)。

在主界面上当用户点击了“精品区”,“人气排行”,“首页”和标题名称这些链接后,将会通过Struts2的机制进行跳转至后台处理。

以下是这几个链接的后台处理文件代码和在Struts2配置文件中的配置代码:

publicStringexecute(){

ActionContextct=ActionContext.getContext();

HttpServletRequestrequest=(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);

if(request.getParameter("action")!

=null){

if(request.getParameter("action").equals("message")){

Listlist=newMessageDAO().findAll(request.getParameter("id"));

request.setAttribute("message",list);

Listtemp1=(List)newThemeDAO().findById(request.getParameter("id"));

Themetheme=(Theme)temp1.get(0);

request.setAttribute("theme",theme);

newThemeDAO().click(theme);

Listtemp2=(List)newUserDAO().findByName(theme.getUsertable().getUserName());

Usertableuser=(Usertable)temp2.get(0);

request.setAttribute("sex",user.getUserSex());

return"index";

}

if(request.getParameter("action").equals("isGood")){

Listlist=newThemeDAO().findisGood();

request.setAttribute("list",list);

return"index";

}

if(request.getParameter("action").equals("orderby")){

Listlist=newThemeDAO().findOrderBy();

request.setAttribute("list",list);

return"index";

}

}

Listlist=newThemeDAO().findAll();

request.setAttribute("list",list);

return"index";

}

/alert.jsp

/index.jsp

/error.jsp

其中alert.jsp页面用于显示各种提示信息。

在我的设计中,如果需要提示信息时,会将短小的脚本代码设置到request范围中,然后通过Struts2机制跳转到alert.jsp页面,在alert.jsp页面中输出request中的信息。

脚本中的信息一般是提示框,点击后跳转到用户所需要的页面。

用户点击“首页”,“精品区”,“人气排行”和标题的链接最后都依旧会跳到主页面,只是显示的内容不同。

点击“首页”会将所有标题信息显示,按时间降序排列(图1所示)。

点击“精品区”会显示所有被加精品的标题(如图2)。

点击“人气排行”会显示所有标题,但是将按照留言数量进行排序(留言数量相同时按照点击数排序,如图3)。

点击标题链接则会将该标题的所有留言信息显示出来,在此时“创建标题”链接将会变成“留言”链接(如图4)。

图2

图3

 

图4

在主页面中,虽然所有浏览该页面的人都能看到“创建标题”和“留言”链接。

但是如果浏览者没有登陆,则无法进行“创建标题”和“留言”。

点击是会被提示(图5),然后将登陆层显示(如图6),让用户登陆后在进行“创建标题”和“留言”操作。

 

图5

 

图6

登陆后用户进行“创建标题”和“留言”(同时也可以看到右上角的“登陆”,“注册”,变成了“修改注册信息”,“我创建的标题”)。

用户点击“创建标题”时,会将创建标题层显示,创建标题中失去焦点时即有脚本进行验证,并通过动态改变DIV的样式和文字来达到美观,简单的提示用户的效果(如图7)。

用户点击留言后,会弹出和创建标题层相同的层,不同的是标题变成无法修改,用户只能输入留言(图8)。

 

图7

 

图8

在显示留言时,当用户注册信息性别为女时会显示女头像,为男时显示男头像(该功能可以扩展为用户任意选择头像)。

当浏览页面想“创建标题”和“留言”但没有账号时就要通过注册页面进行注册,然后在进行登陆后的“创建标题”和“留言”。

注册页面(图9)

在注册页面我使用了大量的脚本进行验证,在“用户名”栏使用了AJAX技术,在注册者输入用户名后,将进行脚本验证,验证通过后通过AJAX的方式提交到后台(AJAX也采用Struts2,图10)。

验证同样是通过动态改变DIV样式和文字来达到提示的效果,并且当用户提交时,会使验证没有通过的文本框获得焦点。

图10

图11

以下是Struts2简单的AJAX,在配置文件文件中的代码:

在action中的代码:

publicStringexecute(){

ActionContextct=ActionContext.getContext();

HttpServletRequestrequest=(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);

Listlist=newUserDAO().findByName(request.getParameter("name"));

if(list.size()==0){

isUser="true";

}else{

isUser="false";

}

return"success";

}

前台部分代码:

varxmlHttp=newXMLHttpRequest();

createXMLHttpRequest();

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4){

result();

}

}

xmlHttp.open('POST',"Ajax?

name="+values);

xmlHttp.send(null);

解析方法:

functionresult(){

varoBook=eval('('+xmlHttp.responseText+')');

if(oBook.isUser=="true"){

document.getElementById("nameSpan").className="div2";

document.getElementById("nameSpan").innerHTML="恭喜!

该用户名可以使用";

flag1=true;

}else{

document.getElementById("nameSpan").className="div1";

document.getElementById("nameSpan").innerHTML="sorry,该用户名已被使用";

flag1=false;

}

}

以上为前台页面的内容,页面设计主要以简单,美观,简短为主,仍有大量需要改进之处。

下面对后台功能进行简单的介绍。

 

后台管理登陆页面(图12)

在从后台登陆以后会跳到主页面,在点击进入标题链接进入显示留言的主页面后。

页面中显示的标题和留言后出现了,各种管理的链接(图13)。

管理员可以通过这些链接,有针对性的对标题留言进行各种操作(可以看见右上角的链接又变成了“管理用户”)。

 

 

图13

管理员在进行删除和加精操作是会有相应的提示,在删除标题时则会提示两次。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1