欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    web课程设计网络论坛系统 .doc

    • 资源ID:2389549       资源大小:496KB        全文页数:19页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    web课程设计网络论坛系统 .doc

    设计总说明.3系统分析与设计.4一、 需求分析.4二、 功能设计.4三、 数据库设计.4系统实现.7一、 论坛浏览.7二、 用户使用.12三、 管理员使用.17心得体会.20参考文献.20设计总说明一、课程设计的意义:作为web程序设计课程的延伸,在学生完成了web程序设计课程的理论学习后,安排的课程设计,旨在提高学生web程序开发水平,培养学生网络编程的能力。二、设计内容设计一个网络论坛系统。三、设计要求系统功能:1、注册新用户:新用户填写注册表单,包括用户姓名、密码、联系方式等信息;如果输入用户名已被注册过,系统提示用户更改自己的用户名。2、用户登录:输入用户名和密码;若用户输入有误,系统将提示错误。3、用户发表帖子;成功登录的用户可以发表帖子。4、浏览帖子:成功登录的用户可以浏览其他用户发布的帖子。5、用户注册信息修改:用户可以修改自己的注册信息。6、用户退出登录:成功登录的用户可以使用该功能退出论坛系统。系统分析与设计一、 需求分析 开发一个论坛系统,首先需要确定论坛的功能是什么,也就是用户想要的论坛所能做的工作。用户使用论坛是按照一定得流程来进行的:用户注册登录进入论坛,就某个话题展开讨论,通过发帖功能发布新的话题,通过回帖的功能回复已有的话题,通过搜索查找已有的话题;管理员要管理论坛,系统需要具有的功能管理注册的用户,管理帖子。这样的流程就决定了论坛所应具有的功能,路摊流程图如下:通过上面的分析,总结论坛的功能有以下几项:论坛版块列表;浏览帖子;发帖回帖;搜索帖子;删除帖子;用户注册;用户登录;控制用户权限;修改注册信息;管理用户。论坛一般存在两种用户,注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,管理员的权限是上级权限。论坛系统的用户浏览信息功能,是用户讨论问题的平台,发帖、浏览。回帖一直贯穿用户的整个活动。同时又有论坛系统的帖子管理是管理员在帖子浏览时进行的,只是一般用户没有权限做这些动作。二、 功能设计从需求分析可以找到,论坛功能分为用户使用各基本功能和管理员管理的功能。论坛系统包括以下主要功能:(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_namevarchar2(30) NOT NULL 主键用户名passwordvarchar2(20) NOT NULL 密码sexnumber(1) NOT NULL只能为0和1 性别 age date NULL 年龄 userfacevarchar2(6) NULL 图像 emailvarchar2(30) NULL 邮箱addressvarchar2(20) NULL 地址telvarchar2(11) NULL 电话管理员字典glb:属性名称属性类型是否可以为空约束 含义gl varchar2(20)NOT NULL 主键 姓名 pw varchar2(20)NOT NULL 密码发帖字典:属性名称属性类型是否可以为空约束含义 art_id number NOT NULL 主键 编号 user_namevarchar2(20) NOT NULL 发帖人 authorvarchar2(20) NOT NULL 主题 contentclbo NOT NULL 内容 issue_time dateNULL 发帖时间 view_times number NULL 浏览次数 reply_times numberNULL 回帖次数回帖字典:属性名称 属性类型是否可以为空 约束 含义re_id number NOT NULL 编号author varchar(20) NOT NULL 主题 content blob NOT NULL 内容 re_time date NOT NULL 回帖时间系统实现一、 论坛浏览1、 进入主页面排版说明:横栏为导航栏,用户可以选择想去的页面;再下一栏为用户登录栏,方便用户登录;左边竖栏为活跃发帖人排行,根据发帖人的发帖数来降序排序;右边一栏为为热门帖子按浏览数降序排序,方便用户看到最好的帖子。并且帖子被点击一次就会自动增加一次点击数。贴吧:此为方便用户浏览所有的帖子。可以按照时间升降和浏览数升降排序。效果图如下:代码实现如下:<center><form action="" method="post" name="paidui"><table width="900" border="0" cellspacing="0" bgcolor="#CCCCFF"> <tr> <td width="818"><div align="right"> <select name="paixu"> <option value="0">按时间降排序</option> <option value="1">按时间升排序</option> <option value="2">按浏览降排序</option> <option value="3">按浏览升排序</option> </select> </div></td> <td width="78"><div align="center"> <input type="submit" name="ok" value="浏览"/> </div></td> </tr></table><table width="900" border="1" cellspacing="0" bordercolor="#999999" bgcolor="#CCCCCC"> <tr> <td width="500"><div align="center">标题</div></td> <td width="175" bordercolor="#CCCCCC"><div align="center">发帖时间</div></td> <td width="125" bordercolor="#CCCCCC"><div align="center">发帖人</div></td> <td width="50"><div align="center">点击数</div></td> <td width="50"><div align="center">回帖数</div></td> </tr>所有帖子 <%String px=request.getParameter("paixu"); tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement(); ResultSet rs=null;String sql="select user_name,author,issue_time,view_times,reply_times from articles_bbs "if(px=null) ;else if(px.equals("0")sql=sql+"order by issue_time desc"else if(px.equals("1")sql=sql+"order by issue_time"else if(px.equals("2")sql=sql+"order by view_times desc"else if(px.equals("3")sql=sql+"order by view_times"rs=st.executeQuery(sql);int i=0;while(rs.next()i+;out.print("<tr><td><div align="+"left"+"><a href="+"fatie.jsp?id="+.URLEncoder.encode(rs.getString(2)+">"+i+"、"+rs.getString(2)+"</a></div></td>");out.print("<td>"+rs.getString(3)+"</td>");out.print("<td><ahref="+"test2.jsp?id="+.URLEncoder.encode(rs.getString(1)+">"+rs.getString(1)+"</a></td>");out.print("<td>"+rs.getString(4)+"</td>");out.print("<td>"+rs.getString(5)+"</td></tr>"); con.close();catch(SQLException el)out.print(el);%></form></table>浏览帖子:该页面主要显示每个帖子的内容和回帖内容以及相应的用户信息,效果图如下:代码实现:首先查询该帖子输出贴主的信息,接着查询对应的回帖表循环输出所有帖子;楼主代码:request.setCharacterEncoding("gb2312"); String un=new String(request.getParameter("id").getBytes("8859_1");tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement(); st.executeUpdate(" update articles_bbs set view_times=view_times+1 where author='"+un+"'");ResultSet rs=null;String s;int j;rs=st.executeQuery("select usersna.user_name,usersna.sex,usersna.userface,extract(year from sysdate)-extract(year from usersna.age) nl, articles_bbs.issue_time, articles_bbs.content,articles_bbs.view_times,articles_bbs.reply_times from usersna,articles_bbs where usersna.user_name=articles_bbs.user_name and articles_bbs.author='"+un+"'");rs.next();%><table width="950" height="30" border="0" cellspacing="0"> <tr> <td width="741" height="30"><h1 ><%=un%></h1>回复/<%=rs.getString(8)%>次,浏览/<%=rs.getString(7)%>次</td> <td width="102"> <div align="center"> <input type="submit" value="回帖" name="submit"> </div></td> <td width="103"> <div align="center"> <a href="fatie.jsp">刷新</a> </div></td></tr></table>回帖类似楼主的代码,只是用上了while循环。二、 用户使用1、 注册说明:可以点击超链接选择用户喜欢的头像。用户名、密码和电话用了JavaScript进行限制代码如下:<script language="javaScript">function check()if(tijiao.username.value.length<1|tijiao.username.value.length>20)alert("用户名长度必须在1位到20位之间!");return false;if(tijiao.tel.value.length>11|tijiao.tel.value.length<1)alert("电话未填!");return false;if(tijiao.pw.value.length<6)alert("密码的长度应大于等于6位!");return false;if(tijiao.pw.value!=tijiao.pw2.value)alert("两次输入的密码不一致!");return false;</script>数据按要求填写后就提交跳转到注册成功页面,该页面主要执行sql数据插入语句。2、 登录用户登录成功效果图如下:登录成功后可以出现用户登录状态,并且拥有发帖和回帖的权限以及退出操作。用户状态在切换页面也不会改变。登录代码如下:request.setCharacterEncoding("gb2312");String username=request.getParameter("user");String pw=request.getParameter("userpw"); int k=0;tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement(); ResultSet rs=null;rs=st.executeQuery("select user_name,password from usersna where user_name='"+username+"'");rs.next();int i=rs.getRow();if(session.getAttribute("user")!=null)k=k+1;if(i=0&&k!=0)out.print("欢迎"+session.getAttribute("user")+"成员登录 /"+"<a href="+"fatiezi.jsp"+">发帖</a> /"+"<a href="+"zhuxiao.jsp"+">退出登录</a> /");else if(String.valueOf(pw).equals(rs.getString(2)out.print("欢迎"+username+"成员登录 /"+"<a href="+"fatiezi.jsp"+">发帖</a> /"+"<a href="+"zhuxiao.jsp"+">退出登录</a> /"); session.setAttribute("user",username);elseout.print("你还未登录论坛 /");con.close();catch(SQLException el)out.print("你还未登录论坛 /");3、 回帖效果图如上浏览帖子哪版,是与帖子一起的,其中用JavaScript限制了内容不为空以及用session对象来确定是否登录来判断有无回帖权利。代码如下:<script language="javascript"> function check(form) if (form.content.value="") alert("请填写内容!"); return false; </script><form method="post" action="" onSubmit="return check(this)" style="MARGIN-BOTTOM: 0px"><table width="948" border="1" cellspacing="0" bgcolor="#FFFFFF" > <TR > <TD > <div align="right">回帖内容:</div> </TD> <TD width="753" height="301" > <textarea name="content" rows=20 cols=80 name="content"></textarea> </TD> </TR> <TR > <TD height="36" colspan=2 align=center> <input type="submit" value="回帖" name="submit"> <input type="reset" value="重置" name="B2"> </TD> </TR></TABLE>request.setCharacterEncoding("gb2312"); String content=request.getParameter("content");if(content!=null)tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement();ResultSet rs=null;st.executeUpdate(" update articles_bbs set reply_times=reply_times+1 where author='"+un+"'");rs=st.executeQuery("select art_id from articles_bbs where author='"+un+"'");rs.next();String num=rs.getString(1);st.executeUpdate("insert into replies_bbs(re_id,author,repcont,re_time) values('"+num+"','"+session.getAttribute("user")+"','"+content+"',sysdate)");content=""out.print("回帖成功");catch(SQLException el)out.print("请先登录");4、 发帖效果图如下:同样用JavaScript限制了内容标题不为空,以及用session对象获得用户信息,存入数据库;代码如下:<script language="javascript"> function check(form) if (form.author.value="") alert("请填写主题!"); form.author.focus(); return false; if (form.content.value="") alert("请填写内容!"); form.content.focus(); return false; </script><form method="post" action="" onSubmit="return check(this)" style="MARGIN-BOTTOM: 0px"><table border="0" width="99%" align="center" cellpadding="2" cellspacing="1" bgcolor="#A4B6D7"> <tr> <td width="100%" height="25" bgcolor="#999999" class="font10_5"> <div align="center"> <b>论 坛 话 题 发 布</b> </div> </td> </tr></table><table width="99%" border="0" cellspacing="1" cellpadding="2" align="center" > <TR > <TD width="16%"> <div align="right">主题:</div> </TD> <TD width="84%"> <input name="author" type="text" size="55" value=""> </TD> </TR> <TR > <TD width="16%"> <div align="right">内容:</div> </TD> <TD width="90%" height="300"> <textarea name="content" rows=20 cols=80 name="content"></textarea> </TD> </TR> <TR > <TD height="35" colspan=2 align=center> <input type="submit" value="发布话题" name="submit1"> <input type="reset" value="全部重写" name="B2"> </TD> </TR></TABLE></form>request.setCharacterEncoding("gb2312");String author=request.getParameter("author");String content=request.getParameter("content"); Date curDate=new Date(new java.util.Date().getTime(); java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String t=formatter.format(curDate);out.print(t);if(author!=null)tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement();ResultSet rs=null;rs=st.executeQuery("select max(art_id) from articles_bbs");rs.next();int sm=rs.getInt(1)+1;st.executeUpdate("insert into articles_bbs(art_id,user_name,author,content,issue_time,view_times,reply_times) values('"+sm+"','"+session.getAttribute("user")+"','"+author+"','"+content+"',sysdate,'0','0')");out.print("发帖成功");catch(SQLException el)out.print("发帖失败");三、 管理员使用1. 、管理员登录效果图如下:代码如下:<form action="glym.jsp" method="post" name="dl"><table width="250" border="1" cellspacing="0"> <tr> <td width="60">管理员:</td> <td width="130"><div align="left"><input type="text" value="" name="gly" size="19"/></div></td> </tr> <tr> <td>密 码:</td> <td><div align="left"><input type="password" value="" name="pw" size="20"/></div></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" value="登录" name="gldl" /><input type="reset" value="重置" /></td> </tr></table><table width="900" height="300" border="0" cellspacing="0"> <tr> <td>&nbsp;</td> </tr></table></form></center>登陆成功则进入管理页面2、 删帖效果图如下:可以在单选框上选择要删除的帖子,然后点击删除,刷新后就可以浏览到删除后的剩余的帖子。实现代码如下:<form action="" method="post" name="sc"><table width="900" border="0" cellspacing="0" bgcolor="#CCCCFF"> <tr> <td width="818"><div align="right"> </div></td> <td width="78"><div align="center"> <input type="submit" name="ok" value="删除"/></div></td> <td width="78"><div align="center"> <input type="submit" name="ok" value="刷新"/> </div></td> </tr></table><table width="950" border="1" cellspacing="0" bordercolor="#999999" bgcolor="#CCCCCC"> <tr> <td width="50"><div align="center">删否</div></td> <td width="500"><div align="center">标题</div></td> <td width="175" bordercolor="#CCCCCC"><div align="center">发帖时间</div></td> <td width="125" bordercolor="#CCCCCC"><div align="center">发帖人</div></td> <td width="50"><div align="center">点击数</div></td> <td width="50"><div align="center">回帖数</div></td> </tr>所有帖子 <%tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement(); ResultSet rs=null;String sql="select user_name,author,issue_time,view_times,reply_times from articles_bbs order by issue_time"rs=st.executeQuery(sql);int i=0;while(rs.next()i+;out.print("<tr><td><input type="+"checkbox"+" name="+"delete"+" value="+rs.getString(2)+" /></td>");out.print("<td><div align="+"left"+"><a href="+"fatie.jsp?id="+.URLEncoder.encode(rs.getString(2)+">"+i+"、"+rs.getString(2)+"</a></div></td>");out.print("<td>"+rs.getString(3)+"</td>");out.print("<td><ahref="+"test2.jsp?id="+.URLEncoder.encode(rs.getString(1)+">"+rs.getString(1)+"</a></td>");out.print("<td>"+rs.getString(4)+"</td>");out.print("<td>"+rs.getString(5)+"</td></tr>");

    注意事项

    本文(web课程设计网络论坛系统 .doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开