学生成绩分析与管理系统的设计与实现.docx
《学生成绩分析与管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《学生成绩分析与管理系统的设计与实现.docx(38页珍藏版)》请在冰豆网上搜索。
学生成绩分析与管理系统的设计与实现
摘要
聚类分析是一种应用广泛的数学方法,可广泛应用于各个领域。
在数据挖掘理论基础上,研究了聚类分析的方法及在学生成绩评测中的应用,选取了小学4个班学生的成绩作为统计指标,利用Minkowski距离公式,判断簇中心与样本数据间的距离,用迭代法做出聚类分析,并做出详细分析。
结果表明聚类分析法对学生评价科学合理,符合实际,对掌握学生学习情况有很大帮助。
随着现代科学技术的发展,传统的教学管理已不能满足时代发展的要求,为了改变这种状况,现开发了一套先进的、便于管理的学生成绩分析与管理的系统。
本系统包括学生信息管理、学生成绩管理、学生成绩分析三大模块。
本系统使用微软最先进的VisualStudio.Net2005开发环境作为平台,采用SQLServer2000进行数据库设计。
系统的适用性较强,具有一定的推广价值。
本系统主要针对学生成绩分析模块的开发,整个系统运用面向对象的思想,并在页面中内置浏览器。
主要实现了学生信息查询、学生成绩录入、学生成绩查询和学生成绩分析处理等功能。
首先,分析了系统的背景和意义,重点分析了系统实现的主要功能。
其次,是系统采用的主要技术和实现方法。
最后,结合系统开发阶段和调试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得的经验和体会。
关键词:
聚类分析,数据挖掘,C#语言,水晶报表
Abstract
Clusteringanalysishhasfoundextensiveapplicationsinmanyfields.Basedonthedatadigsettheory,thethesiseatablishesaclusteringanalysismethodanddedigningproceduresforstudyingstudents’management.Inthisclusteringanalysistakingbasiccoursescoresofthestudentsinfourclasses,whocomefromaelementaryschool,asthecountingindex,Inordertojudgethedistancebetweenclusteringcenterandsamplesofdata,thedistanceformularyofMinkowskihasused.Thereisusingiterativefollowtodoclusteringanalysis.DetailedclusteringanalysisresultsaregivenbyBooleandTransmitclosuremethode.Theresultsindicatesthattheproposedcluster’sanalysisapproachisscientific,rationalandsuitableforreality,andithasaverygreathelpingraspingstudent’ssituationofstudying.
Withthedevelopmentofthemodemscienceandtechnology,traditionalteachingmanagermentcan’tsatisfythedemandofage’sdevelopment.Toimprovethecondition,wespeciallydevelopasetofadvancedandconvenientstudentscoreanalysisandmanagementsystem.Thesystemconsistsofstudentinomationmanagementmodule,studentscoremanagementmodule,andstudentscoreanalysismodule.ThesystemadoptsthemostadvanceddevelopmenttoolVisualStudio.Net2005ofMicrosoftasthedevelopingplatform,whichcarryoutdatabasedesignwithSQLServer2000,ThisSystemhasstrongapplicabilityandcoversbroadscopethatsuitsthemanagementofadulteducationineachcollege,andhavecertainextendingvalue.
Inthisarticle,ImostlydevelopStudentscoreanalysismodule.ThesystemuseOOPandThewholemoduledesignadoptsbuilt-inbrowser.Thesystemhaverealizedthefunctionofthestudentinformationsearch,thestudents’scorecomingin,thestudentscoresearchmanagement,andanalysisofstudents’marks.Thiswritinghavefirstnarratedthegoaloftheteachingmanagementsystemofadulteducationthatbackgroundandcharacteristic;Secondly,haveelaboratedtheresearchtechnique,technicalrouteetc.Finally,attheendofthisthesis,considertotheproblemsinsystemdesignperiodandinsystemdebugperiodIindicatesomeaspectsthatneedtobeimproved,andsumupsomeexperienceinsystemdesign.
Keywords:
ClusteringAnalysis,DataDig,C#Language,CrystalReport
1.课题的研究背景与介绍
本章主要介绍课题的来源和意义,开发基于聚类分析的学生成绩知识点预测模型的研究与实现,完成针对学生成绩的分析与展示。
1.1.课题来源
本课题来源于我的实习公司。
本课题主要分为共分为了4个子模块,分别是学生成绩的录入模块、学生信息查询模块、学生成绩查询模块、成绩分析和展示模块。
本课题是基于聚类分析的学生成绩知识点预测模型的研究与实现,它将用于教学管理的工作中,以实现教学管理方面的规范化和数字化管理,本系统将主要根据现当代学生教育的现状,设计和开发的系统,实现对学生成绩的管理和分析,促使教学管理的计算机化和自动化。
1.2.开发研究背景
随着时代日新月异的长足发展,教育体制在不断的发展和完善,教育受到了国家和政府的大力支持和重视。
近年来,我国提倡和发出了要形成全民学习、终身学习的学习型社会,促进人的全面发展的号召。
现代社会是一个创新的时代,网络的发展起到了很大的作用。
通过网络可以完成各种不同的需求,学生也可以上网查阅资料,进行学习,达到扩展知识面的目的。
本课题针对小学生每次的考试成绩进行了录入和汇总,也可以根据不同的情况对学生的信息进行查询。
为了能够适时掌握学生的学习情况,能够为学生不同阶段的学习提供一个合理的指导,因此,将现代的先进技术和分析方法应用于教育行业是很有必要的,对学生成绩知识点预测模型的研究是很有意义的。
目前的一些教学管理软件主要是已经不再满足现当代教育教学的需要,主要由于使用的应用软件比较落后,或采用原始的手工记录的方式管理,管理人员的工作量相当大,管理的难度高,因此学生的信息和学生的学习成绩等的管理都比较混乱,而且由于学生之间也存在着很大的差异,有很多的特殊情况在其中。
因此平时交流不方便,导致学生成绩的管理和针对学生成绩的分析和研究做的并不是很到位。
管理不能照搬普通在校生的管理,因此建立一套界面友好,易于学习,非计算机专业人员经过短时间培训即可掌握基本操作,符合成人教育的特点的信息化管理系统是非常有必要的。
建立一套界面友好,易于学习、非计算机专业人员也可以掌握基本操作,符合教学特点的学生成绩知识点预测模型的研究与实现是很有必要的。
1.3.课题研究目的
为了提高教学管理的工作效率,减轻管理人员的负担,在系统调查及分析阶段能够得到管理人员的支持,能够适时掌握学生的学习情况,并对其进行聚类分析,将学生划分到不同的范围中,以便给教师调整教学重点和进度提供依据,因此设计了本课题。
新系统的实现在很大程度上完善,对学习的分析基本上做到全面,一定程度上提高了教学管理的效率,减轻了工作人员的压力。
本设计方案重点在数据挖掘中聚类分析算法的实现,其中重点实现了k_mean算法。
根据学生的考试成绩,对学生掌握知识点的情况进行分析与研究,把不同的情况进行辨析和聚类,并对不同情况做出合理的解释,以便对学生的学习提供指导。
用聚类的思想分析学生的成绩,查看学生成绩所处的位置,计时的给学生以反馈和鼓励,也可以帮助老师整体上把握班级的情况。
2.软件开发环境介绍
2.1.ASP.NET简介
ASP.net是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。
ASP.net提供许多比现在的Web开发模式强大的优势。
ASP.net构架是可以用Microsoft公司最新的产品VisualS开发环境进行开发,ASP.net是基于通用语言编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。
ASP.net是运行一些很平常的任务让表单的提交、客户端的身份验证、分布系统和网站配置变得非常简单。
ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。
即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。
ASP.NET技术就是由微软的.NET技术细化而来的,它跟ASP技术有些关系,然而又不是仅仅是一个继承,可以讲,ASP.NET跟ASP想比较的话,已经是变得面目全非了,当然好得至少是一个量级以上。
ASP.NET完全基于模块与组件,具有更好的可扩展性与可定制性,数据处理方面更是引入了许多激动人心的新技术,正是这些具有革新意义的新特性,让ASP.NET远远超越了ASP,同时也提供给web开发人员更好的灵活性,有效缩短了web应用程序的开发周期。
ASP.NET与Windows2000Server/AdvancedServer的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。
微软公司的ASP.NET技术在全球推广短短几年的时间,取得了飞速发展。
国内外越来越多的软件公司,开始应用ASP.NET技术进行项目开发。
这不仅要归功与微软公司.NET发展战略的成功实施,更重要的是ASP.NET技术本身具有的无限魅力。
ASP.NET是微软提供的新一代的Web开发平台,它为开发人员提供了生成企业级Web应用程序所需要的服务、编程模型和软件基础结构,同其他Web开发平台相比,ASP.NET具有下面三大优势。
1.支持编译型语言
目前流行的几种脚本语言比如VBScript、JavaScript和ASP等都有两个主要的缺点。
第一,不支持强数据类型。
在JavaScript中定义变量只有一个关键字var,使用var关键字定义的变量,如果赋值是字符串,该变量就是字符串变量;如果赋值是整数,则该变量就是整型变量。
在VBScript和ASP中,定义变量只通过一个关键字DIM,该变量也没有具体的类型。
第二,脚本语言是解释型的。
通常情况下,解释型的脚本语言在性能上抵不上编译型的语言。
自推出.NET开发平台以来,微软在Web服务器端开发语言方面,主推VB.NET和C#.NET这两种编译型语言。
通过这两种开发语言,程序员可以像开发普通的Windows程序一样来开发Web程序,只不过在Windows程序中用于开发GUI界面的各种控件,在Web程序开发中也有它们相应的Web版本。
程序员通过C#语言,利用VS.NET提供的各种Web控件,可以非常容易地开发ASP.NETWeb程序。
开发的ASP.NET程序被编译成MSIL语言,这种中间语言具有平台无关性,而且,由于ASP.NET页面在执行前会被编译,所以ASP.NET的性能得到了很大的提高。
2.程序代码与页面内容的成功分离
通常的动态网页开发,往往是在一个网页上混合多种脚本语言。
比如在HTML脚本语言上可以嵌入JavaScript或VBScript等客户端脚本语言,也可以同时嵌入ASP或JSP等服务器端脚本语言。
这种多语言混合的Web开发模式通行已久,但是它的代码可读性很差,程序代码同页面内容混合在一起,程序员要在多种语言的思维上频繁切换,如果程序很复杂的话,这种开发模式非常不利于程序的开发,而且日后的维护也将成为大问题。
ASP.NETWeb开发技术为程序员提供了一种非常好的开发模式,即CodeBehind技术,它通过Web控件将程序代码与页面内容成功分离,从而使ASP.NET的程序结构异常清晰,开发和维护的效率也得到了很大的提高。
另外可以利用VisualStudio.NET集成环境下开发ASP.NET应用程序,该环境不仅提供了强大的调试能力,而且还集成了“所见即所得”的HTML编辑器,为开发人员开发Web页提供了方便的图形化支持。
3.引入服务器端控件
在ASP中,可以给页面手动添加HTML控件,对这些控件的响应有两种办法。
一种是在客户端的脚本语言中响应用户对这些控件的输入,另一种是把该页面提交给服务器。
这两种办法都存在问题,第一种办法产生的问题是不同的浏览器以不同的方式执行客户端脚本语言,我们很难编写在多种浏览器上都能良好运行的复杂的Web页面。
第二种办法存在的问题是,如果我们把Web页面重新提交给服务器,那么Internet的无状态特性就会导致页面上存储在变量中的信息丢失,除非我们编写了复杂的代码,把它们存储在HTML元素或URL查询字符串中。
ASP.NET通过服务器控件解决了上述问题。
服务器端控件会生成发送给浏览器的HTML代码,显示控件,它们还能生成隐藏的HTML元素来存储它们当前的状态。
在提交页面时,这些信息就会传送回服务器,控件将自动处理这些信息,改变HTML,显示控件。
2.2.C#简介
C#是一种简单、现代、面向对象和类型安全的跨平台编程语言,它将作为VisualStudio中的一部分推出。
C#(发音为“C-Sharp”)既保持了C++中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。
据微软产品经理透露,C#语言将在保持C/C++灵活性的基础上为程序员带来更高效的RAD开发方式。
它不仅能用于WEB服务程序的开发,并且还能开发强大的系统级程序。
由C和C++发展而来。
C#吸取了C和Java语言中的优点,弥补了它们的不足,并且很快被C和C++程序员所熟悉。
C#的目标在于把Java的高生产力和C++本身的能力结合起来。
C#包含使XML编程更为轻松的技术。
微软将使它的下一代工具软件、操作系统和应用支持XML技术。
#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合VisualBasic的高效率和C++的强大功能。
事实上,C#将是完全依靠Windows的最完美的产物。
那些困绕JavaSDK,MFC和SET的数据库已成为过去。
你想放入C#的任何东西(无论何种语言),只要在Windows的.NET子系统下建立和包装的都可以使用Windows的运行库。
C#语言的优点包括:
语法简单、完全的面向对象、消除大量程序错误、与Web开发紧密结合。
C#也并非字节码(bytecode)。
微软一位员工罗伯特.舒密特详细描述道:
“C#编译程序产生的是‘微软中间语言’(MSIL)……但虚拟机或其他类似的技术则不能用于解释这种中间语言(IL)。
相反地,每当应用程序载入或JIT编译程序需要编译它时,IL就会被转换成本地代码。
一旦这种转换完成,可以执行的代码实际上是本地代码。
”实质上,虽然这种方案有点像Java程序通过一个JIL编译程序,但这里最终的JIT编译是100%的本地代码,而Java的JIT产生的结果是不同的。
2.3.VS.NET2005简介
VisualStudio.NET2005是VisualStudio.NET2003的升级版本,它提供了更好的集成开发环境,可高效创建任何类型的.NET应用程序或者组件,VisualStudio.NET2005默认支持多种编程语言,例如,C#、VisualC++、VisualBasic.NET、VisualJ#和VisualJscript等。
VisualStudio.NET2005还提供了许多新特性,这些新特性能够帮助不同类型的开发人员,快速创建各类应用程序。
支持.NET技术应用程序的开发工具越来越多,从简单的记事本,到复杂的BorlandC#、Builder、Delphi,甚至于开源工具SharpDevelop,当然还有微软公司的VisualStudio系列等。
虽然开发工具很多,但是开发人员都选择了VisualStudio。
这主要是由于VisualStudio能够与.NET技术紧密结合,同时,该系列工具提供了很多提高开发效率的功能。
尽管.NET是微软一手缔造的,它并不是只能在Windows上使用。
微软准备尽力为那些COM对象提供传统帮助(所有的OLE,ActiveX等等在下一代ViualStudio推出后,都将成为一个legacy平台)。
但.NET不会围绕COM建造。
新平台无疑将补充COM,并与它几乎天衣无缝地配合,但一点也不会依靠COM。
这表明这种结构本身能够Macintosh,UNIX.BeOX展开。
这样命名,是因为除了CLS构架是平台独立的,C#将用到的和所有遵从CLS的数据库也是平台独立的。
也就是说,它们都是遵从CLS的,如果一个本机MSIL编译程序在平台上有效,那么它们能在运行时刻为任何结构进行编译。
微软也积极争取被ECMA标准接纳,他们先前的Javascript已被接纳。
当VisualStudio.NET推出时,开发团体肯定会有不同的反应。
"微软又开发了一个新平台",这已吓倒那些本来对微软平台统治忧心忡忡的人了。
然而更重要的是C#或.NET战略不会对原始C++构成太大威胁,那么有理由推论C#和.NET将是Java的有力竞争者。
考虑相反方面:
JavaVM靠翻译字节码来运行应用程序。
CLS在运行时刻本机编译。
Java平台只支持Java语言。
.NET只支持MSIL,但一些无限制的高级语言如C#,VisualBasic,甚至Eiffel和COBOL都能启动MSIL。
Java运用执行转接提供真正的OOP技术。
MSIL,C#也是如此。
在Java平台,简单地移动平级文件,项目就可以展开为产品目录。
据说,.NET平台的项目也可轻松展开而不像以registry-happyCom为基础的项目。
或许Java平台真正的优势只在于政治上的正确性--它不是微软搞出来的,且目前有成千上万的执着的宗教追随者。
2.4.设计思想
本系统采用C#语言,利用面向对象的思想。
面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。
如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
所有面向对象编程语言都支持三个概念:
封装、多态性和继承。
现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法。
2.5.聚类分析
聚类分析源于许多研究领域,包括数据挖掘、统计学、机器学、模式识别等。
它是数据挖掘中的一个功能,但也能作为一个独立的工具来获得数据分析的情况,概括出每个簇的特点,或者集中注意力对特定的某些簇做进一步的分析。
“物以类聚,人以群分”,聚类是人类一项最基本的认识活动。
聚类的用途非常广泛。
在生物学中,聚类可以辅助动、植物分类方面的研究,以及通过对基因数据的聚类,找出功能相似的基因;在地理信息系统中,聚类可以找出具有相似用途的区域,辅助石油开采;在商业上,聚类可以帮助市场分析人员对消费者的消费记录进行分析,从而概括出每一类消费者的消费模式,实现消费群体的划分。
聚类就是将数据对象分组成多个类或簇,划分的原则是在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。
与分类不同的是,聚类操作中要划分的类是事先未知的样本,类的形成完全是数据驱动的,属于一种无指导的学习方法。
相异度是根据描述对象的属性值来计算的。
距离是经常采用的度量方式。
聚类分析源于许多研究领域,包括数据挖掘,统计学,生物学,以及机器学习。
作为统计学的一个分支,聚类分析已经被广泛的研究了许多年,主要集中在基于距离的聚类分析。
基于k-means(k-平均值),k-medoids(k-中心点)和其他一些方法的聚类分析工具已经被加入到许多统计分析软件包或系统中,例如S-Plus,SPSS,以及SAS。
取样算法:
这种算法只需扫描一遍被取样数据库,而且使用恒定的内存空间,便可以从N个记录中随机取出n个取样记录。
其基本思想是:
从第N-n+1条记录开始,做下列操作。
设当前处理的是第t个记录(n+1≤t≤N),u是产生的一个随机数(u∈〔0,t-1〕),若u可以证明该算法能够得到均匀的取样结果。
确定取样率很重要。
为保证聚类质量,取样数据库应该能够有效地代表原数据库。
若取样率太低,取样数据库必然会丢失原数据库的某些特质,导致聚类效果失真。
在对大规模数据库进行聚类分析时,数据取样是一种常用的提高聚类效率的方法,即对整个数据库进行数据取样,然后对取样数据库进行聚类分析,而对未被取样的数据进行聚类标注。
这样,对大规模数据库的聚类分析就转化为对较小规模的取样数据库的聚类分析。
由于没有考虑到整个数据库的数据,聚类质量必然会受到影响。
但是,只要取样均匀且取样率适当,则取样数据库也可以较好地反映整个数据库状况,从而在保证聚类质量的同时提高聚类效率。
与以前的基于取样的聚类算法相比。
3.系统功能设计
3.1.系统设计思想
本系统实现教师录入学生的成绩,并且可以查看学生的成绩,也可查看某次考试的班级的学生成绩,并对其中的一部分学生的成绩进行分析,从而得到学生成绩的分布,学生对知识的掌握情况。
对学生的成绩进行分析后,可以将经分析后的图打印、输出。
具体的模块图如下所示:
图3-1基于聚类分析的学生成绩知识点预测模型的研究与实现的总体模块图
学生成绩录入模块是输入模块,主要实现学生成绩的录入。
教师选择相应的试卷、学生的学号、班级,逐条录入