1、目 录摘 要3ABSTRACT41.课题的研究背景与介绍51.1.课题来源51.2.开发研究背景51.3.课题研究目的62.软件开发环境介绍72.1.ASP.NET简介72.2.C#简介82.3.VS.NET 2005简介92.4.设计思想102.5.聚类分析103.系统功能设计123.1.系统设计思想123.2.功能结构图123.3.详细功能设计143.3.1.学生成绩录入153.3.2.学生信息查询163.3.3.学生成绩查询173.3.4.聚类分析处理183.3.5.聚类分析结果的打印和导出204.数据设计214.1.数据定义规范214.2.数据字典214.2.1.班级表:Class_I
2、nformation214.2.2.学生信息表:Stu_Information224.2.3.教师信息表:Tea_Information224.2.4.试卷一表:Teatpaper_One224.2.5.试卷二表:TestPaper_Two234.2.6.试卷三表TestPaper_Three234.2.7.试卷四表TestPaper_Four234.2.8.考试类型表:Test235.界面设计255.1.学生成绩录入模块255.2.学生信息查询275.2.1.按学号查询学生信息275.2.2.按班级查询学生信息275.3.成绩查询285.3.1.学生具体成绩查询285.3.2.试卷成绩查询2
3、95.4.聚类分析处理305.4.1.进入聚类分析305.4.2.聚类分析316 界面设计33致 谢34参考文献35附 录36摘 要聚类分析是一种应用广泛的数学方法,可广泛应用于各个领域。在数据挖掘理论基础上,研究了聚类分析的方法及在学生成绩评测中的应用,选取了小学4个班学生的成绩作为统计指标,利用Minkowski距离公式,判断簇中心与样本数据间的距离,用迭代法做出聚类分析,并做出详细分析。结果表明聚类分析法对学生评价科学合理,符合实际,对掌握学生学习情况有很大帮助。随着现代科学技术的发展,传统的教学管理已不能满足时代发展的要求,为了改变这种状况,现开发了一套先进的、便于管理的学生成绩分析与
4、管理的系统。本系统包括学生信息管理、学生成绩管理、学生成绩分析三大模块。本系统使用微软最先进的Visual Studio.Net 2005开发环境作为平台,采用SQL Server 2000进行数据库设计。系统的适用性较强,具有一定的推广价值。本系统主要针对学生成绩分析模块的开发,整个系统运用面向对象的思想,并在页面中内置浏览器。主要实现了学生信息查询、学生成绩录入、学生成绩查询和学生成绩分析处理等功能。首先,分析了系统的背景和意义,重点分析了系统实现的主要功能。其次,是系统采用的主要技术和实现方法。最后,结合系统开发阶段和调试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得的
5、经验和体会。关键词:聚类分析,数据挖掘,C#语言,水晶报表AbstractClustering analysish has found extensive applications in many fields.Based on the data dig set theory,the thesis eatablishes a clustering analysis method and dedigning procedures for studying studentsmanagement.In this clustering analysis taking basic course scor
6、es of the students in four classes ,who come from a elementary school, as the counting index, In order to judge the distance between clustering center and samples of data, the distance formulary of Minkowski has used. There is using iterative follow to do clustering analysis.Detailed clustering anal
7、ysis results are given by Boole and Transmit closure methode.The results indicates that the proposed clusters analysis approach is scientific, rational and suitable for reality ,and it has a very great help in grasping students situation of studying.With the development of the modem science and tech
8、nology, traditional teaching managerment cant satisfy the demand of ages development. To improve the condition, we specially develop a set of advanced and convenient student score analysis and management system. The system consists of student inomation management module, student score management mod
9、ule, and student score analysis module. The system adopts the most advanced development tool Visual Studio.Net 2005 of Microsoft as the developing platform, which carry out database design with SQL Server 2000, This System has strong applicability and covers broad scope that suits the management of
10、adult education in each college, and have certain extending value.In this article , I mostly develop Student score analysis module .The system use OOP and The whole module design adopts built-in browser .The system have realized the function of the student information search, the students score comi
11、ng in, the student score search management, and analysis of students marks. This writing have first narrated the goal of the teaching management system of adult education that background and characteristic; Secondly, have elaborated the research technique, technical route etc. Finally, at the end of
12、 this thesis , consider to the problems in system design period and in system debug period I indicate some aspects that need to be improved, and sum up some experience in system design. Keywords: Clustering Analysis, Data Dig, C# Language, Crystal Report1. 课题的研究背景与介绍本章主要介绍课题的来源和意义,开发基于聚类分析的学生成绩知识点预测
13、模型的研究与实现,完成针对学生成绩的分析与展示。1.1. 课题来源本课题来源于我的实习公司。本课题主要分为共分为了4个子模块,分别是学生成绩的录入模块、学生信息查询模块、学生成绩查询模块、成绩分析和展示模块。本课题是基于聚类分析的学生成绩知识点预测模型的研究与实现,它将用于教学管理的工作中,以实现教学管理方面的规范化和数字化管理,本系统将主要根据现当代学生教育的现状,设计和开发的系统,实现对学生成绩的管理和分析,促使教学管理的计算机化和自动化。1.2. 开发研究背景随着时代日新月异的长足发展,教育体制在不断的发展和完善,教育受到了国家和政府的大力支持和重视。近年来,我国提倡和发出了要形成全民学
14、习、终身学习的学习型社会,促进人的全面发展的号召。现代社会是一个创新的时代,网络的发展起到了很大的作用。通过网络可以完成各种不同的需求,学生也可以上网查阅资料,进行学习,达到扩展知识面的目的。本课题针对小学生每次的考试成绩进行了录入和汇总,也可以根据不同的情况对学生的信息进行查询。为了能够适时掌握学生的学习情况,能够为学生不同阶段的学习提供一个合理的指导,因此,将现代的先进技术和分析方法应用于教育行业是很有必要的,对学生成绩知识点预测模型的研究是很有意义的。目前的一些教学管理软件主要是已经不再满足现当代教育教学的需要,主要由于使用的应用软件比较落后,或采用原始的手工记录的方式管理,管理人员的工
15、作量相当大,管理的难度高,因此学生的信息和学生的学习成绩等的管理都比较混乱,而且由于学生之间也存在着很大的差异,有很多的特殊情况在其中。因此平时交流不方便,导致学生成绩的管理和针对学生成绩的分析和研究做的并不是很到位。管理不能照搬普通在校生的管理,因此建立一套界面友好,易于学习,非计算机专业人员经过短时间培训即可掌握基本操作,符合成人教育的特点的信息化管理系统是非常有必要的。建立一套界面友好,易于学习、非计算机专业人员也可以掌握基本操作,符合教学特点的学生成绩知识点预测模型的研究与实现是很有必要的。1.3. 课题研究目的为了提高教学管理的工作效率,减轻管理人员的负担,在系统调查及分析阶段能够得
16、到管理人员的支持,能够适时掌握学生的学习情况,并对其进行聚类分析,将学生划分到不同的范围中,以便给教师调整教学重点和进度提供依据,因此设计了本课题。新系统的实现在很大程度上完善,对学习的分析基本上做到全面,一定程度上提高了教学管理的效率,减轻了工作人员的压力。本设计方案重点在数据挖掘中聚类分析算法的实现,其中重点实现了k_mean算法。根据学生的考试成绩,对学生掌握知识点的情况进行分析与研究,把不同的情况进行辨析和聚类,并对不同情况做出合理的解释,以便对学生的学习提供指导。用聚类的思想分析学生的成绩,查看学生成绩所处的位置,计时的给学生以反馈和鼓励,也可以帮助老师整体上把握班级的情况。2. 软
17、件开发环境介绍2.1. ASP.NET简介ASP.net 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的优势。ASP.net构架是可以用Microsoft公司最新的产品 Visual S开发环境进行开发,ASP.net是基于通用语言编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。ASP.net是运行一些很平常的任务让表单的提交、客户端的身份验证、分布系统和网站配置变得非常简单。ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下
18、用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。 ASP.NET技术就是由微软的.NET技术细化而来的,它跟ASP技术有些关系,然而又不是仅仅是一个继承,可以讲,ASP.NET跟ASP想比较的话,已经是变得面目全非了,当然好得至少是一个量级以上。ASP.NET完全基于模块与组件,具有更好的可扩展性与可定制性,数据处理方面更是引入了许多激动人心的新技术,正是这些具有革新意义的新特性,让ASP.NET远远超越了ASP,同时也提供给web开发人员更好的灵活性,有效缩短
19、了web应用程序的开发周期。ASP.NET与Windows 2000 Server/Advanced Server的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。微软公司的ASP.NET技术在全球推广短短几年的时间,取得了飞速发展。国内外越来越多的软件公司,开始应用ASP.NET技术进行项目开发。这不仅要归功与微软公司.NET发展战略的成功实施,更重要的是ASP.NET技术本身具有的无限魅力。ASP.NET是微软提供的新一代的Web开发平台,它为开发人员提供了生成企业级Web应用程序所需要的服务、编程模型和软件基础结构,同其他Web开发平台相比,ASP.
20、NET具有下面三大优势。1. 支持编译型语言目前流行的几种脚本语言比如VBScript、JavaScript和ASP等都有两个主要的缺点。第一,不支持强数据类型。在JavaScript中定义变量只有一个关键字var,使用var关键字定义的变量,如果赋值是字符串,该变量就是字符串变量;如果赋值是整数,则该变量就是整型变量。在VBScript和ASP中,定义变量只通过一个关键字DIM,该变量也没有具体的类型。第二,脚本语言是解释型的。通常情况下,解释型的脚本语言在性能上抵不上编译型的语言。自推出.NET开发平台以来,微软在Web服务器端开发语言方面,主推VB.NET和C#.NET这两种编译型语言。
21、通过这两种开发语言,程序员可以像开发普通的Windows程序一样来开发Web程序,只不过在Windows程序中用于开发GUI界面的各种控件,在Web程序开发中也有它们相应的Web版本。程序员通过C#语言,利用VS.NET提供的各种Web控件,可以非常容易地开发ASP.NET Web程序。开发的ASP.NET程序被编译成MSIL语言,这种中间语言具有平台无关性,而且,由于ASP.NET页面在执行前会被编译,所以ASP.NET的性能得到了很大的提高。2程序代码与页面内容的成功分离通常的动态网页开发,往往是在一个网页上混合多种脚本语言。比如在HTML脚本语言上可以嵌入JavaScript或VBScr
22、ipt等客户端脚本语言,也可以同时嵌入ASP或JSP等服务器端脚本语言。这种多语言混合的Web开发模式通行已久,但是它的代码可读性很差,程序代码同页面内容混合在一起,程序员要在多种语言的思维上频繁切换,如果程序很复杂的话,这种开发模式非常不利于程序的开发,而且日后的维护也将成为大问题。ASP.NET Web开发技术为程序员提供了一种非常好的开发模式,即Code Behind技术,它通过Web控件将程序代码与页面内容成功分离,从而使ASP.NET的程序结构异常清晰,开发和维护的效率也得到了很大的提高。另外可以利用Visual Studio.NET集成环境下开发ASP.NET应用程序,该环境不仅提
23、供了强大的调试能力,而且还集成了“所见即所得”的HTML编辑器,为开发人员开发Web页提供了方便的图形化支持。3引入服务器端控件在ASP中,可以给页面手动添加HTML控件,对这些控件的响应有两种办法。一种是在客户端的脚本语言中响应用户对这些控件的输入,另一种是把该页面提交给服务器。这两种办法都存在问题,第一种办法产生的问题是不同的浏览器以不同的方式执行客户端脚本语言,我们很难编写在多种浏览器上都能良好运行的复杂的Web页面。第二种办法存在的问题是,如果我们把Web页面重新提交给服务器,那么Internet的无状态特性就会导致页面上存储在变量中的信息丢失,除非我们编写了复杂的代码,把它们存储在H
24、TML元素或URL查询字符串中。ASP.NET通过服务器控件解决了上述问题。服务器端控件会生成发送给浏览器的HTML代码,显示控件,它们还能生成隐藏的HTML元素来存储它们当前的状态。在提交页面时,这些信息就会传送回服务器,控件将自动处理这些信息,改变HTML,显示控件。2.2. C#简介C#是一种简单、现代、面向对象和类型安全的跨平台编程语言,它将作为Visual Studio中的一部分推出。C#(发音为“C-Sharp”)既保持了C+中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。据微软产品经理透露,C#语言将在保持C/C+灵活性的基础上为程序员带来更高效的RAD开发方式。它不仅能
25、用于WEB服务程序的开发,并且还能开发强大的系统级程序。由C和C+发展而来。C#吸取了C和Java语言中的优点,弥补了它们的不足,并且很快被C和C+程序员所熟悉。C#的目标在于把Java的高生产力和C+本身的能力结合起来。C#包含使XML编程更为轻松的技术。微软将使它的下一代工具软件、操作系统和应用支持XML技术。#是由C和C+派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合Visual Basic的高效率和C+的强大功能。事实上,C#将是完全依靠Windows的最完美的产物。那些困绕Java SDK, MFC 和SET的数据库已成为过去。你想放入C#的任何东西(无
26、论何种语言),只要在Windows的.NET子系统下建立和包装的都可以使用Windows的运行库。C#语言的优点包括:语法简单、完全的面向对象、消除大量程序错误、与Web开发紧密结合。C#也并非字节码(bytecode)。微软一位员工罗伯特.舒密特详细描述道:“C#编译程序产生的是微软中间语言(MSIL)但虚拟机或其他类似的技术则不能用于解释这种中间语言(IL)。相反地,每当应用程序载入或JIT编译程序需要编译它时,IL就会被转换成本地代码。一旦这种转换完成,可以执行的代码实际上是本地代码。”实质上,虽然这种方案有点像Java程序通过一个JIL编译程序,但这里最终的JIT编译是100%的本地代
27、码,而Java的JIT产生的结果是不同的。2.3. VS.NET 2005简介Visual Studio.NET 2005是Visual Studio.NET 2003的升级版本,它提供了更好的集成开发环境,可高效创建任何类型的.NET应用程序或者组件,Visual Studio.NET 2005默认支持多种编程语言,例如,C#、Visual C+、Visual Basic.NET、Visual J#和Visual Jscript等。Visual Studio.NET 2005还提供了许多新特性,这些新特性能够帮助不同类型的开发人员,快速创建各类应用程序。支持.NET技术应用程序的开发工具越来
28、越多,从简单的记事本,到复杂的Borland C#、Builder、Delphi,甚至于开源工具SharpDevelop,当然还有微软公司的Visual Studio系列等。虽然开发工具很多,但是开发人员都选择了Visual Studio。这主要是由于Visual Studio能够与.NET技术紧密结合,同时,该系列工具提供了很多提高开发效率的功能。尽管.NET是微软一手缔造的,它并不是只能在Windows上使用。微软准备尽力为那些COM对象提供传统帮助(所有的OLE, ActiveX等等在下一代Viual Studio推出后,都将成为一个legacy平台)。但.NET不会围绕COM建造。新平
29、台无疑将补充COM,并与它几乎天衣无缝地配合,但一点也不会依靠COM。这表明这种结构本身能够Macintosh, UNIX. BeOX展开。这样命名,是因为除了CLS构架是平台独立的,C#将用到的和所有遵从CLS的数据库也是平台独立的。也就是说,它们都是遵从CLS的,如果一个本机MSIL编译程序在平台上有效,那么它们能在运行时刻为任何结构进行编译。微软也积极争取被ECMA标准接纳,他们先前的Javascript已被接纳。 当Visual Studio. NET推出时,开发团体肯定会有不同的反应。微软又开发了一个新平台,这已吓倒那些本来对微软平台统治忧心忡忡的人了。然而更重要的是C#或.NET战
30、略不会对原始C+构成太大威胁,那么有理由推论C#和.NET将是Java的有力竞争者。考虑相反方面:Java VM靠翻译字节码来运行应用程序。CLS在运行时刻本机编译。Java平台只支持Java语言。.NET只支持MSIL,但一些无限制的高级语言如C#,Visual Basic,甚至Eiffel和COBOL都能启动MSIL。Java运用执行转接提供真正的OOP技术。MSIL,C#也是如此。在Java平台,简单地移动平级文件,项目就可以展开为产品目录。据说,.NET平台的项目也可轻松展开而不像以registry-happy Com为基础的项目。或许Java平台真正的优势只在于政治上的正确性-它不是
31、微软搞出来的,且目前有成千上万的执着的宗教追随者。2.4. 设计思想本系统采用C#语言,利用面向对象的思想。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。所有面向对象编程语言都支持三个概念:封装、多态性和继承。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法。2.5. 聚类分析聚类分析源于许多研究领域,包括数据挖掘、统计学、机器学、模式识别等。它是数据挖掘中的一个功能,但也能作为一个独立的工具来获得数据分析的情况,概括出每个簇的特点
32、,或者集中注意力对特定的某些簇做进一步的分析。“物以类聚,人以群分”,聚类是人类一项最基本的认识活动。聚类的用途非常广泛。在生物学中,聚类可以辅助动、植物分类方面的研究,以及通过对基因数据的聚类,找出功能相似的基因;在地理信息系统中,聚类可以找出具有相似用途的区域,辅助石油开采;在商业上,聚类可以帮助市场分析人员对消费者的消费记录进行分析,从而概括出每一类消费者的消费模式,实现消费群体的划分。聚类就是将数据对象分组成多个类或簇,划分的原则是在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。与分类不同的是,聚类操作中要划分的类是事先未知的样本,类的形成完全是数据驱动的,属于一种无
33、指导的学习方法。相异度是根据描述对象的属性值来计算的。距离是经常采用的度量方式。聚类分析源于许多研究领域,包括数据挖掘,统计学,生物学,以及机器学习。作为统计学的一个分支,聚类分析已经被广泛的研究了许多年,主要集中在基于距离的聚类分析。基于k-means(k-平均值),k-medoids(k-中心点)和其他一些方法的聚类分析工具已经被加入到许多统计分析软件包或系统中,例如S-Plus,SPSS,以及SAS。取样算法:这种算法只需扫描一遍被取样数据库,而且使用恒定的内存空间,便可以从N个记录中随机取出n个取样记录。其基本思想是:从第N-n+1条记录开始,做下列操作。设当前处理的是第t个记录(n+
34、1tN),u是产生的一个随机数(u0,t-1),若un,则把第u个记录替换成第t个记录。可以证明该算法能够得到均匀的取样结果。确定取样率很重要。为保证聚类质量,取样数据库应该能够有效地代表原数据库。若取样率太低,取样数据库必然会丢失原数据库的某些特质,导致聚类效果失真。在对大规模数据库进行聚类分析时,数据取样是一种常用的提高聚类效率的方法,即对整个数据库进行数据取样,然后对取样数据库进行聚类分析,而对未被取样的数据进行聚类标注。这样,对大规模数据库的聚类分析就转化为对较小规模的取样数据库的聚类分析。由于没有考虑到整个数据库的数据,聚类质量必然会受到影响。但是,只要取样均匀且取样率适当,则取样数
35、据库也可以较好地反映整个数据库状况,从而在保证聚类质量的同时提高聚类效率。与以前的基于取样的聚类算法相比。3. 系统功能设计3.1. 系统设计思想本系统实现教师录入学生的成绩,并且可以查看学生的成绩,也可查看某次考试的班级的学生成绩,并对其中的一部分学生的成绩进行分析,从而得到学生成绩的分布,学生对知识的掌握情况。对学生的成绩进行分析后,可以将经分析后的图打印、输出。具体的模块图如下所示:图3-1 基于聚类分析的学生成绩知识点预测模型的研究与实现的总体模块图学生成绩录入模块是输入模块,主要实现学生成绩的录入。教师选择相应的试卷、学生的学号、班级,逐条录入。聚类分析模块是主要的处理模块,主要是从
36、数据库提取学生的成绩,根据后台已经编辑好的聚类分析算法进行聚类分析,实现对学生成绩的处理。其中针对不同的对象,进行不同的处理,主要是纵向处理和横向的处理。学生成绩的展示模块主要利用水晶报表将学生成绩的浮动用图表的形式展现出来。利用先进的技术、模块化的软件结构,勾画出了系统的逻辑模型。以此为基础,采用结构化设计方法对系统进行设计,在系统的功能结构图的基础上,对各功能模块和数据库进行了详细的设计,为系统的实现打下了坚实的基础。下面主要是对基于聚类分析的学生成绩预测模型的研究与实现进行的详细设计。3.2. 功能结构图本课题分学生成绩录入、聚类分析和学生成绩展示3部分。基于聚类分析的学生成绩预测模型的
37、研究与实现主要完成以下功能:l 学生成绩的查询和录入l 学生成绩的查询l 聚类分析算法;K_meansl 聚类分析的结果用水晶报表的形式展现学生基本信息的管理是基于聚类分析的学生成绩知识点预测模型研究与实现的一个重要的部分。学生基本信息的管理主要是实现学生基本信息的查询,其中主要提供了两种重要的查询,其一是按照学生的学号进行,其二是按照学生的班级进行查询。学生学习成绩的管理,主要实现了两种方式的查询,一种是按照试卷查看学生的考试成绩,另一种是按照学号和试卷,查看相应的某次考试学生的成绩。这两中查询,一定程度上实现了学生成绩的具体查询和对某次考试成绩的整体查询。查询的结果可以反馈给教师,供教师参
38、考,在教学中做出相应的调整。聚类分析模块,主要是利用数据挖掘中聚类的思想,进行算法的设定和实现。其中重点实现了K_means算法,该算法以K为参数,把n个对象分为K个簇,以使簇内具有较高的相似度,而簇间的相似度较低。相似度的计算根据一个簇中对象的平均值来进行。算法首先随机地选择K个对象,每个对象初始地代表了一个簇的平均值或者中心。对剩余的每个对象根据其与各个簇中心的距离,将它付给最近的簇。然后重新计算每个簇的平均值。这个过程不断重复,知道准则函数收敛。学生成绩的展示模块,主要是实现把聚类分析的结果显示出来,其中主要用到了水晶报表,通过自定义数据集,手动的绑定数据集,让分析的结果以柱状图的形式显
39、示出来。其中还重点的实现了分析结果的打印和导出。导出提供了两种方式的导出一种是Word方式,另一种是Excel方式。系统功能图:图3-2 基于聚类分析的学生成绩知识点预测模型的研究与实现的模块图3.3. 详细功能设计基于聚类分析的学生成绩知识点预测模型的研究与实现主要包括以下功能:学生成绩的录入、按学号查询学生信息、按班级查询学生信息、学生成绩查询、试卷成绩查询及成绩展示、聚类分析处理等方面的功能。系统的数据流程图如下:图3-3 基于聚类分析的学生成绩知识点预测模型的研究与实现的流程图3.3.1. 学生成绩录入l 成绩录入的条件限定成绩录入的参数限定主要是对学生成绩的录入进行管理,避免出现成绩
40、的重复录入和成绩为空的情况。当用户选择正确相应学生的学号,班级,则可以进行录入,录入时考虑是第几次考试,实际的语文成绩和数学成绩各是多少。其中每次考试,我定为数据表TestPaper_One、TestPaper_Two、TestPaper_Four等。数据库中的相应的数据表中记录着每次学生的考试情况。本课题做的是对小学的语文和数学成绩的分析和管理,其中重点记录下每次的考试成绩。在录入成绩的过程中,若不选择“第几次考试”,则弹出提示,提示用户选择;若学生的学号不符合规格,则提示输入正确的学号;若班级的选择和学生的学号对应不起来,则提示选择正确的班级;其中的语文和数学的成绩不能为空,为空的话,则成
41、绩的录入出错,提示录入学生的相应的语文和数学成绩。当此学生的成绩已经成功的录入后,若再词录入学生的成绩,则提示此学生的成绩已经成功的录入.l 更新程序管理当有成绩录入数据库后,数据库中的数据信息进行更新,再一次的查询将是最新的结果,管理员更新了学生的基本信息和成绩后,可以进行相应的查看和对部分信息的管理。在录入的过程中,客户端更新程序的描述。当客户端程序运行时,可以进行学生成绩的录入和校验。3.3.2. 学生信息查询学生信息的查询主要是按学号查询学生信息和按班级查询学生信息。学生的信息主要包括:学号、姓名、所在班级、出生年月日、年龄和家庭住址。学生的信息是从小学校的学生中随机的获取的一部分数据
42、样本,主要是针对小学一年级和二年级的学生,将部分的样本进行入库的处理。l 按学号查询学生信息学生信息成功的录入以后,可以对学生的信息进行相应的查询和改动。按学号查询学生的信息,实现了对数据库中的学生信息的提取,通过与数据库进行手动的连接,定义查询语句,通过DataSet数据集的中间存储,后用GridView控件,将查询的结果显示出来。重点实现了学生信息的查看。l 按班级查询学生的信息选择班级,查询本班级中的学生的基本信息。这一部分的学生信息,其提取的方式和按学号查询学生信息基本一样,主要是为教师提供一些具体的学生的情况,有助于教师掌握班级的整体的学生的基本信息,可以为教师做一些有利于教学的改动
43、提供相应的参考和帮助。图3-4 学生信息查询流程图3.3.3. 学生成绩查询学生的成绩成功的录入以后,就可以对学生的成绩进行查询。学生成绩的查询也可以分为许多种,其中重点实现了两种,一种是通过学号和第几次测试查询学生的成绩,另一种是选择试卷查询参加考试的所有的学生的成绩。l 通过学号和第几次测试查询学生成绩其中通过学号和第几次测试查询学生的成绩,主要实现了具体的某位学生的成绩的查询。实现这种查询的前提是要知道该学生的学号和查询的是第几次测试,只有这样才能查询具体的某位学生的某次的考试成绩。l 通过选择试卷查询学生成绩整体的把握学生的考试成绩是通过选择第几次测试查询学生的成绩。这种查询中只需要知
44、道是第几次测试,选择相应的测试就可以查询学生的成绩。这种查询的方式有利于教师整体上把握学生的成绩,尤其是某次测试的学生的考试成绩一旦学生的成绩录入,即学生的成绩在学生数据库中存在以后,就可以对学生的成绩进行必要的查询,其中查询的方式根据需要选择。学生成绩管理主要是对学生的成绩进行管理,为了规范其管理,使其查询更有效。在代码中实现了代码,有效的实现了查询功能,其中灵活地实现了对数据库的操作,对数据集的访问和GridView的数据显示。学生成绩查询流程图:图3-5 学生成绩查询流程图3.3.4. 聚类分析处理这个功能的设计主要是对学生的成绩进行聚类的分析和研究,其中重点应用了数据挖掘中聚类分析的思
45、想,根据客户端提供的不同的参数,选择K_means算法完成对学生成绩的分析。K_means算法,也被称为K-均值,是一种得到最广泛使用的聚类算法,K-平均算法以K为参数,把n个对象分为k个簇,以使簇内具有较高的相似度,而簇间的相似度较低。相似度的计算根据一个簇中对象的平均值来进行。算法首先随机的选择k个对象,每个对象初始的代表了一个簇的平均值或者中心。对剩余的每个对象根据其与各个簇中心的距离,将它赋给最近的簇。然后重新计算每个簇的平均值。这个过程不断重复,知道准则函数收敛。准则如下:这里的E是数据库所有对象的平均误差的总和,x是空间中的点,表示给定的数据对象, 是簇Ci的平均值。这个准则试图使
46、生成的结果簇尽可能的紧凑和独立。l 算法描述输入:簇的数目k和包含n个对象的数据库输出:k个簇,使平方误差准则最小(1) Assign initial value for means; /任意选择k个对象作为初始的簇中心(2) Repeat;(3) For j=0 to n do assign each xj to the cluster which has the closest mean; /根据簇中对象的平均值,将每个对象赋给最类似的簇(4) For i=0 to k do /新簇的平均值,即计算每个对象簇中对象的平均值(5) Compute /计算准则函数E(6) Until E不再发
47、生明显变化聚类分析算法的流程如下图所示图3-6 聚类分析流程图l 算法的性能分析(1) 优点K-平均算法是解决聚类分析的一种经典算法,这种算法简单、快速。对处理大数据集,该算法是相对课伸缩的和高效率的,应为它的复杂度是O(n.k.t),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常地,kn,且tn。这个算法经常以局部最优结束。算法尝试找出使平均误差函数值最小的k个划分。当结果是密集的,而簇与簇之间区别明显时,它的效果较好。(2) 缺点K-平均算法只有在簇的平均值被定义的情况下才能使用。这可能不适用某些应用,例如涉及有分类属性的数据。该算法要求用户必需事先给出k(要求生成的簇的数目)
48、,可以算是该方法的一个缺点,而且对初始值敏感,对于不同的初始值,可能会导致不同的聚类结果。该算法不适用于发现非凸面形状的簇,或者大小差别很大的簇。而且它对于“噪声”和孤立点数据是敏感的,少量的该类数据能够对平均值产生极大的影响。(3) 改进措施为实现对离散数据的快速聚类,K-模算法被提出,它在保留了K-平均算法的效率的同时,将K-平均算法的应用扩大到离散数据。K-原型可以对离散和数值属性两种混合的数据进行聚类,在K-原型中定义了一个对数值与离散属性都计算的相异性度量标准。k-平均算法对孤立点是敏感的,为了解决这个问题,不采用簇中的平均值作为参照点,可以选用簇中最位置最靠近中心点的对象,即中心点作为参