




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.安徽工业大学毕业设计(论文)任务书课题名称工业工程专业毕业课题分配系统初步设计学 院 管理科学与工程学院专业班级工051班姓 名邵昉学 号059094020课题工作内容:1 找相关老师进行咨询,了解当前课题的分配方法。分析现有方法的不足之处。2 提出几种课题分配的规则,并提出课题分配好坏的评价机制。3运用Visual Studio等工具(及Access)进行开发。从人因工程的角度对软件界面进行设计。4. 应用软件就今年的毕业生进行分配,并和现在实际分配情况进行比较。5绘制与课题相关的图纸,工作量相当于1张A1(CAD绘制),英文资料的译文不少于5000汉字,并与原文一起装订。6论文说明书在40页以上,其中真正由自己完成的部分(数据搜集,分析,设计,计算,研究)要求在20页以上,含中文摘要300字以内及相应的英文文摘。起止时间:2009年2月25日至2009年6月10日共16周指 导 教 师签 字系 主 任签 字院 长签 字摘要本文结合安徽工业大学当前的实际情况,对毕业课题分配进行了探讨,针对老师所带学生的平均学分绩不平衡这一问题,通过C#语言和数据库,设计出毕业课题分配系统。关于学生分配问题,要将任意N个学生配给任意M个教师(教师数量小于学生数量),要求分配的原则是每个教师最后所分到的学生的平均成绩要相等或尽可能相近。通过寻找更优异的算法编写程序代码,使计算机实现将任意个学生分配给任意个教师,且每个教师所分到的学生的平均成绩相近。关键词:毕业课题分配 系统设计 优化 Abstract In this paper, Anhui University of technology of the current on the distribution of graduates discussed the subject, the teacher brought against GPA students imbalance this issue, through C # language and database design graduate distribution system issues. On the distribution of students, to any N any M student teacher ration (number of teachers is less than the number of students), the requirements of the principle of allocation is the last part of the teachers assigned to each students grade point average to be equal to or close to as much as possible. Through the algorithm to find a more outstanding programming code, so that any computer will be assigned to any student teacher, and teachers assigned to each of the students is similar to the average. Keywords:Graduated from the distribution of subjects;System Design;Priority目录1. 绪论51.1问题提出51.2毕业设计分配系统的新要求51.3本课题的研究意义52. 课题开发工具72.1 C# 简介72.2 Access简介82.2.1概述82.2.2 Access的优点82.4 HTML简介103. 系统方案设计113.1 方案一 Excel开发平台113.1.1运行该系统的步骤113.1.2方案一的优缺点113.1.3系统编写代码143.2 方案二 Html开发平台183.2.1 学生分配系统算法分析213.2.2 方案二的优缺点243.2.3 系统的编写代码243.3 方案三 C#平台363.3.1 系统页面363.3.2学生信息表页面373.3.3老师信息表页面383.3.4学生分配页面383.3.5 课题分配页面393.3.6 结果查询页面394 系统实现414.1 学生分配问题简介414.2 学生分配系统开发的环境414.3 学生分配的算法思路414.4 学生分配系统概要设计424.5 学生分配系统开发、程序编写424.6 学生分配系统调试与修改424.7 学生分配系统运行434.7.1系统界面434.7.2 学生列表界面444.7.3 教师列表界面494.7.4 分班操作界面534.7.5结果查看界面54结束语66方案一 Excel开发平台66方案二 Html开发平台66方案三 C#平台66方案选择67致谢68主要参考文献691. 绪论1.1问题提出 近年来,由于社会对高素质人才的大量需求,国家实施了高校大规模扩招的政策,这在一定程度上满足了社会经济发展的需要,但同时又使高校教师的工作量普遍增大。随着计算机产业的迅速发展,电子计算机已广泛的应用于信息管理、文字处理、辅助设计、辅助教学及人们的日常生活中。特别是在计算机的操作系统具有了图形化的界面后,使用计算机已经不再是某些专业人员的专利,各行各业的人们不需要经过专业化的训练就能自如的在计算机上进行各种复杂的操作。 时下,为了能创造更大的经济效益和方便管理,越来越多的学校迫切需要引入现代化的管理手段,而计算机的大容量操作,精确的计算,使它成为校园管理不可缺少的手段之一,但随着计算机应用的不断深入,学校对软件的需求也不断增加,越来越多的学校希望拥有适合自己需要的特殊软件来满足自己的特殊要求。 我的毕业设计题目的选定应该说是顺应这一趋势的。对于当今大学校园内的毕业设计申报来说,其数据量大,各种信息管理内容复杂,查询和管理学生信息和毕业设计申报信息等工作由人工完成将是很累的,也许还很不切实际,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个符合要求的软件对其进行智能化的毕业设计申报管理是最好不过的,节省了人力物力资源,并且对各种信息的把握和操作也更加方便了,对所有信息有了一个全局的掌握。1.2毕业设计分配系统的新要求互联网给毕业设计管理者和参与者提供了方便快捷的处理手段,现在再某些高校中这一系统已经被初步的应用,但是如果缺乏一个好的选题系统系统,就会使一些毕设选题系统参与者带来部必要的麻烦,结果事与愿违,由上可看,毕设选题系统的好与坏,严重影响了毕业设计管理和申报工作的效率和准确率甚至可能影响到毕业设计的进度。 毕业设计选题系统是本着节省人力和物力,提供信息处理的准确性而建立的,因此毕设选题系统一定要高效,精简,周到的才行。 1.3本课题的研究意义 随着高校信息化的发展,越来越多的学校迫切需要引入现代化的管理手段,而计算机的大容量操作,精确的计算,使它成为校园管理不可缺少的手段之一。对于当今大学校园内的毕业设计申报来说,其数据量大,各种信息管理内容复杂,查询和管理学生信息和毕业设计申报信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个符合要求的软件对其进行智能化的毕业设计申报管理是最好不过的,节省了人力物力资源,并且对各种信息的把握和操作也更加方便了,对所有信息有了一个全局的掌握。目前,国内的毕业设计申报选题系统还不是很完善,许多还不能进行网上的直接申报,还停留在人为的选题和录取上。这浪费了大量时间. 2. 课题开发工具2.1 C# 简介C#(读做 C sharp,中文译音暂时没有.专业人士一般读C sharp,现在很多非专业一般读C井。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。C#是一种安全的、稳定的、简单的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。并且C#成为ECMA与ISO标准规范。C#看似基于C+写成,但又融入其它语言如Delphi、Java、VB等。指针(Pointer)只能被用于不安全模式。大多数对象访问通过安全的引用实现,以避免无效的调用,并且有许多算法用于验证溢出,指针只能用于调用值类型,以及受垃圾收集控制的托管对象。对象不能被显式释放,代替为当不存在被引用时通过垃圾回收器回收。只允许单一继承(single inheritance),但是一个类可以实现多个接口(interfaces)C#比C+更加类型安全。默认的安全转换是隐含转换,例如由短整型转换为长整型和从派生类转换为基类。而接口同整型,及枚举型同整型不允许隐含转换,非空指针(通过引用相似对象)同用户定义类型的隐含转换必段被显式的确定,不同于C+的复制构造函数。数组声明语法不同(int a = new int5 而不是 int a5)。枚举位于其所在的命名空间中。C#中没有模版(Template),但是在C# 2.0中引入了泛型(Generic programming),并且支持一些C+模版不支持的特性。比如泛型参数中的类型约束。另一方面,表达式不能像C+模版中被用于类型参数。属性支持,使用类似访问成员的方式调用。完整的反射支持2.2 Access简介2.2.1概述Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。 Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。2.2.2 Access的优点 1.存储方式单一Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。2.面向对象Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 3.界面友好、易操作Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 4.集成环境、处理多种数据信息Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。5.Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用2.2.3 ACCESS的缺点ACCESS是小型数据库,既然是小型就有他根本的局限性,以下几种情况下数据库基本上会吃不消:1.数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降!2.网站访问频繁,经常达到100人左右的在线。3.记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!2.3 VBA简介 Visual Basic 的应用程序版(VBA)是Microsoft 公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。在没有VBA 以前,一些应用软件如Excel、Word、Access、Project 等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。VBA 作为一种新一代的标准宏语言,具有上述跨越多种应用软件并且具有控制应用软件对象的能力,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同的用户界面,而且VBA 与原应用软件的宏语言相兼容,以保障用户在代码和工作上的投资。有了VBA 以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相互开发和调用能力。在Office 2000 中,宏语言VBA 适用于所有应用程序,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各应用程序中,新增了Visual Basic 编辑器。这样,用户无论是在Excel 中,还是在Word 中以至是在Access 中建立和管理VBA 都具有统一的方法和标准。可以认为VBA是非常流行的应用程序开发语言VISUAL BASIC 的子集.实际上VBA是寄生于VB应用程序的版本.VBA和VB的区别包括如下几个方面:1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL.2.4 HTML简介HTML(HyperText Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。神奇吗?一点都不神奇,因为现在你看到的就是这种语言写的页面!HTML特点和好处HTML文档制作不是很复杂,且功能强大,支持不同数据格式的文件镶入,这也是WWW盛行的原因之一,其主要特点如下:1 简易性,HTML版本升级采用超集方式,从而更加灵活方便。2 可扩展性,HTML语言的广泛应用带来了加强功能,增加标识符等要求,HTML采取子类元素的方式,为系统扩展带来保证。3 平台无关性。虽然PC机大行其道,但使用MAC等其他机器的大有人在,HTML可以使用在广泛的平台上,这也是WWW盛行的另一个原因。用什么可以编辑HTML?HTML其实是文本,它需要浏览器的解释,HTML的编辑器大体可以分为三种,1 基本编辑软件,使用WINDOWS自带的记事本或写字版都可以编写,当然,如果你用WPS来编写,也可以。不过存盘是请使用.htm或.html作为扩展名,这样浏览器就可以解释执行了。2 半所见即所得软件,这种软件能大大提高开发效率,它可以使你在很短的时间内做出HOMEPAGE,且可以学习HTML,这种类型的软件主要有HOTDOG,还有国产的软件网页作坊。3 所见即所得软件,使用最广泛的编辑器,完全可以一点不懂HTML的知识就可以做出网页,这类软件主要有FRONTPAGE98,DREAMWEAVER。3. 系统方案设计 根据要求,对毕业课题分配系统提出3个方案,后两个方案在前一个方案的基础上改进而来,先后用了3个开发平台,每个平台各有优点和缺点。在改进的过程中摒弃了前一个方案的开发工具,但是核心的优化思想没有改变。3.1 方案一 Excel开发平台用Excel里的插件VBA(Visual Basic For Application)编写。系统以Excel表格为框架基础,表格分为11列,包含学生信息、教师信息、课题信息以及分配结果。单元格名称分别为学号、姓名、性别、成绩、老师代码、所属老师、课题、老师、各老师分配学生数、男(生数)、女(生数)和平均分。3.1.1运行该系统的步骤首先,在表格里输入收集的数据,即学生信息。如图3.1然后,点击菜单栏“工具”,运行“宏”,系统运行数秒后,显示结果,内容包括教师信息和分配结果。如图方案一的优缺点该方案的优点:1.用现成的应用程序Office办公软件,通过VBA使Excel自动化,可以扩展已有程序。2.由于VBA 可以直接应用Office 套装软件的各项强大功能,所以程序设计和开发更加方便快捷。该方案的缺点:(1)没有独立的数据库,只能将数据保存在Excel表格中。(2)没有标准的系统界面,操作不方便。(3)系统功能不够完善,分配结果,信息显示不全面。 图3.1 Excel表格初始界面 图3.2 Excel表格运行结果3.1.3系统编写代码Sub 分班() Dim lRow, lColumn As Long Dim iBanshu, iXbc, iZfc, iBjdmc, i, n, x As Integer Dim sXb, sZf, sSx, sBjdm, sXbdz, sZfdz, sBjdz, sBj, sFz, sFz2, sBb, t As String Dim vInput Dim iRenshuNan As Integer, iRenshuNv As Integer, iNan1, iNan2, iNan3, iNan4, iNv5, iNv6, iNv7, iNv8 As Integer Dim sFzl As String Application.ScreenUpdating = False lRow = Range(a65535).End(xlUp).Row 得到共有多少行 MsgBox lRow, 0 + 64, 分班 Exit Sub lColumn = Range(iv1).End(xlToLeft).Column MsgBox lColumn, 0 + 64, 提示 Exit Sub =检查是否符合要求 If Application.Workbooks.Count = 0 Then MsgBox 别急,请先打开工作表吧, 0 + 64, 提示 Exit Sub End If = sXb = 性别: sZf = 成绩: sBjdm = 老师代码 =检查格式是否符合要求 If Range(1:1).Find(sXb, lookat:=xlWhole) Is Nothing Or _ Range(1:1).Find(sZf, lookat:=xlWhole) Is Nothing Then MsgBox 数据格式还需要再改一下哟 & Chr(10) & 提示:第一行必须是表头,不含合并单元格, 0 + 64, 分班 Exit Sub End If MsgBox 老师您好,我是邵昉! + Chr(13) + 现在开始毕业分配,根据学生成绩平均分配给各个老师, + Chr(13) + 点击确定后将开始计算分配数据,请耐心等待., 0 + 64, 提示 =排序(性别1,总分2,数学3) Range(a1).Resize(lRow, lColumn).Sort _ Key1:=sXb, Order1:=xlAscending, Key2:=sZf _ , Order2:=xlDescending, header _ :=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _ , SortMethod:=xlPinYin =判断是否有班级字段,如果没有,就加上 If Range(1:1).Find(sBjdm, lookat:=xlWhole) Is Nothing Then Cells(1, lColumn + 1) = sBjdm iBjdmc = Range(1:1).Find(sBjdm, lookat:=xlWhole).Column Cells(2, iBjdmc).Resize(lRow - 1, 1).ClearContents lColumn = Range(iv1).End(xlToLeft).Column =随机初步分班 vInput = InputBox(要分给几个老师,请输入, 老师) vInput = 10 If vInput = Then Exit Sub iBanshu = Val(vInput) sBb = Randomize For i = 1 To iBanshu sBb = sBb & Format(i, 00) & , Next For i = 1 To iBanshu n = Int(Rnd * Len(sBb) / 3 + 1) t = Mid(sBb, n * 3 - 2, 2) Cells(i + 1, iBjdmc).Value = Val(t) sBb = Replace(sBb, t & , ) Next =取得性别、班级、总分的地址 iXbc = Range(1:1).Find(sXb, lookat:=xlWhole).Column iZfc = Range(1:1).Find(sZf, lookat:=xlWhole).Column sXbdz = Cells(2, iXbc).Resize(lRow - 1, 1).Address sZfdz = Cells(2, iZfc).Resize(lRow - 1, 1).Address sBjdz = Cells(2, iBjdmc).Resize(lRow - 1, 1).Address 这里出现 1048 sBj = Cells(3, lColumn + 3).Address(0, 1) MsgBox lRow, 0 + 64, 分班 Exit Sub =在辅助区写入公式 Cells(2, lColumn + 3) = 老师: Cells(2, lColumn + 4) = 各老师分配学生数: Cells(2, lColumn + 5) = 男 Cells(2, lColumn + 3) = 班级: Cells(2, lColumn + 4) = 总人数: Cells(2, lColumn + 5) = 男 Cells(2, lColumn + 6) = 女: Cells(2, lColumn + 7) = 平均分 For i = 1 To iBanshu Cells(2 + i, lColumn + 3) = i Next i Cells(3, lColumn + 9).FormulaArray = =countif( & sBjdz & , & sBj & )*1000+average(if( & sBjdz & = & sBj & , & sZfdz & ) Cells(3, lColumn + 10).FormulaArray = =countif( & sBjdz & , & sBj & )*(-1000)+average(if( & sBjdz & = & sBj & , & sZfdz & ) Cells(3, lColumn + 9).Resize(iBanshu, 2).FillDown sFz = Cells(3, lColumn + 9).Resize(iBanshu, 1).Address sFz2 = Cells(3, lColumn + 10).Resize(iBanshu, 1).Address Cells(3, lColumn + 8).Formula = =match(min( & sFz & ), & sFz & ,) Cells(4, lColumn + 8).Formula = =match(max( & sFz2 & ), & sFz2 & ,) # iRenshuNan = Application.WorksheetFunction.CountIf(Cells(2, iXbc).Resize(lRow - 1, 1), 男) iRenshuNv = Application.WorksheetFunction.CountIf(Cells(2, iXbc).Resize(lRow - 1, 1), 女) Cells(1, lColumn + 1).Formula = =average( & sZfdz & ) Cells(2, lColumn + 1).Formula = =abs( & Cells(2, iZfc).Address(0, 0) & - & Cells(1, lColumn + 1).Address & ) Cells(2, lColumn + 1).Resize(lRow - 1, 1).FillDown iNan1 = Int(iRenshuNan * 0.1) - (Int(iRenshuNan * 0.1) Mod iBanshu) + 1 sFzl = Cells(2, lColumn + 1).Resize(iRenshuNan, 1).Address Cells(1, lColumn + 2).Formula = =match(min( & sFzl & ), & sFzl & ,0) iNan2 = Cells(1, lColumn + 2) + 1 iNan3 = iRenshuNan + 1 - iNan1 iNan4 = iRenshuNan + 1 iNv5 = iNan4 + Int(iRenshuNv * 0.1) - (Int(iRenshuNv * 0.1) Mod iBanshu) sFzl = Cells(iNan4 + 1, lColumn + 1).Resize(iRenshuNv, 1).Address Cells(1, lColumn + 2).Formula = =match(min( & sFzl & ), & sFzl & ,0) iNv6 = iNan4 + Cells(1, lColumn + 2) iNv7 = lRow - Int(iRenshuNv * 0.1) - (Int(iRenshuNv * 0.1) Mod iBanshu) iNv8 = lRow Cells(1, lColumn + 1).Resize(lColumn, 1).ClearContents Cells(1, lColumn + 2).ClearContents # =正式分班 For i = iBanshu + 2 To iNan1 ? Cells(i, iBjdmc) = Cells(3, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next i For i = iNan4 To iNan3 + 1 Step -1 学生后所分班 Cells(i, iBjdmc) = Cells(4, lColumn + 8).Value Next i For i = iNan4 + 1 To iNv5 ? Cells(i, iBjdmc) = Cells(3, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next i For i = iNv8 To iNv7 + 1 Step -1 所有女生全部出错 Cells(i, iBjdmc) = Cells(4, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next i For i = iNan1 + 1 To iNan2 男生数据出现多数错误 Cells(i, iBjdmc) = Cells(3, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next i For i = iNan3 To iNan2 + 1 Step -1 男生中优化数据出错 Cells(i, iBjdmc) = Cells(4, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next i For i = iNv5 + 1 To iNv6 女生优化数据错误 Cells(i, iBjdmc) = Cells(3, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next i For i = iNv7 To iNv6 + 1 Step -1 女生优化数据错误 Cells(i, iBjdmc) = Cells(4, lColumn + 8).Value Cells(i, iBjdmc) = aaa Next Cells(3, lColumn + 7).FormulaArray = =average(if( & sBjdz & = & sBj & , & sZfdz & ) Cells(3, lColumn + 7).Resize(iBanshu, 1).FillDown =写入公式,显示分配结果 Cells(3, lColumn + 4).Formula = =countif( & sBjdz & , & sBj & ) Cells(3, lColumn + 5).Formula = =sumproduct( & sBjdz & = & sBj & )*( & sXbdz & =男) Cells(3, lColumn + 6).Formula = =sumproduct( & sBjdz & = & sBj & )*( & sXbdz & =女) Cells(3, lColumn + 4).Resize(iBanshu, 3).FillDown Cells(3, lColumn + 8).Resize(iBanshu, 2).ClearContents Cells(3, lColumn + 9).Resize(iBanshu, 2).ClearContents Application.ScreenUpdating = TrueEnd Sub3.2 方案二 Html开发平台 考虑到方案一,没有标准的系统界面,操作不方便。为了弥补其不足,特用Html语言编写程,系统运行前界面有3列学生信息,即学号、姓名和学分绩。如图3.3和图3.4。图3.3 html初始界面 图3.4 html初始界面3.2.1 学生分配系统算法分析1.先将n个学生成绩按降序排列及平均分配数t,再将n个学生随机分给m个老师,把个老师分到的学生的平均分数求出求出,按降序排列,并与t比较。2.取 的 与 ,将与 对应的老师分到的学生分数做一次遍历, 对应的老师分到的学生分数作为二次遍历,每遍历一次将 中的大项 与 中的小项 ,计算出交换后的两老师的平均分数且与t比较,计算出与t的差额 ,遍历完毕后选取最小的交换方案作为此两老师最终的分配方案,并将其对应的 都清空。3.重复2的操作,将剩余老师依次操作,直到 = ,循环结束。运行结果如图3.5和3.6图3.5 运行结果图3.6 运行结果3.2.2 方案二的优缺点 系统的优点:1. 系统登录简易,可以通过互联网登录。 2.有了相对独立完整的界面。3.显示结果进一步完善,可以查看每个老师所带学生信息(姓名 学号 学分绩)。系统的缺点:1. 系统没有独立的数据库,数据通过Excel表格保存。2. 系统显示信息不够完整。3. 数据输入方法不合理。3.2.3 系统的编写代码var excelArray = new Array();/存放excel所有字符串var newexcelArray = new Array();/存放分配后excel所有字符串var myarray = new Array();/存放要分配的所有成绩var subarray = new Array();/存放某个导师分配得到的成绩var newarray = new Array();/存放分配后的所有的成绩var avearray = new Array();/存放平均成绩var aveIndex=0;/存放平均成绩数组索引var maxxx = 0var minnn = 0/获得各组的和 趋近的值function getValue()var sum = 0;for( i = 1; i myarray.length; i+)sum = sum + myarrayi;sum = sum * 6 / myarray.length;return sum;/获得数组的和function getSum(obj)var sum = 0;for( i = 1; i obj.length; i+)sum = sum + obji;return sum;/取原数组最大值function getMax(obj)var maxValue=0;for(i = 0; i obj.length; i+)maxValue = Math.max(maxValue,obji);return maxValue;/取原数组最小值function getMin(obj)var minValue;minValue = getMax(obj);for(i = 0; i obj.length; i+)if(0 = obji)continue;minValue = Math.min(minValue,obji);retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 荆州职业技术学院《低代码开发实践》2024-2025学年第一学期期末试卷
- 湖南师范大学《电子商务E-Busness》2024-2025学年第一学期期末试卷
- 2025年炼钢技术前沿知识解析与预测题
- 一年级数学计算题专项练习1000题汇编
- 2025年电子商务创业实战案例分析题库及答案解析
- 2025年酒店营销经理求职面试全攻略与实战模拟题集
- 江西省宜春市十校2024-2025学年高三下学期5月联考政治试卷(解析版)
- 班主任兵法课件
- 珩磨油石基础知识培训课件
- 珠海美发基础知识培训课件书籍
- 期末练习卷(模拟试题)-2024-2025学年 一年级上册数学人教版
- 白酒旅游活动方案
- 2024年山西省中考语文试卷
- 政府会计(第八版)课件 王宗江 第1、2章 政府会计概述、流动资产
- 健康保险相关行业公司成立方案及可行性研究报告
- 彩钢瓦检验批
- 还款计划书15篇
- 送货单完整模板
- 如何成为一名好的医生
- 雅安市雨城区2024年重点中学小升初数学入学考试卷含解析
- JBT 9229-2024 剪叉式升降工作平台(正式版)
评论
0/150
提交评论