毕业设计智能排课管理系统论文.doc

上传人:文库蛋蛋多 文档编号:3975467 上传时间:2023-03-30 格式:DOC 页数:48 大小:606.50KB
返回 下载 相关 举报
毕业设计智能排课管理系统论文.doc_第1页
第1页 / 共48页
毕业设计智能排课管理系统论文.doc_第2页
第2页 / 共48页
毕业设计智能排课管理系统论文.doc_第3页
第3页 / 共48页
毕业设计智能排课管理系统论文.doc_第4页
第4页 / 共48页
毕业设计智能排课管理系统论文.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《毕业设计智能排课管理系统论文.doc》由会员分享,可在线阅读,更多相关《毕业设计智能排课管理系统论文.doc(48页珍藏版)》请在三一办公上搜索。

1、智能排课管理系统目 录目 录1摘 要1Abstract2第一章 前言3第二章 关于Visual Basic32.1 Visual Basic的历史32.2 Visual Basic常用术语解释42.3 Visual Basic的特点4第三章 Visual Basic技术53.1Visual Basic常用函数介绍53.2编写高质量的vb6第四章 使用Visual Basic开发排课系统74.1开发使用的过程模型74.2系统的基本组成及使用84.3系统功能的实现84.3.1储存数据形式84.3.2添加删除数据94.3.3课表设置功能134.3.4生成课表17第五章 开发总结20参考文献:21摘

2、要随着现代计算机科学的发展,计算机信息系统越来越受到重视,在学校管理中的许多工作都由计算机完成。由于对课程的排列时一项繁琐的工作,所以它已经逐渐改为由计算机完成。本文就是讲解基于Visual Basic的排课系统。首先介绍开发工具Visual Basic,接着介绍了Visual Basic的常用函数和怎样编写高质量的Visual Basic,最后详细讲解了用Visual Basic开发排课系统,这一部分主要讲解系统功能的实现,在最后做了开发总结。关键词:排课系统,Visual BasicAbstractWith the development of modern computer scienc

3、e, computer information systems take more attention, in school many administration works worked by the computer. Because curriculum arrangement time is a tedious work, therefore it already gradually changed by the computer completes. This article is the explanation based on the Visual Basic Arrangem

4、ent curriculum system. First introduced development kit Visual Basic, then introduced how to use the Visual Basic function and how to compile high grade Visual Basic, finally in detail explained with Visual the Basic development the arrangement curriculum system, this part of main explanations syste

5、m function realization, finally has been making the development summary.Keywords: Arrangement curriculum system, Visual Basic第一章 前言学校的课程安排工作是每一个学校必须完成的工作,它是一项繁琐的工作,涉及到老师,教师,时间,班级的安排工作,以前都由人工来完成,随着计算机科学技术的飞速发展,计算机的应用在全球范围内日益普及,安排课程已经由人工管转变为自动化,机器化。由计算机进行排课的方式于传统的方式相比较,优势是显而易见的,首先,可以省去大量人工,加速现代化的进程;其次

6、,避免了人工排课出错,使排课过程可以轻松进行。第三,可以充分发挥计算机在信息处理方面的优势,可以让繁琐的工作由计算机处理。因此,开发一个排课系统是很有必要的。本文意在说明用微软的Visual Basic和Access数据库技术如何进行排课系统的开发。第二章 关于Visual Basic2.1 Visual Basic的历史Visual Basic是由BASIC演化而来的,BASIC是Beginners All-purpose symbolic instruction Code(初学者通用符号指令代码)的缩写,是国际上广泛使用的一种计算机高级语言。BASIC简单、易学,目前仍是计算机入门的主要学

7、习语言之一。 BASIC语言的问世及发展到Visual Basic经历了以下四个阶段:第一阶段:(1964年70年代初) 1964年BASIC语言问世。 第二阶段:(1975年80年代中) 微机上固化的BASIC第三阶段:(80年代中90年代初) 结构化BASIC语言。第四阶段:(1991年以来) Visual BASIC 自从1991年,微软推出了Visual Basic1.0版。这在当时引起了很大的轰动。许多专家把VB的出现当作是软件开发史上的一个具有划时代意义的事件。其实,以我们现在的目光来看,VB10的功能实在是太弱了。但在当时,它是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝

8、试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出VB20,VB30,40,三个版本。并且从VB3开始,微软将ACCESS的数据库驱动集成到了VB中,这使得VB的数据库编程能力大大提高。从VB4开始,VB也引入了面向对象的程序设计思想。VB功能强大,学习简单。而且,VB还引入了“控件:的概念,使得大量已经编好的VB程序可以被我们直接拿来使用,如今,VB已经有了6.0版,也就是此教师评测系统开发使用的版本。通过几年的发展,它已成为一种真正的专业化的开发语言和环境。用户认为可用Visual Basic快速创建Windows程序,在现在还可以编写企业水平的客户服务器程序及强大的数据库应用

9、程序,Visual Basic新版中还有更多可用新功能。2.2 Visual Basic常用术语解释在以下讨论Visual Basic时,经常可以听到这些术语,因此首先对这些术语进行理解,以下是Visual Basic中最常用到的几个术语:控件提供程序可见界面的可重用对象。控件的示例有文本框、标签和命令按钮。事件由用户或操作系统引发的动作。事件的示例有击键、单击鼠标、一段时间的限制,或从端口接收数据。方法嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法。 对象程序的基本元素,它含有定义其特征的属性,定义其任务和识别它

10、可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。 过程为完成任务而编写的代码段。过程通常用于响应特定的事件。 属性对象的特征,如尺寸、位置、颜色或文本。属性决定对象的外观,有时也决定对象的行为。属性也用于为对象提供数据和从对象取回信息。2.3 Visual Basic的特点VB的重要特点之一是可视性。系统引进了窗体和控件的机制,用于设计应用程序界面。用户通过在屏幕上生成窗体,在窗体中绘制所需要的控件和按钮,设计菜单和对话框,VB会自动生成相应的代码。VB的另一重要特点是事件驱动。当窗体或控件上发生一个事件时,VB立即把控制权交给程序员。程序员不必担心如何判断事件是否

11、已发生,只需要编写一段代码告诉计算机在事件发生以后应该做什么工作就可以了。这样,设计一个Windows应用程序简化为用鼠标在屏幕上点击、拖拽并添加少量的代码就可以完成了,大大降低了对程序设计的要求,提高了应用程序的开发效率。利用VB的可视性特点,可方便的设计了程序的窗体界面,并在各个窗体中的合适位置绘制所需的每种控件。如要修改窗体或控件的某项属性,只需在相应的窗体或控件的属性窗口修改相应的参数便可达到需要的设计效果。利用VB的事件驱动性特点,只需在窗体或控件上的代码窗口中添加少量的代码,便可达到告诉当在相应的窗体或控件上发生某一事件时,它们在事件发生后应该做什么工作的目的。例如几个窗体上的添加

12、、删除、返回按钮的作用,就是通过在各个相应按钮的代码窗口中输入相应的代码,来达到当在几个按钮上出现单击(Click)事件后,相应按钮实现添加、删除、返回的功能的。第三章 Visual Basic技术3.1Visual Basic常用函数介绍Abs(n)返回n的绝对值。Atn(n)返回n的反正切值,以弧度为单位。Cos(n)返回n的余弦值,以弧度为单位。Exp(n)返回e的n次方。Rnd(n)产生0到1之间的一个随机数。Sgn(n)n小于0时返回-1,n等于0时返回0,n大于0时返回1。Sin(n)返回n的正弦值,以弧度为单位。 Sqr(n)返回n的平方根。Str(n)把数值值转换成字符串。 T

13、an(n)返回n的正切值,以弧度为单位。Val(n)把字符串转换为数值值。Int(n)返回数字的整数部分。8.4-9 Fix(n)返回数字的整数部分。8.4-8 数据类型转换函数转换函数将表达式转换成CBoolBooleanCByteByteCCurCurrency 只在VB7.0以下有效CDateDateCDblDoubleCIntIntegerCLngLongCSngSingleCStrStringCVarVariant 只在VB7.0以下有效CVErrError 只在VB7.0以下有效字符串处理函数关键字说明示例Ucase将字符串中的字母改为大写Ucase(Kim)返回KIMLcase将

14、字符串中的字母改为小写Lcase(Kim)返回kimLen确定字符串的长度(以字符为单位)Len(Mississ)返回7Right返回字符串右部指定个数的字符Right(Budapest,3)返回pesLeft返回字符串左部指定个数的字符Left(Budapest,4)返回BudaMid从某一指定起始点开始返回字符串中指定个数的字符Mid(Sommers, 4, 3) 返回merInStr从一个较大字符串中查找另一个字符start% = InStr(bob,bobby)start%变量返回值1 String重复指定字符串中的字符,返回新的字符串String(8, *)返回*Asc返回指定字母的

15、ASCII代码Asc(A)返回65Chr返回指定ASCII代码对应的字符Chr(65) 返回AXor对两个数字执行“异或”操作,其返回值可用来对文本进行加密、解密65 Xor 50返回115115 Xor 50返回653.2编写高质量的vb下面的这些方法可以帮助你提高代码的运行速度:1. 使用整数(Integer)和长整数(Long)提高代码运行速度最简单的方法莫过于使用正确的数据类型了。也许你不相信,但是正确地选择数据类型可以大幅度提升代码的性能。在大多数情况下,程序员可以将Single,Double和Currency类型的变量替换为Integer或Long类型的变量,因为VB处理Integ

16、er和Long的能力远远高于处理其它几种数据类型。在大多数情况下,程序员选择使用Single或Double的原因是因为它们能够保存小数。但是小数也可以保存在Integer类型的变量中。例如程序中约定有三位小数,那么只需要将保存在Integer变量中的数值除以1000就可以得到结果。根据我的经验,使用Integer和Long替代Single,Double和Currency后,代码的运行速度可以提高将近10倍。2. 避免使用变体对于一个VB程序员来说,这是再明显不过的事情了。变体类型的变量需要16个字节的空间来保存数据,而一个整数(Integer)只需要2个字节。通常使用变体类型的目的是为了减少设

17、计的工4作量和代码量,也有的程序员图个省事而使用它。但是如果一个软件经过了严格设计和按照规范编码的话,完全可以避免使用变体类型。 3. 尽量避免使用属性在平时的代码中,最常见的比较低效的代码就是在可以使用变量的情况下,反复使用属性(Property),尤其是在循环中。要知道存取变量的速度是存取属性的速度的20倍左右。4. 尽量使用数组,避免使用集合除非你必须使用集合(Collection),否则你应该尽量使用数组。据测试,数组的存取速度可以达到集合的100倍。这个数字听起来有点骇人听闻,但是如果你考虑到集合是一个对象,你就会明白为什么差异会这么大。5. 展开小的循环体在编码的时候,有可能遇到这

18、种情况:一个循环体只会循环2到3次,而且循环体由几行代码组成。在这种情况下,你可以把循环展开。原因是循环会占用额外的CPU时间。但是如果循环比较复杂,你就没有必要这样做了。6. 避免使用很短的函数和使用小的循环体相同,调用只有几行代码的函数也是不经济的-调用函数所花费的时间或许比执行函数中的代码需要更长的时间。在这种情况下,你可以把函数中的代码拷贝到原来调用函数的地方。7. 减少对子对象的引用在VB中,通过使用.来实现对象的引用。例如:Form1.Text1.Text 在上面的例子中,程序引用了两个对象:Form1和Text1。利用这种方法引用效率很低。但遗憾的是,没有办法可以避免它。程序员唯

19、一可以做就是使用With或者将用另一个对象保存子对象(Text1)。8. 使用数组,而不是多个变量当你有多个保存类似数据的变量时, 可以考虑将他们用一个数组代替。在VB中,数组是最高效的数据结构之一。9. 使用动态数组,而不是静态数组使用动态数组对代码的执行速度不会产生太大的影响,但是在某些情况下可以节约大量的资源。第四章 使用Visual Basic开发排课系统4.1开发使用的过程模型在开发此套系统之前,首先要按照软件工程的方法确定所使用的开发模型,利用软件工程的相关知识,确定采用的过程模型是快速原型。快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发

20、者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。 由于种种原因,在需求分析阶段得到完全、一致、准确、合理的需求说明是很困难的,在获得一组基本需求说明后,就快速地使其“实现”,通过原型反馈,加深对系统的理解,并满足用户基本要求,使用户在试用过程中受到启发,对需求说明进行补充和精确化,消除不协调的系统需求,逐步确定各种需求,从而获得合理、协调一致、无歧义的、完整的、现实可行的需求说明。又把快速原型思想用到软件开发的其他阶段,向软件开发的全过程扩展。即先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便

21、及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统。快速原型的表示图如下: 原型表示图4.2系统的基本组成及使用运行该系统,进入主窗体界面,界面上有多个菜单选项,对这些菜单进行操作就能实现该系统的主要功能,该系统的主要窗体有主界面,添加/删除班级,添加/删除教师,添加/删除教室,添加/删除课程,添加教室,选择老师,查询课表,由主界面能进入各个窗体,并能进行相应的操作。排课系统的使用:1.先进行设置-课程设置 教师设置 班级设置 教室设置:在主界面的菜单上选择设置,再进入子菜单各项,对课程,教师,班级,教室分别进行添加,并设置它所对应的各项。2.项目-新建一门课程:选择一门课程,进行

22、教师,教室的添加,可以选择一个老师。3.排列-排列此老师:对老师进行课程排列。4.3系统功能的实现4.3.1储存数据形式该系统所有的数据都是以变量的形式分别存入dat文件中,然后从文件中的变量读取数据。代码列举如下:将这一排所有班的课程数据都读入一组变量doingctFor a1 = first_class To first_class + 3If ActiveForm.class1(a1).Text ThenOpen .kcb_doneclass_kcb & ActiveForm.class1(a1).Text & .dat For Input As #1 For b1 = 0 To zon

23、g - 1 Input #1, ww If doingct(b1) = Then doingct(b1) = ww form3_Text7(b1) = ww End If Next b1Close #1End IfNext a1将这个老师的课程数据也读入这组变量doingctOpen .kcb_doneteacher_kcb & ActiveFbo_t.Text & lesson.dat For Input As #1使用循环For b1 = 0 To zong - 1 Input #1, ww If doingct(b1) = Then doingct(b1) = ww form3_Text

24、7(b1) = ww End If Next b1Close #1以下将俩个(教师与班级)原始数据读入yuan,教室的yuan要在选中教室之后,写入教室之前读入读入班的If ActiveForm.class1(first_class).Text Then Open .kcb_doneclass_kcb & ActiveForm.class1(first_class).Text & .dat For Input As #1 For i = 0 To zong - 1 Input #1, ww class_form3_yuan1(i) = ww Next i CloseEnd If4.3.2添加删

25、除数据该系统设计到了多个数据的添加删除,对教师,教室,课程,班级添加删除。添加删除课程的界面如下:代码如下:Private Sub Command1_Click()If TextAll.Text = Empty Then MsgBox 请在文本框中输入文字, , 错误 /若没由输入,出现提示框Else Dim i As Integer For i = 0 To text_count.Caption - 1 Iteml.ListIndex = i If Iteml.Text = TextAll.Text Then MsgBox 不能重复!, , 警告! /输入课程重复,出现提示框 Exit Su

26、b End If Next i Open .datalessons.dat For Append As #4 /将输入的课程名称存入lessons.dat中 Dim D As String D = TextAll.Text Write #4, D Close #4Iteml.AddItem (D)TextAll.SetFocusSendKeys home+endtext_count.Caption = Iteml.ListCountOpen .datalesson_name & TextAll.Text & .dat For Output As #9Close #9Open .dataroom

27、_name & TextAll.Text & room.dat For Output As #1Close #1End IfEnd Sub添加删除教室,添加删除班级,添加删除教师都需要对时间表进行设置,并且可以将此课程放入不用排的课程类别中去。下面以添加删除教室的代码为例:Private Sub Command1_Click()If ItemC.Text Empty Then /判断文本框中内容是否为空 Dim i As Integer For i = 0 To text_count.Caption - 1 ClassN.ListIndex = i If ClassN.Text = ItemC

28、.Text Then MsgBox 不能重复!, , 警告! /判断是构添加教室名称重复 Exit Sub End If Next iOpen .dataclasses.dat For Append As #1 /将教室添加到classes.dat文件中去Dim M As StringM = ItemC.TextWrite #1, MClose #1Dim h As IntegerClassN.AddItem (ItemC.Text)text_count.Caption = ClassN.ListCountOpen .kcb_doneclass_kcb & ItemC.Text & .dat

29、For Output As #2For h = 0 To CInt(yangshi.text_zong.Text) - 1Write #2, Next hClose #2Open .kcb_doneclass_kcb & ItemC.Text & teacher.dat For Output As #2For h = 0 To CInt(yangshi.text_zong.Text) - 1Write #2, Next hClose #2Open .kcb_doneclass_kcb & ItemC.Text & room.dat For Output As #2For h = 0 To CI

30、nt(yangshi.text_zong.Text) - 1Write #2, Next hClose #2Open .kcb_doneclass_kcb & ItemC.Text & timeheng.dat For Output As #2 Close #2 Open .kcb_doneclass_kcb & ItemC.Text & timeshu.dat For Output As #2 Close #2ItemC.SetFocusSendKeys home+endElseMsgBox 请输入一个班级名称, , 错误End IfEnd SubPrivate Sub ClassN_cli

31、ck()numberl.Caption = 0Dim qq As String List_heng.Clear List_shu.Clear list_view.Clear Open .kcb_doneclass_kcb & ClassN.Text & timeheng.dat For Input As #1 Do Until EOF(1) Input #1, qq List_heng.AddItem (qq) Loop Close #1 Open .kcb_doneclass_kcb & ClassN.Text & timeshu.dat For Input As #1 Do Until E

32、OF(1) Input #1, qq List_shu.AddItem (qq) Loop Close #1 For i = 0 To List_heng.ListCount - 1 List_heng.ListIndex = i List_shu.ListIndex = i ee = 星期 & List_heng.Text & ,第 & List_shu.Text & 节 /从文本文件中取出课程时间 list_view.AddItem (ee) Next i End Sub4.3.3课表设置功能对课表样式进行设置,从下拉列表中选择所需要的课表节数或者天数,如下图代码如下:/判断设置的天数或者

33、节数是否在预定的范围之内Private Sub Command1_Click()If CInt(text_heng.Text) 7 Or CInt(text_shangwu.Text) 9 Or CInt(text_xiawu.Text) 9 Or CInt(text_wanshang.Text) 9 Then MsgBox (数据溢出!) Exit SubEnd If/将课表样式的相关数据保存在文件yangshi.dat中Open .datayangshi.dat For Output As #1 Dim w1 As String Dim w2 As String Dim w3 As Str

34、ing Dim w4 As String Dim w5 As String Dim w6 As String w1 = text_heng.Text w2 = text_shangwu.Text w3 = text_xiawu.Text w4 = text_wanshang.Text w5 = text_zong.Text w6 = Text_shu.Text Write #1, w1 Write #1, w2 Write #1, w3 Write #1, w4 Write #1, w5 Write #1, w6 Close #1完成了添加教室,教师,课程,以及设置好了课表样式后,要对课程进行

35、跟教师,教师的关联。可以在下拉菜单中选择课程,也可以添加删除教师和教室。如下图实现此功能的代码如下:/从文件中读出已有课程的名称,以下拉列表的形式显示出来Private Sub selectedS_Click()Open .datalesson_name & selectedS.Text & .dat For Input As #1Techlist.ClearDo Until EOF(1)Input #1, acIf ac Then Techlist.AddItem (ac)LoopClose #1Open .dataroom_name & selectedS.Text & room.dat

36、For Input As #2roomlist.ClearDo Until EOF(2)Input #2, abIf ab Then roomlist.AddItem (ab)LoopClose #2End Sub/将已关联的教师姓名显示出来Private Sub Command1_Click()If selectedS.Text Empty Thenaddteachers.Showaddteachers.sn.Caption = selectedS.TextMe.Hide/将关联数据存入文件中Private Sub selectedS_Click()Open .datalesson_name

37、 & selectedS.Text & .dat For Input As #1Techlist.ClearDo Until EOF(1)Input #1, acIf ac Then Techlist.AddItem (ac)LoopClose #1Open .dataroom_name & selectedS.Text & room.dat For Input As #2roomlist.ClearDo Until EOF(2)Input #2, abIf ab Then roomlist.AddItem (ab)LoopClose #2End Sub对老师与他所要教的班级进行关联,如下图部

38、分代码如下:Private Sub Form_Load()/设置主界面为可用状态MDIForm1.Enabled = True/打开存储班级的dat文件Open .dataclasses.dat For Input As #1 Do Until EOF(1) Input #1, addc_one If addc_one Then Combo1.AddItem (addc_one) LoopClose #1/打开存储教师的dat文件Open .dataroom_name & teachers.selectedS.Text & room.dat For Input As #2Dim RN As S

39、tringDim roomtype(99) As IntegerDim roomname(99) As Stringroomcount = 0/教师与之关联的班级的信息进行保存Private Sub save_Click() Open .datateacher_name & Mbo_t.Text & class & .dat For Output As #1 Dim TeacherClassCount As String For h = 0 To 47 TeacherClassCount = Me.class1(h).Text Write #1, TeacherClassCount Next

40、h Close #1 Open .datateacher_name & Mbo_t.Text & xueshi & .dat For Output As #1 Dim TeacherXueshi As String For h = 0 To 11 TeacherXueshi = Text_xueshi(h).Text Write #1, TeacherXueshi Next h Close #1 End Sub当进行完教师与班级的关联之后,就可以选择菜单排列下拉菜单排列此教师选项。排列可以将该教师加入课表中去。下一步就可以进行生成课表。4.3.4生成课表点击主界面的查询菜单,再下拉菜单中选择所

41、有课表,可以看到课表,课表左侧的有3个选项,班级,教师教室。选中其中一选项后,在具体选择一班级或者教室后者教师后,可以看到此班级,教师,或者教室的具体课表。如下3张图,分别以班级,教室,教师排列的课表。以班级进行排列的课表以教师进行排列的课表以教室进行排列的课表当选择班级时,显示对应的课表的代码如下:If SSTab1.Caption = 班级 ThenDim i As IntegerDim k As IntegerDim o As Integero = 0k = 0Open .kcb_doneclass_kcb & C.Text & .dat For Input As #1 /从文件读出现有

42、班级Dim class_lesson As StringDo Until EOF(1) Input #1, class_lesson kkk(k) = class_lesson k = k + 1 LoopClose #1/用循环实现课表排列 For k = (heng + 2 + 2) To (shu) * 3) * (heng + 2) + 2 Step (heng + 2) * 2 + (heng - 1) + 3 For i = k To k + (heng - 1) fg1.TextArray(i) = kkk(o) o = o + 1 Next i Next kk = 0o = 0Open .kcb_doneclass_kcb

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号