1、 Web程序设计 题目:网上论坛 学生姓名:朱旭峰 学 号:201120180915 班 级:1121809 指导教师:叶志翔 2014年 6月 28 设计总说明.........................................................3 系统分析与设计.............................................
2、4 一、 需求分析.......................................................4 二、 功能设计.......................................................4 三、 数据库设计.....................................................4 系统实现...........................................................7 一、 论坛浏览................
3、7 二、 用户使用.......................................................12 三、 管理员使用.....................................................17 心得体会...........................................................20 设计总说明 一、课程设
4、计的意义: 作为《web程序设计》课程的延伸,在学生完成了《web程序设计》课程的理论学习后,安排的课程设计,旨在提高学生web程序开发水平,培养学生网络编程的能力。 二、设计内容 设计一个网络论坛系统。 三、设计要求 系统功能: 1、注册新用户:新用户填写注册表单,包括用户姓名、密码、联系方式等信息;如果输入用户名已被注册过,系统提示用户更改自己的用户名。 2、用户登录:输入用户名和密码;若用户输入有误,系统将提示错误。 3、用户发表帖子;成功登录的用户可以发表帖子。 4、浏览帖子:成功登录的用户可以浏览其他用户发布的帖子。 5、用户注册信息修改:用户可以修改自己
5、的注册信息。 6、用户退出登录:成功登录的用户可以使用该功能退出论坛系统。 系统分析与设计 一、 需求分析 开发一个论坛系统,首先需要确定论坛的功能是什么,也就是用户想要的论坛所能做的工作。用户使用论坛是按照一定得流程来进行的:用户注册登录进入论坛,就某个话题展开讨论,通过发帖功能发布新的话题,通过回帖的功能回复已有的话题,通过搜索查找已有的话题;管理员要管理论坛,系统需要具有的功能管理注册的用户,管理帖子。这样的流程就决定了论坛所应具有的功能,路摊流程图如下: 通过上面的分析,总结论坛
6、的功能有以下几项:论坛版块列表;浏览帖子;发帖回帖;搜索帖子;删除帖子;用户注册;用户登录;控制用户权限;修改注册信息;管理用户。 论坛一般存在两种用户,注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,管理员的权限是上级权限。 论坛系统的用户浏览信息功能,是用户讨论问题的平台,发帖、浏览。回帖一直贯穿用户的整个活动。同时又有论坛系统的帖子管理是管理员在帖子浏览时进行的,只是一般用户没有权限做这些动作。 二、 功能设计 从需求分析可以找到,论坛功能分为用户使用各基本功能和管理员管理的功能。 论坛系统包括以下主要功能: (1) 注册登录功能:用户注册,登录以及修改
7、个人注册信息; (2) 浏览功能:用户浏览版块,查看帖子; (3) 发帖回帖功能:用户发帖、回帖; (4) 帖子管理功能:管理员删除帖子。 三、 数据库设计 1.概要设计: 通过对系统进行的需求分析和系统功能的确定,规划出系统中使用的数据库实体对象分别为用户实体、管理员实体、发帖实体、回帖实体。 因此bbs论坛系统的E-R模型图为: 2.详细设计 (一)设计表 将E-R图转换为关系模型一般遵循如下原则: (1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。 (2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以
8、及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。 (3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 (4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 根据上述原则设计的数据表如下: ①用户实体:用户(用户名、密码、性别、年龄、邮箱、地址、图像、电话) ②管理员实体:管理员(姓名、密码) ③发帖实体:发帖(发帖人、编号、主题、内容、时间、浏览次数、回帖次数) ④回帖
9、实体:回帖(编号、主题、内容、回帖时间) (二)设计数据字典 数据字典:bbs论坛系统会涉及大量的静态数据,如发帖主题、发帖内容、发帖时间、用户年龄、用户性别、用户地址等,这些数据,其数据的组织结构基本一致,现为该系统设计四个数据字典:用户字典、管理员字典、发帖字典、回帖字典。 用户字典userna: 属性名称 属性类型 是否可以为空 约束 含义 user_name varchar2(30) NOT NULL 主键 用户名 password varchar2(20) NOT NULL 密码 sex number(1) N
10、OT NULL 只能为0和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 主键
11、姓名 pw 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 发帖时间 vie
12、w_times number NULL 浏览次数 reply_times number NULL 回帖次数 回帖字典: 属性名称 属性类型 是否可以为空 约束 含义 re_id number NOT NULL 编号 author varchar(20) NOT NULL 主题 content blob NOT NULL 内容 re_time date NOT NULL 回帖时间 系统实现 一、 论坛浏览 1、 进入
13、主页面 排版说明:横栏为导航栏,用户可以选择想去的页面;再下一栏为用户登录栏,方便用户登录;左边竖栏为活跃发帖人排行,根据发帖人的发帖数来降序排序;右边一栏为为热门帖子按浏览数降序排序,方便用户看到最好的帖子。并且帖子被点击一次就会自动增加一次点击数。 贴吧:此为方便用户浏览所有的帖子。可以按照时间升降和浏览数升降排序。效果图如下: 代码实现如下:
41、mat("yyyy-MM-dd hh:mm:ss"); String t=formatter.format(curDate); out.print(t); if(author!=null) { try { Connection con=DriverManager.getConnection(url,user,password); Statement st=con.createStatement(); ResultSet rs=null; rs=st.executeQuery("select max(art_id) from articles_bbs"); rs.nex
42、t(); 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("发帖失败
43、");} } 三、 管理员使用 1. 、管理员登录 效果图如下: 代码如下: