前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的vb程序设计论文主题范文,仅供参考,欢迎阅读并收藏。
1 前言
VB程序设计是采用面向对象的可视化操作界面,功能强大,应用广泛,而相对于其他面向对象的编程语言,如VC,Delphi等容易学习掌握。在程序设计中,为了缩短程序运行的时间,也为了方便、简化程序设计,就需要建立相应的过程,建立过程的目的之一就是减少重复代码,将公共代码放入过程中,并由其他事件过程调用它,调用过程有诸多技巧,经常根据程序编写的需要,按功能将程序分解成若干个相对独立的部分,然后对每个部分进行程序编写测试,这样就把每一个部分称之为过程。免费论文。
在全国VB等级考试中,要求学生掌握的过程主要有事件过程,Sub过程和Function过程。在过程调用中,Sub过程与Function过程相似,它们都是用来完成特定功能的独立程序代码,它们由一组符合VB语法的语句组成,但它们不同的是,Function过程可以返回一个值给调用程序。但有一点需要特别注意,那就是Sub过程与Function过程必须在事件过程或其他过程中有调用它们,否则过程代码将永远不会被执行。在过程的调用中,由于二者参数传递的机制相同,为便于描述,本文就以Sub过程(即子过程)为例,对过程的定义、调用及参数传递进行分析和说明。
2 VB过程的调用与分析
在调用过程时,主调过程的实参以一定的形式传递给被调过程的形参,完成实参与形参的配对结合,然后执行被调用的过程体即语句块。经被调过程处理后,并可得到处理的结果,但如果被调过程为Function过程时,可将所得结果返回给主调过程。VB中,参数的传递有传值和传址(引用)两种形式。免费论文。
2.1子过程的定义与调用
自定义子过程的格式:
[Public | Private] [ Static]Sub子过程名([形参表列] )
局部变量和常量定义
<语句块>
[Exit Sub]
[语句块]
End Sub
其中形参表列的每个参数的形式:[ByVal](变量名[()] [As类型,]……)
形参表列中的参数称为形参或哑元,只能是变量或数组名,不能是常量、函数、表达式等。在过程定义时,参数有传值和传址两种定义形式,带ByVal定义的参数为值传递,用于接收过程调用时实参传递过来的值,否则为地址(引用)传递,用于接收过程调用时实参传递过来的地址。
子过程的调用格式:
(1) Call过程名( [实参表列] )
(2) 过程名[实参表列]
子过程的调用是一条独立的调用语句,有上述(1)、(2)两种调用格式。其中:“实参表列”中的参数称为实参,实参的个数、数据类型都要与被调用过程的形参一一对应,实参可以是同类型的常量、变量、数组、表达式等。
2.2传值方式(ByVal)
VB中的传值方式,实参与形参在内存中占用不同的内存单元,当调用一个过程时,系统把实参的值复制给形参,当执行被调用的过程时,实参与形参并断开联系,过程的调用也将结束,形参的任何操作和变化都不会影响到实参。传值方式是“单向”的,形参的值不能返回给实参。在教学中,通过总结给出了如下按传值方式(ByVal)对过程调用的分析方法。
例1:编写两个数相加的过程,执行程序并输出结果。
Option Explicit
Public Sub Add(ByValx As Integer, ByVal y As Integer)
x =x + y : Print “x=” ;x
End Sub
Private Sub Command1_Click()
Dim a AsInteger , b As Integer
a = 20: b = 15: Call Add(a, b): Print “a=”; a;“b=”;b
End Sub
程序运行后得到的结果为:x=35a=20 b=15,通过该方法能简洁明了地得到正确结果,x的值由两个数相加所得的结果,而a,b两个数的值没有变化,分析参数传递过程的情况如图1所示,由于采用传值方式,实参和形参在内存中占用不同的内存单元,当调用过程Add时,系统把实参a, b的值复制一份给形参x和y,便断开实参与形参的联系,执行Add过程中的语句块后,形参x的值进行了变化即为两个数的和,但它的变化并不影响实参a和b,当返回到主调过程时,形参所占的内存被释放。
2.3传址方式(ByRef)
传址方式也称引用方式,是VB默认的参数传递方式,当调用一个过程时,系统将实参的地址传递给形参,实参与形参在内存中占用相同的存储单元,即过程接受的是实参变量的地址。因此在被调过程中对形参的任何操作都变成了对相应实参的操作,实参的值会随着形参的变化而改变,这种传递是“双向”的。下面来分析一下传址方式(ByRef)的一般情况,即形参与实参均为简单类型的变量。免费论文。
当形参是传址方式的简单类型变量,实参是同类型的简单变量时,系统采用传址方式实现虚实结合。下面采用传址方式,改编例1的程序,分析能否改变a,b的值。Add子过程修改如下,其主调过程与传值方式的主调过程相同。
Public Sub Add(ByRefx As Integer, ByRef y As Integer)
x =x + y : Print “x=” ;x
End Sub
执行程序,运行结果为:x=35 a=35 b=15。分析参数传递过程如图2所示,由于采用传址方式,实参和形参在内存中占用同一存储单元,当调用过程Add时,系统把实参a, b的地址分别传递给形参x和y,使得x与a是同一存储单元,y与b也是同一存储单元,在这种情况下可以把x与a看成是同一个变量,y与b也可看成是同一个变量,执行Add过程中的语句块后,形参x的值进行了改变,等同于实参a的值也进行了变化,调用结束后,返回主调过程,这样也就改变了a的值,由于y的值没有变化,所以b的值也就没有改变。
当前社会职业的多样化,学生就业的需求,高等教育中非计算机专业的计算机基础课程体系也应该有相应的改革,使得新的课程体系,可以提供给理科、工科、文科、艺术类等其他不同的专业进行计算机基础教育时更丰富的选择。使各个专业的毕业生将来在择业时在计算机教育上能够更贴近用人单位的要求。《非计算机专业计算机公共基础课的教学改革与实践》的主要的目标针对我校非计算机专业计算机公共基础课教学进行课程体系改革的研究与实践,与此相应的教学方法、教学内容、教学模式、实验教学、教材、计算机基础课程考核方法应同步改革。
二、我校的计算机基础教育新旧课程结构的比较
根据高等教育的发展,对我校非计算机专业的计算机基础教学提出了新的要求,相应的课程体系改革为:计算机基础分为大学计算机基础、计算机技术基础和计算机应用基础三个层次,为必修课或选修课。其中:理工类建议选择C语言程序设计、java语言程序设计等,文科类选择VB程序设计、web程序设计等;第四、五学期各专业可根据专业培养需要选择。同时为了使同学们能更好的掌握知识,将《C语言程序设计》《java语言程序设计》《VB程序设计》《web程序设计》《动漫设计》课程分为两个学期完成,称为《C语言程序设计(1)》《C语言程序设计(2)》,其他课程以此类推。
三、教改具体措施以及效果
(一)全程机房教学,增强动手能力
教学方法是为实现教学目标、完成教学任务所采取的措施。传统的三中心(教师、教材、课堂)教学方法既不适应社会发展的需求,也不符合计算机教育的特色,必须改革。我校的《大学计算机基础》由原来的课堂教学,改为全程机房教学,使同学们在边听教师讲解的同时,可以直接上机进行操作,在学习理论知识的同时,可以立刻得到对计算机操作的感性认识。通过三个学期的教改实践,完善了全程机房教学模式,对同学们使用计算机的动手能力有很大的提高。
(二)配套教学软件,提高学习能力
本课程组为《大学计算机基础》课程开发了一个《大学计算机基础辅导练习系统》,该系统分为抽题模块、答题模块、判卷模块,本系统为C/S结构,当管理员在服务器端设置好本次模拟练习的题型比例后,系统自动生成一套模拟试卷;所有的同学们可以在客户端进行答题,当答卷完毕时,由服务器端自动进行判卷并将本次练习的结果反馈给同学们;该系统可以提供给学习本课程的同学们经过教师的指导后,在课堂内外自行进行练习。以便同学们完成练习后,自己可以评判自身的学习程度,并在下一阶段的课内外学习中调整自己的学习状态。本系统已经提供给2005级大一学生进行了初步使用,体现了较好的作用。
(三)开发网络平台,整合教学资源
本课程组在调研了周边各高校的计算机基础教育的情况,开发了一个本校的《计算机基础教育中心教学平台》,在本教学平台上,提供了基础部课程的相关介绍,教学信息的,教学资料的下载等等功能,可以提供给任课教师所任课程重点难点详细介绍。对课堂教学起到了很好的补充作用,方便了同学们在课余时间继续学习计算机基础课程。在本课题的后续时间里,拟设计开发计算机基础教学课程的基于校园网教辅系统,使得同学们可以开展课余时间自由学习。该平台具有以下优点:①发挥以计算机为基础的现代多种媒体的作用,使教学信息组织超文本化。多媒体的超文本特性可实现教学信息最有效的组织与管理。②在培养高级认知能力的场合中,因特网和校园网是协作学习的主要形式,实现了协作式教学。③教学过程的生动性是多媒体计算机的强大魅力之所在。在教学中可以同样重视教与学这两个部分。强调学生的参与意识,教与学成为两个相辅相成的部分。调动学生学习的主动性,培养学生的“发现式”学习能力,使学生不仅学会,而且会学。④在短时间里要获得大量的信息与知识,这在传统的教学模式中是可望不可及的,而以多媒体网络作为传播信息的渠道,使教师与学生、学生与学生之间,可以同时传播大量的信息,大大提高教学效率。
(四)编制多媒体课件,增加课堂吸引力
根据我校计算机基础教学的实际情况,我们重新编制了《大学计算机基础》《计算机程序设计A》《计算机程序设计B》的电子课件,使之更符合我校的实际教学情况,更符合浙江省计算机等级考试的要求。其中《计算机程序设计A》课件获得中国计量学院首届多媒体课件竞赛二等奖。改编后的课件具有以下优点:界面清晰、美观,结构清晰,例题丰富、并附有书本外的课后习题。
(五)出版教辅材料,同步教学改革
根据高等教育中对计算机基础教学提出的新要求,和结合浙江省计算机等级考试的要求,本课题组编制了《C语言程序设计实验与习题指导》面向21世纪高等院校计算机系列规划教材,该教材由“科学出版社”出版,并于2005~2006学年第二学期开始投入我校、浙江工业大学等高校使用;根据我校学生应考浙江省计算机等级考试的需要,本课题组编制了《C语言辅导与讲义》、《VB程序设计辅导与讲义》,并与2005~2006学年第一学期开始投入使用,学生们反映良好。
(六)开发考试系统,改革测试手段
计算机基础课程是一门应用技术学科,主要凭试卷来检测大学生的学习效果,并不能完全反映出学生的实际能力。而且试题类型目前多是测试学生对所学知识是否了解,不是考核学生解决问题的能力,并没有挣脱应试教育的樊笼,严重影响了创新型人才的培养。现在这种考试方法,使得学生为了考试而学习,不能提高学生学习的积极性,不能发挥学生的创造力,这种考试方法与素质教育大相径庭。本课题组开发了《大学计算机基础上机考试系统》,本系统具有抽题功能、答题功能、判卷功能、存储功能、输出功能,对其中的实践部分从以前的“纸上谈兵”改为“上机实战”。其中的判卷功能、存储功能、输出功能也使得该课程实现无纸化考试,该考试系统于2004~2005学年第二学期开始投入使用。新的考核方法给了学生一个发挥才能的空间,变被动的死记硬背为灵活的实践操作,使学生成为知识的主人。
四、实际作用与效果
通过对非计算机专业计算机公共基础课的教学改革与实践,对提高教学质量,效果明显。我校非计算机专业学生在学习C语言和准备迎接浙江省计算机二级考试中,选择了我校自行编制的《C语言程序设计辅导与讲义》《VB程序设计辅导与讲义》,取得了较好的成绩。 在该完成该课题的过程中,陆慧娟老师等于2005年11月在“首届大学计算机基础课程报告论坛”发表了《多科性大学计算机基础教学课程体系的改革与实践》教改论文,该文以本校的计算机基础教学为背景,探讨了非计算机专业计算机基础教学课程体系的设置、教学方法的改进和师资队伍建设等问题。黄俊老师等于2005年11月在“首届大学计算机基础课程报告论坛”发表了《配对编程教学模式在程序设计课程教学中的探索与实践》教改论文,配对编程方法是两学生并排在一台计算机上工作,协同完成一个设计、代码编写和调试的新的程序设计学习方法,该文对配对编程教学模式在计算机基础课程教学的应用进行了探索与实践,提出了配对编程在程序设计基础教学过程中存在的问题和解决的办法。
【关键词】科研;信息;管理;系统
高校作为教学科研单位,其学术氛围十分浓厚,科研工作取得了相当大的成绩,立项的国家级、省级课题数量、发表的论文数量以及专题讲座数量等大幅度提高。为了科学的管理、查询这些课题、论文和讲座等信息,很有必要设计、开发一款适合高校的科研管理系统,以提升学校的科学管理水平。
本文所提到的科研信息管理系统将围绕学校所立项的课题、已发表的论文、已开展的讲座等信息,根据年份、院系、课题(论文)类别、姓名及职称等条件进行数据查询,并以Excel的文件格式呈现查询结果,以利于用户对数据作进一步的处理。系统将具备一般数据库管理系统所具有的功能,设计了便于用户信息录入的功能,信息可分散录入,分散录入完成后再集中导入的方式进行,也可以将Excel文件格式的信息导入系统中,大大减轻用户信息录入的负担,使软件真正成为用户的好帮手。
一、系统总体设计框架
从图上可以看出,系统总体上包含了追加信息、插入信息等10个程序模块。其中清除重复信息、以Excel文件格式导入、导出信息最具特色,可以避免数据库的冗余,便于用户对信息作进一步的操作,这也是本文要着重介绍的程序片段。
二、数据库字段设计(仅以课题信息为例)
课题信息、论文信息和讲座信息分别用三个数据文件保存。课题信息字段如表一所示。
表一
数据字段共有14项,各校可根据本校的实际情况适当增加或减少,从我校实际使用经验来看,第6、9项可以删除。
三、用户界面设计
(一)初始化界面设计[1],如图一所示。
图一 初始化界面
该界面是我校科研信息管理系统实际使用界面,仅供参考。本人比较喜欢直观的浏览到某项主要信息,然后单击它再看到相应的其它更多的信息。
(二)设置字段控件,如表二所示。
表二
均为常用控件,其中第1项就是用来显示课题名称的。
四、部分源代码设计(以VB语言程序设计为例)
(一)代码模块中的程序[2]
创建自定义数据类型stu,并声明xit为该类型。
(二)窗体模块全程声明段中的程序
该模块中的程序用于初始化系统、保存信息和显示信息等。初始化系统时可以先创建一个随机文件,如:
Open "keyglkt.dbf" For Random As #1 Len = Len(xit)。
保存信息和显示信息程序代码被多次重复调用,所以应在全程声明段中创建。
(三)清除重复信息程序
用户在输入或导入科研信息时,很有可能信息会重复操作。为了保证数据的唯一性,有必要设计清除重复信息程序。设计思想是先为重复出现的信息将其清除标志代码设置为1,再全部删除之。程序如下:
(四)批量导入Excel格式信息程序[3]
当用户的原始数据是以Excel文件格式保存时,为了不做重复的工作,可用此项功能。先弹出一个打开文件对话框,用户选择一个要导入的Excel文件,信息将自动添加到最后面,程序如下:
(五)导出查询信息程序[3]
当用户需要对课题信息作进一步处理时,如排序、打印等,可以将信息以Excel文件格式导出,再用Excel对信息进行处理,非常方便。程序如下:
至此,主要程序模块介绍完毕。目前,该系统正在我校试用,效果良好。
参考文献:
[1]刘炳文.Visual Basic 程序设计-基础篇[M].北京:人民邮电出版社,1998:169-216.
论文摘要:现存的非计算机专业编程语言的教学弊端种种,本文提出了一种新的思路。即:使用VBScript语言在记事本中编写程序,在IE浏览器环境下来运行之,且通过实例论证该方法的实用性,使其真正为每个用户服务。
0引言
说起我国非计算机专业编程语言教学的走向,就不得不提到我国高等学校计算机基础教育发展的历史。我国的计算机基础教育始于20世纪80年代初期,从80年代初以来,高校的计算机基础教育大致上经历了三个发展阶段:80年代是起步阶段,90年代是规范阶段,进入21世纪,开始了第三阶段,即深化提高阶段。
计算机基础教育是指面向大学中非计算机专业学生的计算机教育,这部分学生约占全体大学生的95%以上。非计算机专业中进行计算机教育的目的是培养大批能使用计算机的人才,而不同于计算机专业的培养计划,可以说他们是计算机应用人才,学习计算机的目的完全为了应用,计算机只是作为一种现代工具来掌握,而不能当做纯理论的课程来学习。明确了这个培养目标,那就可以有的放矢。
目前各高校非计算机专业编程语言教学的现状是:学时是有限的,学习内容是繁杂的,由此对学生产生的学习压力不仅苦不堪言,而现实更是多数非计算机专业的学生在毕业后,对于大学期间学习的编程语言大部分是忘记,若想拾起来重新使用,也不是一件易事。如何解决非计算机专业编程语言教学和实际使用二者之间存在的矛盾这个问题,是我们每个从事高等计算机基础教育的老师不得不思考的问题。
1非计算机专业编程语言教学的现状
对于现存的高等院校非计算机专业编程语言教学的弊端,我们做以下几点分析说明:
(1)非计算机专业编程语言教学培养目标定位有误
对于非计算机专业学生进行的编程语言教学,应与计算机专业的学生有所不同。计算机专业培养的是计算机专门人才,将来从事信息技术理论研究、科研教学、系统开发等专业性的工作,而在非计算机专业中进行编程语言教学的目的是培养大批能使用计算机的新型人才,他们需要达到的程度仅仅是使用计算机这个工具。作为高等院校非计算机专业编程语言教学计划的制定者,对于专业和非专业要达到的目标一定要明确,否则有可能南辕北辙。
(2)非计算机专业的编程语言教学设置好大喜功
经过作者在国内各大高校做的调查,几乎各大高校对于非计算机专业编程语言教学一般从大学一年级就开始,陆续开有VB、C、FoxPro、SQL、C++、PB、Delphi、Java等,有的院校在高年级非计算机专业还开有计算机编程语言课程,美名其曰:多学点东西,增加就业砝码。
诚然多学点东西是不会有什么害处,但是不知道说这个话的人有没有想过:对于非计算机专业的学生来说,能有多少比例的学生在真正学这些开设的计算机编程语言课程,更多的恐怕是在各种考试之间疲于应付。当大家手捧毕业证书的时候,手拿四年所修的学分成绩单的时候,当大家面试应聘的时候,留在大家脑海中的计算机编程语言可能屈指可数,可以炫耀的可能仅仅是修过的计算机课程的数量。
作为从事高等教育的老师,我们不能为了这些表面的假象自欺欺人。如何在有限的学时内进行优化选择,使学生学到最需要的知识。当然不仅是指当前最需要,而且也包括今后踏上工作岗位,对于需要用到的计算机编程语言知识的时候也可以信手拈来,不用再重新学过。因此,对于非计算机专业的学生,我们应该敢于摒弃学习那些当前为了考试,今后根本用不多,仅仅是为了增加学分的计算机编程课程。
(3)系统本身庞大,掌握的知识有限,学不能使其精
对于现存的计算机程序设计的任何一门语言,如VB、VisualFox、SQL等,系统都是很庞大的。以一个简单的例子,VB为例来说明,VB采用的事件驱动的编程机制,提供了动态数据交换(DDE)和对象链接与嵌入(OLE)等技术。在数据库方面,VB具有很强的数据库管理功能,不仅可以管理MSAccess格式的数据库,还能访问其他外部数据库,如FoxPro、Paradox等格式的数据库。另外,VB还提供了开放式数据连接(ODBC)功能。
对于VB强大功能,我相信学过VB的用户,都是普遍承认的,这个不需要多说,但是对于这么大的一个系统,如何能通过简简单单的几个学时就能够完全掌握呢?即使说你上课的时候多么专心地听讲,多么用功地做笔记,都是无济于事的,非要通过系统地做上几个项目才能掌握一二,更不要说是对于仅仅是通过教材上的几个简单例子学习的学生了,这几乎是不太可能的事情。那么有没有学习起来比较容易上手的工具了,答案是肯定的。
(4)快速记忆,快速忘记
在高等院校里不排除有些用功的学生,学习每门功课都是用功之极,当然也不排除用功是为了在考试中拿个高分,争取奖学金的可能性存在。一个学期,说的更多一点一年对一门语言的学习,在短时间之内掌握某一项技能之后,一旦长时间不使用,肯定会生疏,这是人类不能抗拒的生理现象。而且目前高校里的学生学习的现状是:平时基本不看,考前拼命熬夜苦读,这种短时间内强迫大脑记忆的东西,肯定是经不起时间的考验的,尤其是在一个人不愿意学习这门功课的时候,这是自然规律。
假设你当时学会了VB,而且在大学毕业参加工作的时候也没有忘记,是不是说你就能很好地做自己的事情了呢?答案也是否定的,因为你掌握的是VB,而在工作单位的PC机上或许并没有安装VB的运行环境,这样是不是就为你的使用又出了一道难题。
有没有一劳永逸的工具,只需要简单的学习,而且不论在安装或者未安装VB运行环境的PC机上都能很好的完成自己想做的工作。通过作者亲身实践,本文中提倡的这个方法就可以达到这样的功效。
(5)支持知识产权保护
如何做才能既使用正版,又不卷入知识产权的纠纷中呢,这里我们提倡在高校中推广,使用VBScript脚本语言在记事本环境下编程,在IE浏览器中运行,就可以达到这样双重效果。
(6)程序交流困难
一个用户编写的程序如果仅仅是自己使用,这个时候程序的使用有一定的局限性,如果能够拿出去跟别的用户交流,就具有了更大的价值。假设有两个用户A和B,A在VB环境下编写了一段程序,在自己的机器上可以正常运行,当A把这段程序拷贝到B的机器上和B交流的时候,B机器上恰好没有安装VB环境,此时对于二者的交流可能存在障碍。
针对上述,我国高校计算机基础教育体制中存在的诸多问题,作者提出了一种新的思路。
对于一台安装了操作系统(WindowsXP、Windows2000Professional、WindowsME、Win98等)的PC机来说,拥有IE浏览器和记事本是再简单不过的事情,作者推荐给大家的就是使用VBScript语言来完成自己想要做的工作。下面我们通过例子来做进一步的说明,以此来演示如何更好的结合二者,使之发挥作用。
在数学或工程应用中,常常存在着大量的数值计算和数值分析问题,如:复合梯形公式、复合Simpson公式、Romberg求积公式等。通过编写简单的程序,就可以让计算机代替人类来做一些复杂的计算任务,在这里以数值计算中一个常见的问题来说明一下如何使用提倡的方法完成计算任务,这里以复合Simpson公式的计算为例。程序是通过输入给定的三个初始值:a、b和n,如图1所示。图2程序源代码
从上述源代码中可以看出:第一,VBScript使用的仅仅是VB中简单的程序设计思想的三种结构:顺序、选择和循环,不涉及复杂的结构,对于非计算机专业的用户来说是非常容易的事情。第二,在程序开始写了一个自定义的函数,在后面对该函数进行了调用,可以达到程序复用的作用。(2)将该文件保存为一个html格式的文件,如:a.html。
(3)运行该程序只需要双击该文件图标就可以在IE浏览器环境下运行,在指定的文本框中输入符合计算要求的数据点击确定就可以得到计算的结果,如图3和图4所示。
图4运行结果
3小结
通过上述例子我们可以得出以下结论:
(1)在记事本环境下,仅仅使用了一些简单的VBScript脚本语句就可以完成复杂的数值计算任务。VBScript是介于HTML语言和VisualBasic、Java等高级语言之间的一种脚本语言,它接近于高级语言的大部分功能,但却比高级语言简单易学。
(2)在运行该程序时,不像其他的程序设计语言需要经过编译或解释等步骤,以此来生成目标文件、连接文件以及可执行文件等,使用VBScript在记事本中编写的程序需要做的工作仅仅是双击该文件名,而不会生成其他的中间文件,这样就大大节省了系统的存储空间。
(3)在运行该程序时,对运行环境没有提出特别的要求,仅仅是需要一个IE浏览器。这对于拥有一台PC机的用户是轻而易举的事情。
(4)当你还在费尽心思考虑程序的在多台机器之间传递的时候,使用在此提倡的方法无需有这方面的顾虑。对于在任何一台PC机上编写的.html文件,你可以轻松在多台机器上拷贝和运行,而无需进行额外的路径配置等工作。
当然,我们提倡的这种方法并不是十全十美,如:对于需要大量使用界面图形来处理的问题,或者需要使用数据库的问题,该方法就有所欠缺,但是该方法对于仅仅是为了自己方便,进行一些数据处理来说,是再合适不过的了。
全社会的计算机普及,为大学的非计算机编程教育创造了良好的氛围和外部环境,使广大非专业人员学习和使用计算机编程语言变得更加容易,如何使学有所用,使高等教育成为社会发展的推动力量,是高校非计算机专业编程教学面临的严重的挑战,这也是本文的初衷。
参考文献:
[1]施吉林,刘淑珍,陈桂芝.计算机数值方法[M].高等教育出版社.
关键词:开题报告数学
一、选题依据(背景与意义、国内外研究现状与发展趋势)
在某种程度上,数学的整个对象就是在原来似乎混沌占统治地位的地方创造秩序,从无序和混沌之中抽取出结构和不变量。所以,把无序的数字转化为有序的模型,这才是数学家乃至所有数学爱好者所追求的。
平方数,也叫完全平方数或正方形数,是可以写成整数的二次方的数。它是一种很“完美”的数,有关于它有许多很有序的规律,至今为止,已经有很多的数学爱好者乐此不疲地去研究它,而且也得出了不少有趣而且有用的结论。至今为止,平方数的一些基本的性质。例如,性质1:完全平方数的末位数只能是0,1,4,5,6,9。性质2:奇数的平方的个位数字为奇数,十位数字为偶数。等等。
还有很多著名的数学家长久以来乐此不疲地研究平方数,也把它的有关知识作为一种工具用于证明、计算其他定理、命题。例如,意大利著名的数学家Lagrange,他在整数论上也有有关平方数的Lagrange定理:任何一个正整数都可写成四个平方数之和。并且在证明中他运用了欧拉恒等式:若則
此类例子还有很多,在此不一一列举了。
本论文是对一道有关平方数的竞赛题的解法与推广,我的目标是从无序的题目中找出有序的、有规律的结果,从而体会数学的规律美。过程主要是猜想——计算机辅助验证——数学方法证明。
猜想在一般的观念里,似乎是具有一定的偶然性,但实际上,猜想要靠长期积累下来的对数学的直觉和经验形成一种敏锐的洞察力和技巧。这是一个长期的过程。
数学题不一定单纯地做出答案就行了,很多情况下还可以更深入地研究,挖掘出它的背景,进行再推广、再发散。很多看似简单的数学题其背后的内容却是十分丰富的,需要有心人去探讨研究,这样才能真正深刻的理解。有些计算量相当大的数学题应用笔算和一般的计算器已经不能满足需求,这时我们要借助计算机,利用程序设计来解。现在我就要解一道有关于平方数的竞赛题,由于计算量相当的大,笔算和一般的计算器已经不能满足需求,所以我通过在VisualBasic6.0环境下对算法进行分析和验证,验证结论的正确性。
那些最初表现为令人怀疑的东西,只有经过某种思维过程后,再通过起批准和保证作用的证明,才能最終表现为无可置疑的真理。证明通过揭示事物的核心而增强理解,是数学的力量。
二、研究目标与主要内容(含论文提纲)
研究目标:本论文主要研究型如平方数的结构,我们知道,,,,等关于的结果是无序的,而对于,先关于n代入几个数,例如,,,,……,由此猜想:,并且这个结果可以用数学归纳法证明,所以是有序的。再进一步可得,关于的输出结果也是有序的。在竞赛数学中经常出现有关平方数的一些问题,因此系统研究型如平方数,当取什么值时,其结果是有序的,既有理论价值又有应用价值。
论文提纲:首先,寻找可能的取值。当n取比较小的值时,可以采用笔算的方法来计算结果、找寻规律,但当n取比较大的值时,发现计算量相当大,用笔算和一般的计算器已经远远不能满足需求,这时就会想到借助计算机辅助计算,利用程序设计来解。我采用的是VisualBasic(简称VB)这种常见的程序设计语言。一种语言就是一种思想。经过计算发现当取任意正整数,而时,都可以产生有序的结果。
找规律:当时,;
当时,;
当时,;
当时,;
当时,;
当时,;
当时,;
当时,;
当时,……
由此可猜想得出:的一个有序的结果。同样道理,、也可得出有序的结果,也可发现、、、、的结果没有一定的规律可寻。猜想在一般的观念里,似乎是具有一定的偶然性,但实际上,猜想要靠长期积累下来的对数学的直觉和经验形成一种敏锐的洞察力和技巧。这是一个长期的过程。
然后,利用计算机辅助计算验证预期结果对某些初值的正确性。
最后,利用数学方法给出严谨的论证,而我所采用的论证方法是简单易懂的数学归纳法。
三、拟采取的研究方法、研究手段及技术路线、实验方案等
利用文献研究法与理论研究法,通过图书馆、书店、网络等途径对平方数相关各方面的资料进行查阅、研究、归纳、总结。理论与实践研究法相结合。先是通过对一些简单的n值进行观察,再用笔算和计算器进行初步计算,根据已得的结果,推广到极大的n值,进行理论上的猜想,然后运用计算机辅助(VisualBasic)这种常见的程序设计语言计算验证,最后证明猜想的结果。
四、研究的整体方案与工作进度安排(内容、步骤、时间)
进度安排:
序号时间内容
112.1-2.14明确选题并完成文献综述和外文资料翻译
22.14-2.28完成开题报告并举行开题报告会
33.1-3.20完成计算、实验和绘图,并完成论文的引言部分
43.20-3.30完成论文的初稿
53.30-4.20指导教师阅读审看并修改,完成终稿
64.20-4.30论文答辩,学生材料上交教务科
75.1-5.15教务科材料汇总整理上
五、研究的预期目标及主要特点
预期目标:在某种程度上,数学的整个对象就是在原来似乎混沌占统治地位的地方创造秩序,从无序和混沌之中抽取出结构和不变量。所以,把无序的数字转化为有序的模型,这才是数学家乃至所有数学爱好者所追求的。本论文就是研究一种平方数,从一种无序的结果转化为有序的、有规律的结果。
主要特点:进行大胆的猜想,运用计算机辅助计算帮助验证结果,得出的结论很有规律性。
六、指导教师意见:
指导教师签名:
关键词:项目驱动;实践教学;面向对象;生命周期开发方法
中图分类号:G642文献标识码:B
文章编号:1672-5913(2007)08-0025-03
1 引言
在开发类程序设计课程中,最适合初学者学习的便是Visual Basic(简称VB),它是第一个可视化编程开发工具。就VB本身的特点而言,它概念多、实践性强、涉及面广,既像其他程序语言一样有其自身的语法和编程思维,又与传统的面向过程的驱动语言有所不同,最特别的在于它采取的是面向对象的事件驱动编程。传统的程序语言教学通常以知识点的层次递进为体系。对于VB程序设计而言也是这样,它就是按照VB代码基础、程序基本结构、数组、过程、控件、文件、数据库等知识点层次递进方式来展开教学的。在学习每个知识点时,用一定的例题对知识点进行练习(其他开发类课程,例如PowerBuilder、Delphi等也有类似特点)。这种层次递进的学习体系总体来说是符合人的认知规律的,但在VB的教学过程中,我们发现确实存在一些缺陷:
1.1 对知识应用缺乏整体感
在层次递进的知识学习过程中,无论是理论知识的学习还是实际应用,通常都是面向局部的,这很容易使学生缺乏整体感。就像描绘一幅人的肖像一样,如果只顾描绘各个部位,没有整体的协调和统一,就无法完成一幅令人满意的作品。如果按部就班地学习VB程序设计的各个知识点,而没有依托一个完整的实际项目,就会使知识点的学习支离破碎,不成体系,学完以后也容易遗忘。
1.2 缺乏实际项目的开发体会
在层次递进的知识学习过程中,强调的是各个局部知识的理解和掌握,而忽视了这些知识的综合利用,忽视了学生利用知识描述和解决实际问题能力的培养。试想,如果医学院的学生只学习理论知识,而不去临床诊断,不去学习如何综合地考察一个病人,那他是做不了医生的。同样,学习VB程序设计,如果只停留在知识点的学习和例题的练习上,而不去经过实际项目开发的历练和体验,就无法直接感受所学知识在实际工作中的作用和地位。这种学习还会抑制学生的学习兴趣,影响学习效果。
2 项目驱动教学法
项目驱动教学法是指在教学中引入若干个项目案例,按照实际软件开发中的方法与步骤展开教学。
软件项目开发的主要方法有:传统的生命周期的开发方法、面向对象的开发方法、可视化的开发方法等。因为VB本身是面向对象和可视化开发的典型工具,学生通过整个课程的学习会逐步认识面向对象和可视化开发方法的主要特征,所以我们采用的项目驱动教学法还是选择了学生比较容易接受的传统生命周期软件开发方法作为教学设计的主线,其间再贯穿介绍面向对象和可视化的软件开发方法。
传统的生命周期开发方法把软件开发周期划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。各个阶段的工作按自上而下,从抽象到具体的顺序进行,传统的生命周期开发方法可以用如图1所示的瀑布模型来模拟。
3 “项目驱动”教学模式的特点
3.1 创造项目实践环境
在“项目驱动”教学过程中,学生在导师的带领下,一边进行专业理论知识的学习,一边进行实际的应用项目开发。学生一直处在能主动学习、自主学习、相互学习、积极沟通、不断实践的学习环境中。学生在实际软件项目的驱动下,带着问题学习理论知识和开发技术,学习导师在项目实践中的思维能力、问题求解能力和处理复杂任务的能力。通过这个教学过程,学生的专业技能、开发素养将随着问题的求解和任务的完成得到整体提升。
3.2 教师成为导师
基于“项目驱动”的教学把知识转化为理论和技能相结合的教学方式,在这种教学方式下,教师不再是知识和理论的简单灌输者,而是发挥着导师的作用,循序渐进地引导学生在实践中学习理论,在实践中消化理论,应用理论,在实践中掌握知识。在工作室中,学生按项目被分成若干小组,各小组的活动在导师的指导和监控下进行。在项目驱动教学中,教师首先扮演着“信息库”的作用,学生接受项目后,教师除随时给学生补充必要的理论和技能知识信息外。更重要的是在整个项目开发过程中,适时启发、解决学生在学习和实践过程中存在的各种个体问题,激发他们的学习和创造热情,引导学生尽快进入角色和状态。帮助学生明确项目的目标,掌握理解项目开发的总体思路和全部过程。
3.3 强调能力的培养
基于“项目驱动”教学的主要目的是加强学生软件应用开发能力的培养。通常,实践性知识是一种隐性知识,我们倡导“项目驱动”教学正是希望通过“项目驱动”教学过程中的诸项要素和功能,使得一些隐性的思维过程,特别是隐藏在软件开发过程中的一些核心要素和策略显性化,而这些往往正是软件开发核心能力的重要体现。通过软件工作室的学习,学生将逐步具备软件应用开发的各种基本能力,系统维护和配置能力,团队合作精神,使我们培养的学生真正实现与社会无缝连接。
4 实施“项目驱动”教学的可行性
4.1 开放的实验环境――软件工作室
在传统实验教学中,基本上是以老师为主体,学生按照老师规定的实验要求和步骤被动地接受知识和技能。而在项目驱动的教学环境――软件工作室里,学生在学习知识、技能和实施项目计划的过程中,能够有更独立、更自由的广阔空间。在工作室中,所有的知识讲座、技术交流、专题讨论、领域知识学习等各项教学活动都是开放的,学生允许跨项目组、跨工作室学习,学生随时可以走上讲台阐述自己的观点,发表自己的感想,交流自己的经验,寻求需要的帮助。在整个学习和开发的过程中,团队发挥着重要的作用。在这里,老师传授知识的唯一作用在淡化,而更多的是引导,培育学生学习新知识的能力。对学生出现的问题通常并不是直接告诉学生,而是提供解决问题的途径,让学生利用团队的力量自己去解决问题。在这里,学生的学习积极性得到了充分的释放和发挥,学生的学习个性得到了有效的保护和张扬,学生的团队合作精神得到了很好的培育和加强。
4.2 丰富的网络资源
软件工作室的每一台计算机都已接入了局域网且全部与校园网相连,这为学生提供了很好的网络学习平台。在学院网站上提供了各种丰富的网络学习资源,包括网络课程、电子教案、实验指导、在线测试以及历年来软件学院各届毕业生完成的近120项应用软件系统等,这些资源面向工作室的同学全部开放。同时,导师非常注重教育学生如何利用网络学习解决问题的新知识,寻找解决问题的新途径,求助解决问题的新方法。
4.3 雄厚的师资力量
项目驱动教学对教师的综合素质提出了更高的要求。作为工作室的导师,不但要有能力独立地从事相关教学科研工作,还要能够组织和带领学生对外承接项目,进行真刀真枪的项目开发,开展对外社会服务,并以项目为主线组织专业教学。为了实施项目驱动教学法,学院除严把进人关外,(所进人员必须是硕士学历以上且满足三能要求,即能教学,能科研,能开发)还在全院开展了学历学位提升、进修访问、校企合作、各种学术讲座和技术交流,以及经常性的教研、科研和读书等活动,以不断提高导师的教学、科研和应用开发能力。另外,学院还聘请了一批著名软件企业的高级专家为学院的兼职教师,内外教师的互动,不仅为工作室的教学增添了活力,也极大的加强了学院面向应用的总体实力。
5 “项目驱动”教学实施过程
5.1 项目设计
导师根据教学进度和教学计划,选择难度适中的项目,将该项目分成若干相对独立的子项目分配给学生,并围绕项目准备好相关的理论知识、领域知识和技术知识等。项目一般来源于教师的纵、横向课题,学院承接的对外服务或经典教学项目等。
5.2 实施的形式
学生在经过两年的基础知识和专业知识学习后,三年级进入软件工作室进行为期一年的学习与开发工作。在工作室中,除少部分涉及开发的公共理论知识和工程知识由导师统一讲授外,其他学习将围绕项目以自主学习、协作学习,面授辅导、答疑、小组研讨、调查研究、技术交流等多种形式组成,具体实施根据教学内容和学生的认知情况灵活掌握。目的在于利用各种信息技术提高教学质量、教学效率,培养学生的自主学习能力、研究能力、创造性思维能力和创造性实践能力。自主学习不是由导师直接告诉学生应当如何去解决面临的问题,而是由导师向学生提供解决该问题的有关线索(例如需要搜集哪一类资料、从何处获取有关的信息资料以及现实中专家解决类似问题的探索过程等)。如果学生在学习过程中遇到问题,教会学生如何通过电话、电子邮件、BBS和在线讨论等方式与同学、导师甚至社会进行探讨和交流。特别要教会学生如何到浩瀚的Internet网络中去搜索、查询自己需要的资料,不断提高自己的程序设计能力。协作学习是在个人自主学习的基础上进行小组协商、交流、讨论等,并通过不同观点的交锋,补充、修正、加深每个学生对当前问题的理解。通过这种合作和沟通,学生可以看到问题的不同侧面和解决途径,从而对知识产生新的洞察。要特别提倡启发和诱导学生自己去发现规律,自己去纠正错误和补充不足,逐步培养学生自主学习自我学习的的能力和习惯。
5.3 成绩的评定
学习成绩评定是工作室学习的重要环节,我们要求成绩评定应具有激励、反馈、导向三大功能,成绩评定应有利于学生的进一步发展。因此,相应的成绩评定体系在评定内容上应该重视学生解决实际问题的能力、创新能力、实践和动手能力的体现,应该重视学生良好的心理素质、科学精神、认真负责的工作态度、积极向上的学习热情等方面的体现。对于学生中出现的闪光点,导师更应积极评价并加以肯定。
在工作室中,成绩评定采用项目答辩的方式进行。首先,每个项目小组推荐一名学生在工作室里进行主答辩,并演示作品,其他学生进行补充,导师和其他小组的同学可以随时向当前正在答辩的项目组的任一学生进行提问,最后结合项目的难度和答辩情况给每个项目和学生做出最终的考核成绩。
6 总结
基于“项目驱动”的教学模式在江西师范大学软件学院已经实施三年了,实践表明,这种以项目为主线,以学生为主体,以导师为核心,以工作室为环境的教学模式有利于培养学生的软件应用开发能力,有利于培养学生的创新能力和实践动手能力,有利于培养学生的团队合作精神,有利于加强学生的个性化教育和极大提高学生自主学习、自我学习、相互学习的学习热情。今后,我们将进一步加强“项目驱动”教学中课程体系及其内在关系的研究、进一步加强“项目驱动”教学与毕业设计衔接以及与导师科研和产品研发的关联研究,进一步加强“项目驱动”教学的网络教学平台搭建及有效利用的研究,以使这项教学改革不断完善和成熟。
参考文献:
[1] 雷刚,黄明和,尹红.培养创造应用型软件人才的几点建议[J].全国高等院校计算机基础教育研究会优秀论文集,2004,(1):45-48,2004.8.
[2] 黄明和,雷刚,郭斌等.面向应用的软件工程专业教学模式改革研究与实践[J].全国高等院校计算机基础教育研究会优秀论文集, 2006,(1):687-691,2006.7.
[3] 黄晓玲,段凤云,赵建科.基于“项目目标法”的实践教学[J].实验室研究与探索,2006,25,(3):280-286.
[4] 曾煌兴,周晓宏.项目开发教学法的教学设计策略及其应用[J].职教论坛,2005,(6):55-57.
作者简介:
柯胜男(1981-),女,工程硕士,助教,主要研究方向为软件工程理论与技术、面向对象技术等。
黄明和(1955-),男,硕士生导师,教授,主要研究方向为面向对象技术、网络计算技术等。
1.1 课题的提出 1
1.2 照明片区网络化的目的意义 1
1.3 照明片区网络化的国内外现状 1
1.4 高等学校用电管理状况 2
1.5 本设计主要完成的工作 2
第2章 片区照明控制总体方案设计 4
2.1 网络和智能照明控制系统规划 4
2.2 照明智能控制器完成的功能 5
2.3 栋层单片机完成的功能 5
2.4 上位PC机完成的功能 5
2.5 两级通信网络的实现 5
2.6 小结 6
第3章 片区照明网络化硬件的设计与实现 7
3.1 方案选择 7
3.2 器件的选定 7
3.3 房间层节点的硬件总体构成 7
3.3.1 信息采集部分 8
3.3.2 执行部分 8
3.3.3 通信部分 8
3.4 栋层节点的硬件总体构成 8
3.5 人机交互部分 9
3.5.1 键盘模块 9
3.5.2 LCD显示模块 10
3.5.3 房间层信息的存储 10
3.6 层间信息的传送方式 11
3.7 PC机与单片机的串口通讯硬件设计 11
3.7.1 系统硬件设计 11
3.7.2 电平转换 12
3.8 单片机串行通信接口的扩展 13
3.8.1 串行通信接口原理 14
3.8.2 通讯接口的扩展方法 14
第4章 照明片区网络化软件功能的设计与实现 17
4.1 房间层信息的采集 17
4.1.1 重发机制的实现 17
4.1.2 单个房间层节点的状态规定 17
4.1.3 栋层对房间层地址的读写 18
4.1.4 栋层对房间层信息的读写 18
4.2 PC机串行通信设计 18
4.2.1 PC机串行通信的原理 18
4.2.2 通信机制及结构 19
4.3 AT89S52单片机串行通信 19
4.3.1 串行口工作方式 19
4.3.2 方式1的应用介绍 20
4.4 PC机与单片机间的通讯 20
4.4.1 基于VB6.0的PC机通信程序设计 21
4.4.2 MSComm控件介绍 21
4.4.3 上位PC机通讯程序设计 22
4.4.4 AT89S52单片机通信程序设计 24
第5章 系统调试 27
5.1 调试过程 27
5.2 调试结果 29
结 论 30
致 谢 31
参考文献 32
第1章 前 言
1.1 课题的提出
随着电力能源需求缺口越来越大,照明浪费成为一个十分突出的问题,所以实现照明灯具控制的自动化和智能化,做到依照自然光的强度以及室内人员的数目决定开灯的数目,就成为节约电力资源的一个很好途径。而多个智能节点间的协调必然要求以一个网络的形式实现[1]。随着计算机技术的发展,实现照明的网络化和照明的远程控制成为可能。
1.2 照明片区网络化的目的意义
从2006年6月起,全国电力需求快速增长,一些地区陆续拉闸限电,在去年夏季高峰时期,全国先后有21个省份出现拉闸限电现象。去年许多省市高温不退,空调使用和企业生产导致不少地区用电负荷成倍增长。许多城市对路灯、景观灯也采取了关闭限时等措施,以保证正常的生产生活的用电。我国存在着严重的电力浪费问题,无用的照明浪费在其中占有了很大的比重,单以我校的教室照明举例来说,灯光的开关安装在教室门旁,学生进入教室习惯性的将教室灯全部的开启,而且在离开时也没有人走灯灭的习惯,管理人员到一定的时间才对教室里的灯具进行管理,这样既浪费电力资源,也不利于管理。如果对片区中每个房间都安装一个照明控制器,由其独立的对本房间内的灯具开关做出控制,做到本房间智能控制器相对于一定人数开启最少的灯具,这是可以解决一部分电力资源浪费问题,但这样并不能最大限度上减小总体的电力资源浪费。为了实现电力资源浪费的最小化,必须使得各个房间照明控制器协调工作。而照明控制器的协调工作肯定是建立在网络上的,通过网络的协调管理,做到每个房间开启最少的灯具,片区内有最少数量的房间开灯。
1.3 照明片区网络化的国内外现状
专家预言,在不久的将来,智能照明将取代普通照明,成为照明行业的新锐主流产品。照明产品,将要进入到“遥控时代”。业内人士分析,智能照明进入快速成长期,需要几年时间,大概到2008年左右,智能照明的市场容量将突破100亿元大关。今年2月份,在奥运科技前景论坛上,智能照明被提上议程,国家建设部要求2010年在全国大中城市中,60%的住宅实现智能化。上海市有关部门决定,今年夏季用电高峰时,市中心主要景观道路上的路灯要安装节能的智能照明系统。种种迹象表明,智能照明市场前景将更加乐观。远程控制成了遥控时代的重要标志。据悉,虽然智能照明技术具有相当的复杂性,但国内技术水平达到实用水平的企业为数不多。国外从事智能照明的专业公司,如美国的路创、澳大利亚的邦奇以及索恩、ABB等公司也在很早以前就完成了技术上的突破[2]。据悉,国际知名的半导体制造商ST半导体正准备推出灯光控制专用的、结合无线射频功能的控制芯片采用无线网络技术的智能灯光控制系统产品最近也相继出现在消费者面前。德国迈戈公司推出的MCO智能情景照明控制系统近日进入我国市场。其产品的智能化特点主要表现在以下几方面:实现了根据场景对组合灯光进行调节和控制的功能;实现了个性化设计:可以设定“看电视”、“会客”、“晚餐”、“离家”等灯光情景[3],开关方式可选择电脑、遥控器、轻触式按键开关、红外线自动感应开关等方式对照明情景进行一对一、一对多、多对一的灵活控制:具有系统灯具的无级亮度调节和自动延时功能,停电状态的记忆功能和开关状态的锁定功能,使系统使用更加安全可靠。
1.4 高等学校用电管理状况
目前,高校照明用电的管理基本是处于一种粗放式的管理状态。其管理一般是无专人管理,由学生自行控制开启,再有值日人员在中午、下午和晚自习后关闭开关,根据作息时间开启和关闭整个教学楼的照明电源。是有专人负责,即按照天气情况分楼分层送电。对教学楼照明管理的要求是在充分保证教室的照度的前提下,尽可能地节约电能,但是这些都不同程度上存在着缺欠,造成电能的浪费。第一种模式的特点是可以灵活地满足楼层和超想的照度要求,不限和控制简单,是常用的一种方式,但也是最为浪费电。人眼在强光下对弱光不敏感,在自然光照大于灯具光照的情况下,难以察觉到灯光,灯白天长明等而造成更大的浪费。据不完全统计,百分之八十的教学楼存在着白天光照良好的情况下,教室灯依然点亮,一个教室的长明灯看起来耗能不大,但从整个学校来说,却是惊人,以西南科技大学为例,电能浪费量就十分严重,由此可见高校教学楼照明的管理改革势在必行,也为我们提出了紧迫的课题。
1.5 本设计主要完成的工作
本设计中主要完成了以下几项工作:
1、栋层单片机接收各个照明控制器所采集的房间光强信息和 人员信息传送给上位PC机,接收上位PC机根据前述获得的信息所做出的决策并传送给相应的照明智能控制器。
2、实现了单片机通信串口的扩展。
3、完成了单片机与PC机接口电路的设计,并且实现了单片机与PC机之间串行通讯,通过VB6.0编写出PC机上可视化的通讯界面。
第2章 片区照明控制总体方案设计
本章主要对网络化照明进行研究,得出一个网络化智能照明控制系统的总体设计方案。后面的整个设计将围绕这个方案进行。
2.1 网络和智能照明控制系统规划
本设计中建立了一个与小区照明相适应的网络模型来管理各个房间的智能控制器。关于该网络模型建立的详细叙述如下:
整个智能照明控制网络规划的设想是能够适应一个相对集中的建筑群中,多个建筑体需要集散照明控制的情况。系统网络规划示意如图2-1所示。照明控制系统是由一个上位PC机、下位单片机以及照明智能控制器组成的三层两级网络。在最底端,照明智能控制器负责照明现场的状态检测与控制输出,进行信息的采集与开关灯的工作,具体面向的可以是一个房间,一个相对独立的区域或其它需要较多关联控制的场合。在最顶端,上位PC机负责整个系统的功能协调与状态监测。一方面,上位PC机收集下位单片机的状态信息,执行必要的本地集中控制,另一方面也可能在需要时通过网络接口连接到局域网,按要求提供定期数据报告以及接收控制数据更新和遥控遥测命令。在上位PC机和照明智能控制器之间是单片机控制系统。栋层单片机主要对房间层的照明智能控制器进行控制。
图2-1 网络分层结构
2.2 照明智能控制器完成的功能
照明智能控制器与灯光控制有着最为直接的联系,其应当做到向上层即栋层传送本房间内的光强信息及人员数目信息,接收上一层传来的命令,执行开关灯的操作。
2.3 栋层单片机完成的功能
栋层单片机作为三层分层结构中的中间层,应当完成接收房间层照明智能控制器的信息并做出决策;将由房间层传来的信息进行汇总处理传送给上位PC机;接收上位PC机传来的命令,解析该命令后与自身作出的决策作比较向房间层发出命令,之所以要做出比较后发出命令是因为栋层可以由人工控制强行开启或关闭某间房间的灯具;在整个系统中,管理人员的权限是凌驾于系统之上的。最终发出命令的过程与房间层相类似,若上层无命令传入且无人工介入,则栋层将按照自身作出的决策发出命令。栋层还要完成房间层节点的增删工作和人工开关某个房间灯具的工作。
2.4 上位PC机完成的功能
在图2-1中可以看到,上位PC机位于整个网络的最顶层,其将完成接收栋层传来的信息,将其保存并加以分析,发出相应的命令以协调各栋层节点的工作;完成栋层节点的增删工作;人工对栋层节点的开关。本设计中将小区层的位置向前推进了,使得小区层的PC机与下位单片机的远程无线通信变成近距离串行通信。
上一层较之于下一层有更高的优先级,只有在上一层无命令时,最终的决策才由本层作出。而且同一层内的各个节点是不需要通信的,只需要对其下层的节点进行通信或对其上层的节点进行通信。所以上层节点可以采用轮询的方式对其下层进行通信。
2.5 两级通信网络的实现
为了达到各层之间信息的相互传递,就需要建立层与层之间的通信机制,根据本设计的要求,整个设计软件采用结构化模块化的设计方法,易于维护和扩展。根据本设计的软硬件需要完成的系统功能,系统软硬件大致可以分为三个功能模块:上位PC机模块,下位AT89S52单片机模块,数据通信模块。上位PC机模块主要完成与操作人员的交互功能,包括参数设定、数据显示及监控等功能。AT89S52单片机模块作为数据采集及控制模块,其功能包括系统初始化、采集数据、数据的处理及分析和给出控制命令。三个模块的关系是:上位PC机模块是指挥中心,决定整个系统程序的结构和流程;AT89S52单片机模块按轮询方式对各个照明控制器进行访问,并自动对照明进行控制;数据通信模块可以实现PC机与AT89S52单片机之间数据的传输。
2.6 小结
本章中建立了一个三层两级网络模型,对层与层通信方式进行了规划,完成了对灯光控制网络化的总体构架。以后的设计将在此构架内完成。
第3章 片区照明网络化硬件的设计与实现
本设计的硬件由三大部分组成,即栋层单片机对下位照明智能控制器信息的收发电路,人机交互界面即LCD显示电路和键盘部分,栋层单片机与上位PC机间的通信电路。下面对本设计的方案及硬件电路的设计进行说明。
3.1 方案选择
由于本设计包含了一个三层两级网络,所以涉及到的主要问题就是房间层与栋层之间的通信,小区层与栋层间的通信,还有中间层也就是栋层硬件的设计问题。在本设计中,栋层单片机与房间层照明智能控制器之间的通信在上届论文中已经完成,所以在本文中主要对中间层,也就是栋层硬件设计进行研究。重点介绍上位PC机与栋层单片机间的通信,上位PC机与栋层单片机采用异步串行通信。
3.2 器件的选定
单片机:根据该层节点所要实现功能的要求同时兼顾成本,微处理器选择了ATMEL公司的AT89S52,之所以选择它是因为:第一,它是通用器件,外围器件容易选定。第二,它是CMOS器件,有利于节能。第三,IO口多,满足多路信息采集及控制的要求且利于扩展,为以后扩展功能提供了可能。第四,具有ISP下载功能,下载线可以方便的自制,节约了开发成本。第五,内置8K FLASH ROM ,无须扩展,有利于减小节点的体积。
显示:栋层节点要显示字符信息,此时若采用七段LED则不能实现,所以采用的LCD显示模块。
键盘:采用4*4行列式键盘,可以满足本设计的要求。
AT24C01:在本设计中作为单片机扩展的存储单元使用。
3.3 房间层节点的硬件总体构成
为了实现房间层的功能,房间层节点应当由信息采集,功能执行和通信三个模块组成,房间层工作的原理是由信息采集模块采集房间中的光强和人数信息,单片机读入该信息,作出相应的开关灯决策,若有栋层网络控制节点的存在,则通过单片机自身串口连接通信模块向上层传输相应的数据,并等待上层节点的命令,得到命令后由执行模块完成开关等的操作,若没有收到上层节点的命令,则执行模块执行由微处理器作出的决策开关相应的灯具。
有关于信息采集模块和执行模块的详细设计叙述请参见《照明智能控制器的设计》[4],本文中只涉及与网络化相关的部分,其他部分只作简要 叙述。
3.3.1 信息采集部分
信息采集包括两方面信息的收集:(1)室内光强信息;(2)室内人数信息。光强信息是利用光敏电阻与设定的阈值作比较,当光强大于该阈值时,光强信息状态为0,光强小于该阈值时,光强信息为1。
室内人数信息是利用热释电传感器在室内进行分区主动扫描,得到每个教室分区内是否有人的信息,各分区中有人则该区采集的信息为1,无人则为0。
3.3.2 执行部分
执行模块是由房间层的照明智能控制器完成开关灯的操作。
3.3.3 通信部分
AT89S52同通信模块ZF02的连接是利用单片机的异步串行口同ZF02的TTL电平的URAT口。通过无线射频通信进行数据的收发。
3.4 栋层节点的硬件总体构成
栋层节点主要可以分为两个部分:(1)PC机作为上位机,分析作为下位机的单片机传来的信息,并通过一定的算法来得出协调各房间层节点工作的命令,发给下位机,而且以图标的直观形式体现出各房间的人员数目信息及光强信息;(2)单片机作为下位机,负责与各房间层节点进行无线通信,接收上位PC机传送的命令发给房间
图3-1 栋层节点硬件构成图
层节点,接收房间层节点传来的信息给上位PC机,通过键盘添加或删除房间层节点,通过LED显示当前本节点的工作状态及增删节点情况,利用AT24C01保存各个房间层节点的状态信息。详见图3-1。
在栋层网络控制节点与众多房间层节点通信时,每个房间层节点应具有本栋层网络控制节点下的唯一的地址,该地址应当可以由人工进行指定。若直接利用单片机的I/O口读取信号的高低电平来确定本级的地址,这将占用过多的资源,假定地址为8位,这将占用单片机的8个I/O端口,若减少地址位数,又会造成该网络内容纳节点数目过少。为解决上述的两个问题,设计中采用了并行输入串行输出的移位寄存器74HC165N,通过它与AT89S52的连接,将八位的地址转换为串行。这样就为单片机节省了不少资源,硬件连线见图3-2。
图 3-2 单片机I/O口的扩展
3.5 人机交互部分
人机交互部分完成显示当前的栋层节点工作状态,显示通信故障,其主要由键盘和LCD显示两部分完成。
3.5.1 键盘模块
该部分键盘采用4*4行列式键盘实现,其在房间层节点遍历的过程中检测是否有键按下,以行扫描法实现键盘的识别,用软件延时的方式去抖动。按键定义除了0-9共十个键外,还有增加键、删除键、确认键及取消键,留有2个键未定义留作扩展用。键盘部分硬件原理图见3-3。
图3-3 键盘硬件原理图
3.5.2 LCD显示模块
在本设计中显示的信息包括数字和字符信息,所以需要使用一个LCD显示模块。下图是LCD显示模块与AT89S52的引脚图见图3-4。
图3-4 LCD与单片机的连接图
3.5.3 房间层信息的存储
因为AT24C01能够在线进行擦写,而且断电后信息不会丢失,所以在本设计中用AT24C01与单片机相连存储房间层的信息。本设计中利用栋层节点的键盘和LCD显示来实现房间层节点的增删,实际上是将通过键盘得到的房间层节点的地址,利用AT24C01的读写程序来改变该地址节点状态信息。在AT89S52上对AT24C01进行读写可以确定房间的位置,同时可以达到对房间层节点增删的目的。
AT24C01的接口是符合I2C协议的,而AT89S52没有I2C接口,可以用普通I/O口进行模拟,其硬件连线见图3-5。
图3-5 AT24C01硬件连线图
3.6 层间信息的传送方式
各层间信息的传送都是遵循一定的通信协议,本设计中房间层与栋层间信息的传送采用的是无线传输的方式,遵从射频无线通讯协议,房间层和栋层单片机与无线射频通讯模块的连接则采用的是串行通信。上位PC机与栋层单片机之间的通信采用异步串行通信方式。
串行通信是由一位数据传输线传送数据的位信号,另加几条通信联络控制线组成。串行通信的实现遵循串行通信协议。该通信协议对数据传送方式的规定,包括数据格式定义和数据位定义等,通信双方必须遵从统一的通信协议。串行通信协议包括同步协议和异步协议两种,由于本系统采用异步通信方式将信息传送给ZF02,ZF02以无线的方式将其发出,另一块ZF02接收到该信息后,以异步串行得方式传给栋层单片机。最后由栋层单片机再传送给上位PC机。
3.7 PC机与单片机的串口通讯硬件设计
3.7.1 系统硬件设计
本系统的硬件由三大部分组成,即上位PC机子系统、下位AT89S52单片机子系统和串行通信接口[5]。系统框图如图3-6 所示。
图3-6 系统硬件构成框图
对于控制系统而言,实时性是系统的一个重要性能指标,如不能很好满足,滞后时间太长,显示的信息就会失去价值。由于主机所显示的信息是通过与单片机的通信而采集获得,所以采用PC机作为上位机[7] 。本系统中,PC机的主要任务是:
1、通过与下位机的通信,将用户设定的照明控制命令发送给下位机。AT89S52单片机据此进行数据采集与控制。
2、通过与下位机的通信,读入房间层采集的数据,据此判断照明控制器是否处于正常运行状态;用图形、字符等方式实时显示各种参数的信息,实现对房间照明的实时控制。
PC机的性能要求:性能好,速度快,软件资源丰富,通信实现方便,支持VB操作系统,图形界面,菜单对话。
3.7.2 电平转换
用于存储信息的采集器,对信息量的大小有严格的要求,由于采集器的存储量有限和进一步处理与显示的需要,信息需要传入微机内。采集器与微机通过微机的串口实现通信。 利用AT89S52 单片机的串行口与PC 机的串行口COM1 或COM2 进行串行通信,将单片机采集的数据传送到PC 机中,由PC 机的高级语言或数据库语言对数据进行整理及统计等复杂处理。PC 机串行口给出的信号是一个RS232 信号,它是一个基于3~7V 正电压、3~7V 负电压的脉冲链。这一信号必须转化为一个0~5V 的脉冲链,以便处理器读取。中间转换电路采用MAX232 芯片来实现[8]。图3-7是PC机与单片机的通讯示意图。
图3-7 PC机与单片机的通信接口电路框图
EIA RS232C是目前最常用的串行接口标准, 用于计算机与计算机之间,计算机与外设之间的数据通信。该标准的目的是定义数据终端设备(DTE) 之间的电气特性。 RS232C 提供了单片机与单片机、单片机与PC 机之间串行数据通信的标准接口。通信距离可达15m。但RS232C 规定的逻辑电平与单片机的逻辑电平是不一致的。因此在应用中必须把微处理器的信号电平( TTL 电平) 转换为RS232C 电平, 或者对二者进行逆转换。我们在这里选用专用电平 转换芯片MAX232来实现的。下面是单片机串口连接电路,使用MAX232作为串口连接芯片[9]。
本设计采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。硬件连线如图3-8所示:
图3-8 单片机与PC机接口电路设计
3.8 单片机串行通信接口的扩展
单片机的串行通信接口与外设通信很方便,虽然大多数单片机都具有硬件SCI(Serial Communications Interface),但也有一些产品没有SCI,对于这些产品的用户来说这是一个缺憾。而且,一般八位单片机只有一个SCI,但在很多实际应用,需要更多的串行通信接口[10]。例如在基于Modem的远程控制系统中,单片机与PC机通信的同时,还需要与Modem芯片进行通信;而在多机系统中,单片机需要与其他主机通信,另外也需要与本机控制台通信。所以利用单片机自身的资源进行串行通信接口的扩展很有意义[11]。
串行通信接口的扩展技术主要有两种:分时共用,I/O口模拟。前者利用MCU自身的硬件SCI,通过控制逻辑分时共享使用同一串行通信接口,后者在不增加硬件的条件下,充分利用MCU自身的资源利用I/O口模拟串行通信接口。
3.8.1 串行通信接口原理
单片机的SCI是一个通用异步接收器/发送器UART(Universal Asynchronous Receiver /Transmiter)类型的异步通信接口,通过串行通信协议(如RS-232协议)同主机系统通信[12]。
在一般应用中,MCU简单地把数据写入数据寄存器即可实现一个字符的串行发送,SCI系统完成发送数据的所有细节工作,包括附加起始位和停止位以符合串行格式。SCI的接收器自动探测一个字节的起始位,并通过采样接收数据。接收串行数据并变换成并行数据的所有工作均由SCI完成,不需要MCU的干预。接收到数据后,MCU简单地从数据接收寄存器读取数据即可。
SCI使用标准不归零(NRZ)格式(一个起始位,8个或9个数据位和一个停止位),最常用的格式数据位是8位的。
NRZ数据格式的基本特点如下:
高电平为逻辑1,低电平为逻辑0;
发送/接收数据空闲时TXD、RXD线为高电平;
发送/接收数据串的第一位是起始位(逻辑0);
数据的最低位LSB首先被发送/接收;
数据串的最后一位(第10位或第11位)是停止位(逻辑1)。
3.8.2 通讯接口的扩展方法
目前比较通用的串口扩展方案有两种,一是用硬件实现,使用多串口单片机或专用串口扩展芯片,可供选择的串口扩展芯片有TI等公司开发的16C554系列串口扩展芯片,该系列芯片实现的功能是通过并行口扩展串行口,功能比较强大、通讯速度高,但控制复杂,同时价格较高,主要的应用场合是PC机串口扩展产品。在仅使用单片机控制且不需要太高波特率通讯的系统中,使用16C554系列芯片不仅成本高而且还造成了资源的浪费。而多串口单片机也同样存在价格高的缺点。另一种串口扩展方案就是用软件实现,软件模拟串口存在的缺点有:一是采样次数低,一般只能做到2次/BIT,这样数据的正确性就难以保证;二是不能实现高波特率通讯,软件模拟串口一般不能实现高于4800 bps的波特率[13]。成都国腾微电子有限公司推出的GM8123/25系列串口扩展芯片全硬件实现串口扩展[14],保证了芯片工作的稳定性,设计的最高波特率完全能满足一般系统需求,同时占用系统资源少,使用方法简单,通讯格式可设置,与标准串口通讯格式兼容,利用该系列芯片实现串口扩展是性价比较高的串口扩展方案。栋层下位单片机既要与房间层单片机进行通讯,又要与上位PC机进行通讯。由于本设计栋层下位单片机只有一个通讯接口,所以单片机的串行通讯接口需要扩展,本设计中采用单片机与GM8125相连实现了单片机通讯串口的扩展。如图3-9所示:
图3-9 单片机通讯串口的扩展
利用GM8123/25进行串口扩展,有以下优点:
1、控制简单。该芯片利用软件设置工作方式,最大限度地减少控制线,不需要占用太多主机的系统资源,同时又保证使用的简便性。
2、应用灵活。该芯片具备两种工作模式、多种工作波特率、10位或11位数据帧长可选,用户可根据自己的系统需求灵活选择。
3、通用性强。该芯片设计时充分考虑各种用户的需求,保证了芯片的通用性,与标准串口通讯格式完全兼容,同时提供多种可选设置,适用于大多数串口通讯系统。
4、工作波特率高。该芯片子串口在单通道模式下波特率支持20Mbps,多通道模式下支持38400bps,此波特率完全能满足一般的串口通讯的需求。
5、性能稳定。硬件实现串口比软件实现串口更能保证串行通讯的稳定性,同时每bit采样16次,保证了数据的正确性。
6、波特率误差小。输出波特率误差小于0.2%,输入波特率误差要求小于2.8%。
该芯片不足之处在于:不满足超低功耗应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。
第4章 照明片区网络化软件功能的设计与实现
本设计软件部分包括两大模块,即栋层单片机对房间层智能控制器信息的收发,PC机对单片机的实时监控程序,对这部分软件的要求是:人机界面友好,易学易用。在本系统中,软件由VB、AT89S52单片机C语言程序编写。其中VB程序用Visual Basic6.0开发而成,与单片机的通信,主要完成参数设定,数据显示等功能。AT89S52单片机C程序借助硬件电路的支持,根据PC机传来的设定参数进行自动的数据采集与输出控制,并向PC机传送采集数据,供VB程序分析处理。AT89S52单片机C程序和VB程序之间交换数据的桥梁是各自的串行通信程序,所以通信程序的编写是本设计程序的核心。由于栋层与房间层之间的通信部分在上届毕业设计中已经完成,这里只作简要叙述[15]。
4.1 房间层信息的采集
房间层信息的采集是通过栋层单片机对房间层照明智能控制器的访问实现的。栋层与房间层之间的通讯是采用轮询方式,同每一个房间层节点通信时先建立连接,传输数据,然后再释放连接。所以相应的房间层节点在通信时需要明确自身所处的连接状态。在栋层网络控制节点与众多房间层节点通信时,每个房间层节点应具有本栋层网络控制节点下的唯一的地址,该地址应当可以由人工进行指定。利用I/O口读取信号的高低电平来确定本级的地址。系统掉电后重启时仍然需要保留该 地址信息,则必须在系统中加入一个AT24C01存储器。
4.1.1 重发机制的实现
在数据的传输过程中容易受到外界干扰,为防止通讯错误,主要采用如下方法:
1、启动错误定时器,扫描错误数据传输中的错误,如果有错误则重新启动通信;
2、对接收的数据进行校验,若超过通讯设定时间要求或者接收数据误码时重发。
以上两种方法的应用大大提高了通讯可靠性,减小了误码率。
4.1.2 单个房间层节点的状态规定
单个房间节点主要有是否连接,是否出现错误,和是否有控制命令,是否接收数据四个状态,所以每个房间层节点用4位来表示其状态。
4.1.3 栋层对房间层地址的读写
在对房间层节点读写时,是以地址号为顺序进行的。对于从节点地址节点状态进行判断后,只对当前在线且没有通信故障的节点进行通信,其实现过程是对各从节点的状态信息进行判断,符合条件的进行通信,不符合条件的则跳过。AT24C01每次进行读写时是以字节为单位的,偶数号房间层节点的状态信息存储在高4位,奇数号的则存于低4位。由AT24C01存储空间与房间层节点的对应关系可知,读和写第N个房间的状态信息时,在AT24C01中的地址定位方式是一样的,所不同的在于写状态时要操作的是四个状态为中的某一位。
4.1.4 栋层对房间层信息的读写
栋层单片机与房间层单片机之间通讯的约定:
1、主机向从机发送地址信号,主机向从机发送数据信息。
2、主机处于监听状态下,因此只能收到主机的地址。
3、从机收到地址后,进行识别,是否主机呼叫本站,如果是,解除监听,同时把本站的地址发回,作为应答。只有这样,从机才能收到主机发来的数据。
4、主机收到应答,开始数据和命令。
5、从机正式接收数据。
4.2 PC机串行通信设计
PC机自带串行通讯接口,可以通过串口与单片机进行数据的传送,达到对单片机进行控制的目的。
4.2.1 PC机串行通信的原理
上位PC机上的RS-232C与AT89S52单片机的通信接口相接,进行集中监视与管理。PC与下位机采用异步串行通信方式,经RS-232C进行数据传输。上位PC机采用中断接收方式、AT89S52采用定时查询发送方式,AT89S52单片机定时向上位PC机发送数据,数据以帧为单位。上位机与AT89S52按应答方式通信时,上位机主动,AT89S52被动,上位机向AT89S52发出一组称作命令块的二进制数据,AT89S52对命令进行操作后,将结果返回给上位机,这组数据称作响应块。命令块与响应块以帧为单位进行传送,按传送字节个数不同,分为单帧传送和多帧传送两种。
4.2.2 通信机制及结构
串行通信有如下三种方式:
1、单工通信:它只允许一个方向传输数据。
2、半双工通信:它允许两个方向传输数据,但不能同时传输。
3、全双工通信:它允许两个方向同时进行数据传输。
4.3 AT89S52单片机串行通信
AT89S52单片机的串行口具有三种异步工作方式和一种同步工作方式。当串行口工作在异步工作方式时,可完成全双工操作,即能同时收发。
串行口的控制是通过地址为0011H的串行口控制/状态寄存器进行的。串行口的数据由串行口缓冲器SBUF(rx),SBUF(tx)负责收发,两者的地址均为0007H。虽然两个寄存器共用一个地址,但它们在物理上是独立的。CPU将预发送的数据写入SBUF (rx),然后从SBUF(tx)送往TXD引脚,从RXD引脚接收的数据送往SBUF(rx)保存。SBUF(rx)为双缓冲器结构,第一个接收到的字节被读走之前,就可以开始接收第二个字节。
4.3.1 串行口工作方式
AT89S52单片机的串行接口有4种工作方式,即方式0、方式1、方式2和方式3。这里仅介绍一种异步串行通信方式,即设计采用的方式1。
方式1是标准的异步通信方式。数据格式为:1位起始位(低电平0), 8位数据位(D0-D7 ),即先低位后高位,1位停止位(高电平1),共计10位为一帧。发送时,每帧数据(10位)按照上述顺序从TXD端移出,接收时每帧数据(10位)也遵循以上顺序从DXD端引入。数据格式如图4-1所示。
图 4-1 串行口方式1数据格式
1、方式1的发送过程
用软件清除T1后,CPU执行任何一条以SBUF为目标寄存器的传送指令,就
启动发送过程,数据由TXD引脚输出,此时的发送移位脉冲是由定时器/计数器T1送来的溢出信号经过16或32分频而得到的。一帧信号发送完时,将置位发送中断标志T1=1,向CPU申请中断,完成一次发送过程。
2、方式1的接收过程
用软件清除R1后,当允许接收位REN被置为1时,接收器以选定波特率的16倍速率来采样RXD引脚上的电平,即在一个数据位期间有16个检测脉冲,并在第7、8、9个脉冲期间采样接收信号,然后用“三中取二”的原则确定检测值,以抑制干扰,并且采样是在每个数据位的中间,避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时,则启动接收过程,在接收脉冲的控制下,接收完一帧信息。当最后一次移位脉冲产生时能满足下列两个条件:R1=0;接收到的停止位为1或SM=2,则停止位送入RB8,8位数据进入SBUF,并置接收中断标志R1=1,向CPU发出中断请求,完成一次接收数据。
4.3.2 方式1的应用介绍
方式1是标准的全双工异步通讯方式,可以与标准的RS-232C接口连接,通常用来与CRT、打印机等外围设备进行数据通讯,也作为上下位机之间的数据通讯。
方式1的特点如下:
用方式1通讯时,帧的发送是通过TXD引脚,帧的接收是通过RXD引脚,发送和接收是由串行口内的移位时钟进行控制,波特率由用户设置。
当波特率发生器被初始化后,发送器的移位时钟开始工作:而接收器移位时钟是在收到起始位“1”到“0”跳变时被置位的。可见,虽然两种移位时钟使用相同的频率,但它们之间不是同步的。
在方式1下工作时,串行口控制/状态寄存器SP_CON/SP_STAT中的M1和M2二位应写入01,即按接收方式1工作、允许接收位REN的设置方法如下:置“1”时,清除RI标志为开始接收状态; 清“0”时,为发送状态。
因为方式1无第九位数据,所以TB8位和RB8位不使用。利用方式1进行串行数据传送时,可采用查询法和中断法实现。
4.4 PC机与单片机间的通讯
下位单片机和上位PC机之间的数据传输以串行通信的方式进行,在C语言程序和VB程序中都有各自的通信模块。串口通信程序的设计主要是初始化异步通信串口,使上位机通信口设置的通信参数与下位机设置的 通信参数一致。通信程序的编写,主要包含以下几个部分:
1、设置双方的硬件握手协议;
2、设置端口号、波特率、数据位、停止位、奇偶校验位;
3、打开串行端口。
根据系统上位机和下位机数据通信的功能和特点,双方的通信约定设计如下:
1、波特率为2400,数据格式为8个数据位,一个起始位,一个停止位;
2、传送方式为PC机采用查询方式发送、中断方式接收,AT89S52采用中断方式接收、查询方式发送;
3、为了提高通信可靠性和抗干扰能力,上位机和下位机在建立通信联系时,先交换握手信号,进行通信测试,若下位机自检出错,则在应答PC机命令时上传错误代码。若通信所接收的数据不符合约定的字节数或数据范围,或通信间隔时间超过限定时间则此次通信数据作废。若连续多次通信数据出错,则报告系统数据通信出错。
4.4.1 基于VB6.0的PC机通信程序设计
VB作为一种可视化程序设计语言,功能强大,使用方便,编写的图形显示界面生动丰富。利用其提供的通信控件MSComm,实现PC机与AT89S52单片机之间的通信也十分方便。图4-2是VB通讯程序流程图。
4.4.2 MSComm控件介绍
MSComm是VB6.0带有的专门管理串行通信的控件,此控件通过串行端口传输和接收数据,为应用程序提供串行通信功能[16]。利用此控件,可以制作规范的协议。MSComm控件可提供下列两种处理通信的方式:
1、中断方式
中断方式是处理串行端交互作用的一种非常有效的方法。在许多情况下,当事件发生时需要得到通知,这时,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件。
2、查询方式
在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。MSComm控件的属性InBufferCount()和OutBufferCaunt()均用于串口的查询方式。
MSComm控件有很多重要的属性,首先必须熟悉表4-1中的几个属性。
表4-1 MSComm控件的主要属性
属性 描述
Commfort 设置并返回通信端口号
Settings 以字符串的形式设置并返回波特率,奇偶校验,数据位,停止位
PortOpen 设置并返回通信端口的状态,也可以打开和关闭端口
Input 从接收缓冲区返回和删除字符
Output 向传输缓冲区写一个字符串
InputMode 值为0,以文本形式取回数据;值为1,以二进制形式取回数据
Rthreshold 当接收字符后,若Rthreshold属性为0(缺省值)则不产生OnComm事件:为1,接收缓冲区收每到一个字符都会使MSComm控件产生OnComm事件
Sthreshold 属性为0(缺省值),数据传输事件不会产生OnComm事件:若设置
Sthreshold属性为1,当传输缓冲区完全空时,MSComm控件产
生OnComm事件
4.4.3 上位PC机通讯程序设计
在VB6.0开发环境下,选择Microsoft Communication Control Version6.0控件插入程序,系统会自动生成通信控件。具体作法是:选菜单Project/ Component,将会有一子菜单,选中Controls项,在其中找到Microsoft Comm Control6.0,选中它便可插入,在工具条中就会看到新增的通信控件。在软件设计时可以如其它普通控件一样使用。在工程文件中添加 MSComm控件,程序中对串口的各种操作都可通过MSComm控件来实现[17][18]。AT89S52单片机通过中断方式采集和传送数据。接收模块从外部接收串行数据,并将所接收的数据放到寄存器中,以便处理器读取。接收过程同样由下位单片机控制,接收模块必须对数据位的溢出出错,奇偶校验出错,帧出错等进行校验,并根据校验的结果设置状态寄存器相应的状态位。接收的关键是要保证通信双方同步,由于没有时钟线,所以双方必须以一个固定的频率、同步地收发数据,才能保证数据传送的正确性。发送模块需要实现的功能是把从处理器接收到的数据,按规定的格式加上起始位,奇偶校验位和停止位后串行输出。发送模块由一个PC机来控制。当数据缓冲区满时,向单片机发出中断申请,若单片机响应并与PC机握手许可,便可发送数据。
图4-2 VB通讯程序流程图
因此,在PC机通信程序编制上,采用查询的通信方式。如前所述,对本次通信任务,可通过SetCommEvent()函数设置串口要响应的事件[19]。本设计把PC机串口每接收一帧数据设置为串口要响应的事件,通过它去激活OnComm(),在OnComm()消息处理函数中可加入处理代码,判断是否为所需要数据,并做出相应的处理,如显示、存储等。在附录2中给出事件驱动方式接收AT89S52单片机发送数据的程序源代码。
PC机串口各参数的设置,如波特率、校验及数据格式等,必须与AT89S52串口完全保持一致,否则两者之间的通信无法正常进行[20]。设置PC机串口参数的初始化程序如下:
MSComml.ComPort=1; 选择COM1串行口
MSComml.Settings= "2400, e, 8, 1”; 波特率2400,偶校验,8位
数据位,1位停止位
MSComml.InputLen=0; 将读取接收缓冲区的全部内容
MSComml.InputMode=1; 以二进制方式发送
MSComml.PortOpen=True; 打开端口
MSComml.0utbufferCount=0; 清空发送缓冲区
PC机进入VB编制的监控系统主界面后,PC机先发送握手信号给AT89S52单片机,AT89S52单片机通过中断方式接收PC机发送过来的握手信号,回送同一信号给PC机,并在PC机屏幕上显示出来。如果通讯正常,两次信号相同,说明上位机与下位机通信正确。然后用户才能发送设定参数。PC机通讯界面设计如图4-3所示:
图4-3 串口通讯接收界面
4.4.4 AT89S52单片机通信程序设计
在通信过程中,当AT89S52单片机与上位机PC握手联络成功时,AT89S52单片机以中断方式接收PC机发送来的设定参数,进行定时的数据采集,然后将采集的数据进行处理以中断方式发送给PC机。下位单片机和上位PC机之间的数据传输以串行通信的方式进行。PC机进入VB编制的监控系统主界面后,PC机先发送握手信号给AT89S52单片机,AT89S52单片机通过中断方式接收PC机发送过来的握手信号,回送同一信号给PC机,并在PC机屏幕上显示出来。为了提高通信可靠性和抗干扰能力,上位机和下位机在建立通信联系时,先交换握手信号,进行通信测试,若下位机自检出错,则在应答PC机命令时上传错误代码。PC机与AT89S52单片机通信握手程序框图如图4-4所示, 图4-5是PC机发送数据的子程序流程图。
图4-4 PC机通信模块程序流程图 图4-5 PC机发送子程序流程图
上位PC机与栋层单片机之间的程序采用了模块化的设计思想,单片机首先与PC机建立连接,然后采用中断 的方式将数据发送给上位PC机,PC机再根据下位单片机传来的信息作出相应的决策,如果PC机与单片机通信正确,则PC机读串行口,开始接收数据,如果通信发生错误,则退出程序。PC机接收下位单片机程序流程序如图4-6所示,图4-7是AT89S52串口中断接收程序流程图,图4-8是AT89S52握手子程序流程图。
图4-6 接收AT89S52采集数据流程序框图
图4-7 AT89S52串口中断接收程序流程图 图4-8 AT89S52握手子程序流程
第5章 系统调试
5.1 调试过程
硬件电路的调试过程:
1、电路的设计:设计好原理图,计算出各器件的理论值。
2、电路的焊接:器件合理分布好后,开始焊接,使用万用表检测是否有虚焊的地方,导线尽量不要太长。
3、电路调试:为了验证电路是否正确和测试PC机与栋层单片机的通讯功能,实验中用一个AT89S52单片机,一台计算机。PC机通过串口连接单片机进行监听,看PC机与单片机是否能正常通信。图5-1是上位PC机VB通信串口的参数设置界面。
图5-1 PC机串口通信参数设置界面
图5-2是PC机接收数据的过程:
图5-2 PC机接收数据
图5-3是PC机通信串口的关闭情况:
图5-3 串口关闭的情况
软件部分的调试过程:
在本设计中,软件的调试过程采用的是先模块化,再进行组合的方式。主要用VB6.0对PC机控制界面程序进行编译,用Keil C51 编译器对单片机程序进行编译。
图5-4 Keil C51编译器
5.2 调试结果
从调试过程可以说明PC机与单片机之间的串行通信已经实现,但在数据的接收过程出现了问题,无法正常实现数据的接收。导致这一问题的原因可能有以下几点:
1、单片机通信接口电路干扰过大,导致主从机间无法进行正常通信。
2、单片机的程序全部采用模块化实现,这就导致在最后的调试中需要多层调用,过多层数的调用,这样会导致堆栈的溢出,程序无法正常执行。
调试结果说明:由于本设计中的上位PC机的部分程序功能还未实现,到目前为止实现了PC机与单片机的通信,系统的整体调试还未能实现。
结 论
本文在照明智能控制器的基础上,综合运用了单片机与计算机控制的新技术和新方法。本文完成了以下设计:
1、整个系统软件采用模块化、开放式的结构设计,各功能模块相互独立又可以相互访问,提高了可靠性和可扩展性。上位PC机用VB6.0语言编程,程序简单、清晰,操作界面友好,下位机用单片机C语言编程。
2、选用AT89S52单片机作为控制系统的控制核心。AT89S52单片机运算速度快,内含256个RAM单元,可满足软件编程中数据和外部输入数据的暂存,数据交换无需外加RAM芯片,简化了硬件电路,提高了系统工作的可靠性。充分利用了片内资源,系统抗干扰能力强,结构简洁。
3、完成了通信串口的扩展和PC机与单片机串行通信的设计, 实现了房间层和栋层间的通信。
4、利用面向对象的语言VB开发了上位机软件,构建了控制管理系统。
由于受时间和实验条件的限制,本系统没有实现计算机的远程控制,系统的联机调试还没有成功。
本设计还需要进一步完善如下工作:
1、照明管理系统与智能控制器进行联机调试运行。
2、丰富上位机的管理功能,进一步完善上位机对照明的数据采集,实时管理。
3、进一步完善上位机控制策略,从PC机与单片机的一对一的通讯改进成PC机与单片机的一对多通讯,从有线式串口通讯改进为无线通讯。
4、在实现照明控制的基础上,实现防盗报警功能。报警功能可以采用上位机对时间的检测实现,以实验室为例,只要在晚上11:00以后房间层的热释电传感器检测到人的存在就自动报警。
致 谢
本论文是在生物医学实验室完成的,本论文之所以能够顺利完成,是与导师韩雪梅的悉心指导和严格要求分不开的。由于本人单片机技术与通讯理论基础薄弱,所以,从论文一开始,导师就时常督促和帮助我,努力提高理论水平和基础知识,并提出了建设性、宝贵的指导,确保了我的论文得以完成。导师严谨治学的态度和平易近人的作风,令我感动和钦佩,所以,在此我首先向我的导师表示深深的感谢和诚挚的祝福,祝福老师工作顺利、身体健康、合家欢乐。同时感谢多年教育和帮助我的所有生物医学工程专业的老师。还要感谢我们专业的许多同学,他们在大学四年给了我许多的支持和帮助,给我带来了无数的快乐。最后我要感谢我的家人,在我读书期间给予的关心和支持。
参考文献
[1] 肖辉.电气照明技术—照明电气设计[M]. 北京,机械工业出版社,2004:124-127.
. applications construction, 2001: 12-13.
[3] FCCPERP. Lighting research program[J]. Computer Networks, 2000.3: 14-16.
[4] 杨清翼.智能照明控制器的设计[D].绵阳:西南科技大学本科毕业设计论文,2006.
[5] 殷志华,郑海,杨浩.单片机与PC机串口通信的实现[J].中国数据通信,2006,5(1):20-25.
[6] 王志宏.单片机与PC机的串口通讯[J].现代电子技术,2005,5:4-11.
[7] 刘焕平. MCS51单片机与RS-232C串行口连接[J].石家庄职业技术学院学报,2005,8(2):15-30.
[8] 朱立忠,冯丹. PC机与MCS51单片机通信接口电路的设计[J].沈阳工业学院学报,2005,(5):20-45.
[9] 杨会成,卓芝强.单片机与PC机串行数据通信的工程实践[J].微型机与应用,2005,(05):6-12.
. Computer Networks, 2006, 3: 379-399.
[11] 李振起,马君,唐兵. PC机与51系列单片机的远距离串口通信[J].煤矿机械,2003,7(07) :12-42.
[12] 陈寿元.单片机多机串行通信的改进方案[J].单片机与嵌入式系统应用,2005,(5):79-83.
[13] 官波,容太平. AT89C51的扩展串口与PC机间的通讯[J].国外电子元器件,2004, (03):12-20.
[14] 成都国腾微电子有限公司. GM8125通用异步串口扩展芯片数据手册.成都国腾微电子有限公司,2006.1.
[15] 于永会. 照明片区网络化系统设计[D].绵阳:西南科技大学本科毕业设计论文,2006.
[16] 丁建军,陈定方.基于VB6.0的PC机与单片机间的串口通信[J].机械与电子,2004,12(5):7-12.
[17] 闫通海,周到.利用MSComm控件实现PC机与单片机串口通讯的研究[J].应用科技,2006,(5):12-16.
. UCLA Technical Reports, 2003,2: 25-40.
[19] 金卫民.VB下利用串口进行数据通讯的研究[J].计算机工程与设计,2006,5 (12):20-45.
论文摘要:目前,大部分中职学校的程序设计语言教学效果不太理想,文章分析了尝试法在该课程教学中的可行性。
目前,大部分中职学校根据知识点的结构组织程序设计语言教学,在教学过程中教师都习惯了开展注入式的教学。在这种教学方法下很容易导致学生只会简单照搬和模仿教学中的示例代码,对所学的知识很难灵活的运用,缺乏自己动手编写代码去处理具体问题的能力。著名科学家牛顿先发现了“苹果会从树上掉下来”这个普通的自然现象,经过仔细的分析和研究问题,最后才总结出了万有引力定律。而不是先对万有引力定律进行研究,再去发现现象和推导实际结果。科学家往往都是从具体现象、实际问题出发,分析和研究问题,从实践到理论实现升华,然后从理论回归到实践。因此,教师在课堂上向学生讲授各种知识时,应该先让学生详细的了解存在的问题、知识是发展的过程,从而帮助学生深入理解知识、能够灵活应用知识,而不能只是简单地告诉学生结果,让学生在实践中进行应用。
程序设计语言工作需要的是具有创新能力的技术人才,在教学中不仅需要采用尝试法帮助学生加深对知识的理解和应用,更为重要的是需要遵循知识被发现、分析到应用这一全过程,把知识传递给学生,让学生对知识的本质深刻的理解。所以,本文重点论述了在程序设计语言教学中运用尝试法进行教学,在课堂上从具体的问题入手,启发学生先自己尝试着去对程序设计语言中的基本概念、基本方法和基本结构进行理解,然后在具体实例中运用。
一、尝试法在程序语言教学中的优势
在计算机专业的课程体系里,程序设计语言主要包括汇编语言和高级程序设计语言。在计算机领域程序设计语言是核心的专业基础课程,在专业课程体系中居于基础性和先导性地位,是进行后续课程学习的重要工具基础和技术。通过程序设计语言课程的学习,学生不仅能获得基本的设计程序能力、使学生获得一定的基于计算机进行计算的思考能力,同时对学生后续课程的学习和兴趣都有极大的影响。程序设计语言教学中授课的重点是基本语法、编程技巧、典型算法和常用的函数,使学生掌握一定的解决实际问题的能力和具备程序设计的思想。
1.尝试与生活实际相结合,可以激发起学生的求知热情。尝试法教学法从问题入手,根据不同的教学内容教学设计出不同的教学任务,结合实际要求学生做出反应,可以调动起学生的学习热情,在学习的过程中发挥主动性和学习自觉性。例如,在语言程序设计教学中讲授《数据库》时,教师如果只是简单的照着书本的例子带领学生验证所学内容,往往学生会感觉十分的无聊,如果在课前教师能布置一些有代表性的探索性任务:如《运动会管理系统》、《学生成绩管理系统》等,让学生尝试进行程序设计技巧和基本语法、语句的学习,学生因为有了明确的学习目标,则会积极主动地进行尝试性的实践学习。
2.尝试的任务可以理论联系实际,可以促进理论的深化学习。在尝试法教学中,教师通过布置一些紧密联系实际生活的任务,当学生完成任务之后,不仅可以帮助学生对理论加深理解,拓展理论视野,提高分析的能力。另外,学生在尝试的过程中不断思考如何把理论在实际中的运用,从而迅速地从单纯的掌握理论逐渐向应用于实践转化,真正实现理论与实际操作的结合。
3.尝试法教学有利于加强教学过程中的交流,培养学生的能力。尝试教学法是一种通过“行为导向”进行教学的现代教学方法。在教学中,尝试的任务取材于生活,使学生有着直接的感受,从而积极主动的进行尝试性学习,师生相互的进行交流,通过反复的练习学生可以具备适当的社会能力、职业能力、学习能力和创新意识。在这样的教学中,尊重了学生的学习主体地位,不会简单要求学生去强记内容,学生必须开动脑筋、认真思考,不断进行尝试,通过这样反复的训练,必然能够提高学生分析问题、解决问题的能力。
二、程序设计中运用尝试法的教学策略
虽然尝试法教学没有固定的教学模式,但在教学的过程中主要包含以下三个方面:设计任务-进行尝试探索-总结效果。
1.设计任务。设计任务是利用尝试法进行教学的基础和前提。教师必须根据教学要求和课时安排设计任务,把将要学习的新知识科学的隐含在众多的学习任务当中,使学生在尝试着完成任务的过程中对学科知识进行理解,提高学生的技能。在设计任务时应该注意这几个方面:第一,给学生安排的任务一定要典型。任务必须可以把课程的绝大部分知识点都涵盖进去。第二,任务一定要具有实践性。设计的学习任务要与现实紧密联系,学生能够理解。第三,任务一定要有针对性。教师要根据学生的接受能力设计或选择任务。第四,任务一定要有系统性。在教学的整个过程中,使用到的大多数任务应该是相互联系的,由易到难、前后相连贯进行编排。在进行数据库教学时,要求学生一般能根据实际的一个需求,尝试着去完成设计一个数据库系统,要强调分析其需求、数据整理、功能划分和系统设计,在完成整个系统的过程中学生都尝试自己去完成。每个数据库系统都是十分复杂的任务,可以把它分成很多小的任务,根据教学的安排逐步完成。具体到每个任务的要求要用程序实现哪种功能时,教师必须根据学生的认知水平来确定,但不能设置任务的功能过于简单。
2.进行尝试探索。进行尝试法教学主要是以任务为基础对问题进行分析,解决问题。想成功的开展尝试法教学,关键是教师要做好引导启发的工作,使学生积极独立地综合运用所学的知识进行思考,大胆进行探索。在实际操作中,设计和完成一个数据库管理系统的过程是一个对任务不断分解的过程。例如,让学生尝试设计《学生学籍管理系统》,教师可以联系实际引导学生思考这些问题:学籍管理系统对学生的成绩进行管理,处理成绩时会涉及到哪些方面?另外,还要体现出班级的人数的变化,比如学生人数增加或减少等。在管理系统的使用过程中,还会涉及到查询、删除、修改和打印等众多的功能。该系统如果安排专人负责,还要规定登录密码和用户名,贯彻保密性等。随着深入细致的分析,可以不断的完善整个系统功能,不断清晰结构。这实际是把拆解任务的内容为众多的子任务,逐步地布置给学生,让学生进行尝试。在这个过程中,教师可以提供一些管理系统的实例让学生参考,让学生对任务有个感性的认识,知道可以通过学习完成这些任务,帮助学习逐步消除对学习任务的畏惧,从而树立信心,顺利完成尝试性的教学过程。
3.总结效果。总结尝试性教学的效果是指教师与学生对教学的过程共同进行反思,通过自我评价和相互评价,教师适当的做出及时的点评,帮助学生进行总结和归纳。评价与总结阶段不仅是提高学生能力的重要阶段,同时可以培养学生的成就感和自信心。当学生尝试着完成那些子任务或系统任务时,学生就逐渐的建立了自己独特的认知结构。这时教师还要对学生尝试性学习的成果进行交流、展示、分析、讨论和点评,对学生的学习情况及时的做出评价和反馈。另外,每当学生独立的完成一项尝试性学习任务,教师应该及时的对其进行表扬和鼓励,使学生获得一定的成就感,这样能够激发起学生的学习热情和学习兴趣,提高自信心,使学生在不断地对自己的知识进行完善的过程中,也提高对自身的评价和自我认识的能力,让学生保持一种良好的心理状态,进行尝试性的学习。
尝试性程序设计语言教学方法,是笔者在总结多年的教学实践中发现的,应用到日常的教学过程中,可以取得良好的教学效果。尝试性教学方法的应用可以帮助学生提高对程序设计语言知识的理解,获得较强的解决问题的能力,提高学生的通过问题发现知识的“自我学习”能力。这种教学方法还需要在实践中进一步的完善和总结。 转贴于
参考文献
[1]朱昌流.论启发式教学的有效实施[J].教育与职业,2007,(18).
[2]陶沼灵.启发式教学方法研究综述[J].中国成人教育,2007,(4).
[3]邵洁.课堂学习共同体的有效建构:以高级语言程序设计(VB)课程为例[J].现代教育技术,2009,19,(8).
[4]樊新华,孟铂.“C程序设计”启发式实例教学探讨[J].计算机教育,2008,(18).
关键词关键词:数据库课程设计;项目驱动;教学方法;考核方法;能力培养
中图分类号:G434 文献标识码:A 文章编号文章编号:16727800(2013)008017402
作者简介作者简介:邱月(1979-),女,硕士,湖北经济学院信息管理学院讲师,研究方向为数据库技术。
0 引言
数据库技术已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术是将数据库与软件开发相结合,数据库设计和基于数据库的应用程序开发。为此,课程要求学生选用主流DBMS,自选某种高级程序设计语言,实现一个完整的以数据库为核心的B/S或C/S架构的应用系统。掌握设计实现一个完整的产品化导向的数据库应用系统的流程和方法,包括需求分析、数据库设计、应用程序设计。本文分析了湖北经济学院开设数据库课程设计以来,实践教学环节中存在的问题,结合项目模拟实训教学方法的基本原理,提出了基于团队项目模拟实训的数据库课程设计教学方法的具体方案及实施效果。
1 数据库课程设计教学现状
(1)题目过少不够开放。湖北经济学院是一所财经类教学型学校,开设的主要专业为经济管理类。但目前的题目多数都是老师提供给学生的,题材类似,不可避免地会出现学生相互抄袭的现象。另外,题目呆板,没有和本校的专业特色相结合,选择余地太少。长此以往,会使学生养成不劳而获的坏习惯,不利于学生毕业之后适应竞争激烈的社会。
(2)学生轻分析设计,重编程实现。 学生把编程工作放在数据库设计中的首要位置,轻数据库及其对象的设计,重开发工具的使用。很多学生只重视系统功能模块的设计与实现,缺乏全局观念。
(3)学生缺乏整体意识,团队协作能力不强。在数据库系统开发的过程中,学生对系统没有整体规划,经常把时间都花在需求分析和系统实现上,造成在学生项目后期没有时间做系统测试,这样开发出来的系统必然出现很多问题。
软件开发是一个系统工程,特别强调团队协作能力。如果一个课程设计题目只让学生一个人完成,缺少与他人相互的交流,不利于交流与沟通能力的培养和项目的正常开展。原有教学模式下,学生做课程设计往往单打独斗,没有形成一个团队。
(4)课程考核方式不够科学。老师通常采用平时成绩和实验报告相加权作为总成绩。在这种考核方式下学生是被动地完成任务,不知道所做项目的评定标准,因而积极性不高,也不能通过项目设计有效地提升自己的能力。
2 数据库课程设计基础准备及教学目标制定
2.1 基础准备
综合性的实验课程往往需要很多课程作支撑。在该课程开设之前,前期学生应该已经学习了C、C++等一些经典的程序设计课程,学习了数据库原理及软件工程课程,对于数据库原理课程中的相关概念例如数据库文件的创建、表的建立以操作、视图与SQL查询、存储过程与触发器等进行了相关实验,对于关系型数据库基本概念和特性有一个比较完整的认识。由于课程设计中需要将数据库原理与工程项目相结合设计出具体的应用程序和界面,所以学生还需掌握至少一门前台开发工具,如 、或PHP等,让不同层次的学生选择不同的培养方案,有针对性地进行学习。
2.2 教学目标
结合教材上关于数据库设计的思想和方法,对一些简单的信息管理问题进行必要的分析和设计。在掌握了数据库系统的基本原理和基本方法的基础上,熟悉数据库管理系统的工具及语言。能查阅资料解决数据库技术方面的问题,具备在微软开发平台下进行数据库设计和管理操作能力,培养数据库应用系统开发的基本能力,项目合作、团队精神及小组交流的能力,培养学生运用数据库管理系统解决实际问题的能力。
3 数据库课程设计教学构思
课程组根据学生的实际情况,制定了相应的教学计划。本课程安排在一个学期内,32学时,每周具体安排如表1所示。
3.1 人员安排及开题
把整个班级按照开发小组的形式进行分组,每组4~5人,选一名组长,每个同学承担不同的角色,共同完成任务。在整个过程中,为了达到锻炼的目的,每个同学的角色可以互换。
在选题方面,应充分考虑到学生的专业特色,体现经管类专业的特点,选择具有专业特色的案例,以激发学生的学习兴趣。比如,针对“旅游管理”专业和“国际金融”专业,可以根据专业要求来分别制定教学案例,使学生在数据库课程设计中加深对本专业课程的理解,从而达到数据库课程设计和专业特色融合的目的。在制定选题的过程中,教师应进行充分的调研,与该专业的教师进行讨论,帮助学生选择他们熟悉的题目,如旅游酒店管理系统、学生成绩管理系统、人力资源管理系统等,或者选择学生生活中经常接触、能很快上手的内容。同时,应注意控制题目的规模和难度,使学生经过努力后能在规定的时间内完成。这个阶段可以充分调动学生的积极性,鼓励学生自己选题组建项目小组。这种方式经检验取得了较好的效果。
3.2 需求分析
在此阶段,要尽可能收集课题的全面需求,利用不同小组互相模拟实际用户的形式,开小组讨论会来确定需求,增强学生的沟通能力和开发兴趣,并引导学生自己画出数据流图。
例如,某家工厂的采购部每天需要一张订货报表,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件列出下述数据:零件编号、零件名称、订货数量,目前价格、主要供应者。零件入库应有入库单,零件出库应有出库单,通过放在仓库中的CRT终端把入库单或出库单报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。
当系统比较复杂时,应当采用分层描述的方法。一般第一层描述系统的全貌,第二层分别描述各子系统的结构。如还未表达清楚,可以继续细化。
3.3 系统设计与实施
确定用户需求后,进入系统设计阶段。物理设计阶段应该充分利用表、视图、存储过程、触发器等各个数据库对象的特点,建立一个完整的数据库。要引导学生利用课程设计来熟悉数据库开发的一些常用技术和工具。例如,在数据库课程设计中可以教学生怎样使用Power Designer来做数据库设计。在软件公司实际的数据库系统开发中,有很多工具可以直接完成从数据库概念模型到物理模型的设计和转化。
系统实施阶段,各小组可以选择自己熟悉的程序设计语言动手编写代码,完成系统各个模块的功能。开发语言可选择机房环境,有Java、VB、VC、PB等;数据库可使用提供的SQL Serever2000、DB2、MySQL5等主流DBMS;软件架构两层、三层都可以。教师对各小组学生在设计中遇到的具体问题,有针对性地给与启发式的引导。
3.4 系统测试
系统测试阶段可以选取小组之间交换测试,主要从功能测试、数据库测试两个方面找出系统的缺陷,对软件质量进行评价打分。列出测试计划,往各数据库表中插入正确的测试数据,测试数据插入情况和各种约束作用,并记录结果;往各数据库表中插入错误的测试数据,记录出错结果;在各数据表中修改测试数据,记录测试结果;各数据表中删除测试数据,记录测试结果;创建各权限等级的用户,授予相应的权限,然后按权限等级执行相应操作,查看操作结果是否正确,最后再编写实验报告。
数据库功能测试主要是对界面进行测试,按用户类型进行分部测试,查看每一种类型的用户功能是否有欠缺;用户操作是否符合实际,是否具有意义;尤其是在功能实现上,不同情况,会有怎样不同的处理;查看在出错的情况下,系统如何处理。3.5 完成设计报告
设计报告主要内容要求有系统需求分析(功能模块图)、基本ER图(要求标明主码、外码、联系类型)、用户子模式设计、按模块分析所编写的应用程序等。撰写设计报告前小组中各成员必须对自己的工作进行归纳、分析和总结。小结一般包括工作内容、工作量大小、自己完成情况、遇到的问题以及解决方法、收获与体会、今后努力与改进方向等。教师给出设计报告书写规范,学生根据系统分析设计结果完成该部分内容。报告编写是考查一个学生总结工作、撰写科技论文的能力。该环节考查的重点:报告是否内容完整、充实,条理是否清楚,格式是否符合科技文章规范。
3.6 检查与考核
考核是检验教学成果的有效方式和重要手段,对学生学习和教师教学具有重要导向作用,不同的考核方式能激发学生的学习动机。除了加强平时考勤外,教师还需在每个阶段对各个项目小组进行跟踪检查,对各个阶段的完成情况进行记录。从数据库原理、数据库应用和数据库设计三方面对学生进行综合评测,达到对数据库系统主要内容和框架的评测。具体考核指标权重为:平时表现 (25%) + 任务完成情况 (30%) + 答辩 (20%) + 设计论文 (25%)。同时还要鼓励学生在课程设计后,尽量撰写相应科研论文,积极申报校级学生科研项目。对于能力非常突出的学生,可以建立课外研究小组,让他们参与到教师在研的省部级科研项目中,进一步提升他们的专业技能和综合素质。
4 结语
数据库技术是一门理论和实践并重的学科。课程设计是否成功的标准在于学生是否通过项目开发,将自己所学到的数据库知识运用于实际需求中,是否提高了学生的动手能力。通过两年的教学实践证明,以这种方式开展课程设计更贴近企业实际的项目开发方式,能倡导学生主动参与的探究式学习和研究,改变学生被动接受、大量反复操练的学习和实验方式, 真正培养学生严谨周密的思维和临时处理问题的能力,满足企事业单位信息化建设的用人需求,有效地解决了理论教学与实践教学脱节和经管专业学生数据库工程实践能力薄弱的问题。另外,做好数据库课程设计作业有利于学生毕业设计报告和毕业论文撰写。今后学生面临的毕业设计其实就是一个完整的系统设计,是课程设计的扩大化、完整化,为设计报告的撰写、文献资料的查阅也为今后撰写毕业论文打下坚实的基础。
参考文献参考文献:
[1] 赵慧敏,杨鑫华,牛一捷. 数据库课程设计实践教学改革探索[J].当代教育论坛,2011(8).
[2] 张志锋,王文冰.以就业为导向的学生综合能力培养教改研究[J].计算机教育,2010(11).
[3] 林巧,丁革建.数据库课程设计的项目化实验教学方法[J]. 实验室研究与探索,2009(5).