版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计总说明.3系统分析与设计.41、 需求分析.42、 功能设计.43、 数据库设计.4系统实现.71、 论坛浏览.72、 用户使用.123、 管理员使用.17心得体会.20参考文献.20设计总说明一、课程设计的意义:作为web程序设计课程的延伸,在学生完成了web程序设计课程的理论学习后,安排的课程设计,旨在提高学生web程序开发水平,培养学生网络编程的能力。二、设计内容设计一个网络论坛系统。三、设计要求系统功能:1、注册新用户:新用户填写注册表单,包括用户姓名、密码、联系方式等信息;如果输入用户名已被注册过,系统提示用户更改自己的用户名。2、用户登录:输入用户名和密码;若用户输入有误,系统
2、将提示错误。3、用户发表帖子;成功登录的用户可以发表帖子。4、浏览帖子:成功登录的用户可以浏览其他用户发布的帖子。5、用户注册信息修改:用户可以修改自己的注册信息。6、用户退出登录:成功登录的用户可以使用该功能退出论坛系统。系统分析与设计1、 需求分析 开发一个论坛系统,首先需要确定论坛的功能是什么,也就是用户想要的论坛所能做的工作。用户使用论坛是按照一定得流程来进行的:用户注册登录进入论坛,就某个话题展开讨论,通过发帖功能发布新的话题,通过回帖的功能回复已有的话题,通过搜索查找已有的话题;管理员要管理论坛,系统需要具有的功能管理注册的用户,管理帖子。这样的流程就决定了论坛所应具有的功能,路摊
3、流程图如下:通过上面的分析,总结论坛的功能有以下几项:论坛版块列表;浏览帖子;发帖回帖;搜索帖子;删除帖子;用户注册;用户登录;控制用户权限;修改注册信息;管理用户。论坛一般存在两种用户,注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,管理员的权限是上级权限。论坛系统的用户浏览信息功能,是用户讨论问题的平台,发帖、浏览。回帖一直贯穿用户的整个活动。同时又有论坛系统的帖子管理是管理员在帖子浏览时进行的,只是一般用户没有权限做这些动作。2、 功能设计从需求分析可以找到,论坛功能分为用户使用各基本功能和管理员管理的功能。论坛系统包括以下主要功能:(1) 注册登录功能:用户注册,登录
4、以及修改个人注册信息;(2) 浏览功能:用户浏览版块,查看帖子;(3) 发帖回帖功能:用户发帖、回帖;(4) 帖子管理功能:管理员删除帖子。3、 数据库设计1.概要设计:通过对系统进行的需求分析和系统功能的确定,规划出系统中使用的数据库实体对象分别为用户实体、管理员实体、发帖实体、回帖实体。因此bbs论坛系统的E-R模型图为:2.详细设计(一)设计表将E-R图转换为关系模型一般遵循如下原则:(1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。(2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码
5、的组合。(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。(4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。根据上述原则设计的数据表如下:用户实体:用户(用户名、密码、性别、年龄、邮箱、地址、图像、电话)管理员实体:管理员(姓名、密码)发帖实体:发帖(发帖人、编号、主题、内容、时间、浏览次数、回帖次数)回帖实体:回帖(编号、主题、内容、回帖时间)(二)设计数据字典 数据字典:bbs论坛系统会涉及大量的静态数据
6、,如发帖主题、发帖内容、发帖时间、用户年龄、用户性别、用户地址等,这些数据,其数据的组织结构基本一致,现为该系统设计四个数据字典:用户字典、管理员字典、发帖字典、回帖字典。用户字典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
7、(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 nu
8、mber NULL 浏览次数 reply_times numberNULL 回帖次数回帖字典:属性名称 属性类型是否可以为空 约束 含义re_id number NOT NULL 编号author varchar(20) NOT NULL 主题 content blob NOT NULL 内容 re_time date NOT NULL 回帖时间系统实现1、 论坛浏览1、 进入主页面排版说明:横栏为导航栏,用户可以选择想去的页面;再下一栏为用户登录栏,方便用户登录;左边竖栏为活跃发帖人排行,根据发帖人的发帖数来降序排序;右边一栏为为热门帖子按浏览数降序排序,方便用户看到最好的帖子。并且帖子被点
9、击一次就会自动增加一次点击数。贴吧:此为方便用户浏览所有的帖子。可以按照时间升降和浏览数升降排序。效果图如下:代码实现如下: 按时间降排序 按时间升排序 按浏览降排序 按浏览升排序 标题 发帖时间 发帖人 点击数 回帖数 所有帖子 %String px=request.getParameter(paixu); tryConnection con=DriverManager.getConnection(url,user,password);Statement st=con.createStatement(); ResultSet rs=null;String sql=select user_na
10、me,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
11、);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.print(+rs.getString(5)+); con.close();catch(SQLException el)out.print(el);%浏览帖子:该页面主要显示每个帖子的内容和回帖内容以及相应的用户信息,效果图如下:代码实现:首先查询该帖子输出贴主的信息,接着查询对应的回帖表循环输
12、出所有帖子;楼主代码: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+);Re
13、sultSet 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
14、.user_name=articles_bbs.user_name and articles_bbs.author=+un+);rs.next();% 回复/次,浏览/次 刷新 回帖类似楼主的代码,只是用上了while循环。2、 用户使用1、 注册说明:可以点击超链接选择用户喜欢的头像。用户名、密码和电话用了JavaScript进行限制代码如下:function check()if(tijiao.username.value.length20)alert(用户名长度必须在1位到20位之间!);return false;if(tijiao.tel.value.length11|tijiao.te
15、l.value.length1)alert(电话未填!);return false;if(tijiao.pw.value.length6)alert(密码的长度应大于等于6位!);return false;if(tijiao.pw.value!=tijiao.pw2.value)alert(两次输入的密码不一致!);return false;数据按要求填写后就提交跳转到注册成功页面,该页面主要执行sql数据插入语句。2、 登录用户登录成功效果图如下:登录成功后可以出现用户登录状态,并且拥有发帖和回帖的权限以及退出操作。用户状态在切换页面也不会改变。登录代码如下:request.setChara
16、cterEncoding(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_
17、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.valueOf(pw).equals(rs.getString(2)out.print(欢迎+username+成员登录 /+发帖 /+退出登录 /); session.setAttribute(user,username);elseout.print
18、(你还未登录论坛 /);con.close();catch(SQLException el)out.print(你还未登录论坛 /);3、 回帖效果图如上浏览帖子哪版,是与帖子一起的,其中用JavaScript限制了内容不为空以及用session对象来确定是否登录来判断有无回帖权利。代码如下: function check(form) if (form.content.value=) alert(请填写内容!); return false; 回帖内容: request.setCharacterEncoding(gb2312); String content=request.getParamet
19、er(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=+u
20、n+);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对象获得用户信息,存入数据库;代码如下
21、: function check(form) if (form.author.value=) alert(请填写主题!); form.author.focus(); return false; if (form.content.value=) alert(请填写内容!); form.content.focus(); return false; 论 坛 话 题 发 布 主题: 内容: request.setCharacterEncoding(gb2312);String author=request.getParameter(author);String content=request.getP
22、arameter(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
23、 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
24、+,sysdate,0,0);out.print(发帖成功);catch(SQLException el)out.print(发帖失败);3、 管理员使用1. 、管理员登录效果图如下:代码如下: 管理员: 密 码: 登陆成功则进入管理页面2、 删帖效果图如下:可以在单选框上选择要删除的帖子,然后点击删除,刷新后就可以浏览到删除后的剩余的帖子。实现代码如下: 删否 标题 发帖时间 发帖人 点击数 回帖数 所有帖子 %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_t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高二上学期期末数学试卷(新题型:19题)(提高篇)(含答案)
- 化学反应与能量变化-2025届高中化学一轮复习特训(含解析)
- Pe管施工方案及技术措施
- 吊装作业管理制度流程
- 公司年会主题策划方案流程
- 传染病防控工作方案及措施
- 新教材数字化应用方案
- 深基坑开挖机械设备选型方案
- 隧道建设涌水应急处理方案
- 智慧城市项目合同的核心内容
- 期末测试卷(一)2024-2025学年 人教版PEP英语五年级上册(含答案含听力原文无听力音频)
- 2023-2024学年广东省深圳市南山区八年级(上)期末英语试卷
- 2024广西专业技术人员继续教育公需科目参考答案(100分)
- 2024年上海市中考语文备考之150个文言实词刷题表格及答案
- 2024年汉口银行股份有限公司招聘笔试冲刺题(带答案解析)
- 2024年日历表(空白)(一月一张-可编辑做工作日历)
- 广东省中山市2023-2024学年四年级上学期期末数学试卷
- 2022-2024年国际经济与贸易专业人才培养调研报告
- 奇门遁甲入门教程(不收费)课件
- 桥梁维修加固施工组织设计
- IPC-A-610E培训教材(完整版)
评论
0/150
提交评论