java综合测评系统毕业论文(设计)任务书一、毕业论文(设计)要求和内容(包括选题要求、研究内容及目标,以及拟采用的研究方法、途径等。)1. 什么是Java applet(Java小应用程序)。2. 如何用Java applet来制作动态网页?3. 设计Java applet网页接受用户的交互式输入,展示Java Applet的特性。4. 结论二、毕业论文(设计)阶段需完成的主要工作:(包括查阅文献与文献综述、开题报告、调查研究以及论文撰写等)1.认真阅读理解设计任务书2. 完成开题报告3. 查询相关资料,征询指导教师意见4. 订制写作计划,征询指导教师意见5. 论文撰写6. 论文答辩三、需查阅的主要文献:[1]黄翔.企业级应用中基于Applet的桌面计算资源利用[J].现代计算机,2005,(SumNo.209):53-56.[2]曹大有,周天宏.Java Applet程序的安全规则与访问第三方WEB服务器[J].计算机与网络,2006,(10):52-54. [3]陈多.Java Applet通讯技术的实现[J].湖南工程学院学报,2005,15(2):69-71.[4]张捷.网络课件中的Java Applet应用[J].河北能源职业技术学院学报,2004,10(1):76-78.[5]汪志达,叶伟.用Applet在网页上实现动态水中倒影[J].新疆大学学报(自然科学版),2003,20(2):142-143.[6]何长英.用Java Applet编写物理实验数据处理软件[J].教学仪器与实验,2005,21(4):9-11.[7]亓传伟.Java Applet与Application的合并运行[J].福建电脑,2006,(5):183-187.[8]梁兴建等.利用Java Applet动态绘制树型结构图形[J].四川理工学院学报(自然科学版),2006,19(1):67-70.[9]孙艳妙.利用Java Applet制作动感网页[J].教育信息技术,2006,(4).[10]王侠.Java Applet的特点及网络应用[J].辽宁税务高等专科学校学报,2004,16(3):17-18.[11]汪晓平,俞俊,李功. 精通java网络编程. [M].北京:清华大学出版社,2005.505.[12]杨军,王凤贵.基Java Applet的数据库连接与查询技术[J].中国有线电视257
Java Applet研究与应用-java综合测评系统开题报告一、 选题依据(含研究的目的和意义等)Java Applet是用Java语言编写的一些小应用程序,这些程序直接嵌入到网页中,由支持Java的浏览器(IE或Nescape)解释执行能够产生特殊效果。它可以大大提高Web页面的交互能力和动态执行能力。Java Applet与ASP等制作动态网页的工具相比,具有得天独厚的优势:1、ASP等只是脚本语言,而JAVA是一种面向对象的语言,其提供内容丰富的类库,能满足与用户更多的交互; 2、JAVA是一种与平台无关的语言,在可移植性方面,ASP等语言无法与之相比; 3、在安全性方面,ASP等脚本语言也无法与之相比; 4、ASP等脚本语言是在服务器端运行的,而Java Applet是运行在客户端浏览器上的小应用程序,这一特性更使得Applet备受欢迎。利用JAVA Applet制作的网页,能处理丰富多彩的多媒体元素,使网页更加生动;利用其客户端执行这一特性能充分利用客户端的数据处理能力,减少服务器的负载;利用其交互能力,使制作的网页能满足更多需求。本课题的研究就是为了充分展示JAVA Applet的特点,并利用其开发学生综合测评系统,使同学、老师们长期面临的问题得到解决。
二、研究的内容及目标 为完成本课题研究的目的和意义,明确研究的内容及目标如下: 1、明确Applet的基本概念、特点,了解广大学者对其应用的研究; 2、明确综合测评系统的各方面的需求; 3、根据明确的需求分析,设计合适的类; 4、根据需求分析,设计合理的后台数据库; 5、利用JAVA提供的丰富的类库,设计美观、大方的系统界面; 6、运用软件工程的方法进行测试,确保系统安全、稳定的运行。三、研究方案及可行性分析(包括主要研究方法和手段,已有的主要设备、软件、资料等说明)1、通过阅读大量的资料,满足自己理论知识方面的需求;2、根据计算机科学与工程系综合测评评分细则以及广大同学计算综合测评的经历,整理明确的需求分析;3、保证系统开发的环境:机器配置: AMD Sempron(tm) processor 2500+ 1.4GHz 256MB的内存;软件配置:WINDOWS XP系统;JDK1.5.0;JCreator编辑器4、主要参考资料: 《JAVA语言程序设计》《软件工程》《用Java Applet编写物理实验数据处理软件》《Java数据库编程中查询结果的表格式输出》《Java Applet程序的安全规则与访问第三方WEB服务器》等四、研究进度计划2007-3-31:完成理论知识的充实与文献综述的撰写;2007-4-7 :完成需求分析任务及各个类的设计 ;2007-4-14:完成界面的设计、实现及各个类的实现 ;2007-4-21:完成系统的测试、调试,完善系统;2007-5-16:完成论文的写作。
Java applet研究与应用毕业论文独创性声明
本人声明所呈交的论文是我个人在指导老师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得漳州师范学院或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。若有不实之处,本人承担一切相关责任。文献综述内容与格式要求
文献综述分四部分:前言、主体、总结和参考文献。一、前言:主要是说明目的和意义,介绍有关的概要、定义以及综述的范围。扼要说明有关主题的现状或争论焦点,使读者对全文就叙述的问题有一个初步的轮廓。字数一般在300字左右。二、主体:是综述的基础和核心部分。其写法是多样的,没有固定的格式。可按年代顺序综述,也可根据不同问题进行综述,还可以按不同的观点进行综述。不管那种形式都要将所收集到的文献资料归纳、整理、分析比较评述,主要通过提出问题、分析问题,综合前人文献中提出的理论和事实,比较各种学术的观点,阐明所提出问题的历史,现状以及今后发展的方向,以及对这些问题的评述。字数一般在2500左右。三、总结:将全文主题进行扼要总结。最好能提出自己的见解。字数一般在100~200左右。四、参考文献:是文献综述的主要组成部分,因为它不仅表示对被引用文献作者的尊重及引用文献的依据。参考文献的编排应条目清晰、查找方便、内容准确无误,格式与毕业论文(设计)参考文献一致。
文献综述
前言网络自产生以来,信息技术在发生翻天覆地的变化。随之而来,HTML标记语言,ASP等语言得到了广泛的应用。Java这个“网络小精灵”自产生起,便因它的可移植、安全、稳定、简单、高性能、动态执行等特性就备受人们的关注与宠爱。Java小应用程序Applet是嵌入到HTML文件中的Java应用程序,应用它不但可以为静态的HTML网页添加丰富多彩的多媒体元素使其变得富有生气,而且还能用其制作功能强大的动态网页,从而充分利用客户端的桌面计算能力,减少网络数据量的传输及服务器的负载。从而使JAVA成为Internet中最受欢迎、最有影响的编程语言之一。
主体在传统的软件应用开发过程中,软件程序开发人员常常为了将一种机器平台开发的程序移植到其他的平台上而感到头痛.Java的出现则大大减轻了开发人员的这种负担,它“一次编程、到处运行(write once,Run Anywhere)”的功能使得软件程序开发人员能够开发出跨系统、跨平台运行的应用程序。 [1]一、JAVA的发展史Java最早大概可追溯至1991年四月份[2],Sun的绿色计划(Green Project)。其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。该开发小组的领导人是JamesGosling,是一位非常杰出的程序员。在研究开发过程中,Gosling深刻体会到消费类电子产品和工作站产品在开发哲学上的差异:消费类电子产品要求可靠性高、费用低、标准化、使用简单,用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,具有一系列可选的方案,从8086到80586都可以选取。为了使整个系统与平台无关,Gosling首先从改写C编译器着手。但是Gosling在改写过程中感到仅C是无法满足需要的,于是在1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢?Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身(后来发现Oak已是Sun公司另一个语言的注册商标,才改名为Java,即太平洋上一个盛产咖啡的岛屿的名字)。Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行的软硬件环境。他要建立一个系统,这个系统运行于一个巨大的、分布的、异构的网络环境中,完成各电子设备之间的通信与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式,即Java语言编译后产生的是虚机器码,其运行在一个解释器上,每一个操作系统均有一个解释器。这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道。在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。Patrick Naughton也是Sun公司的技术骨干,曾经是Open Windows项目的负责人。当Naughton加入该小组后,整个工作进展神速。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统、一种语言(Java)、一个用户界面、一个新的硬件平台、三块专用芯片构成的。项目完成后,在Sun公司内部做了一次展示和鉴定,观众的反应是:在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的两位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。到了1994年,WWW已如火如荼地发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台,它应是一种实时性较高、可靠安全、有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。这项工作由Naughton和Jonathan Payne负责,到1994年秋天,完成了Web Runner的开发工作。Web Runner是HotJava的前身,这个原型系统展示了Java可能带来的广阔市场前景。Web Runner改名为HotJava,并于1995年5月23日发表后,在产业界引起了巨大的轰动,Java的地位也随之而得到肯定。又经过一年的试用和改进,Java1.0版终于在1996年年初正式发表。此后,JAVA得到了广泛的关注与应用,JDK也在逐渐扩充、完善中。2007 年上半年,Sun 将在一个开源许可协议下发布 Java 开发包(JDK)。解除 JDK 的禁锢对于 Java 开发人员社区来说是巨大的一步,它将在今后的十年中推动 Java 平台的发展。二、Applet的基本概念[3]Java Applet是用Java语言编写的一些小应用程序,这些程序直接嵌入到页面中,由支持Java的浏览器(IE或Nescape)解释执行能够产生特殊效果。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页称为java-powered页,可以称其为Java支持的网页。 当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。 Applet小应用程序的实现主要依靠java.applet包中的Applet类。与一般的应用程序不同,Applet应用程序必须嵌入在HTML页面中,才能得到解释执行;同时Applet可以从Web页面中获得参数,并和Web页面进行交互。 含有Applet的网页的HTML文件代码中必须带有
这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet小程序。 Applet小程序也可以通过Java开发工具的appletviewer来运行。Applet程序离不开使用它的HTML文件。这个HTML文件中关于Applet的信息至少应包含以下三点: 字节码文件名(编译后的java文件,以.class为后缀); 字节码文件的地址; 在网页上显示applet的方式。
Java Applet研究与应用-java综合测评系统三、Applet的生命周期[4]Applet的生命周期是指Applet程序从起动到终止的所经历的过程,这一过程依次经历以下的四个阶段和相应的方法:1.初始化阶段和init()方法在调用Applet程序的最初执行init()方法,以完成一些初始化工作,例如创建对象。在Applet的生命周期中,该方法只被调用一次。2.启动阶段和start()方法初始化后,当进入Applet所在的页面时,start()方法被自动调用。当用户离开该页面去访问其他页面后,如果再返回该页面,则Web浏览器直接执行start()方法,而不再去执行init()方法。3.停止阶段和stop()方法当用户离开Applet所在的页面,转到其他页面上时,Applet将停止运行,这时stop()方法被执行。stop()方法的作用只是“暂停”Applet的执行,此时Applet处于一种休息待命的状态。当用户再次进入该页面时,浏览器将直接执行start()方法。4.终止阶段和destroy()方法当用户退出浏览器时,Applet将执行destroy()方法,该方法用来从内存中清除Applet程序,释放所有的对象,终止Applet的生命周期 四、Java Applet的应用 正是由于Applet本身的特点,广大学者对其应用进行了广泛的研究:吴莉莉在《怎样在Java中借助Applet加载图像》[5]中说明了如何利用applet.getImage(),drawImage()等方法加载图片并予以显示;汪志达,叶伟在《用Applet在网页上实现动态水中倒影》[6]中介绍了用Java Applet程序在网页上制作静态图片的水中倒影的总体实现方案,详细说明了其中涉及的主要技术和方法,这些都将使得HTML页面变得更加生动、丰富、精美;何长英在《用Java Applet编写物理实验数据处理软件》[7]中说明了传统开发工具编写的试验软件安装在个别的实验室机房,学生在处理实验数据时间上受到限制,也给机房的管理带来负担。其详细描述了如何用Java Applet编写的物理实验数据处理软件,其实现简单,人机交互界面友好,操作方便,软件应用程序容易实现web化。学生只要将测量数据填入相应的文本框中,单击数据处理按钮,各物理量的计算结果就会出现在相应的文本框中。节省了学生的时间,计算结果精确,让学生把主要精力放在实验原理和实验数据的采集上,同时省去了机房管理的负担;张捷在《网络课件中的JavaApplet应用》[8]中通过对现有网络课件开发的方式及特点的分析,探讨JavaApplet在远程教学课件中的应用方式和应用领域。JavaApplet的应用使网络课件大大提高了人机交互特性,且使基于Web教学课件变得丰富多彩、生动有趣;黄翔,郭荷清在《企业级应用中基于Applet的桌面计算资源利用》[9]中给出了Applet与Web服务器的几种通信方案,解决了Java企业级应用开发中客户端强大的桌面计算能力浪费的问题,使用户与Web服务器、用户与用户之间的交互变得更容易;梁兴建,王小玲在《利用Java Applet动态绘制树型结构图形》[10]中详细描述了如何利用JavaApplet实现在网页上动态绘制树型结构图形;亓传伟在《Java Applet与Application的合并运行》[11]中描述了如何将Java Applet与Application的合并运行,获得二者的优点,从而应用更加广泛;陈多在《Java Applet通讯技术的实现》[1]中说明在web页中的Java Applet不仅是可执行的Java程序,而且可以与其他各种服务程序进行通讯.通过静态域和结构的方法在不同页面的Applet之间传递信息,从而实现跨页面的Applet到Applet间的通讯方法;曹大有、周天宏在《Java Applet程序的安全规则与访问第三方WEB服务器》[12]中说明Applet程序是用Java开发的一种小应用程序,它只能通过浏览器和小程序查看器运行,在默认情况下,它没有访问第三方Web服务器的权利。通过讨论applet程序的安全规则,探讨了它没有这个权利的原因,并通过安全策略文件使它能够访问第三方Web服务器。肖海燕在《用JAVA技术实现B/S结构网络数据库系统》[13]中介绍了用Java技术实现B/S结构网络数据库系统的方法与工作原理,并且通过实例阐述了具体的实现和解决办法,并预见采用Java Applet+JDI 方式将成为B/S结构网络数据库的主流。陈爱平、闵华松、刘启林在《JBuilder中使用Jays Applet访问数据库》[14]中介绍了JDBC技术以及利用其访问数据库的过程。于波在《Java据库编程中查询结果的表格式输出》[15]一文中较为详细地介绍了在Java数据库编程中如何利用表格动态地输出查询结果的方法。杨军,王凤贵在《基于Java Applet的数据库连接与查询技术》[16]中分析目前较流行的几种动态连接Web数据库方法,并采用Java Applet技术来实现两层模型的网上查询系统,采用JDBC实现了客户端直接与数据库交互,并详细给出访问数据库的过程。
总结 Applet是运行在网络上的Java小应用程序,利用它可以制作丰富、精美的动感网页,使网页显的生动。同时,可以利用其本地执行这一特性,降低网络负载,提高效率。还可利用它与服务器联系,制作实时的动态网页,满足更多的要求。本课题将利用Applet与服务器的通讯,制作实用的综合测评系统。参考文献:[1]陈多.Java Applet通讯技术的实现[J].湖南工程学院学报,2005,15(2):69-71.[2]六维论文网[网页].www.lwfree.cn,2006.4.28[3]汪晓平,俞俊,李功. 精通java网络编程. [M].北京:清华大学出版社,2005.505.[4]王侠.Java Applet的特点及网络应用[J].辽宁税务高等专科学校学报,2004,16(3):17-18. [5]吴莉莉.怎样在Java中借助Applet加载图像[J].应用,2004,11:49[6]汪志达,叶伟.用Applet在网页上实现动态水中倒影[J].新疆大学学报(自然科学版),2003,20(2):142-143.[7]何长英.用Java Applet编写物理实验数据处理软件[J].教学仪器与实验,2005,21(4):9-11.[8]张捷.网络课件中的Java Applet应用[J].河北能源职业技术学院学报,2004,10(1):76-78.[9]黄翔.企业级应用中基于Applet的桌面计算资源利用[J].现代计算机,2005,(SumNo.209):53-56.[10]梁兴建等.利用Java Applet动态绘制树型结构图形[J].四川理工学院学报(自然科学版),2006,19(1):67-70.[11]亓传伟.Java Applet与Application的合并运行[J].福建电脑,2006,(5):183-187.[12]曹大有,周天宏.Java Applet程序的安全规则与访问第三方WEB服务器[J].计算机与网络,2006,(10):52-54. [13]肖海燕.利用JAVA技术实现B/S结构网络数据库系统[J].陕西工学院学报,Sept.2002,3:16-19[14]陈爱平,闵华松,刘启林.JBuilder中使用Jays Applet访问数据库[J].武汉科技大学[15]于波.Java据库编程中查询结果的表格式输出[J].广州金融电脑,2000,4:44[16]杨军,王凤贵.基Java Applet的数据库连接与查询技术[J].中国有线电视2005,7:632-635(篇幅不足可另加附页)
Java Applet研究与应用-java综合测评系统Java Applet研究与应用 ——综合测评系统THE RESEARCH AND APPLICATION OF JAVA APPLET——THE SYNTHETICAL EVALUATION SYSTEM摘 要
大学期间,综合测评计算是每学期必不可少的工作。人工计算综合测评是一个很繁杂的过程:每个学生先计算自己的综合测评成绩,制成草表,上交给班委;然后班委核对并将成绩录入制成电子文档上交给院系相关部门。在这个过程中,学生常常感到厌烦,因而草表的准确率很低;接着人工核对、录入成绩,造成工作量大,效率低下,准确率也无法得到保证。所以,广大师生迫切希望信息化综合测评系统的产生。利用该系统,同学们可以方便准确地计算出自己的综合测评成绩,并能将结果上传至服务器,省去班委人工核对、成绩录入这些烦琐的工作。而且,系统提供的查询功能可以方便同学们对自己所需信息的检索。该论文主要介绍了网络上最受欢迎的Java Applet技术、系统的分析设计、各个功能模块的实现、系统的测试调试、以及系统开发过程中遇到的问题和问题的解决。关键词:综合测评;计算;查询;Applet
Abstract
During the university, computation the synthetical evaluation is necessary per term. The manual computation of synthetical evaluation is a much numerous and diverse process. First, everyone compute the scores by themselves, and make a draft, then deliver it. Second, the cadres in the class check the result and import the data into computer for making the document, then hand in it to a relative department or academy. In the process, the students are sick of it. Therefore, the veracity of the draft is low. On the other hand, manual checking and scores’ inputting cause the greater workload and lower efficiency. Moreover the veracity is unable to be guaranteed. So, all the teachers and students are looking forward to have an informationizational system of the synthetical evaluation. Using the system, students can’t only compute their scores of synthetical evaluation conveniently and correctly, but also can submit the results to the server. Which can omit the complicated work of class cadres’ manual checking and scores’ inputting. Moreover, the function of query offered by the systems can make convenient for students to search the information they want.The discourse introduces the Applet technology, the analysis and design of the system, the implement of every function module, the test and debug of the system, and the problems met in the exploitation as well as the solution to them. Key words: synthetical evaluation; computation; query; Applet 目 录 摘要 IAbstract I1 引言 12 综合测评系统开发工具简介 12.1 ACCESS数据库 12.2 Java及Java Applet简介 23 综合测评系统分析设计 33.1需求分析 33.2系统整体框架 43.3模块功能说明 64 综合测评系统实现 74.1系统数据库设计 74.2数据库访问模块的实现 94.3客户端各个模块的实现 94.4开发过程中遇到的问题及解决 175 系统运行和调试 195.1测试目的 195.2测试环境 195.3测试方法与测试过程 195.4运行和调试结果 20 结束语 21致 谢 21参考文献 22附录 23
java综合测评系统1 引言在大学期间,同学们计算过多次综合测评,深刻体会到综合测评计算是一件既繁琐且准确率又低的事情。同时,班委每学期都要将同学们上交的书面形式的综合测评得分情况进行核对并输入到电脑里面,制成电子文档,方便全年段同学的成绩排名,并且也要将电子文档上交给院系相关部门留档。每次要完成这个任务,全班的班委都必须参与,可谓兴师动众,一旦不能很好的协调,出错率就很高,造成工作量加大。在信息化时代,这种手工计算综合测评的模式必将被以计算机为基础的信息化系统所取代。所以,设计一个功能完善的综合测评系统,已成为大家迫切的愿望。通过这个系统,每个同学可以准确计算自己的综合测评成绩并将得分情况上传到班委的机子上,这样就可以省去班委统一输入成绩这一繁琐的过程,既方便了同学们,准确率也得到了保证。该综合测评系统的开发采用了Java Applet技术,是因为Java Applet与ASP等制作动态网页的工具相比,具有得天独厚的优势:ASP等只是脚本语言,而Java是一种面向对象的语言,其提供内容丰富的类库,能满足用户更多的交互需求;Java是一种与平台无关的语言,开发的系统具有良好的可移植性 ,且安全性高;ASP等脚本语言是在服务器端运行的,而Java Applet是运行在客户端浏览器上的小应用程序,这一特性更使得Applet能同时拥C/S及B/S两种软件体系结构的优势。同时,本系统的开发采用了面向对象的方法,将系统划分模块时,尽量做到高内聚低耦合,提高模块独立性[1],给模块功能的增加与修改带来了方便。前台采用可移植性良好,健壮,安全性高的Java语言开发,后台采用微软的ACCESS数据库,作为开发平台,强大的开发工具与稳定的后台数据库,保证了系统的健壮性。在系统的开发过程中,也遇到了一些问题(如:数据的表格显示等),但通过自己的努力以及指导老师的帮助,这些问题都得到了圆满的解决。
2 综合测评系统开发工具简介2.1 ACCESS数据库Microsoft Access是一种基于Windows图形用户界面的关系型数据库管理系统。1995年Access成为Office 95套件产品之一。作为Microsoft office套件产品之一的Access已经卖出了近700万份,成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型及大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术[2]。Access还提供Windows操作系统的高级应用程序开发系统。Access与其它数据库软件相比,它具有上手快、易操作等优点。同时利用内置的UBA语言,既可以开发出常用的数据处理工具,也能设计出功能全面的一整套数据库管理信息系统[3]。Access还提供了强大的管理模型,它以图形化用户界面和向导为基础。Access的结构可以适应模块化增长、自动化配制、维护比较小规模的服务器程序开发的需要。2.2 Java及Java Applet简介Java最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,最终导致Java的产生[4]。Java是一种简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的语言。Java Applet是用Java语言编写的一些小应用程序,这些程序直接嵌入到页面中,由支持Java的浏览器(IE或Nescape)解释执行能够产生特殊效果。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页称为Java-powered页,可以称其为Java支持的网页[5]。当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。Applet小应用程序的实现主要依靠java.applet包中的Applet类。与一般的应用程序不同,Applet应用程序必须嵌入在HTML页面中,才能得到解释执行;同时Applet可以从Web页面中获得参数,并和Web页面进行交互。含有Applet的网页的HTML文件代码中必须带有
这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小程序代码并在本地计算机上执行该Applet小程序。Applet小程序也可以通过Java开发工具的appletviewer来运行。Applet程序离不开使用它的HTML文件。这个HTML文件中关于Applet的信息至少应包含以下三点:1)字节码文件名(编译后的java文件,以.class为后缀);2)字节码文件的地址;3)在网页上显示Applet的方式。由于用HTML(超文本标志语言)编写的网页是静态的且不具备与用户交互的能力,Java Applet广泛用于在网页上添加动态、交互成份[6]。因为Applet是从远端服务器上下载并且在本地执行,所以安全性就显得格外重要。通过限制Applet在沙箱(Applet的运行环境)中运行,从而保证了对本地系统而言Applet是安全的。Applet在沙箱中运行时:1)不能运行任何本地可执行程序;2)除了存放下载的Applet的服务器外,Applet不能和其它主机进行通信;3)不能对本地文件系统进行读写。(信任的Applet放宽这一限制);4)除了本地机使用的Java版本号、操作系统名称及版本号、文件名分隔符(‘/’或‘\’)和路径以外,Applet无法获得有关本地机的其他信息。Applet也无法获得使用者的名字和E-mail地址等[7]。
3 综合测评系统分析设计3.1需求分析根据计算机科学与工程系综合测评评分细则以及广大同学计算综合测评的经历,整理得到该系统的功能需求为:1、 用户只要根据列出的得分项进行选择,以及少量的数据输入就可以计算出自己的综合测评成绩。2、 用户将自己计算好并核对过的综合测评成绩上传,为防止恶意用户随意修改合法用户的成绩,成绩上传前必须进行用户合法性的验证,合法用户方能将自己的综合测评成绩上传至服务器端的数据库。同时,合法用户也可以随时修改自己的密码。3、 用户可以根据自己的需要进行查询:1) 输入学号,就可以精确得到该位同学的综合测评的得分、排名等情况2) 查询所有学生的综合测评得分情况,并按学号顺序排列显示3) 查询业务学习成绩大于等于或小于某一值的所有学生的综合测评得分情况,并按业务学习成绩从高到低排列显示4) 查询综合测评成绩大于等于或小于某一值的所有学生的综合测评得分情况,并按综合测评成绩从高到低排列显示5) 查询业务学习成绩大于或小于某一值且综合测评成绩大于等于或小于某一值的所有学生的综合测评得分情况,并按学号的顺序排列显示。4、用户可以查看全班同学的业务学习成绩及综合测评成绩各个得分段的比例,更好地了解班级的综合测评情况。3.2系统整体框架根据系统的功能需求,分析出系统的框架为
Java Applet研究与应用-java综合测评系统图3 综合测评查询框架图
3.3模块功能说明1、政治素质该模块能够将所有的政治素质方面的得分项列出来,供用户选择自己的得分情况,然后计算出政治素质的得分。法纪观念、学习态度、品德修养、劳动实践、奖惩得分与政治素质模块的功能相似,都是计算各自的得分,所以在此不一一阐述。2、政治思想素质 该模块则将政治素质、法纪观念、学习态度、品德修养、劳动实践、奖惩分各个模块组合,以整体的方式显示给用户,并能将各个小模块的得分情况相加,得出政治思想素质的实际得分(100分制)及总得分(实际得分×20%)3、业务学习得分 该模块能够处理用户输入各门课程的得分情况,计算业务学习实际得分(100分制,业务学习实际得分=各门课程的学分成绩总和÷各门课程学分总和+公共选修课的成绩)及总得分(业务学习实际得分×60%)。4、智能素质得分 该模块则将科研能力、社会工作能力、师范生技能、文艺活动能力各个小模块的得分相加得到智能素质的实际得分(100分制)及总得分(实际得分×10%)。5、体育素质得分 该模块能够处理用户体育课成绩的输入,计算体育素质的实际得分(体育课成绩×60% + 课外体育活动成绩)及总得分(实际得分×10%)。6、精确查询 该模块能够接受用户输入学号,查询该同学综合测评的相关情况。7、模糊查询 该模块能够接受用户的输入,根据用户的需要,以业务学习得分和综合测评得分为条件进行查询。8、综合测评成绩比例显示该模块能够根据全部上传的综合测评,统计总人数,某一分数段的人数,然后按比例图显示给用户。9、综合测评成绩上传 该模块能够验证用户的合法性并将合法用户计算出的综合测评得分情况上传至服务器端的数据库上,作为留档材料,也作为成绩核对的依据。10、用户密码修改该模块能够验证用户的合法性并能实现合法用户对自己密码的修改。
4 综合测评系统实现4.1系统数据库设计1、数据库需求分析:本系统数据库的设计总体需求是:学号、用户密码、课程名称、课程学分、成绩类型、政治思想素质、业务学习、智能素质、体育素质、综合测评得分、备注。2、本系统采用ACCESS作为数据库。在本系统中,要求数据库名为:综合测评数据库.mdf,并在里面建立系统设计时需要用到的数据表,各表设计如下所示:表1 用户信息表
字段名称 数据类型 字段大小 允许空学号 文本 15 否姓名 文本 15 否密码 文本 20 否 其中:学号为主键
表2 综合测评成绩表
字段名称 数据类型 字段大小 允许空 小数位数学号 文本 50 否 政治思想素质 数字 单精度型 允许 2业务学习 数字 单精度型 允许 2智能素质 数字 单精度型 允许 2体育素质 数字 单精度型 允许 2综合测评得分 数字 单精度型 允许 2备注 备注 允许
其中:学号为主键
表3 课程信息表:
字段名称 数据类型 字段大小 允许空课程名称 文本 20 否学分 文本 10 否成绩类型 文本 10 否 其中:课程名称为主键
表4:业务学习成绩表:
字段名称 数据类型 字段大小 允许空学号 文本 20 否备注 备注 是 说明:其中学号为主键,本表的各个字段除了学号与备注这两个固定字段以外,其他字段都是在程序运行过程中动态生成的。
java综合测评系统4.2数据库访问模块的实现 本项目与数据库的连接采用JDBC-ODBC桥连接[8],其连接成功后将出现提示,如图4所示界面: 图4 数据库连接成功提示图其核心代码如下:boolean success=true; //定义一个标志变量标志连接数据库是否成功try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序 con=DriverManager.getConnection("jdbc:odbc:zonghecepingshujuku"); //与数据库的连接 stmt=con.createStatement(); //执行访问数据库的SQL语句 }catch(Exception e){ JOptionPane.showMessageDialog(this, "数据库连接失败!"); success=false; }if(success){ JOptionPane.showMessageDialog(this,"数据库连接成功"); }
4.3客户端各个模块的实现1、政治思想素质模块的实现:本模块的界面主要是利用Java的awt包及swing包开发的,界面实现如图5所示: 图5 政治思想素质计算界面本模块是由政治素质、法纪观念、学习态度、品德修养、劳动实践、奖惩得分,其他得分共七个小模块够成的,各小模块的容器面板都是继承自swing包的Jpanel,而且其中的各个元素,如:复选框、文本框等采用GridLayout布局管理。各个小模块作为一个类来设计,其中包含构造函数,getscore()方法及getbeizhu()方法,分别取得本小模块的得分,及得分的原因。选取其中的政治素质模块描述其实现过程(其他模块类似)如下:class Zhengzhisuzhi extends Zuhemianban //政治素质类,详见源代码{ …… //类内部成员的声明 public Zhengzhisuzhi(){ …… } //构造函数,实现界面的布局 public float getscore() //获取政治素质得分 { beizhu=""; //用于存放得分理由 float score=18; //基本分18分 if(this.malie.getState()) //如果“马列理论学习优”有选中 { score+=1; //加上该项的得分 beizhu+=this.malie.getLabel()+";"; //得分理由加入备注字符串中 } …… //其他得分项类似处理 return score; //将得分值返回 } public String getbeizhu() //获取备注内容 { return beizhu; }}2、业务学习成绩计算模块 业务学习成绩的界面如图6所示: 图6 业务学习成绩计算界面图其中一个科目就是一个小模块,而且这些科目的信息是从服务器端的“课程信息表”中获取的,这些科目组合就够成了业务学习成绩计算的主要部分。但由于这些科目是动态生成的,而不是设计时给定的,所以必须用一个数组链表存储这些动态生成的科目类实例,才可能在计算出业务学习得分的过程中得到必须的数据。也因其是动态生成的,所以实现过程相对比较复杂,其核心代码如下:public Yewuxuexi (InetAddress ip) //构造函数传入服务器的IP地址{ …… //建立与服务器通信的数据输入输出流,并提交初始化请求 xinxis=datain.readUTF().split(":"); //读取初始化数据 for(int i=1;i
4、体育素质模块体育素质模块实现界面如图8所示: 图8 体育素质计算界面图本模块实现过程与政治思想素质的实现过程也类似,这里不再赘述。5、成绩上传模块成绩上传模块的实现界面如图9所示: 图9 成绩上传界面图该模块类继承自java.awt包中的Frame类,当用户输入的学号与密码正确时,才能将成绩上传,其实现的核心代码如下: //综合测评得分情况插入数据库的SQL语句 strshangchuan=strshangchuan + "insert into 综合测评成绩表 values('" +this.xuehao.getText().trim()+"'," + this.sqlzongheceping + ")"; String[] temps=this.yewuxuexi.split(":"); //业务学习得分情况插入数据库的SQL语句 String temp=":insert into 业务学习成绩表(学号,备注" +temps[0] +") values('" +this.xuehao.getText().trim()+"','"+temps[2] +"'" + temps[1]+ ")"; strshangchuan+=temp;
6、用户密码修改模块 用户密码修改模块的实现界面如图10所示:
Java applet研究与应用该模块类也是继承自java.awt包中的的Frame类。首先将进行“新口令”与“确认新口令”的核对,如果两者相同,将进行用户合法性检查。如果是合法用户,可进行密码修改,数据库信息修改成功后,将反馈一个“密码修改成功”的消息给用户。否则,不能进行密码的修改,将反馈一个“密码修改失败”的信息给用户。其中,用户合法性的检查与成绩上传时用户的合法性检查一致,这里不再赘述,只取其中部分核心代码说明如下:if(datain.readUTF().trim().equals("密码修改合法用户")) //若是合法用户{ //密码修改SQL语句String xinmimashangchuan="update 用户信息表 set 密码='"+this.xinkouling.getText().trim()+"'where 学号='"+this.xuehao.getText().trim()+"'";dataout.writeUTF(xinmimashangchuan); //更新数据库请求上传}else //非法用户{……} 7、查询模块查询模块实现界面如图11所示: 图11 查询界面图其分为精确查询与模糊查询两块,精确查询是将输入的学号作为查询条件,而模糊查询则根据业务学习成绩与综合测评成绩的组合作为查询条件进行查询。精确查询的结果将返回个人的各个得分情况及综合测评与业务学习成绩的排名情况。模糊查询返回结果的界面图12所示:
图12 模糊查询结果显示图当业务学习成绩与综合测评成绩选项数值都为0时,或者两个选项的值都不为0时,将返回所有结果集,并按学号顺序排列。当业务学习选项的数值为0但综合测评成绩选项数值不为0时,或者相反时,将以非0的一项作为排列显示的依据。其核心代码如下:1)精确查询resultset= stmt.executeQuery("select * from 综合测评成绩表 order by 综合测评得分 desc"); //成绩由高到低排列while(this.resultset.next()) //检索该生的综合测评记录{ i++; //i标记该学生综合测评成绩的排名 if(this.resultset.getString(1).equals(xinxis[1].trim())) //若是该学生的综合测评成绩记录则提取其所有的得分情况及排名 { jieguo+=","+this.resultset.getFloat(2) + "," + this.resultset.getFloat(3)+","+this.resultset.getFloat(4) + "," + this.resultset.getFloat(5)+","+this.resultset.getFloat(6) + "," + i; break; //跳出检索 }}
2)模糊查询String mohuchaxunjieguo=datain.readUTF(); //读取模糊查询结果 //以下是数据在JTable中的显示this.vector.removeAllElements(); //将存放显示数据的向量清空this.tm.fireTableStructureChanged(); //通知所有侦听器表结构已更改。String[] strmohuxianshis=mohuchaxunjieguo.split(":");//将从服务器端返回的数据字符串按行分割 for(int i=1;i模糊查询的部分SQL语句如下:s="select 用户信息表.学号,姓名,政治素质,业务学习,智能素质,体育素质,综合测评得分 from 综合测评成绩表,用户信息表 where 业务学习 >=" + this.yewu.getfloat()+ "and综合测评得分 >=" + this.zonghe.getfloat()+" and 综合测评成绩表.学号=用户信息表.学号";
8、成绩比例图显示模块该模块实现界面如图13所示: 图13 成绩比例图其中,左右两块为同一类的两个不同实例化对象。该模块的实现过程是:先查询数据库,统计总人数以及各个成绩段的人数,然后在客户端计算各个成绩段人数所占总人数的比例,最后将比例图通过Graphics类的fillArc()方法画出,数据通过文本框显示出来,其核心代码如下: public void paint(Graphics g) { int int_red=(int)(bili[0]*360); //计算红色扇形圆心角的度数 int int_green=(int)(bili[1]*360); //计算绿色扇形圆心角的度数 int int_blue=(int)(bili[2]*360); //计算蓝色扇形圆心角的度数 int int_yellow=360-int_red-int_green-int_blue; //计算黄色扇形圆心角的度数,下面画出比例图 g.setColor(Color.red); //绘制红色扇形 g.fillArc(startx,starty,endlen,endlen,0,int_red); g.setColor(Color.green); //绘制绿色扇形 g.fillArc(startx,starty,endlen,endlen,int_red,int_green); g.setColor(Color.blue); //绘制蓝色扇形 g.fillArc(startx,starty,endlen,endlen,int_red+int_green,int_blue); g.setColor(Color.yellow); //绘制黄色扇形g.fillArc(startx,starty,endlen,endlen,int_red+int_green+int_blue,int_yellow);}
4.4开发过程中遇到的问题及解决在整个项目的开发过程中遇到了各种各样的问题,但在老师的指导下,都得到了解决。1、刚开始的界面问题 由于综合测评计算各个得分项相对来说很繁杂,开发本系统就是为了避免因为计算繁杂带来的不便,所以界面如何有序明了很重要。刚开始设计的时候,将全部得分项在一个页面里面全部展现。结果,给人以杂乱的感觉。在指导老师的建议下,最终决定将“政治思想素质”、“业务学习”、“智能素质”、“体育素质”四大部分分开显示。于是采用了CardLayout布局管理器来实现界面的布局,该布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间[9],终于使界面问题得到了解决。2、Applet访问数据库的问题 Java Applet为了安全性得到保证,在各方面做了严格的限制,所以访问服务器端的数据库显得复杂。我通过查找资料,知道了Applet访问服务器端的数据库可以有以下几种方式: 1)Java Applet 直接访问服务器端的数据库,但是需要配置策略文件[10]。这种方式方便了我们开发者,但却麻烦了使用者,与设计的初衷:方面用户使用相矛盾。
Java applet研究与应用2)在服务器端编写代理软件,其使用ASP的ADO组件和VBscript脚本语言编写。它首先使用Request对象接收来自客户端(Applet)的输入数据流,此处为数据查询参数(也可以为其它数据)用以满足用户具体的查询要求,然后用ADO组件的Connection对象建立与Web数据库的连接,按照查询参数的要求将查询得到的数据保存在Recordset对象中,再用ASP的Response对象的Write方法把数据放入数据输出流缓冲区中等待与客户端Applet的通信[11]。客户端(Applet)则通过URLConnection对象提供的输入输出流与代理软件进行通信。如果采用这种方式,服务器端的数据库的初始化工作则要手动的进行配置,也不能方便用户的使用。3)在服务器端编写代理软件,但其也用Java来编写。本项目采用的就是这种方式。代理软件与Applet的通信是通过Java的Socket对象提供的输入输出流来进行通信。首先,Applet通过Dataoutputstream将对数据库的访问请求传给代理软件,代理软件通过DataInputStream读取Applet的访问请求,然后访问数据库将结果通过DataOutputStream传送给Applet,Applet再通过DataInputStream读取访问数据库的结果。而且用Java编写的代理软件可以有应用程序的界面,实现对数据库的初始化配置工作。3、查询结果的显示问题 最初设计的时候,显示结果是呈现在文本区上面的,不美观。数据查询结果若用表格显示,给人整齐,明了的视觉效果。由于SUN公司提供的JDK开发工具包不是可视化的集成开发环境(IDE),不能像Delphi、VB那样方便地把查询结果在DBGrid等表格中显示出来,因此只能靠自己编写代码来实现。在实际应用中,可利用Vector、JTable、AbstractTableModel三个类较好地解决这一问题[12]。4、比例图的显示问题最初设计比例图显示模块的时候,希望用Panel 类实例的getGraphics()方法得到Graphics类的实例,然后调用该实例的fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)方法来实现对比例图的绘制。但在运行的过程中总是出现NULLPointException异常,真让人费解。通过上网查找大量的资料才知道:用控件的getGraphics()方法获取Graphics类的实例时必须是在控件已经显示出来后才能通过该方法获得。最终选用重写Panel类的paint(Graphics g)方法来实现,从这里获取的Graphics对象必定是一个已经存在的对象,在运行过程中就不会出现异常。最终也使得比例图的显示问题得到了完美的解决。
5 系统运行和调试5.1测试目的为了保证系统的正常运行,发现潜在的错误和缺陷,根据信息系统测试的基本原则,结合软件测试的方法对本系统进行了测试与调试。
5.2测试环境 机器配置: AMD Sempron(tm) processor 2500+ 1.4GHz 256MB的内存 操作系统:WINDOWS XP软件运行环境:JRE 1.5.0;IIS 5.1
5.3测试方法与测试过程本次测试主要采用黑盒测试法,对软件从功能方面进行测试。主要运行了系统的功能。主要包括以下几个模块的测试:1、政治思想素质模块: 检查点:是否能进行各个得分项的计算以及取得得分说明的字符串。此模块检测通过。2、业务学习计算模块: 检查点:在Applet初始化的时候能否从服务器端提取课程信息,得到业务学习计算的界面;当代理软件未启动或无课程初始化信息时,能否出现提示对话框;能否进行业务学习的正确计算。此模块测试通过。3、智能素质模块: 检查点:是否能进行各个得分项的计算以及取得得分说明的字符串。 此模块检测通过。4、体育素质模块: 检查点:能否进行体育素质得分的正确的计算;能否正确获取其他得分情况说明的字符串。此模块测试通过。5、综合测评成绩上传模块: 检查点:是否能进行用户合法性的检查;是否能将合法用户计算所得的综合测评得分情况及业务学习成绩上传到服务器端的数据库,当成绩上传成功或者失败时,能否出现相应的信息提示框。此模块测试通过。6、用户密码修改模块: 检查点:能否进行新口令与确认口令的核对;能否进行用户合法性的检查;若是合法用户能否进行对数据库密码的修改;修改成功与否是否出现信息提示对话框。此模块测试通过。7、查询模块的测试: 检查点:输入学号能否精确查询该位同学的信息,若数据库无此信息能否出现信息提示对话框;模糊查询能否按查询条件进行正确查询。此模块测试通过。8、比例图模块测试: 检查点:能否从服务器端得到总人数、各个成绩段人数的准确的数据;能否计算各个成绩段人数的比例;比例图能否按比例准确的绘制。此模块测试通过。5.4运行和调试结果 系统的各个功能模块均通过了测试,这在一定程度上保证了系统正常稳定的运行。但在系统的运行测试过程中,也发现了一些潜在的缺陷,通过对这些缺陷的修改,进一步完善了系统。
Java applet研究与应用结束语本系统采用了面向对象技术进行开发,并按照软件工程的方法进行测试调试,保证了系统正常稳定的运行,实现了综合测评的信息化处理。对于有综合测评计算经验的同学,容易使用该系统;对于从未计算过综合测评的新生,本系统相当于起到综合测评计算的引导作用。而且可以进行相关信息的查询,各个成绩段比例图的查看,这对同学们了解全体同学的综合测评情况有很大的帮助。但随着应用的拓广,该系统的功能还需进一步完善。通过对这个项目的开发,我对Java及Applet有了更深的认识,在大学期间所学的理论知识得到了更好的实践。在系统开发过程中也遇到了各种各样的问题,通过对这些问题的解决使我的知识面得到了拓广,更重要的是解决问题的能力的提高。致 谢本文是在指导教师何*老师的悉心指导下完成的,每周一次的见面指导,为我系统的开发及论文的撰写提供了很大的帮助,在此对何*红老师表示真心的感谢!参考文献:[1] 邓良松,刘海岩,陆丽娜.软件工程.[M].西安:西安电子科技大学出版社,2000.41[2] 解圣庆 .Access 2003数据库教程.[M].北京:北京大学出版社,2006.3;[3] 李佳范,俊弟,邓剑民 . Access 2003数据库应用.[M].北京:人民邮电出版社,2006.1[4] 去51代码网.[网页]http://www.751com.cn,2007.5.12[5] 汪晓平,俞俊,李功. 精通java网络编程. [M].北京:清华大学出版社,2005.505[6] 汪志达,叶伟.用Applet在网页上实现动态水中倒影[J].新疆大学学报(自然科学版),2003,20(2):142-143.[7] 殷兆麟.Java 语言程序设计. [M].北京:高等教育出版社,2004.155.[8] 杨军,王凤贵.基Java Applet的数据库连接与查询技术[J].中国有线电视2005,7:632-635[9] 刘志成.Java程序设计案例教程[M].北京:清华大学出版社,2006.103[10]六维论文网.[网页]http://www.lwfree.cn !170.entry,2006.2.17[11]高云峰,陆金桂,魏红. 面向Applet的web数据库访问代理的实现及其应用[J]. 计算机工程与设计,2005,26:6.[12]于波.Java据库编程中查询结果的表格式输出[J].广州金融电脑,2000,4:44
Java Applet研究与应用-java综合测评系统1)业务学习模块实现的代码:class Yewuxuexi extends JPanel //所有科目的业务学习情况{private Socket socket=null;private DataInputStream datain=null;private DataOutputStream dataout=null;private ArrayList arraylist=new ArrayList();private String[] xinxis;public Yewuxuexi (InetAddress ip) //构造函数传入服务器的IP地址{ this.setBorder(BorderFactory.createTitledBorder("")); this.setBackground(Color.white); try { this.socket=new Socket(ip,3636) ; //利用3636端口建立Socket this.datain=new DataInputStream(socket.getInputStream()); this.dataout=new DataOutputStream(socket.getOutputStream()); String chushihuaxinxi="初始化:select * from 课程信息表"; this.dataout.writeUTF(chushihuaxinxi);//向服务器端发送初始化业务学习模块的请求,然后读取服务器端传//送过来的课程初始化信息 xinxis=datain.readUTF().split(":"); } catch(Exception e) { JOptionPane.showMessageDialog(this,"业务学习初始化失败!"); } if(xinxis[0].trim().equals("初始化")) //回传的是初始化信息 { this.setLayout(new GridLayout(xinxis.length-1,1)); for(int i=1;i else { JOptionPane.showMessageDialog(this,xinxis[0]); }}public float getscore() //获取各门课程的学分成绩总和{ float sum=0; for(int i=0;i对于业务学习初始化信息的提取,服务器端的核心代码如下:this.resultset=this.stmt.executeQuery(xinxis[1]);//执行查询数据库,将课程初始化信息提取出while(this.resultset.next()) {chushihua=chushihua+":"+ resultset.getString(1)+","+resultset.getString(2)+","+resultset.getString(3); //以“ 课程名,成绩(或等级),学分 ”这种形式的字符串返回}if(chushihua.trim().equals("初始化")){ chushihua="无课程初始化信息";}this.dataout.writeUTF(chushihua); //将课程初始化信息返回给客户端
2)成绩上传模块实现的代码:try{Socket socket=new Socket(this.ip,3636) ;//建立与服务器通信的Socketwww.lwfree.cn的检查if(datain.readUTF().trim().equals("是合法用户")) //若是合法用户{ String strshangchuan="综合测评成绩上传:"; //本次上传的数据将覆盖数据库中原有的数据项 strshangchuan+="delete from 综合测评成绩表 where 学号 ='"+this.xuehao.getText().trim()+"':"; //综合测评得分情况上传 strshangchuan=strshangchuan + "insert into 综合测评成绩表 values('" +this.xuehao.getText().trim()+"'," + this.sqlzongheceping + ")"; String[] temps=this.yewuxuexi.split(":"); strshangchuan+=":delete from 业务学习成绩表 where 学号 ='"+this.xuehao.getText().trim()+"'"; String temp=""; if(temps.length==2) //本学年课程考试均未通过,或未选课程 { temp=":insert into 业务学习成绩表(学号,备注" +temps[0] +") values('" +this.xuehao.getText().trim()+"','无其他得分说明情况'"+temps[1]+ ")"; } if(temps.length==3)
java综合测评系统{ temp=":insert into 业务学习成绩表(学号,备注" +temps[0] +")values('" +this.xuehao.getText().trim()+"','"+temps[2] +"'" + temps[1]+ ")"; } strshangchuan+=temp; dataout.writeUTF(strshangchuan); //将对数据库的更新请求上传 JOptionPane.showMessageDialog(this,datain.readUTF());}else //不是合法用户{ JOptionPane.showMessageDialog(this,"学号或密码有误!"); this.mima.setText("");}}catch(Exception ex){JOptionPane.showMessageDialog(this,ex.toString());}
3)模糊查询模块的实现代码:this.sql="模糊查询:"+this.getmohuchaxun();try{socket=new Socket(InetAddress.getByName(getCodeBase().getHost()) ,3636) ;datain=new DataInputStream(socket.getInputStream());dataout=new DataOutputStream(socket.getOutputStream());dataout.writeUTF(this.sql); //提交模糊查询请求String mohuchaxunjieguo=datain.readUTF(); //读取模糊查询结果if(mohuchaxunjieguo.trim().equals("无结果")) //结果为空集{ JOptionPane.showMessageDialog(this,"无符合查询条件的结果!");}else{ if(mohuchaxunjieguo.trim().equals("查询发生异常")) { JOptionPane.showMessageDialog(this,"查询发生异常,请重试!"); } else { this.vector.removeAllElements(); //以下是数据在JTable中的显示 this.tm.fireTableStructureChanged(); String[] strmohuxianshis=mohuchaxunjieguo.split(":"); for(int i=1;i其中的getmohuchaxun()方法的代码:www.lwfree.cnif(this.yewudayu.getState() && this.zonghedayu.getState())s="select 用户信息表.学号,姓名,政治素质,业务学习,智能素质,体育素质,综合测评得分 from 综合测评成绩表,用户信息表 where 业务学习 >=" + this.yewu.getfloat()+ " and 综合测评得分 >=" + this.zonghe.getfloat()+" and 综合测评成绩表.学号=用户信息表.学号";if(this.yewudayu.getState() && this.zonghexiaoyu.getState())s="select 用户信息表.学号,姓名,政治素质,业务学习,智能素质,体育素质,综合测评得分 from 综合测评成绩表,用户信息表 where 业务学习 >=" + this.yewu.getfloat()+ " and 综合测评得分 <" +this.zonghe.getfloat()+" and 综合测评成绩表.学号=用户信息表.学号";if(this.yewuxiaoyu.getState() && this.zonghedayu.getState())s="select 用户信息表.学号,姓名,政治素质,业务学习,智能素质,体育素质,综合测评得分 from 综合测评成绩表,用户信息表 where 业务学习 <" + this.yewu.getfloat()+" and 综合测评得分 >=" + this.zonghe.getfloat()+" and 综合测评成绩表.学号=用户信息表.学号";if(this.yewuxiaoyu.getState() && this.zonghexiaoyu.getState())s="select 用户信息表.学号,姓名,政治素质,业务学习,智能素质,体育素质,综合测评得分 from 综合测评成绩表,用户信息表 where 业务学习 <" + this.yewu.getfloat()+ " and 综合测评得分 <" + this.zonghe.getfloat()+" and 综合测评成绩表.学号=用户信息表.学号";if(this.zonghe.getfloat()==0 && this.yewu.getfloat()==0||this.zonghe.getfloat()!=0 && this.yewu.getfloat()!=0){s+=" order by 用户信息表.学号 asc";}else{if(this.zonghe.getfloat()==0 && this.yewu.getfloat()!=0)s+=" order by 业务学习 desc";else s+=" order by 综合测评得分 desc";}return s;}