编译原理网上教学系统的设计与实现大学毕业论文_第1页
编译原理网上教学系统的设计与实现大学毕业论文_第2页
编译原理网上教学系统的设计与实现大学毕业论文_第3页
编译原理网上教学系统的设计与实现大学毕业论文_第4页
编译原理网上教学系统的设计与实现大学毕业论文_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

河北大学2009届本科生毕业论文(设计)编译原理网上教学系统的设计与实现摘要互联网时代的到来加速了我国高校信息化、网络化的发展步伐,以数字化为核心的信息技术在高校教学、科研等各个领域得到越来越广泛的应用。随着校园网基础设施的不断完善和网络信息资源的开发利用,高校网站建设与发展倍受师生的关注。编译原理教学网站和论坛的设计和开发的意义在于:一方面利用网络这一强大的工具,使编译原理学科的各种教学信息得到更大程度的共享;另一方面,学生和教师在实践教学中更好、更便利地通过网络获取、传授知识和交流与沟通。基于Java语言的JSP因为其优良的性能、良好的可扩展性和强大的支持功能而成为Web编程的首选技术。本系统利用JSP技术,建立一个功能齐全,操作简单的B/S架构的编译原理教学网站和论坛系统。使得学生可以方便的阅读学习编译原理的各章节知识和通过论坛来学习和交流,同时也为管理员提供一个方便简洁的管理平台。关键词:管理信息系统JavaEEB/S架构

ABSTRACTThearrivalofInternetagesacceleratedanourcountryahighschoolinformation-based,thenetworkturnofdevelopmentstep,changeintotheinformationtechniqueofcorebynumeraltogetamoreandmoreextensiveapplicationineachrealmofthehighschoolteaching,researchandsoon.Alongwithcampusnettheinfrastructureiscontinuouslyperfecttodoublybesubjectedtotheteachersandthestudents'concernwiththedevelopmentmakeuseofhighwebsiteconstructionintheschoolanddevelopmentofnetworkinformationresources.Themeaningwhicheditsandtranslatethedesignofthewebsiteandforumoftheprincipleteachinganddevelopmentonlinemakeuseofnetworkthisstrongtool,makevariousteachinginformationofeditandtranslatetheprincipleacademicsgettheshareoflargerdegree.Ontheotherhand,thestudentandteacherisbettertointhefulfillmenttheteachingandmoreconvenientlyobtainthroughanetwork,inductionknowledgeandexchangesandcommunication.AccordingtotheJSPofJavalanguagebecauseitgoodfunction,goodlycanexpandsexwithstrongsupportfunctionbutbecometheheadofwebplaitdistancetochooseatechnique.ThissystemmakesuseofaJSPtechniqueandbuildupafunctionwell-found,theoperationissimpleoftheB/Sconfiguringofeditandtranslatewebsiteandforumsystemoftheprincipleteaching.Makestudentcantheconvenientreadingstudyeditandtranslateeachchapterknowledgeofprinciplewithpassaforumtostudyandcommunicate,alsoprovideaconvenientsimpleanddirectmanagementterraceforthemanagingpersoninthemeantime.Keywords:ManagementInformationSystem(MIS)JavaEEB/Sstructure

目录TOC\o"1-3"\u一前言 1二需求分析 22.1功能需求分析 22.2数据需求分析 32.3性能需求分析 42.4出错处理需求分析 42.5界面需求分析 5三系统总体设计 63.1设计目标 63.2功能总体设计 63.2.1系统的功能特点 63.2.2系统功能总体设计 63.3数据库总体设计 8四系统详细设计及实现 104.1技术背景 104.1.1B/S架构 104.1.2选用JAVA和JSP的原因 104.2开发平台的选择 104.3系统功能详细设计 10五系统测试 215.1编译原理教学子系统测试 215.2编译原理论坛子系统测试 22六总结 25谢辞 26参考文献 27附录 28PAGE1一前言1.1研究背景与意义互联网时代的到来加速了我国高校信息化、网络化的发展步伐,以数字化为核心的信息技术在高校教学、科研等各个领域得到越来越广泛的应用。随着校园网基础设施的不断完善和网络信息资源的开发利用,高校网站建设与发展倍受师生的关注。编译原理教学网站和论坛的设计和开发的意义在于:一方面利用网络这一强大的工具,使编译原理学科的各种教学信息得到更大程度的共享;另一方面,学生和教师在实践教学中更好、更便利地通过网络获取、传授知识和交流与沟通。1.2国内外研究现状随着网络技术的发展,近年来国内出现了涌现出了大量优秀的基于Web的项目。其中,教学网站和论坛也占据有一席之地。这些教学网站和论坛内容丰富,会员人数庞大,提供了丰富的学习资料和信息,有效地帮助了人们去学习知识和解决问题。比如说我国的CSDN网站就是很流行的程序员交流论坛。1.3研究内容本课题作为JavaWeb的应用,研究内容涉及两大方面。一方面作为JavaWeb应用,研究内容包括系统的客户端逻辑及显示、服务器端的逻辑及安全性设计、整个系统的设计模式及数据库结构的设计。另一方面内容是教学系统及论坛业务逻辑的设计。包括如何设计美观的页面使用户使用本系统时能有较好的用户体验、如何组织大量课程的展示、如何突出编译原理课程的重点难点、如何让用户方便的通过使用该系统进行学习和交流。1.4论文组织与安排本论文系统记录了该系统开发的流程,融入了整个系统设计与开发的相关文档:需求分析、系统总体设计、系统详细设计、软件测试用例文档。河北大学2009届本科生毕业论文(设计)PAGE5二需求分析2.1功能需求分析2.1.1编译原理教学网站子系统如图2-1,编译原理教学网站子系统功能图[1]。在课程目录模块,显示编译原理课程的各章及目录及附录;正文模块根据用户在课程目录或显示菜单的选择,显示指定的内容,如:指定章节课程内容;显示菜单提供课程帮助(包括:知识结构、重点难点和词汇表)、课程信息(包括:教师简介、课程简介和课程目标)、论坛。图2-1编译原理教学网站子系统功能图2.1.2编译原理教学网站子系统如图2-2,编译原理论坛子系统功能图。用户登录模块提供用户的登录和退出;账号管理支持用户账号注册和已注册用户的密码修改;文章管理模块的发布文章支持用户和管理员的文章发布,管理文章模块提供管理员登录入口,管理员登录后就有删除文章的权限;文章搜索模块提供三种文章搜索的方式:按标题搜索、按作者搜索和按文章类型搜索;文章列表显示支持两种列表的显示:所有文章列表和指定条件的文章列表;文章浏览与回复模块提供浏览文章和回复文章两种功能。图2-2编译原理论坛子系统功能图2.2数据需求分析1、学生信息表用于记录系统的普通用户。普通用户身份的注册与验证、文章的提交与恢复等模块均涉及到该表的读取操作。表2-SEQ图表\*ARABIC1学生信息表简述学生信息表属性名属性意义学生ID表的主键,唯一标识学生姓名记录学生的姓名密码学生登录系统的密码2、系统管理员信息表用于记录系统的管理员信息。系统管理员的登陆与修改密码涉及到对该表的操作。表2-2系统管理员信息表简述系统管理员信息表属性名属性意义系统管理ID表的主键,唯一标识密码管理员后台登录系统的密码3、文章信息表用于记录所有文章的相关信息。文章的发布、搜索和删除涉及到对该表的操作。表2-3文章信息表简述文章信息表属性名属性意义文章ID表的主键,唯一标识标题文章的标题文章类型代表文章的类型作者文章的作者时间文章发表时间浏览数该文章被浏览的次数回复数该文章被回复的次数内容文章的正文内容

4、文章回复信息表用于记录所有文章的回复信息。回复文章涉及到对该表的操作。表2-4文章回复信息表简述文章回复信息表属性名属性意义文章回复ID表的主键,唯一标识文章ID被回复的文章的主键(对应于文章信息表)作者回复文章的作者时间回复文章时间2.3性能需求分析系统要求能够满足多个用户的同时访问,具备大批量数据处理能力,并能快速地将用户需要的信息返回给用户浏览,系统接口要整洁、美观以及合理,用户能够使用方便。2.4出错处理需求分析对于因用户操作引发的业务逻辑错误,系统均给出了相应的提示信息,并以友好的形式返回给用户。对于系统内部运行错误,系统打印错误信息,以便在系统运行时能够便于运行、维护、推广和升级。当用户通过盗取的链接试图跳过权限直接访问页面时,需要做出警告并且不显示任何用户权限之外的内容,防止用户越权操作。2.5界面需求分析1、编译原理教学网站子系统主接口示意图如图2-3所示:显示菜单课程目录正文版权信息图2-3编译原理教学网站子系统主接口2、编译原理论坛子系统主接口示意图如图2-4所示:系统标志顶:宽778px,高130px系统功能树左:宽178px高350px系统功能操作页右:宽600px高350px图2-4编译原理论坛子系统主接口三系统总体设计3.1设计目标建立编译原理教学网站和论坛系统,实现编译原理课程的发布和编译原理学习经验的交流与共享,使该系统成为学习编译原理知识的平台。通过该系统的实现,帮助学生更好的学习编译原理知识,同时也是学生和教师在实践教学中更好、更便利地通过网络交流与沟通。3.2功能总体设计3.2.1系统的功能特点1、操作简单、接口友好:合理的页面布局,使得用户可以轻松的找到所需的详细知识与信息。2、功能完善:系统对编译原理课程知识进行了整理和细化,帮助用户更好的学习知识;同时论坛子系统为用户提供发布文章、浏览、搜索和回复文章的功能,便于知识的交流与共享。3、易于维护:系统采用了JavaEE标准的多层分布式[2]开发模式[3]。各模块分工明确,各尽其责,程序代码结构清晰,模块之间耦合程度低,便于以后的维护和升级。3.2.2系统功能总体设计编译原理教学网站和论坛系统主要分为编译原理教学子系统、编译原理论坛子系统。编译原理教学子系统通过页面左侧的课程目录选择所需浏览的课程;论坛子系统在用户登录系统后在左侧功能树选择自己所需的操作,下面介绍其总体设计方案:1、编译原理教学子系统:编译原理教学子系统提供了编译原理所有内容的展示,同时各部分内容对页面左侧的课程目录,以便于在需要时能迅速找到所需课程,针对性地展开编译原理知识的学习。(1)顶部菜单提供了教师简介、课程简介、学习目标、学习帮助、考试系统和论坛的链接。其中鼠标移至论坛帮助上方是将显示出论坛帮助的子菜单,该子菜单又包括词汇表、重点难点和知识结构子节点。页面设计如图3-1所示。(2)课程目录用于列出各章课前索引、各节标题、本章小结和课后习题及课程附录。页面设计如图3-1所示。(3)课程正文对应于左侧课程目录选中项正文内容的显示。为了更好的帮助同学们去理解课程,每一章知识都加入了大量的图片及flash,同时也提供了课前索引、课后习题及本章小结。页面设计如图3-1所示。图3-1编译原理教学子系统页面2、编译原理论坛子系统:为了方便用户的使用,编译原理论坛子系统提供了用户登录模块、账号管理模块、文章管理模块、文章搜索模块、管理员模块。除此之外还提供了的功能有:浏览文章,文章回复,点击及回复次数统计。(1)用户登录模块成功注册过的学生根据学号和密码在这里登陆编译原理论坛子系统。页面设计见图3-2。(2)账号管理模块账号管理模块有两个功能:账号注册功能和注册过的账号的密码修改功能。页面设计见图3-2。(3)文章管理模块文章管理模块有两个功能:发表文章功能和管理文章功能,其中点击管理文章后进入管理员登陆页面,作为后台管理的入口。页面设计如图3-2所示。(4)文章搜索模块支持三种类型的搜索:按文章标题、按文章类型和按文章作者。页面设计如图3-2所示。(5)管理员模块管理员成功登陆后,系统删除文章的功能。(6)其它功能编译原理论坛子系统还提供了:浏览文章,文章回复,点击及回复次数统计功能。图3-2编译原理论坛子系统页面3.3数据库总体设计所有数据库表[4]均包括ID这个通用字段,作为所属数据库表的主键。本系统设计了四个数据库表,如下所示:1、用户信息表用户信息表用来存储系统需要保存的普通用户信息,ID代表学生学号,作为该表的主键,总体设计如表3-1所示。字段名类型可否为空描述IDINT(11)否学号USERNAMEVARCHAR(20)否学生姓名PASSWORDVARCHAR(20)否登录密码表3-1用户信息表2、管理员信息表管理员信息表用来存储系统需要保存的系统管理员信息,id代表管理员账号,作为该表的主键,总体设计如表3-2所示。表3-2管理员信息表字段名类型可否为空描述IDINT(11)否账号PASSWORDVARCHAR(20)否密码3、文章信息表文章表用来存储系统的所有文章信息,ID作为主键。总体设计如表3-3所示。表3-3文章信息表字段名类型可否为空描述IDINT(10)否文章IDTITLEVARCHAR(300)否文章标题KINDVARCHAR(30)否文章分类AUTHORVARCHAR(50)是作者TIMEDATETIME是文章发表时间CLICKCOUNTINT(10)是文章浏览次数REPLAYCOUNTINT(10)是文章回复次数TEXTTEXT否文章内容4、文章回复信息表文章回复表用来存储系统的所有文章回复信息,ID作为主键,ATICLEID代表回复内容所属的文章的ID即ATICLEID是本表关联文章信息表的外键。总体设计如表3-4所示。表3-4文章回复信息表字段名类型可否为空描述IDINT(10)否文章回复IDATICLEIDINT(10)否所属文章的IDAUTHORVARCHAR(50)是作者TIMEDATETIME是文章回复发表时间TEXTTEXT否文章回复内容河北大学2009届本科生毕业论文(设计)PAGE11四系统详细设计及实现4.1技术背景4.1.1B/S架构系统采用的是B/S架构,即浏览器/服务器端模式。该模式是随着Internet技术的兴起,对C/S架构(即客户/服务器端模式)进行改进之后形成的新架构。在B/S架构下,客户端界面是通过浏览器来实现的,省去了C/S架构还要必须安装客户端的步骤。因此,软件系统的升级就可以只在服务器端进行,这样就大大减轻了系统维护和升级所要花费的成本和工作量,很适合大型系统的开发。4.1.2选用JAVA和JSP的原因Java[5]是由SunMicrosystems公司于1995年推出的一种类似于C++的语言,它具有平台无关性、安全性、分布式、面向对象[6]、健壮性、简单易学的特点。随着Internet的流行,Java凭借在网络方面的优势以及自身的特点已经在网络开发的市场上占据了无可比拟的优势,并且已经成为许多商业系统的首选开发语言。JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司一起建立的一种动态网页技术标准。与其它语言相比,JSP具有如下几个优点:一次编写,到处运行;系统的多平台支持;强大的可伸缩性;多样化和功能强大的开发工具的支持,并且大部分工具都是为免费提供给用户的。4.2开发平台的选择系统采用的数据库是MySQL[7]关系数据库。作为目前世界上最流行的开放源代码关系数据库管理系统,MySQL数据库几乎席卷了整个产业界。MySQL数据库就有的跨平台支持、独立存储引擎、查询高速缓存、高级权限与安全系统、全文索引与检索等特性,是MySQL数据库得意取胜的法宝。可见现,MySQL数据库很适合在本编译原理教学和论坛系统中执行数据存储任务。Tomcat[8]是用于开发、集成、部署和管理分布式Web应用、网络应用和数据库应用的Java应用服务器,拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性,为Web应用系统建设提供了完善的解决方案。Tomcat的配置方式也很简单,一般只需要修改conf目录下的server.xml[9]文件即可。系统的开发工具采用了非常优秀的集成开发环境Eclipse,它是一个开放源代码的、基于Java语言的整合型可扩展开发平台,也是目前最著名的开源项目之一,它由IBM公司开发。凭借着开源、免费、多样化的插件、强大的扩展能力,Eclipse已经成为当前JAVA语言系统开发的首选工具。4.3系统功能详细设计在系统的设计过程中,对于一些常用代码模块进行了代码复用,与数据库的交互采用了持久层技术及Hibernate框架,核心代码请见附录,因此,对所有用例不再一一详细介绍,只是挑选小部分用例进行介绍。1、编译原理教学系统课程目录功能描述:显示编译原理课程的所有章节(包括各章的索引、小节及课后习题)和附录。本功能通过JavaScript脚本语言来实现。主要代码举例如下:……tree=newTree();//实例化课程目录树vardirectory=newNode("课程目录");//课程目录根节点directory.fontbold=true;//字体加粗显示directory.fontcolor="#ABAEE2";//设置字体颜色directory.expanded=true;//默认展开所有子节点显示tree.add(directory);//将课程目录根节点添加到目录树varchapter1=newNode("第一章编译程序概述");//第一章子节点chapter1.fontcolor="#ABAEE2";//设置子节点字体颜色directory.add(chapter1);//将第一章子节点添加到课程目录根节点varindex1=newNode("课前索引","lessonDoc/chap01/index1.html");//章索引子节点index1.fontcolor="#ABAEE2";//设置第一章索引子节点字体颜色chapter1.add(index1);//将第一章索引子节点添加到第一章节点……页面详细设计[10]如图4-1所示。图4-1编译原理教学系统课程目录页面2、课程正文显示功能描述:用户点击课程目录树选择需要浏览的课程名,右侧正文部分显示指定的课程内容。主要代码举例如下:……varlesson7_1=newNode("7.1LR分析概述","lessonDoc/chap07/lesson7_1.html");//课程目录中设置节点链结到的网页相对路径Chapter7.add(lesson7_1);//将第七章第一节添加到所属第七章……页面详细设计如图4-2所示图4-2编译原理教学系统课程正文显示页面3、页面顶部菜单功能描述:当用户将鼠标悬浮在“学习帮助”上时将显示出弹出菜单,弹出菜单提供的子链结由:词汇表、重点难点和知识结构。主要代码:<scriptlanguage="javascript">//为菜单项定义鼠标事件startList=function(){if(document.all&&document.getElementById){hcbMenubarRoot=document.getElementById("mynav2");varcount=0;for(j=0;j<hcbMenubarRoot.childNodes.length;j++){node=hcbMenubarRoot.childNodes[j];count=j;if(node.nodeName=="LI"){node.onmouseover=function(){this.className+="over";}node.onmouseout=function(){this.className=this.className.replace("over","");}}}}}window.onload=startList;//载入页面是初始化该函数</script>页面详细设计如图4-3、图4-4所示:图4-3鼠标没有悬浮在“学习帮助”上时的编译原理教学系统页面顶部菜单图图4-4鼠标悬浮在“学习帮助”上时的编译原理教学系统页面顶部菜单图4、论坛子系统主页面显示功能描述:论坛子系统主页面主要由三部分组成:顶部菜单(点击论坛首页则链结会论坛首页面)、左侧功能菜单和文章列表或文章正文显示。主要代码如下:<framesetrows="104,*"frameborder="no"border="0"framespacing="0"><framesrc="top/binayitop.html"name="topFrame"scrolling="no"noresize="noresize"id="topFrame"title="topFrame"/><framesetcols="260,*"frameborder="no"border="0"framespacing="0"><framestyle="height:100%;width:260px;"src="bbsDir/bianyiBBS.jsp"noresize="noresize"frameborder=0/><framename="mainDoc"style="height:100%;width:90%"noresize="noresize"src="mainPage.jsp"frameborder=0/></frameset></frameset>页面详细设计如图4-5所示:图4-5论坛子系统主页面5、用户登录模块功能描述:已注册在这里出入正确的学号和密码来进入系统。登陆后的用户在该模块点击注销按钮来退出登录。主要代码如下:用户登录主要代码:booleanisStudentExist=applicationService.isStudentExist(loginForm.getStudentID(),loginForm.getPassword());if(isStudentExist){Studentstudent=newStudent(loginForm.getStudentID(),loginForm.getStudentName(),loginForm.getPassword()); request.getSession().setAttribute("student",student);request.getSession().setAttribute("username",student.getUsername()); returnmapping.findForward(ControllerConstatnts.LOGIN_SUCCESS);}用户注销登录主要代码:Enumerationenumeration=request.getSession().getAttributeNames(); request.getSession().removeAttribute("student"); request.getSession().removeAttribute("username"); returnmapping.findForward(ControllerConstatnts.LOGIN_OFF);页面详细设计如图4-6、图4-7所示:图4-6用户登录模块图4-7用户退出登录模块6、账号管理模块功能描述:提供用户注册和已注册用户(包括管理员)修改密码的功能。主要代码如下:ApplicationServiceFactoryapplicationServiceFactory=(ApplicationServiceFactory)this.getServlet().getServletContext().getAttribute(ControllerConstatnts.APPLICATION_SERVICE_FACTORY);ApplicationServiceapplicationService=applicationServiceFactory.createApplicationService(); System.out.println("applicationServiceis:"+applicationService);Studentstudent=newStudent(Integer.parseInt(form2.get("studentID").toString()),form2.get("password").toString(),form2.get("studentName").toString()); booleansaveStudentSuccess=applicationService.saveStudent(student); if(saveStudentSuccess) request.setAttribute("userRegisterMsg","恭喜您,用户注册成功!"); else request.setAttribute("userRegisterMsg","对不起,用户注册失败..."); returnmapping.findForward(ControllerConstatnts.USERREGISTER_SUCCESS);页面详细设计如图4-8所示:图4-8账号管理模块图7、文章管理模块功能描述:文章管理模块的发布文章支持用户和管理员的文章发布,管理文章模块提供管理员登录入口,管理员登录后就有删除文章的权限。主要代码如下:ApplicationServiceFactoryapplicationServiceFactory=(ApplicationServiceFactory)this.getServlet().getServletContext().getAttribute(ControllerConstatnts.APPLICATION_SERVICE_FACTORY); ApplicationServiceapplicationService=applicationServiceFactory.createApplicationService(); Aticleaticle=newAticle(); aticle.setTitle(form2.getTitle()); if(request.getSession().getAttribute("student")!=null) aticle.setAuthor(request.getSession().getAttribute("username").toString()); else aticle.setAuthor("游客"); aticle.setKind(form2.getKind()); aticle.setText(form2.getText()); applicationService.submitAticle(aticle); request.setAttribute("submitActicleMsg","发表文章成功!");页面详细设计如图4-9所示:图4-9文章管理模块图8、文章搜索模块功能描述:文章搜索模块提供三种文章搜索的方式:按标题搜索、按作者搜索和按文章类型搜索,也可以搜索同时满足两个或三个条件的文章。主要代码如下:ApplicationServiceFactoryapplicationServiceFactory=(ApplicationServiceFactory)this.getServlet().getServletContext().getAttribute(ControllerConstatnts.APPLICATION_SERVICE_FACTORY); ApplicationServiceapplicationService=applicationServiceFactory.createApplicationService(); Listlist=null; if(request.getParameter("pageNum")==null) list=applicationService.searchAticles(form2.getTitle().trim(),form2.getAuthor().trim(),form2.getKind().trim()); else{ intpageNum=Integer.parseInt(request.getParameter("pageNum")); list=applicationService.searchAticles(form2.getTitle().trim(),form2.getAuthor().trim(),form2.getKind().trim(),pageNum); } System.out.println(list.size()); if(list!=null&&list.size()!=0){ request.setAttribute("searchAticleList",list); request.setAttribute("searchAticlelistSize",applicationService.countOfSearchAticles(form2.getTitle().trim(),form2.getAuthor().trim(),form2.getKind().trim())); returnmapping.findForward(ControllerConstatnts.SEARCHATICLE_SUCCESS); }页面详细设计如图4-10所示:图4-10文章搜索模块图9、文章列表的显示功能描述:文章列表显示支持两种列表的显示:所有文章列表和指定条件的文章列表;其中文章列表显示文章的标题、文章类型、作者、发表时间、浏览次数和回复次数。主要代码如下:<%Aticleaticle=(Aticle)request.getAttribute("aticle");intlistSize=Integer.parseInt(request.getAttribute("listSize").toString());ListreplayAticleList=(List)request.getAttribute("replayAticleList");%><c:setvar="i"value="0"/><c:setvar="page"value="${page}"/><c:setvar="aticleID"value="${aticleID}"/><fontsize="3"><%=StringToHtml.stringToHtmlStr(aticle.getText())%></font><br><%if(replayAticleList.size()>0){%><tablewidth="100%"align=centerborder=1bordercolorlight="#26354A"bordercolordark="#D3DCE6"><trheight=15><tdalign=centerwidth="55%"colspan="2"><spanclass="STYLE345">留言板</span></td></tr><c:iftest="${notemptyreplayAticleList}"><c:forEachitems="${replayAticleList}"begin="0"end="4"step="1"><c:outvalue="<tr><tdalign='center'><spanclass='STYLE345'>${replayAticleList[page*5+i].author}</span></td><tdalign='center'><spanclass='STYLE345'>${replayAticleList[page*5+i].time}</span></td></tr><tdalign='left'colspan='2'><fontsize='2'color='#26354A'>${replayAticleList[page*5+i].text}</font></td></tr>"escapeXml="false"/><c:setvar="i"value="${i+1}"/><c:outvalue="${page}"></c:out></c:forEach></c:if></table><%}%>页面详细设计如图4-11所示:图4-11文章列表的显示图10、文章浏览与回复功能描述:文章浏览与回复模块提供浏览文章和回复文章两种功能。点击文章标题,链接到选中文章的正文部分。在正文部分的下方可以回复该文章。主要代码如下:ApplicationServiceFactoryapplicationServiceFactory=(ApplicationServiceFactory)this.getServlet().getServletContext().getAttribute(ControllerConstatnts.APPLICATION_SERVICE_FACTORY); ApplicationServiceapplicationService=applicationServiceFactory.createApplicationService(); ReplayAticlereplayAticle=newReplayAticle(); replayAticle.setText(form2.getText()); if(request.getSession().getAttribute("student")!=null) replayAticle.setAuthor(request.getSession().getAttribute("username").toString()); else replayAticle.setAuthor("游客"); if(request.getSession().getAttribute("admin")!=null) replayAticle.setAuthor(request.getSession().getAttribute("admin").toString()); intaticleID=Integer.parseInt(request.getParameter("aticleID").toString()); replayAticle.setAticleID(aticleID); applicationService.replayAticle(replayAticle); applicationService.aticleReplayCountAddOnce(aticleID);页面详细设计见图4-12图4-12文章浏览与回复图五系统测试5.1编译原理教学子系统测试编译原理教学子系统测试用例如下表所示:表5-1编译原理教学子系统测试用例测试编号测试用例前置条件预期结果备注Byyl-001编译原理教学子系统主页面顶部菜单栏显示检验链接到编译原理教学子系统主页面页面顶部菜单栏显示正常且风格与页面其它部分保持一致通过Byyl-002编译原理教学子系统主页面课程目录显示检验链接到编译原理教学子系统主页面课程目录显示正常且风格与页面其它部分保持一致通过Byyl-003编译原理教学子系统主页面课程正文显示检验链接到编译原理教学子系统主页面且目录选中指定课程正文显示显示正常且风格与页面其它部分保持一致通过Byyl-004编译原理教学子系统主页面课程目录功能检验链接到主页面,选中某一章节显示指定章节课程正文通过Byyl-005编译原理教学子系统主页面课程顶部菜单栏功能检验链接到主页面,选中某一节点页面正文部分显示指定内容通过5.2编译原理论坛子系统测试编译原理论坛子系统测试用例[11]如下表所示:表5-2编译原理论坛子系统测试用例测试编号测试用例前置条件预期结果备注Byyl-006编译原理论坛子系统主页面顶部菜单栏显示检验链接到论坛子系统,数据库正常运行页面顶部菜单栏显示正常且风格与页面其它部分保持一致通过Byyl-007编译原理论坛子系统主页面功能目录显示检验链接到论坛子系统,数据库正常运行功能目录显示正常且风格与页面其它部分保持一致通过Byyl-008编译原理论坛子系统课程正文显示检验链接到论坛子系统,数据库正常运行正文显示显示正常且风格与页面其它部分保持一致通过Byyl-009编译原理论坛子系统主页面顶部菜单栏功能检验链接到论

温馨提示

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

评论

0/150

提交评论