web课程设计网络论坛系统Word文档格式.doc
- 文档编号:3985160
- 上传时间:2023-05-02
- 格式:DOC
- 页数:19
- 大小:605KB
web课程设计网络论坛系统Word文档格式.doc
《web课程设计网络论坛系统Word文档格式.doc》由会员分享,可在线阅读,更多相关《web课程设计网络论坛系统Word文档格式.doc(19页珍藏版)》请在冰点文库上搜索。
用户登录;
控制用户权限;
修改注册信息;
管理用户。
论坛一般存在两种用户,注册用户和管理员。
用户的权限是向下覆盖的,即上级权限包含下级权限,管理员的权限是上级权限。
论坛系统的用户浏览信息功能,是用户讨论问题的平台,发帖、浏览。
回帖一直贯穿用户的整个活动。
同时又有论坛系统的帖子管理是管理员在帖子浏览时进行的,只是一般用户没有权限做这些动作。
二、功能设计
从需求分析可以找到,论坛功能分为用户使用各基本功能和管理员管理的功能。
论坛系统包括以下主要功能:
(1)注册登录功能:
用户注册,登录以及修改个人注册信息;
(2)浏览功能:
用户浏览版块,查看帖子;
(3)发帖回帖功能:
用户发帖、回帖;
(4)帖子管理功能:
管理员删除帖子。
三、数据库设计
1.概要设计:
通过对系统进行的需求分析和系统功能的确定,规划出系统中使用的数据库实体对象分别为用户实体、管理员实体、发帖实体、回帖实体。
因此bbs论坛系统的E-R模型图为:
2.详细设计
(一)设计表
将E-R图转换为关系模型一般遵循如下原则:
(1)一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
(2)一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(3)一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
(4)一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
根据上述原则设计的数据表如下:
①用户实体:
用户(用户名、密码、性别、年龄、邮箱、地址、图像、电话)
②管理员实体:
管理员(姓名、密码)
③发帖实体:
发帖(发帖人、编号、主题、内容、时间、浏览次数、回帖次数)
④回帖实体:
回帖(编号、主题、内容、回帖时间)
(二)设计数据字典
数据字典:
bbs论坛系统会涉及大量的静态数据,如发帖主题、发帖内容、发帖时间、用户年龄、用户性别、用户地址等,这些数据,其数据的组织结构基本一致,现为该系统设计四个数据字典:
用户字典、管理员字典、发帖字典、回帖字典。
用户字典userna:
属性名称
属性类型
是否可以为空
约束
含义
user_name
varchar2(30)
NOTNULL
主键
用户名
password
varchar2(20)
密码
sex
number
(1)
只能为0和1
性别
age
date
NULL
年龄
userface
varchar2(6)
图像
邮箱
address
地址
tel
varchar2(11)
电话
管理员字典glb:
含义
gl
varchar2(20)
NOTNULL
主键
姓名
pw
密码
发帖字典:
含义
art_id
number
NOTNULL
编号
user_name
发帖人
author
主题
content
clbo
内容
issue_time
date
NULL
发帖时间
view_times
number
浏览次数
reply_times
回帖次数
回帖字典:
属性类型
约束
re_id
number
编号
author
varchar(20)
主题
content
blob
内容
re_time
date
回帖时间
系统实现
一、论坛浏览
1、进入主页面
排版说明:
横栏为导航栏,用户可以选择想去的页面;
再下一栏为用户登录栏,方便用户登录;
左边竖栏为活跃发帖人排行,根据发帖人的发帖数来降序排序;
右边一栏为为热门帖子按浏览数降序排序,方便用户看到最好的帖子。
并且帖子被点击一次就会自动增加一次点击数。
贴吧:
此为方便用户浏览所有的帖子。
可以按照时间升降和浏览数升降排序。
效果图如下:
代码实现如下:
<
center>
formaction="
"
method="
post"
name="
paidui"
>
tablewidth="
900"
border="
0"
cellspacing="
bgcolor="
#CCCCFF"
<
tr>
<
tdwidth="
818"
divalign="
right"
<
selectname="
paixu"
<
optionvalue="
按时间降排序<
/option>
1"
按时间升排序<
2"
按浏览降排序<
3"
按浏览升排序<
/select>
/div>
/td>
78"
divalign="
center"
inputtype="
submit"
ok"
value="
浏览"
/>
/tr>
/table>
bordercolor="
#999999"
#CCCCCC"
500"
标题<
175"
发帖时间<
125"
发帖人<
50"
点击数<
回帖数<
所有帖子
<
%
Stringpx=request.getParameter("
);
try
{
Connectioncon=DriverManager.getConnection(url,user,password);
Statementst=con.createStatement();
ResultSetrs=null;
Stringsql="
selectuser_name,author,issue_time,view_times,reply_timesfromarticles_bbs"
;
if(px==null);
elseif(px.equals("
))
sql=sql+"
orderbyissue_timedesc"
orderbyissue_time"
orderbyview_timesdesc"
orderbyview_times"
rs=st.executeQuery(sql);
inti=0;
while(rs.next())
{ i++;
out.print("
td>
+"
left"
ahref="
fatie.jsp?
id="
+.URLEncoder.encode(rs.getString
(2))+"
+i+"
、"
+rs.getString
(2)+"
/a>
+rs.getString(3)+"
ahref="
test2.jsp?
+.URLEncoder.encode(rs.getString
(1))+"
+rs.getString
(1)+"
+rs.getString(4)+"
+rs.getString(5)+"
}
con.close();
}
catch(SQLExceptionel){out.print(el);
%>
/form>
浏览帖子:
该页面主要显示每个帖子的内容和回帖内容以及相应的用户信息,效果图如下:
代码实现:
首先查询该帖子输出贴主的信息,接着查询对应的回帖表循环输出所有帖子;
楼主代码:
request.setCharacterEncoding("
gb2312"
Stringun=newString(request.getParameter("
id"
).getBytes("
8859_1"
));
try
st.executeUpdate("
updatearticles_bbssetview_times=view_times+1whereauthor='
+un+"
'
Strings;
intj;
rs=st.executeQuery("
selectusersna.user_name,usersna.sex,usersna.userface,extract(yearfromsysdate)-extract(yearfromusersna.age)nl,articles_bbs.issue_time,articles_bbs.content,articles_bbs.view_times,articles_bbs.reply_timesfromusersna,articles_bbswhereusersna.user_name=articles_bbs.user_nameandarticles_bbs.author='
rs.next();
950"
height="
30"
741"
h1>
%=un%>
/h1>
回复/<
%=rs.getString(8)%>
次,浏览/<
%=rs.getString(7)%>
次<
102"
<
回帖"
103"
<
fatie.jsp"
刷新<
回帖类似楼主的代码,只是用上了while循环。
二、用户使用
1、注册
说明:
可以点击超链接选择用户喜欢的头像。
用户名、密码和电话用了JavaScript进行限制代码如下:
scriptlanguage="
javaScript"
functioncheck()
{
if(tijiao.username.value.length<
1||tijiao.username.value.length>
20)
{ alert("
用户名长度必须在1位到20位之间!
returnfalse;
}
if(tijiao.tel.value.length>
11||tijiao.tel.value.length<
1)
{ alert("
电话未填!
if(tijiao.pw.value.length<
6)
密码的长度应大于等于6位!
if(tijiao.pw.value!
=tijiao.pw2.value)
两次输入的密码不一致!
}}
/script>
数据按要求填写后就提交跳转到注册成功页面,该页面主要执行sql数据插入语句。
2、登录
用户登录成功效果图如下:
登录成功后可以出现用户登录状态,并且拥有发帖和回帖的权限以及退出操作。
用户状态在切换页面也不会改变。
登录代码如下:
Stringusername=request.getParameter("
user"
Stringpw=request.getParameter("
userpw"
intk=0;
selectuser_name,passwordfromusersnawhereuser_name='
+username+"
inti=rs.getRow();
if(session.getAttribute("
)!
=null)
k=k+1;
if(i==0&
&
k!
=0)
欢迎"
+session.getAttribute("
)+"
成员登录/"
fatiezi.jsp"
发帖<
/"
zhuxiao.jsp"
退出登录<
elseif(String.valueOf(pw).equals(rs.getString
(2)))
session.setAttribute("
username);
else
out.print("
你还未登录论坛/"
con.close();
catch(SQLExceptionel){out.print("
3、回帖
效果图如上浏览帖子哪版,是与帖子一起的,其中用JavaScript限制了内容不为空以及用session对象来确定是否登录来判断有无回帖权利。
代码如下:
javascript"
functioncheck(form)
{
if(form.content.value=="
)
{
alert("
请填写内容!
returnfalse;
}
}
formmethod="
action="
onSubmit="
returncheck(this)"
style="
MARGIN-BOTTOM:
0px"
948"
#FFFFFF"
>
TR>
TD>
回帖内容:
/TD>
TDwidth="
753"
301"
textareaname="
content"
rows=20cols=80name="
/textarea>
/TR>
TDheight="
36"
colspan=2align=center>
reset"
重置"
B2"
/TABLE>
Stringcontent=request.getParameter("
if(content!
updatearticles_bbssetreply_times=reply_times+1whereauthor='
selectart_idfromarticles_bbswhereauthor='
Stringnum=rs.getString
(1);
insertintoreplies_bbs(re_id,author,repcont,re_time)values('
+num+"
'
+sess
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- web 课程设计 网络 论坛 系统