留言板系统信息管理系统课程设计.docx
- 文档编号:24723588
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:16
- 大小:174.83KB
留言板系统信息管理系统课程设计.docx
《留言板系统信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《留言板系统信息管理系统课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
留言板系统信息管理系统课程设计
摘 要
在科学技术飞速发展的今天,计算机科学及互联网日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用。
各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
随着网络热潮的发展,一些公司正在积极建立自己的网站,一些大学也已经开设了网络相关的专业及课程。
同时网站的重要性也越来越重要。
而作为网站中交流的中心,留言板起到了至关重要的地位。
它有助于版主收集网站的反馈信息,也是客户通过网络收集信息的有力工具。
留言板在一个网站具有很重要的地位,随着上网的普及,留言板已经不是什么新鲜事物了。
本文主要介绍了用VS2010,VC++,C#,ASP技术和数据库技术来创建留言板的整个过程和代码的设计!
本留言板更注重安全和与网站融合,但也有自己独特之处。
关键词:
留言板,信息管理,VS2010,VC++,C#,ASP,数据库技术
2.2留言板管理系统后台管理的主要功能…………………………………………….2
2.3留言板管理系统性能要求…………………………………………………………….2
3.1.2数据库概念结构设计3
4参考文献14
1总体设计
1.1需求分析
随着网络热潮的发展,各种各样的网站正成倍的迅速增长,面对各种网站,论坛的发展,人们开始更多的在网上交流。
这就需要一个发表留言的系统——留言板。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的发表言论。
由于计算机和网络的普及,若建立一个留言板系统,人们便可以通过网络的登陆成为会员,取得发表言论上午资格,也使得留言板管理工作系统化,规范化,自动化。
1.2模块设计
留言板系统的基本功能包括用户信息的录入、查询、修改和删除。
用户留言及头像的前台显示功能。
其中还包括管理员的登录信息。
整体功能设计图如下所示:
-1-
2系统分析
2.1留言板管理系统前端的主要功能
(1)注册。
(2)登录。
(3)发表主题。
(4)回复。
(5)修改个人注册信息。
(6)查看所有发帖以及回复信息。
(7)查看自己发表的主题。
(8)对主题进行各种查询。
2.2留言板管理系统后台管理的主要功能
(1)管理员登陆。
(2)修改用户注册信息。
(3)管理员修改用户发帖或回复的信息。
(4)管理员删除用户发帖或回复的信息。
(5)对用户发帖信息进行加精处理。
2.3留言板管理系统性能要求
(1)页面响应速度快。
(2)页面美观整洁。
-2-
3详细设计
3.1数据库设计
3.1.1数据库分析
用户需求具体管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
3.1.2数据库概念结构设计:
管理员
3.1.3管理员表
Createtableadmin(
Anochar(10)primarykey,
Pwdchar(10)
)
Insertintoadmin(ano,pwd)values('PEI','123')
管理员(姓名、密码)对应图如下:
-3-
3.1.3用户信息表
createtableusers(
unochar(20)primarykey,
unamechar(20),
sexchar(20),
passwordchar(20),
headchar(100),
)
用户信息(账号、性别、姓名、密码、头像)对应图如下:
头像
-4-
3.1.4留言信息表
createtablejiaoliu(
jnointidentity(1,1)primarykey,
unochar(20),
nerongchar(2000),
foreignkey(uno)referencesusers(uno)
ondeletecascade
onupdatecascade
)
留言信息(用户账号、留言信息)对应E—R图如下:
-5-
3.1.5数据库快照及字段说明(数据库为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
是否被加精。
-6-
管理员账户表:
admin
表格属性
说明
admin_name
管理员用户名。
admin_password
管理员用户密码。
3.1.6数据库连接详细设计:
系统管理模块:
(代码实现)
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",-7-
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);
}
-8-
voidCSalaryDlg:
:
OnSystemDisconnect()//断开连接
{
//关闭Connetion对象
if(pTheConn->GetState()==adStateOpen)
pTheConn->Close();
m_wndStatusBar.SetPaneText(1,"尚未登录数据库,请按F2登录");、
3.2.前端页面设计
用户浏览主页面,将会显示所有标题信息。
如果用户没有登陆则会在右上角用红色的字体显示“登陆”和“注册”。
标题按时间顺序降序排列,标题如果被加精则会在标题名称后面显示红色的“[精品]”。
在标题名前显示了点击数和留言数。
主页面中还有搜索标题的功能可对标题进行模糊查询,并进行了不为空的验证(主页面代码太多,省略)。
在主界面上当用户点击了“精品区”,“人气排行”,“首页”和标题名称这些链接后,将会通过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);-9-
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页面用于显示各种提示信息。
在我的设计中,如果需要提示信息时,会将短小的脚本代码设置到request范围中,然后通过Struts2机制跳转到alert.jsp页面,在alert.jsp页面中输出request中的信息。
脚本中的信息一般是提示框,点击后跳转到用户所需要的页面。
用户点击“首页”,“精品区”,“人气排行”和标题的链接最后都依旧会跳到主页面,只是显示的内容不同。
点击“首页”会将所有标题信息显示,按时间降序排列。
点击“精品区”会显示所有被加精品的标题。
点击“人气排行”会显示所有标题,但是将按照留言数量进行排序。
点击标题链接则会将该标题的所有留言信息显示出来,在此时“创建标题”链接将会变成“留言”链接。
在主页面中,虽然所有浏览该页面的人都能看到“创建标题”和“留言”链接。
但是如果浏览者没有登陆,则无法进行“创建标题”和“留言”。
点击是会被提示,然后将登陆层显示,让用户登陆后在进行“创建标题”和“留言”操作。
登陆后用户进行“创建标题”和“留言”(同时也可以看到右上角的“登陆”,“注册”,变成了“修改注册信息”,“我创建的标题”)。
用户点击“创建标题”时,会将创建标题层显示,创建标题中失去焦点时即有脚本进行验证,并通过动态改变DIV的样式和文字来达到美观,简单的提示用户的效果。
用户点击留言后,会弹出和创建标题层相同的层,不同的是标题变成无法修改,用户只能输入留言。
在显示留言时,当用户注册信息性别为女时会显示女头像,为男时显示男头像(该功能可以扩展为用户任意选择头像)。
当浏览页面想“创建标题”和“留言”但没有账号时就要通过注册页面进行注册,然后在进行登陆后的“创建标题”和“留言”。
在注册页面我使用了大量的脚本进行验证,在“用户名”栏使用了AJAX技术,在注册者输入用户名后,将进行脚本验证,验证通过后通过AJAX的方式提交到后台(AJAX也采用Struts2)。
验证同样是通过动态改变DIV样式和文字来达到提示的效果,并且当用户提交时,会使验证没有通过的文本框获得焦点。
以下是Struts2简单的AJAX,在配置文件文件中的代码:
在action中的代码:
-11-
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"){-12-
document.getElementById("nameSpan").className="div2";
document.getElementById("nameSpan").innerHTML="恭喜!
该用户名可以使用";
flag1=true;
}else{
document.getElementById("nameSpan").className="div1";
document.getElementById("nameSpan").innerHTML="sorry,该用户名已被使用";
flag1=false;
}
}
以上为前台页面的内容,页面设计主要以简单,美观,简短为主,仍有大量需要改进之处。
下面对后台功能进行简单的介绍。
在从后台登陆以后会跳到主页面,在点击进入标题链接进入显示留言的主页面后。
页面中显示的标题和留言后出现了,各种管理的链接。
管理员可以通过这些链接,有针对性的对标题留言进行各种操作(可以看见右上角的链接又变成了“管理用户”)。
管理员在进行删除和加精操作是会有相应的提示,在删除标题时则会提示两次。
-13-
4.参考文献
[1]马 波著.DreamweaverMX完美网页设计与制作[M].北京:
中国青年出版社.2003
[2]莫治雄著.闪客家园flashMX网上画编程指南[M].北京:
北京希望电子出版社.2003
[3]罗凤华著.Photoshop白金案例[M].四川:
四川电子音像出版中心.2003
[4]丁贵广著.ASP及ASP.NET编程基础与实例[M].北京:
机械工业出版社
[5]宣小平编著.ASP数据库系统开发实例导航[M].北京:
人民邮电出版社.2003
[6]郑阿奇主编.SQLServer实用教程[M].北京:
电子工业出版社.2002
[7]汪晓军、钟平编著.ASP网络开发技术(第二版)[M].北京:
人民邮电出版社.2003
[8]宋瀚涛梁允荣,关系数据库原理与系统[M],北京理工大学出版社,1992年
[9]刘秋生,数据库系统设计及其应用案例分析[M],东南大学出版社,2005年
[10]王珊,数据库系统概论[M](第3版),高等教育出版社,2002年
[11]张丽王强,SQLServer数据库原理及应用[M],清华大学出版社,2003年
[12]范策周世平胡潇琨,算法与数据结构[M]机械工业出版社,2004年
[13]Divad.J,VC++5.0技术内幕[M]清华大学出版社,2005年
-14-
高科学院
2016年第2学期
管理信息系统
课程设计
设计题目:
留言簿系统设计
专业财务管理
班级2班
学生闻杰
学号2013010208
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 留言板 系统 信息管理 课程设计