《高校论坛的系统设计【9200字】》_第1页
《高校论坛的系统设计【9200字】》_第2页
《高校论坛的系统设计【9200字】》_第3页
《高校论坛的系统设计【9200字】》_第4页
《高校论坛的系统设计【9200字】》_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高校论坛的系统设计1670第一章绪论 [1]第三章需求分析3.1项目介绍本项目为基于SSH框架的高校论坛系统,包括用户和系统管理员两种用户角色。3.1.1系统模块简概论坛系统主要含有五个功能模块,他们分别是基础模块、论坛首页浏览模块、发表帖子模块、论坛管理模块、公告模块。系统的功能模块如图3-1下表所示表3-1功能模块表模块功能基础模块论坛首页模块帖子发表模块论坛管理模块公告模块实现用户、系统管理员两种角色用户的登录、注册功能。展示论坛帖子的标题与内容,展示帖子发表人、浏览及回复帖子可编辑帖子标题以及内容浏览概要、查看帖子具体内容、修改帖子、删除帖子。展示作者信息,展示个人联系方式以及广告投放功能3.1.2论坛系统基础模块的角色描述本系统总共出现两种角色,即普通用户和系统管理员,用户和管理员的权限和交互是本系统的核心,其中系统管理员可以进入普通用户无法进入的多出来的论坛管理功能模块,本论坛所有角色权限表如图3-2所示。表3-2用户角色权限表用户角色权限功能普通用户1:登录2:注册3:浏览帖子4:回复帖子5:修改用户以往发出的帖子6:浏览公告板用户角色权限功能系统管理员1:登录2:注册3:查看用户发表的帖子4:删除并修改论坛内用户包括自己的帖子5:发布自己的帖子6:查看自己的帖子7:浏览公告板表3-2用户角色权限表3.1.2论坛首页浏览模块功能描述表3-3论坛首页浏览模块权限表模块功能功能描述论坛首页浏览模块浏览贴子标题内容查看回复者以及回复帖子用户和管理员都可以在此模块进行帖子浏览以及回复3.1.3发表帖子模块表3-4发表帖子模块权限表模块功能功能描述发表帖子模块编辑帖子标题以及内容框进行发表用户和系统管理员都可进入此模块编辑发表帖子3.1.4论坛管理模块表3-5论坛管理模块权限表模块功能功能描述论坛管理模块增删改查帖子用户和系统管理员都可修改自己的帖子系统管理员可删除所有人的帖子3.1.5论坛系统公告模块描述本系统的公告模块更多的偏向于展示公用信息,显示在论坛首页,公告模块的详细功能如图表3-6示模块功能功能描述公告模块查看作者信息个人联系方式用户,系统管理员无需登录均可查看信息表的内容查看广告信息列表用户,系统管理员无需登录均可查看信息列表的内容3.2关于系统的用例模型本系统的用户角色共有两种,普通用户和系统管理员,系统总体用例图如图3-1所示图3-1系统总体用例图以下是基础模块的用例图基础模块:用户和系统管理员可以通过基础模块进行登录注册修改密码以下论坛首页浏览模块用例表。论坛首页浏览模块:用户和系统管理员都可以进入论坛首页浏览模块

发表帖子模块:所有用户在登录的情况下即可编辑帖子标题,在内容框中编辑内容。以下是发表帖子模块用例图论坛管理模块:进入论坛管理模块所有用户角色都可浏览概要、查看具体内容、修改自己的过去的帖子,系统管理员可利用权限修改删除论坛内的帖子从一定程度筛选掉不良信息。以下是模块的用例图。

公告模块:公告模块相当于论坛中一块公共区域,一般用于展示作者的个人信息以及联系方式,也可以在此投放广告,下图为公告模块的用例图。3.3系统模块缩写图表3-4系统模块缩写系统模块缩写解释GXLTXTBM本系统英文名缩写GXLTXT基础模块PMFHBMFMMGXLTXT发表帖子模块GXLTXT论坛首页浏览模块GXLTXT论坛管理模块CMGXLTXT系统的公告模块3.4需求描述3.4.1基础模块(1)用户登录需求编码:GXLTXT-BM-1需求描述:实现用户基础登录步骤

图表3-5用户登录规则说明用例属性用例描述用例名称用户登录用例角色用户,系统管理员用例说明用户登录前置条件用户进入系统基本事件流用户点击登入选项按钮系统显示登录页面用户输入用户名和密码,点击登录系统在数据库验证登录信息验证成功通过后,进入系统主要页面,账号处于登录状态异常事件流4.系统异常,提示用户重新登录后置条件登录成功,用户进入系统主页(2)用户注册需求编码:GXLTXT-BM-2需求描述:实现用户角色注册的基本步骤表3-6用户注册规则说明用例属性用例概述用例名称用户注册用例角色用户用例说明用户注册前置条件用户进入系统基本事件流1.用户点击注册按钮2.系统进入系统的注册界面3.用户填写用户名,密码4.填写名字和密码完毕后点击保存5.系统保存用户账号密码信息可选事件流6.用户点击返回异常事件流7.系统异常,提示用户重新注册8.系统异常,提示用户重新填写详细信息3.4.2论坛首页浏览模块需求编码:GXLTXL-FHBM-1需求描述:展示论坛帖子标题以及内容,也可回复内容

表3-7用论坛首页浏览规则说明用例属性用例概述用例名称论坛首页浏览用例角色用户系统管理员用例说明用例角色查看帖子标题与内容,回复帖子前置条件用户进入系统基本事件流1.用户点击帖子标题2.系统点击进入帖子页面3.数据库读取数据显示于页面4.用户可浏览帖子具体内容可选事件流5.用户点击回复按钮6用户输入具体回复内容7内容录入数据库,显示于页面异常事件流8.系统异常,提示用户重新编辑3.4.3帖子发表模块需求编码:GXLTXT-PM-1需求描述:用户角色可编辑帖子标题与内容进行帖子发表表3-8发表帖子规则说明用例属性用例概述用例名称帖子发表用例角色用户系统管理员用例说明用例角色编辑标题,内容进行帖子发表前置条件用例角色登录并进入系统基本事件流1.用户点击发表按钮2.系统显示空白标题栏与内容栏3.用例角色编辑标题以及内容4.前端标题内容录入数据库5录入完成6帖子发表于论坛异常事件流7:系统异常,提醒用例角色重新发表3.4.5论坛管理模块需求编码:GXLTXT-FMM-1需求描述:用户或系统管理员可通过自身权限管理论坛帖子,增删改查。表3-9论坛管理模块规则说明用例属性用例概述用例名称论坛管理用例角色用户系统管理员用例说明用例角色可在论坛系统内进行帖子的增删改查,过滤不合法信息前置条件用例角色登录并进入系统基本事件流1.用例角色点击帖子删除按钮2.后台读取当前用户角色权限区分用户和管理员3.用户可删除自身帖子,系统管理员则可以删除所有帖子4.删除或改动由前端录入于数据库5.数据库储存当前改动6.展示新的页面异常事件流7:系统异常,提醒用例角色重新修改3.4.6论坛公告模块需求编码:GXLTXT-CM-1需求描述:完成展示公共信息,作为公告信息栏的作用。表3-10论坛公告模块规则说明用例属性用例概述用例名称论坛公告模块用例角色用户系统管理员用例说明用户可以查看公告内容,系统管理员可决定公告内容前置条件用例角色登录并进入系统基本事件流可选事件流1.用例角色在首页找到公告模块区域2.点击公告区域可以浏览详细内容.3.系统管理员对公告进行修改4.点击公告进行修改5.修改数据储存于前端,不录入数据库6.展示新的公告页面异常事件流7:系统异常,管理员改动失败。第四章总体设计4.1总体设计概要本系统的开发环境和工具:Myeclipse,Tomcat7.0和JDK1.7;开发过程中用到的主要开发语言:Java;用到的主要开发技术:Struts2、Spring、Hibernate、JSP、JS、CSS;数据库使用:MySQL4.2数据库设计4.2.1概念模型设计本论坛系统通过E-R图像可较为直观的体现概念模型表4-1论坛系统E-R图

4.2.2数据库表格的结构设计表4-2数据库表格设计序号表名表描述1user用户基本信息表:(用户的账号密码)2role角色表:(用户、系统管理员)3user_role用户角色表:(和角色关系)4privilege权限表:(普通用户:删除个人帖子管理员:修改所有人帖子、删除所有人帖子)5role_privilege角色权限表(储存角色和权限的关系)6forum帖子内容表(储存帖子的标题、内容、发布时间、发布人id等)7forumliuyan帖子留言回复表(储存帖子的回复内容、回复人id、回复时间等)4.2.3用户基本信息表表4-3用户基本信息表字段类型长度可为空默认值描述useridbigint20Y无用户id主键usernamevarchar16N无用户的账号userpasswordvarchar16N无用户的密码4.2.4角色表表4-4角色表字段类型长度可为空默认值描述ridnamebigintvarchar2020YN无无角色id角色id账号名字4.2.5用户角色表表4-5用户角色表字段类型长度可为空默认值描述ridusernamebigintbigint2020NN无无用户角色id用户名字4.2.6权限表表4-6权限表字段类型长度可为空默认值描述privilegeprivilegenamebigintvarchar2020YN无无用户权限、主键权限名称4.2.7角色权限表表4-7用户权限表字段类型长度可为空默认值描述privilegeidridbigintbigint2020YY无无用户权限id、主键角色id、主键4.2.8帖子内容表表4-8帖子内容表字段类型长度可为空默认值描述forumidpublishtimepublishcontentuseridtitlebigintvarchartextbigintvarchar11321116YYYYN无无无无无论坛id、自增、主键时间、自增公共内容、自增用户id帖子标题4.2.9帖子留言回复表表4-帖子留言回复表字段类型长度可为空默认值描述liuyanidliuyancontentliuyantimeuseridforumidbiginttextvarcharbigintbigint113211YYYYN无无无无无留言用户id、主键留言内容留言时间用户id论坛id4.3系统实现系统部分实现效果图(1)此图为本论坛系统的论坛首页浏览模块,输入pc端网址即可进入论坛,在论坛首页共有6个标识,分别是论坛首页、发表帖子、论坛管理、注册、以及联系我们,下方为具体的帖子与回复,可供用户清楚地浏览帖子的标题、内容、发表者、回复、以及回复人,向下滑动可进行翻页浏览。(2)当未登录状态时的用户想要登录时首先需要注册,在系统内必须注册完成并将数据录入到数据库才可以进行帖子回复,点击上方注册按钮,系统会弹出注册页面,输入账号密码后,需要再次确定密码。(3)当用户输入完注册的账号和密码之后,系统会将数据导入数据库(MYSQL)进行数据储存,打开数据库即可找到相对应的用户以及用户密码,例如小红对应密码xiaohong,数据储存于user表中。(4)注册完成后,即可实现论坛系统的登录功能,返回首页点击登录即可跳转至登录页面,若未登录,登录界面会显示用户还未登录。除了登录之外还可以重置。

(5)登录完成之后,用户即可发表帖子(包括编辑帖子标题,帖子内容进行发表),若对自己的内容不满意可以选择重填按钮,填写完成之后即可发表帖子。(6)发表的帖子数据会储存在数据库中如图所示,通过数据库可得知整个论坛内的所有帖子数据,包括标题以及内容和发布时间,帖子的数据储存在数据库的forum表当中。

(7)若需要管理论坛以及删除论坛内的帖子,需要用系统管理员身份登录以获得权限,上图可得系统管理员账号都为admin,登录进系统,点击论坛管理即可在页面获得所有的本论坛的所有帖子数据,系统管理员可以查看帖子具体内容以及进行回复,如遇不合适的内容可进行帖子的删除或修改。

(8)为了区分普通用户和系统管理员的权限关系,当用指定的系统管理员的账户和密码登录时会反馈到数据库进行权限分析,权限储存在数据库的privilege表中。(9)本论坛系统设有公告模块,即联系我们,上面记录了设计者的个人信息、邮箱以及电话联系方式,此区域也可进行广告投放。

第五章总结通过此次毕业设计,我对目前互联网的高效学习论坛开发有了更深刻的学习和理解,让我对整个开发系统有了更全面的了解,独自设计了包括论坛的前端、数据库的建立。后台的逻辑,系统的开发完成了论坛的最基础内容,通过不断地深入学习,借用参考文献,老师的帮助,使我从一个对论坛开发不是很懂的学生上升为可以设计并有自己的思路开发论坛,这一切都是人生上的一次大进步,在本系统的开发初期,可以说举步维艰,遇到了很多问题,诸如后台逻辑设计不严谨导致论坛反馈出错,对权限认知的不足导致用户角色关系混乱,页面的跳转和分页也是一大问题。后来经过不断地试错,不断地学习,慢慢学会了开发论坛所需的各个软件的使用以及细节,一点一滴的进行完善,最终做出了此论坛系统本次设计当中我学到了当设计一款论坛时,必须要用严谨的逻辑去分析各个模块的关系和对应的角色权限,将大模块拆分为各个细小的模块再一一进行整理,并加以梳理,在程序的开发当中,十足的专注力十分重要,刚开始按照常规的逻辑让我发现我的思维一点都不严谨,不足以支撑整个论坛系统的运行,通过不断地试错才让我明白,一个程序系统就如同一艘火箭,庞大的个体都是由一个个小小的零件组成,任何一个零件的规模不到位都会引发一系列的连锁反应,比如处理不好数据当中角色的权限问题,就会使任何人都能拥有系统管理员的权限,从而导致很多不必要的风险,所以说再小的细节也需要时刻注意把控,正是这一个个看似微不足道的小细节,才能构成整个庞大的系统。

参考文献黄绍智.高校论坛[M].云南工业大学《高校论坛》编辑部,1997.宫辉,徐渝.高校BBS社群结构与信息传播的影响因素[J].西安交通大学学报:社会科学版,2007(01):93-96.刘学民,余仕良.高校BBS对大学生的影响及应对措施[J].学校党建与思想教育,2006,000(007):33-35.洪东明.利用高校BBS加强校园文化建设的探讨[J].中国地质教育,2005,14(002):103-105.霍晓丹,李玉桥.新媒体环境对高校BBS的影响[J].学校党建与思想教育,2010.刘学民,余仕良.高校BBS对大学生的影响及应对措施[J].学校党建与思想教育(高教版),2006.刘学民,余仕良.高校BBS对大学生的影响及应对措施[J].学校党建与思想教育(高教版),2006.缪建.对高校BBS实行实名制的几点思考[J].南通大学学报(社会科学版),2005.冯勇.重视和培养高校BBS校园文化[J].中国教育信息化:高教职教,2009(01):29-31.李涛.高校BBS管理制度研究[J].电脑知识与技术,2009(08):2038-2040.霍晓丹,尚俊杰,袁文旭.基于高校BBS使用的维护稳定工作机制研究[J].北京教育(高教),2008(11):35-37.

附录//用户登录,账号密码验证,及找到相应用户的权限publicStringauthentication(){Useruser=this.loginService.authentication(this.getModel().getUsername(),this.getModel().getUserpassword());if(user==null){this.addActionError("用户名或者密码错误");return"login";}else{Collection<Privilege>functions=this.privilegeService.getFunctionTreeByUid(user.getUserid());this.getSession().setAttribute("user",user);//把该用户能够访问到的功能权限放入到session中this.getSession().setAttribute("functions",functions);return"chain";}}//用户注册,账号密码非空验证,及两次密码是否一致验证publicStringadd(){Useruser=newUser();if(ValidateUtil.isNull(this.getModel().getUsername())||ValidateUtil.isNull(this.getModel().getUserpassword())||ValidateUtil.isNull(this.ensurepassword)){this.addActionError("用户名或密码或确认密码不能为空");returnaddUI;}if(!this.getModel().getUserpassword().equals(this.ensurepassword)){this.addActionError("两次输入密码不一致,请重新输入");returnaddUI;}BeanUtils.copyProperties(this.getModel(),user);this.userService.saveEntry(user);returnlogin;}//用户退出登录,从session中抹除当前登录的userpublicStringlogout(){Useruser=(User)ActionContext.getContext().getSession().remove("user");returnlogin;};//普通用户删除个人帖子·,根据用户ID和帖子ID删除帖子publicStringdeleteByG(){ Useruser=(User)ActionContext.getContext().getSession().get("user"); this.forumService.deleteEntryByGeneraluser(this.getModel().getForumid(),user.getUserid()); return"chain"; }publicvoiddeleteEntryByGeneraluser(finalSerializableforumid,finalSerializableuserid){finalStringBufferstringBuffer=newStringBuffer();stringBuffer.append("deletefrom"+this.classt.getSimpleName());stringBuffer.append("whereforumid="+forumid);stringBuffer.append("anduserid="+userid);this.hibernateTemplate.execute(newHibernateCallback<List<T>>(){@OverridepublicList<T>doInHibernate(Sessionsession)throwsHibernateException,SQLException{Queryquery=session.createQuery(stringBuffer.toString());query.executeUpdate();returnnull;}});}//管理员删除帖子,根据帖子ID删除帖子publicStringdelete(){ this.forumService.deleteEntryById(this.getModel().getForumid()); return"chain"; }publicvoiddeleteEntry(Serializableid){Tt=(T)this.hibernateTemplate.get(this.classt,id);this.hibernateTemplate.delete(t);}//查询帖子总数publicintgetCount(finalBaseQuerybaseQuery){returnthis.hibernateTemplate.execute(newHibernateCallback<Integer>(){@OverridepublicIntegerdoInHibernate(Sessionsession)throwsHibernateException,SQLException{StringBufferstringBuffer=newStringBuffer();stringBuffer.append("selectcount("+classMetadata.getIdentifierPropertyName()+")from"+classt.getSimpleName());stringBuffer.append("where1=1");//获取所有的查询条件Map<String,Object>keyValues=baseQuery.buildWhere();/***拼接where条件的过程*/if(keyValues!=null){for(Entry<String,Object>entry:keyValues.entrySet()){stringBuffer.append("and"+entry.getKey()+"=:"+entry.getKey());}}//System.out.println("hql语句:"+stringBuffer.toString());Queryquery=session.createQuery(stringBuffer.toString());//存放一个hql语句/***把where条件中的参数传递值的过程*/if(keyValues!=null){for(Entry<String,Object>entry:keyValues.entrySet()){query.setParameter(entry.getKey(),entry.getValue());}}Longcount=(Long)query.uniqueResult();Value();}});}//管理员修改帖子内容publicStringupdateUI(){ Forumforum=this.forumService.getEntryById(this.getModel() .getForumid()); ForumVOforumVO=newForumVO(); forumVO.setForumid(forum.getForumid()); forumVO.setPublishcontent(forum.getPublishcontent()); forumVO.setPublishtime(forum.getPublishtime()); forumVO.setUsername(this.userService.getEntryById(forum.getUserid()) .getUsername()); forumVO.setTitle(forum.getTitle()); ActionContext.getContext().put("forum",forumVO); returnupdateUI; } publicStringupdate(){ Forumforum=this.forumService.getEntryById(this.getModel() .getForumid()); forum.setTitle(this.getModel().getTitle()); forum.setPublishcontent(this.getModel().getPublishcontent()); this.forumService.updateEntry(forum); return"chain"; }//用户发表帖子publicStringaddUI(){ ActionContext.getContext().put("forumid",this.getModel().getForumid()); returnaddUI; } publicStringadd(){ Forumliuyanforumliuyan=newForumliuyan(); Useruser=(User)ActionContext.getContext().getSession().get("user"); BeanUtils.copyProperties(this.getModel(),forumliuyan); forumliuyan.setLiuyantime(DateUtil.formatDateByFormat(newDate(), DateUtil.DATETIME_FORMAT)); forumliuyan.setUserid(user.getUserid()); this.forumliuyanService.saveEntry(forumliuyan); returnaction2action; }//展示页数结果publicStringshowPageResult(){ List<ForumVO>forumVOlist=newArrayList<ForumVO>(); forumQuery.setCurrentPage(this.getCurrentPage()); forumQuery.setKeyValues(null); PageResult<Forum>forums=this.forumService.getPageResult(forumQuery); List<Forum>forumlist=forums.getRows(); for(Forumforum:forumlist){ ForumVOforumVO=newForumVO(); forumVO.setForumid(forum.getForumid()); forumVO.setPublishcontent(forum.getPublishcontent()); forumVO.setPublishtime(forum.getPublishtime()); forumVO.setUsername(this.userService .getEntryById(forum.getUserid()).getUsername()); forumVO.setTitle(forum.getTitle()); forumliuyanQuery.setForumid(forum.getForumid()); List<Forumliuyan>forumliuyans=this.forumliuyanService .getEntriesByCondition(forumliuyanQuery); List<ForumliuyanVO>forumliuyanVOs=newArrayList<ForumliuyanVO>(); for(Forumliuyanforumliuyan:forumliuyans){ ForumliuyanVO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论