数据库课程设计留言板系统_第1页
数据库课程设计留言板系统_第2页
数据库课程设计留言板系统_第3页
数据库课程设计留言板系统_第4页
数据库课程设计留言板系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江西理工大学数据库课程设计报告目:留言板信息系统院:信息工程学院业:网络工程级:112生:王永宁号:1520113293指导教师:涂燕琼、南柄飞第一章总体设计 1.1需求分析 1.2模块设计 第二章系统分析 2.1留言板管理系统前端的主要功能 2.2留言板管理系统后台管理的主要功能 2.3留言板管理系统性能要求 第三章详细设计 数据库分析 E-R图 管理员表 用户信息表 留言信息表 数据库快照及字段说明 数据库连接详细设计 第四章前端页面设计

第一章总体设计1.1需求分析随着网络热潮的发展,各种各样的网站正成倍的迅速增长,面对各种网站,论坛的发展,人们开始更多的在网上交流。这就需要一个发表留言的系统一一留言板。通过这样的系统,可以做到信息的规范管理、科学统计和快速的发表言论。由于计算机和网络的普及,若建立一个留言板系统,人们便可以通过网络的登陆成为会员,取得发表言论上午资格,也使得留言板管理工作系统化,规范化,自动化。1.2模块设计留言板系统的基本功能包括用户信息的录入、查询、修改和删除。用户留言及头像的前台显示功能。其中还包括管理员的登录信息。整体功能设计图如下所示:留言板系统游客模块注册用户

模块后台模块修改留言删除模块模块回复留言

模块游客模块注册用户

模块后台模块修改留言删除模块模块回复留言

模块第二章系统分析2.1留言板管理系统前端的主要功能用户注册。用户登录。用户发表主题。用户回复。用户修改个人注册信息。用户查看所有发帖以及回复信息。用户查看自己发表的主题。用户对主题进行各种查询。2.2留言板管理系统后台管理的主要功能管理员登陆。修改用户注册信息。管理员修改用户发帖或回复的信息。管理员删除用户发帖或回复的信息。对用户发帖信息进行加精处理。2.3留言板管理系统性能要求页面响应速度快。页面美观整洁。第三章详细设计3.1数据库分析用户需求具体管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。3.2数据库概念结构设计:E-R图3.3管理员表Createtableadmin(Anochar(10)primarykey,Pwdchar(10))Insertintoadmin(ano,pwd)values('gao',T11')管理员(姓名、密码)对应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)ondeletecascadeonupdatecascade)留言信息(用户账号、留言信息)对应E-R图如下:3.6数据库快照及字段说明(数据库为SQLserver2005)普通用户表user表格属性说 明是否为主码user_name用户注册的用户名。否password用户名白"。否user_sex用户输入勺倾。否user_qq用户输入同号码。是user_email用户输入的email地址o否表-dbo.theme摘要列名数据类型允许空themejdintrtheme_user_namevarchar(50)rtheme_contentvarchar(200)rdick_numberintrdatelinedatetimermessage_numberintrtheme_namevarchar(SO)ri5_goodintr主题表:theme表格属性说明是否为主码theme_id主题id。是theme_user_name发表主题的用户名。否theme_content主题的内容。否click_number主题被点击的次数。否dateline发表的时间。否message_numbe:。留言的数量。否theme_name主题名。否is_good是否被M。否用户留言表:message表格属性说 明是否为主码message_id留言id是message_date留言时1'可。否message_content留言内容。否message_user_nam留言者的用户名否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(),〃〃,〃〃,T);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);//关闭对话框}elseMessageBox("请确认用户名和密码,注意大小写!〃,〃认证失败〃);} 一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登录〃);第四章前端页面设计首页精品区人气排行创建标题关键字厂搜索标题1wk隧言吧登陆注册点击数留言数标题作者发表时间325今天就写到这吧[精品]王坤2222011-04-032322:24S2南京吃个饭真贵 、-t_X admin2011-04-0319:48:46397明天放假啦? 二二页面(冬1)admin2011-04-0219:19:29366仔天吃的啥?[精品]admin2010-10-1218:32:17用户浏览主页面,将会显示所有标题信息。如果用户没有登陆则会在右上角用红色的字体显示“登陆”和“注册”。标题按时间顺序降序排列,标题如果被加精则会在标题名称后面显示红色的“[精品]”。在标题名前显示了点击数和留言数。主页面中还有搜索标题的功能可对标题进行模糊查询,并进行了不为空的验证(主页面代码太多,省略)。在主界面上当用户点击了“精品区”,“人气排行”,“首页”和标题名称这些链接后,将会通过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";}<packagename="strutsqs"extends="struts-default><actionname="Search"class="action.SearchAction><resultname="alert">/alert.jsp</result><resultname=〃index">/index.jsp</result><resultname=〃error">/error.jsp</result></actio></package>其中alert.jsp页面用于显示各种提示信息。在我的设计中,如果需要提示信息时,会将短小的脚本代码设置到request范围中,然后通过Struts2机制跳转到alert.jsp页面,在alert.jsp页面中输出request中的信息。脚本中的信息一般是提示框,点击后跳转到用户所需要的页面。用户点击“首页”,“精品区”,“人气排行”和标题的链接最后都依旧会跳到主页面,只是显示的内容不同。点击“首页”会将所有标题信息显示,按时间降序排列(图1所示)。点击“精品区”会显示所有被加精品的标题(如图2)。点击“人气排行”会显示所有标题,但是将按照留言数量进行排序(留言数量相同时按照点击数排序,如图3)。点击标题链接则会将该标题的所有留言信息显示出来,在此时“创建标题”链接将会变成“留言”链接(如图4)。点击数留言数标题作者发表时间|32£冷天就写到这吧[精品]王坤^011-04-0323*24|36今天吃的啥?[精品]|admtn^010-10-121S:3M7图2点击数留言数标题作者发表时间1明天放假啦?|admin^011-04-0219:19129作天吃的啥?[精品]|adminI^OIO-10-121832:17冷天就写到这姑[精品]王坤222^011-04-0323-22-241®商京吃个饭真贵|admtn^511-04-0319:48:45图3wk修改注册信息我创建的标题首页精品区人气排行留言关键字厂搜索标题|标题:今天吃的啥?2010-10-1218:32:17肉1 1admin今天吃的啥啊?我中午吃的梅干菜烧肉和芹菜肉丝,难吃死了,还贵。食堂真1\推以下为留言信息:\Xf1 1iguangbin难吃也得吃,呵呵2011-04-0420:54:04肉f1 1caocao2是真雎吃,不是一般的难吃图42011-04-0420:42:12在主页面中,虽然所有浏览该页面的人都能看到“创建标题”和“留言”链接。但是如果浏览者没有登陆,则无法进行“创建标题”和“留言”。点击是会被提示(图5),然后将登陆层显示(如图6),让用户登陆后在进行“创建标题”和“留言”操作。和“留言”操作。登陆注册首页精品区 人气排行 创建标题关键字: 搜索标题|点击数留言数标题欢迎登陆 凶作者发表时间397明天放假啦7admin2011-04-0219:19:29366今天吃的啥7[精品]admin2010-10-1218:32:17325今■天就写到正吧[精品]王坤2处2011-04-0323:22:2482京吃个饭真贵admin2011-04-0319:48:46用户名:厂密码:「♦陆I注册I登陆后用户进行“创建标题”和“留言”(同时也可以看到右上角的“登陆”,“注册”,变成了“修改注册信息”,“我创建的标题”)。用户点击“创建标题”时,会将创建标题层显示,创建标题中失去焦点时即有脚本进行验证,并通过动态改变DIV的样式和文字来达到美观,简单的提示用户的效果(如图7)。用户点击留言后,会弹出和创建标题层相同的层,不同的是标题变成无法修改,用户只能输入留言(图8)。wk修改注册信息我创建的标题1首页精品区人气排行创建标题1关键字厂■搜索标题|点击数留言数标题脉题长度必须在?三之间 1作者发表时间00dd标题名:|我scott2011-04-1014:06:38365今天就写到这吧[精品]王坤2222011-04-0323:222482南京吃个饭真贵内容:admin2011-04-0319:48:46397明天放假啦■?admin2011-04-0219:19:29386今天吃的啥■?[精品]adtnin2010-10-1218:32:17修改注册信息我创建的标题图8在显示留言时,当用户注册信息性别为女时会显示女头像,为男时显示男头像(该功能可以扩展为用户任意选择头像)。当浏览页面想“创建标题”和“留言”但没有账号时就要通过注册页面进行注册,然后在进行登陆后的“创建标题”和“留言”。首M 网站信息提出意见关闭网页欢迎注册WK留言吧通行证!如果己有一个留言吧通行证,即可直接登录您的逋行证信息设置www.baiducom港蓬昼B%e爱鹘言吧,让1。以留住匕二志留考。电广告专线:1340585238^服电话:15」0志打3厂关于我们南京新华注册页面(图9)在注册页面我使用了大量的脚本进行验证,在“用户名”栏使用了AJAX技术,在注册者输入用户名后,将进行脚本验证,验证通过后通过AJAX的方式提交到后台(AJAX也采用Struts2,图10)。验证同样是通过动态改变DIV样式和文字来达到提示的效果,并且当用户提交时,会使验证没有通过的文本框获得焦点。您的逋行证信息设置用户名:*|SCOtt |迥E该用户名己被使用|图10您的逋行证信息设置登陆密码:*〔••••••*• 倍码可以使用确认密码:*!••••••* 晚认密码和登陆密码必须相等!图11以下是Struts2简单的AJAX,在配置文件文件中的代码:〈packagename=〃Struts2_AJAX_DEMO〃extends=〃json-default><actionname=〃Ajax"class=〃action.Ajax><resulttype="json"name="success'/〉</action></packag>在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”;}returnsuccess;}前台部分代码:varxmlHttp=newXMLHttpRequest();createXMLHttpRequest();xmlHttp.onreadystatechange二function(){if(xmlHttp.readyState==4){result();}}xmlHttp.open('POST',"Ajax?name="+values);xmlHttp.sennul);functi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论