《2022年web课程设计网络论坛系统 .pdf》由会员分享,可在线阅读,更多相关《2022年web课程设计网络论坛系统 .pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Web 程序设计题目:网上论坛学生姓名:朱旭峰学号:201120180915 班级:1121809 指导教师:叶志翔2014 年6 月28 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - - 2 - 设计总说明 .3 系统分析与设计 .4一、需求分析 .4 二、功能设计 .4 三、数据库设计 .4 系统实现 .7 一、论坛浏览 .7 二、用户使用 .12 三、管理员使用 .17 心得体会 .20 设计总说明一、课程设计的意义
2、: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - - 3 - 作为 web 程序设计课程的延伸,在学生完成了web 程序设计课程的理论学习后, 安排的课程设计, 旨在提高学生 web程序开发水平, 培养学生网络编程的能力。二、设计内容设计一个网络论坛系统。三、设计要求系统功能:1、注册新用户:新用户填写注册表单,包括用户姓名、密码、联系方式等信息;如果输入用户名已被注册过,系统提示用户更改自己的用户名。2、用户登录:输入用户
3、名和密码;若用户输入有误,系统将提示错误。3、用户发表帖子;成功登录的用户可以发表帖子。4、浏览帖子:成功登录的用户可以浏览其他用户发布的帖子。5、用户注册信息修改:用户可以修改自己的注册信息。6、用户退出登录:成功登录的用户可以使用该功能退出论坛系统。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - - 4 - 系统分析与设计一、需求分析开发一个论坛系统,首先需要确定论坛的功能是什么,也就是用户想要的论坛所能做的工作。 用户使
4、用论坛是按照一定得流程来进行的:用户注册登录进入论坛,就某个话题展开讨论, 通过发帖功能发布新的话题,通过回帖的功能回复已有的话题, 通过搜索查找已有的话题; 管理员要管理论坛, 系统需要具有的功能管理注册的用户, 管理帖子。 这样的流程就决定了论坛所应具有的功能,路摊流程图如下:通过上面的分析,总结论坛的功能有以下几项:论坛版块列表;浏览帖子;发帖回帖;搜索帖子;删除帖子;用户注册;用户登录;控制用户权限;修改注册信息;管理用户。论坛一般存在两种用户, 注册用户和管理员。 用户的权限是向下覆盖的, 即上级权限包含下级权限,管理员的权限是上级权限。论坛系统的用户浏览信息功能,是用户讨论问题的平
5、台,发帖、浏览。回帖一直贯穿用户的整个活动。 同时又有论坛系统的帖子管理是管理员在帖子浏览时进行的,只是一般用户没有权限做这些动作。二、功能设计从需求分析可以找到, 论坛功能分为用户使用各基本功能和管理员管理的功能。论坛系统包括以下主要功能:(1) 注册登录功能:用户注册,登录以及修改个人注册信息;(2) 浏览功能:用户浏览版块,查看帖子;(3) 发帖回帖功能:用户发帖、回帖;(4) 帖子管理功能:管理员删除帖子。三、数据库设计1.概要设计 :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
6、- 第 4 页,共 18 页 - - - - - - - - - - 5 - 通过对系统进行的需求分析和系统功能的确定,规划出系统中使用的数据库实体对象分别为用户实体、管理员实体、发帖实体、回帖实体。因此 bbs 论坛系统的 E-R 模型图为:2. 详细设计(一)设计表将 E-R 图转换为关系模型一般遵循如下原则:(1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。(2)一个 m:n 联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。(3)一个 1:n 联系可以转换为一个独立的关系模式,也可以与n
7、端对应的关系模式合并。 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n 端实体的码。(4)一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - - 6 - 根据上述原则设计的数据表如下:用户实体:用户(用户名、密码、性别、年龄、邮箱、地址、图像、电话)管理员实体:管理员(姓名、密码)发帖实
8、体:发帖(发帖人、编号、主题、内容、时间、浏览次数、回帖次数)回帖实体:回帖(编号、主题、内容、回帖时间)(二)设计数据字典数据字典: bbs论坛系统会涉及大量的静态数据,如发帖主题、发帖内容、发帖时间、用户年龄、用户性别、用户地址等,这些数据,其数据的组织结构基本一致,现为该系统设计四个数据字典:用户字典、管理员字典、发帖字典、回帖字典。用户字典userna:属性名称属性类型是否可以为空约束含义user_name varchar2(30) NOT NULL 主键用户名password varchar2(20) NOT NULL 密码sex number(1) NOT NULL 只能为 0和
9、1 性别age date NULL 年龄userface varchar2(6) NULL 图像email varchar2(30) NULL 邮箱address varchar2(20) NULL 地址tel varchar2(11) NULL 电话管理员字典glb:属性名称属性类型是否可以为空约束含义gl varchar2(20) NOT NULL 主键姓名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - - 7 - pw
10、varchar2(20) NOT NULL 密码发帖字典:属性名称属性类型是否可以为空约束含义art_id number NOT NULL主键编号user_name varchar2(20) NOT NULL发帖人author varchar2(20) NOT NULL主题content clbo NOT NULL内容issue_time date NULL发帖时间view_times number NULL浏览次数reply_times number NULL回帖次数回帖字典:属性名称属性类型是否可以为空约束含义re_id number NOT NULL 编号author varchar(2
11、0) NOT NULL 主题content blob NOT NULL 内容re_time date NOT NULL 回帖时间系统实现一、论坛浏览1、进入主页面排版说明 :横栏为导航栏,用户可以选择想去的页面;再下一栏为用户登录栏,方便用户登录; 左边竖栏为活跃发帖人排行,根据发帖人的发帖数来降序排序;右边一栏为为热门帖子按浏览数降序排序,方便用户看到最好的帖子。 并且帖子被点击一次就会自动增加一次点击数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - -
12、 - - - - - - - - 8 - 贴吧:此为方便用户浏览所有的帖子。 可以按照时间升降和浏览数升降排序。效果图如下:代码实现如下: 按时间降排序 按时间升排序 按浏览降排序 按浏览升排序 标题 发帖时间 发帖人 点击数 回帖数 所有帖子 % String px=request.getParameter(paixu); try Connection con=DriverManager.getConnection(url,user,password); Statement st=con.createStatement(); ResultSet rs=null; String sql=sel
13、ect 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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - - 9 - else if(px.equals(1) sql=sql+order by iss
14、ue_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(+i+ 、+rs.getString(2)+); out.print(+rs.getString(3)+); out.print(+rs.getString(1)+); out.print(+rs.getString(4)+); out.pri
15、nt(+rs.getString(5)+); con.close(); catch(SQLException el)out.print(el); % 浏览帖子: 该页面主要显示每个帖子的内容和回帖内容以及相应的用户信息,效果图如下:代码实现:首先查询该帖子输出贴主的信息,接着查询对应的回帖表循环输出所有帖子;楼主代码:request.setCharacterEncoding(gb2312); String un=new String(request.getParameter(id).getBytes(8859_1); try Connection con=DriverManager.getCo
16、nnection(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
17、from usersna.age) nl, articles_bbs.issue_time, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - - 10 - articles_bbs.content,articles_bbs.view_times,articles_bbs.reply_times from usersna,articles_bbs where usersna.user_name=articles_bbs.user
18、_name and articles_bbs.author=+un+); rs.next(); % 回复/次, 浏览/次 刷新 回帖类似楼主的代码,只是用上了while 循环。二、用户使用1、注册说明: 可以点击超链接选择用户喜欢的头像。 用户名、密码和电话用了 JavaScript进行限制代码如下: function check() if(tijiao.username.value.length20) alert(用户名长度必须在 1位到20位之间! ); return false; if(tijiao.tel.value.length11|tijiao.tel.value.length1)
19、 alert(电话未填! ); return false; if(tijiao.pw.value.length6) alert(密码的长度应大于等于 6位!); return false; if(tijiao.pw.value!=tijiao.pw2.value) alert(两次输入的密码不一致!); return false; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - - 11 - 数据按要求填写后就提交跳转到注册
20、成功页面,该页面主要执行sql 数据插入语句。2、登录用户登录成功效果图如下:登录成功后可以出现用户登录状态,并且拥有发帖和回帖的权限以及退出操作。用户状态在切换页面也不会改变。登录代码如下:request.setCharacterEncoding(gb2312); String username=request.getParameter(user); String pw=request.getParameter(userpw); int k=0; try Connection con=DriverManager.getConnection(url,user,password); Statem
21、ent 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)+成员登录 /+发帖 /+退出登录 /); else if(String.v
22、alueOf(pw).equals(rs.getString(2) out.print(欢迎+username+成员登录 /+发帖 /+退出登录 /); session.setAttribute(user,username); else out.print(你还未登录论坛 /); con.close(); catch(SQLException el)out.print(你还未登录论坛 /); 3、回帖效果图如上浏览帖子哪版, 是与帖子一起的, 其中用 JavaScript 限制了内容不为空以及用 session 对象来确定是否登录来判断有无回帖权利。代码如下:名师资料总结 - - -精品资料欢
23、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - - 12 - function check(form) if (form.content.value=) alert(请填写内容! ); return false; 回帖内容: request.setCharacterEncoding(gb2312); String content=request.getParameter(content); if(content!=null) try Connection c
24、on=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+); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - - - -
25、- - - 13 - 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
26、 el)out.print(请先登录 ); 4、发帖效果图如下:同样用 JavaScript 限制了内容标题不为空,以及用session 对象获得用户信息,存入数据库;代码如下: function check(form) if (form.author.value=) alert(请填写主题! ); form.author.focus(); return false; if (form.content.value=) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18
27、 页 - - - - - - - - - - 14 - alert(请填写内容! ); form.content.focus(); return false; 论 坛 话 题 发 布 主题: 内容: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - - 15 - request.setCharacterEncoding(gb2312); String author=request.getParameter(author); S
28、tring 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) try Connection con=DriverManager.getConnecti
29、on(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.
30、getAttribute(user)+,+author+,+content+,sysdate,0,0); out.print(发帖成功 ); catch(SQLException el)out.print(发帖失败 ); 三、管理员使用1. 、管理员登录效果图如下:代码如下: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - - 16 - 管理员 : 密 码: 登陆成功则进入管理页面2、删帖效果图如
31、下:可以在单选框上选择要删除的帖子,然后点击删除, 刷新后就可以浏览到删除后的剩余的帖子。实现代码如下: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - - 17 - 删否 标题 发帖时间 发帖人 点击数 回帖数 所有帖子 % try Connection con=DriverManager.getConnection(url,user,password); Statement st=con.createStatement(
32、); 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(); out.print(+i+ 、+rs.getString(2)+); out.print(+rs.getString(3)+); out.print(+rs.getString(1)+); out.prin
33、t(+rs.getString(4)+); out.print(+rs.getString(5)+); request.setCharacterEncoding(gb2312); String deleteName=request.getParameterValues(delete); if(deleteName=null) ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - - 18 - else for(int j=0;j 心得体会(1)利用四天的时间, 简单的实现了一个网上论坛, 希望以后可以改进的更好,找出其中的不足及漏洞缺点,加强完整性名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -