毕业论文数据结构实验教学软件设计_第1页
毕业论文数据结构实验教学软件设计_第2页
毕业论文数据结构实验教学软件设计_第3页
毕业论文数据结构实验教学软件设计_第4页
毕业论文数据结构实验教学软件设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、 学 号: 3090717301 题目类型: 设计 (设计、论文、报告)桂林理工大学GUILIN UNIVERSITY OF TECHNOLOGY本科毕业设计(论文)题目: 数据结构实验教学软件设计 学 院: 信息科学与工程学院 专业(方向): 计算机科学与技术(应用) 班 级: 计本09-3 学 生: 指导教师: 2013年 5 月 15 日摘 要数据结构作为计算机专业核心基础课程之一,由于其复杂性、抽象性、动态性以及逻辑性,传统的课堂教学并不能让同学们充分掌握这门课程,而随堂的实验课程也无法满足学生对于掌握数据结构课程内容的需求。但是,随着在Internet与在线实验系统的发展,学生可以有

2、更多的机会去进行数据结构的实验,使得学生可以更好地掌握数据结构的内容。本系统就是利用EBJ+JPA框架开发的一个集数据结构的远程教育系统,在线实验系统,留言管理系统于一身的数据结构实验教学软件。本系统通过数据结构每个实验的内容介绍、代码展示以及Flash演示来加深学生对于数据结构实验课程的理解,通过利用GCC(GNU Compiler Collection,GNU编译器集合)实现的在线编译系统来完成学生进行的在线实验,通过一个留言管理系统完成学生与老师之间的交流,从而加强学生对于数据结构课程的学习和理解。关键词: 数据结构;在线实验系统;在线编译系统;留言管理系统The Design of D

3、ata Structures Experimental Teaching SoftwareStudent: Zhang Xue-feng Teacher: Ge Yun-shengAbstract:Data Structure, as one of the computer science core course, is difficult for students to understand with traditional teaching because it has complexity, abstraction, dynamics and logic. And the experim

4、ent course with the class can not satisfy students to understand the content of data structure.However, with the development of Internet and online experiment system, students have more opportunities to experiment the data structure. And students can understand the content of data structure much mor

5、e.This system developing with EJB+JPA architecture is data structure experimental teaching software with distance teaching system of data structure, online experiment system and message management system. This system helps students to understand data structure by introducing experimental content, sh

6、owing the code of each experiment and Flash of each experiment. And this system achieve that students can experiment online by using an online compiling system with GCC (GNU Compiler Collection). And this system achieve the function that students communicate with teachers by a message management sys

7、tem to help students understand data structure.Key words: Data Structure; Online Experiment System; Online Compiling System; Message Management System.目 次摘要 Abstract 1绪论11.1开发背景11.2开发意义11.3开发目标11.4数据结构实验教学软件相关技术的现状11.4.1 数据结构Flash演示11.4.2 在线实验系统11.4.3 远程实验系统21.5数据结构实验教学软件的必要性22系统开发的技术及知识22.1 开发语言的选用

8、22.2 关键技术32.2.1 EJB+JPA技术32.2.2 在线编译技术32.2.3 上传和下载技术42.3 开发工具52.3.1开发软件NetBeans 7.052.3.2 MySQL数据库概述52.4 软硬件环境62.4.1 硬件环境要求62.4.2 软件坏境要求62.4.3 软件安装63 需求分析及概要设计73.1 可行性分析73.1.1 经济可行性73.1.2 技术可行性73.1.3 运行可行性73.1.4 法律可行性73.2 功能分析73.2.1 主要功能描述73.2.2 功能结构图83.2.3 流程图93.3 数据库设计113.3.1 系统数据库关系图113.3.2 数据表的设

9、计114 系统设计及实现134.1 系统总体设计144.2 系统详细设计与实现144.2.1 用户登录模块144.2.2 学生模块设计与实现174.2.3 教师模块设计与实现334.2.4 管理员模块的设计与实现385 系统的测试与维护445.1 系统运行坏境的搭建445.1.1 JDK的安装445.1.2 NetBeans的安装445.2 系统测试445.2.1 系统测试分析445.2.2 单元测试455.3 系统中所存在的问题及解决方案475.3.1 系统的整体设计和规划中的问题475.3.2 开发功能模块所遇到的难点485.3.3 系统中存在的问题及拟定的解决方法486 总结49致 谢5

10、0参考文献511 绪论1.1 开发背景数据结构这门课程作为计算机科学与技术专业的基础核心课程,由于其复杂性、抽象性、动态性以及逻辑性1,传统的课堂教学并不能让同学们充分掌握这门课程,而随堂的实验也不能完美的配合教学过程让同学们完全理解与掌握数据结构的大纲要求。伴随着Internet的发展以及在线实验技术的发展,网络教学以及网上的在线实验已经成为当今解决学生与教师互动的主要途径。直观的数据结构Flash演示也是让学生理解抽象的数据结构内容的便捷方法。1.2 开发意义现在Internet应用越来越广泛,各行各业都重视利用网络与计算机进行数据的处理及管理。它对人类社会和生活所起的作用是无法估量的。当

11、然在教育领域也同样会充分利用计算机和互联网的优势,使教育工作更加的快捷和方便,同时也能让学生更好地学习。传统的数据结构的课堂教学以及随堂的实验课程,不足以让同学充分掌握抽象复杂的数据结构内容。利用在线教育和在线实验系统可以帮助同学更多的了解课程内容与进行实验,以及便捷的与自己的指导教师沟通,从而解决数据结构课程理解与掌握难的问题。1.3 开发目标使用JSP+MySQL+Servlet技术以及EJB+JPA框架实现一个学生具有选择自己的教师,查看数据结构实验介绍,实验代码,在线实验以及和教师交流,教师具有查看学生实验结果,给实验评分,与学生交流,管理员可以批量添加学生,删除学生,添加教师,删除教

12、师的多功能的数据结构实验教学软件。1.4 数据结构实验教学软件相关技术的现状1.4.1 数据结构Flash演示 目前,开发数据结构的Flash演示主要应用Macromedia Flash8.0开发完成2,国内外都有很多的数据结构Flash演示动画。在Flash中需要用到的资源在网络上已经有很多。1.4.2 在线实验系统本系统的在线实验系统其实就是一个在线编译系统,目前,在国内应用最广泛的在线编译系统应用就是由北京大学开发的北京大学程序在线评测系统POJ(Peking University Online Judge)中的在线编译模块,该模块利用GNU提供的跨平台的编译器实现编译功能,该系统已经能

13、提供上百万人的同时在线编译功能3。1.4.3 远程实验系统目前,在远程教育系统的研究方面,已经有成熟的远程教育系统结构与远程教育系统的管理办法2以及远程教育系统的数据库设计5供我们去参考。1.5 数据结构实验教学软件的必要性目前在教育领域中,传统的数据结构教学因为课堂时间过少,实验课程时间不够,所以它已经不足以让学生充分掌握和学习数据结构的课程内容,所以数据结构实验教学软件是很有必要的。2 系统开发的技术及知识2.1 开发语言的选用目前,比较常用的三种动态网页语言有ASP、JSP和PHP。ASP全名Active Server Pages,是一个Web服务器的开发环境, 利用它可以产生和运行动态

14、的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script)作为自己的开发语言。 PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C、Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。 JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病脚本执行。Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是JSPJava Server Page。JSP 可以在Se

15、rvlet和JavaBean的支持下,完成功能强大的站点程序。三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PHP、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三

16、者都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。JSP将内容的生成和显示进行分离,并且强调可重用的组件,采用标识简化页面开发。三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP+Servlet。比较出名的如IBM的Ebusiness。国外另外一个非常著名的电子商务软件提供商,Intershop。它原来的产品Intershop1 ,2, 3, 4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持 的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开

17、发传统软件。 在这个系统设计中,我选择的是JSP技术。 2.2 关键技术2.2.1 EJB+JPA技术1)EJB全称为Enterprise Java Beans,为企业级Java Beans,其中包含会话Bean(SessionBean),实体Bean(EntityBean)。会话Bean可以是无状态的,也可以是有状态的,当客户端访问服务器是,会生成一个会话Bean,通过会话Bean调用数据库数据,通常,它会通过实体Bean来调用数据库数据。实体Bean用于实现对表记录的映射,当创建或删除一个实体Bean时,相对应的,在数据库中也添加或删除一个表中的记录。2)JPA全称为Java Persis

18、tence API,JPA通过JDK 5.0注解或XML描述对象关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA可以将数据库中的表转化为JAVA中的类,在对数据库的操作中,就可以转化为面向对象的操作了。它通过一个persistence.xml的配置文件将指定的连接池中的数据库转化为方便操作的实体类,从而将面向数据库的操作变为面向对象的操作。2.2.2 在线编译技术GCC(GNU Compiler Collection,GNU编译器集合),是GNU工程开发的一个跨平台的编译器。GCC最基本的用法是gcc options filenames 其中options就是编译器所需要的参数,

19、filenames给出相关的文件名称。 -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。 -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,

20、编译、连接的速度就相应地要慢一些。 -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢6。 首先将GCC安装并配置到服务器端,然后将客户端的代码保存到服务器端的指定文件夹下,在servlet中通过java提供的runTime来调用GCC可以编译文件或者获得编译的出错信息。2.2.3上传和下载技术Commons-fileupload是Apache开放源代码组织中的一个Java子项目。该项目主要涉及一些开发中常用的模块,如上传文件、命令处理、数据库连接池、XML配置文件处理等。FileUpload就是其中用来处理基于表单的文件上传的子项目。在Commons-fileupload组件中

21、,所有的类都在包中,包括DiskFileUpload类和FileItem接口。其中DiskFileUpload类负责处理上传的数据,并将每部分的数据封装到一个FileItem对象中。Commons-fileuploadd组件提供了FileItem接口的一个实现类DefaultFileItem1。1)DiskFileUpload类的主要方法如下:(1)setSizeThreshold(int size Threshod):设置一旦文件大小超过getSizeThreshod()的值时数据存放在硬盘的目录。(2)setRepositiryPath(java.lang.String repositor

22、yPath):RepositoryPath指定缓冲区目录。(3)parseRequest(javax.servlet.http.HttpServletRequest req,int sizeThreshod, long sizeMax,java.lang.String path):解析HttpServletResultSet返回一个FileItem列表。(4)setSizeMax(int size):设置允许用户上传文件的大小,单位为字节。2)FileItem接口的主要方法如下:(1) isFormField:判断是否是普通文本域。(2) getName:取得文件在客户机上的名字。(3) ge

23、tSize:取得文件大小。(4) getString:以字符串形式在内存中保存。3)文件上传和下载工具类Upload:WebFrame中的工具类对上传下载组件jspSmartUpload进行了包装,的主要方法如下:(1)UploadUtil作用:初始化构造方法,执行上传下载的初始化工作。(2)Upload作用:上传文件,第一个参数表示表单中上传文件框的序号,序号从0开始,第二个参数表示上传文件的路径。(3)getParameter作用:获取表单输入参数。(4)getParameterValues作用:获取多值输入参数。(5)getFileOriginalName作用:获取上传文件的原文件名。(

24、6)download作用:下载文件,参数表示上传文件的真实名称。(7)delete作用:删除文件,参数表示上传文件的真实名称。2.3 开发工具2.3.1开发软件NetBeans 7.0NetBeans IDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中运行。NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、JavaScript、Ajax、Groovy、Grails和C /C + +等开发语言。NetBean

25、s 平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。当基于NetBeans 平台的应用被执行,平台主要类别的main方法便会被执行。可用的模组会被放置在存储器中,并且开始执行任务。通常模组会只在被需要时,其代码才会被装进记忆。整个 Netbeans 平台提供对桌面应用程式常用的服务,允许开发者集中于仅限于他的应用程式的逻辑设计。其中 NetBeans 平台的主要特征是:1)用户界面管理 User interface management (例如 选单和工具条)2)用户设定管理 User settings management3)存储管理 Storage management(保留和装

26、任何种类数据)4)视窗管理 Window management5)术士框架 Wizard framework(一步一步支援对话框) MySQL数据库概述MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1)MySQL的特性(1)使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植(2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell

27、Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 (3)为多种编程语言提供了API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 (4)支持多线程,充分利用CPU资源 (5)优化的SQL查询算法,有效地提高查询速度(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、utf-8等都可以用作数据表名和数据列名 (7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径 (8)提供用于管理、检查

28、、优化数据库操作的管理工具 (9)可以处理拥有上千万条记录的大型数据库2)MySQL的应用与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 2.4 软硬件环境2.4.1硬件环境要求计算机必须满足的条件:处理器: Intel Pentium IV 或更高版本处理器。内存:至少512MB内存,

29、推荐1G以上内存。硬盘:3G磁盘空间(仅限于安装Netbeans开发环境)。网卡:标准以太网卡。显示器:1024x768 VGA ,真彩色,需要支持 Windows 的显示适配器。软件坏境要求本系统是在Microsoft Windows 7下开发的,所采用的开发工具是Netbeans IDE 7.0版本。系统用到的软件:NetBeans自带的服务器GlassFish;JDK1.5 或以上;MySQL5.5以上 。客户端软件:windows 2000或以上操作系统,推荐Chrome浏览器,推荐桌面显示方式:建议1024*768像素。软件安装(1) 安装JAVA运行环境JDK 1.6(2) 在操作

30、系统上安装好Netbeans IDE 7.0版本(3)在操作系统上装上MySQL 5.53 需求分析及概要设计3.1 可行性分析随着计算机技术的发展和互联网的普及,计算机及网络被越来越多的人接受,在日常生活中使用计算机解决问题已经成为一种趋势。不管是那个领域都跟计算机脱离不了关系,同样教育领域也不例外,传统的数据结构课程的教育已经不能让学生充分掌握数据结构,计算机技术的出现势必会影响数据结构课程的教育方式和实验方法,进而改善它的不足。可行性研究是为了弄清楚开发的系统是不是可以实现和值得研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以可行性分析是非常必要的,同时也是很重要的,如果做

31、出来的东西都没有实用价值,那么之前所花的时间和费用都是浪费了,所以只有经过可行性分析的系统才是可以设计实现的。经过最初的设计目标以及市场调查得出以下四点可行性分析:3.1.1 经济可行性由于这个设计只是本人的毕业设计,只是需要一些软件和电脑,不需要实际的服务器、域名空间等。经济花销不大,所以可行。3.1.2 技术可行性JSP+EJB+JPA+MySQL的技术已经较为成熟,所以可行。3.1.3 运行可行性该系统需要搭建JDK、NetBeans和MySQL数据库,在此环境下系统正确连接数据库后可以正常运行。3.1.4 法律可行性该平台作为毕业设计与商业无关,又因为是自主设计,因此不会构成侵权,在法

32、律上是可行的。3.2 功能分析3.2.1 主要功能描述数据结构实验教学软件主要功能为在线实验,查看实验介绍和信息以及教师与学生之间的互动,系统可分为三个角色:系统管理员、教师用户、学生用户。管理员能够管理教师和学生:添加或删除教师和学生,由于学生一次性添加人数较多,因此采用批量学生,即通过上传.xls文件的方式添加学生。教师能够查看学生的实验结果,评价学生的实验,查看留言并给学生留言以及修改自己的登录密码。学生能够选择自己的指导老师(只能选择一次),查看实验介绍,实验的代码,数据结构的Flash展示,在线进行实验,查看教师给予的评价,查看留言并给教师留言以及修改自己的登陆密码。3.2.2 功能

33、结构图 角色功能结构图1)管理员功能结构图图3.1 管理员功能结构图2)教师功能结构图图3.2 教师功能结构图3)学生功能结构图图3.3 学生功能结构图3.2.3 流程图 管理员流程图图3.4 管理员流程图 教师流程图图3.5 教师流程图 学生流程图图3.6 学生流程图3.3 数据库设计3.3.1 系统数据库关系图3.3.2 数据表的设计整个系统功能需要以下数据项:1)student表:学生信息表,主要用于记录学生的信息,主要包括学生Id、学生编号、学生姓名、学生姓名、密码和学生的教师Id。如表3-1所示。studentId(学生Id)、

34、studentNo(学生编号)、studentName(学生姓名)、teacherId(教师Id)、password(密码)。表3-1 student 表名类型长度十进位允许空主键studentIdint110NstudentNovarchar2550NstudentNamevarchar500NteacherIdint110Ypasswordvarchar2550N2)teacher表:老师信息表,主要用于记录老师的信息,包括老师编号、老师ID、老师姓名、密码、电话以及他的学生的数量。具体如表3-2所示。teacherNo(教师编号)、teacherId(教师ID)、teacherName(

35、教师姓名)、password(密码)、phone(教师电话)、studentNumber(学生的数量)。表3-2 teacher 表名类型长度十进位允许空主键teacherIdInt110NteacherNoVarchar2550NteacherNameVarchar2550NpasswordVarchar2550NphoneVarchar2550YstudentNumberInt110Y3)manager表:管理员信息表,主要用于记录管理员的信息,包括管理员Id、管理员姓名、管理员密码,具体如表3-3所示。id(管理员Id)、name(管理员姓名)、password(管理员密码)。表3-3

36、manager表名类型长度十进位允许空主键idInt110NnameVarchar2550NpasswordVarchar2550N4)experiment表:实验信息表,主要用于记录实验的详细信息,包括实验id、实验名称、学生id、教师id、实验内容的位置、实验评价,具体表3-4所示。experimentId(实验id)、experimentName(实验名称)、studentId(学生id)、teacherId(教师id)、experimentContent(实验内容的位置)、experimentPerformance(实验评价)。表3-4experiment 表名类型长度十进位允许空主键

37、experimentIdInt110NexperimentNamevarchar500Y studentIdInt110NteacherIdInt110NexperimentContentvarchar2550YexperimentPerformancevarchar2550Y5)studentmsg表:学生留言表,主要用于记录学生留言的信息,包括留言id、留言内容、实验id、教师留言id(记录该留言的教师回复)、是否为第一条(记录是否是发起的留言),具体表3-5所示。messageId(留言id)、message(留言内容)、experimentId(实验id)、teaMessageId(教

38、师留言id)、isFirst(是否为第一条)。表3-5 studentmsg 表名类型长度十进位允许空主键messageIdInt110NmessageVarchar2550Y experimentIdInt110YteaMessageIdInt110YisFirstBit10Y6)teachermsg表:教师留言表,主要用于记录教师留言的信息,包括留言id、留言内容、实验id、学生留言id(记录该留言的学生回复)、是否为第一条(记录是否是发起的留言),具体表3-6所示。messageId(留言id)、message(留言内容)、experimentId(实验id)、stuMessageId(

39、教师留言id)、isFirst(是否为第一条)。表3-6 teachermsg表名类型长度十进位允许空主键messageIdInt110NmessageVarchar2550Y experimentIdInt110YstuMessageIdInt110YisFirstBit10Y4 系统设计及实现4.1 系统总体设计数据结构实验教学软件,要求有不同的登录角色设计,教师登录进入教师的页面,学生登录则进入到学生的页面,管理员进入管理员首页,进入各个页面进行不同的操作。 对于该系统,经过需求分析,可以得出以下更为细致模块功能。以下是系统的总体功能结构图:图4.1 系统总体功能结构图4.2 系统详细设

40、计与实现根据系统的总体功能结构图,系统间的模块看似独立但却有着很大的联系,只有实现了模块的功能,才能实现联系的功能,所以做这个系统采用逐个实现各个功能模块,这样既有利于开发效率的提高,也有利于日后添加新的模块。这个数据结构实验教学软件包含如下功能模块:管理员模块,教师模块,学生模块。管理员模块:添加教师、通过.xls文件添加学生、批量删除教师、批量删除学生。教师模块:查看学生实验、评价学生实验、查看学生留言并留言、修改密码。 学生模块:选择教师(只能选择一次)、 查看实验介绍、代码以及Flash展示、进行在线实验、查看教师评价结果、查看教师留言并留言、修改密码。4.2.1 用户登录模块用户登录

41、模块包括用户名和用户密码的输入以及自身权限的选择。用户根据系统给自己预先设置好的用户名和密码进行登录,必须是合法的用户名和密码才能通过系统验证。输入信息后,首先根据他所选择的权限和他的用户名得到该用户的密码,并与它输入的密码进行对比。若得到的密码不一致或找不到该用户,则弹出警告框并返回登陆页面,若成功,根据他的用户类型创建session并跳转到相对应的页面。用户登录界面如下图所示:图4.2 用户登录界面实现用户登录的关键代码如下:String userName=request.getParameter("userName"); String password=request

42、.getParameter("password"); String limit=request.getParameter("limit"); HttpSession session = request.getSession(); if(Integer.parseInt(limit)=1) Student stu=newSessionBean.getStuByStuNo(userName); if(stu!=null&&stu.getPassword().equals(password) session.setAttribute("

43、;student", stu); RequestDispatcher requestDispatcher = request.getRequestDispatcher("/stdAdmin/main.jsp"); requestDispatcher.forward(request, response); else response.sendRedirect("failLogin.jsp"); else if(Integer.parseInt(limit)=2) Teacher tea=newSessionBean.getTeaByTeaNo(u

44、serName); if(tea!=null&&tea.getPassword().equals(password) session.setAttribute("teacher", tea); RequestDispatcher requestDispatcher = request.getRequestDispatcher("/teacAdmin/main.jsp"); requestDispatcher.forward(request, response); else response.sendRedirect("failL

45、ogin.jsp"); else Manager man=newSessionBean.getManByName(userName); if(man!=null&&man.getPassword().equals(password) session.setAttribute("manager", man); RequestDispatcher requestDispatcher = request.getRequestDispatcher("/manager/index.jsp"); requestDispatcher.forw

46、ard(request, response); else response.sendRedirect("failLogin.jsp"); 4.2.2 学生模块设计与实现学生模块具有的功能主要是:选择教师(只能选择一次)、 查看实验介绍、代码以及Flash展示、进行在线实验、查看教师评价结果、查看教师留言并留言、修改密码。以下是学生功能页面的详细实现。 学生首页这个页面主要是显示的是学生进入系统后的首页,其中包括学生功能模块的链接,点击相应的链接就可以进入到相应的处理页面。学生首页是一个框架集,包括的页面是:上方的标题页以及返回主页的链接,左边的链接页面(进入到

47、各个功能页面),右边的主页面可以显示当前的用户以及他的消息提示信息(消息提醒为教师留言但是学生没有回复的信息)。学生进入系统的首页如下:图4.3 学生登录首页界面实现学生消息提示的关键代码如下: HttpSession session=request.getSession(); Student stu=(Student)session.getAttribute("student"); List<Experiment> list=stu.getExperimentList(); List<Teachermsg> fList=new ArrayList&

48、lt;Teachermsg>(); for(int i=0;i<list.size();i+) List<Teachermsg> msg=newSessionBean.getTeaUnReplyMsgByExperiment(list.get(i).getExperimentId(); if(!msg.isEmpty() for(int j=0;j<msg.size();j+) if(msg.get(j).getStuMessageId()=null) fList.add(msg.get(j); request.setAttribute("list&qu

49、ot;, fList); RequestDispatcher requestDispatcher = request.getRequestDispatcher("/stdAdmin/right.jsp"); requestDispatcher.forward(request, response); 学生选择教师页面学生选择教师页面,主要用于学生第一次使用该系统时,选择自己的指导教师。系统会自动判定学生是否已经选择了教师,若没有选择,才可以进入选择教师页面。学生选择教师页面如下:图4.4 学生选择教师页面图利用单选按钮选择教师,确定后点击提交,如果教师的学生人

50、数没有达到上限,则选择教师成功。实现学生选择教师的关键代码如下: String stuNo=request.getParameter("stuNo"); String teaNo=request.getParameter("radiobutton"); Student stu=newSessionBean.getStuByStuNo(stuNo); Teacher tea=newSessionBean.getTeaByTeaNo(teaNo); int number=tea.getStudentNumber(); if(number<=50) stu.setTeacherId(tea); tea.setStudentNumber(number+1); newSessionBean.merger(stu); HttpSession session=request.getSession(); ses

温馨提示

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

评论

0/150

提交评论