labview课程设计程序

2024-12-25

labview课程设计程序(通用8篇)

labview课程设计程序 篇1

基于labview的定时器程序设计

目录

1.程序设计背景„„„„„„„„„„„„„„„„„„„„„„„„„„3

1.1.labview定时器的介绍„„„„„„„„„„„„„„„„„„„„„3

2.程序介绍„„„„„„„„„„„„„„„„„„„„„„„„„„„„3

a、主要用途和功能„„„„„„„„„„„„„„„„„„„„„„„4

b、前面板图和主要部件的功能„„„„„„„„„„„„„„„„„„„5

c、程序框图„„„„„„„„„„„„„„„„„„„„„„„„„„„6

3.程序改进„„„„„„„„„„„„„„„„„„„„„„„„„„„„8

4.程序界面及层次关系„„„„„„„„„„„„„„„„„„„„„„9

5.存在的一些问题„„„„„„„„„„„„„„„„„„„„„„„„10

6.程序来源说明„„„„„„„„„„„„„„„„„„„„„„„ 10

1.程序设计背景

定时器在家用电器中经常用于延时自动关机、定时。延时自动关机用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相机曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如空调中的定时器,在工作一段时间后便能自动切断电源停止工作。夏季夜间使用,入睡前先设好预定时间,等睡熟后到了预定时间,空调自动关机。方便节能。定时器除了应用于家电之外 还广泛应用于工农业生产和服务设施,军事等。发展前景

传统的定时器大多数是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械中也有试用时间继电器的。相对于传统的定时器,电子定时器的体积小,重量轻。造价低。精度高、寿命长,而且安全可靠,调整方便,适于频繁的使用。同时随着现代电子技术的不断发展,定时器也在不断更新,朝着更多用途,更高精度,更小体积发展着。

Labview的定时器:

1.为什么要使用定时: 一般来说在循环中,我们都会添加一个定时器。他们的作用主要有2 个:

1.控制代码执行的速率:简单的来说,如果在循环中添加了定时,就可以控制循环以一定间隔重复执行;或者在串口通信中,在发送指令后等待指定的时间再读返回值。

2.降低CPU 占用率:如果没有设置定时,CPU 的大部分资源会一直被该线程占用,而无法执行其他线程。2.定时VI 用法:

在LabVIEW 中的常用定时有等待(ms)倍毫秒

1. 等待(ms)

该VI 的输入端为整型,单位是ms。指定代码执行的时间间隔。举例来说,连入VI 的输入为10ms,如果循环中代码的运行时间是3ms,那么每次循环的时间是10ms;如果循环中代码的运行时间是14 毫秒(大于10ms),那么每次的循环的时间是14ms。

(Windows 下软件定时的精度在1 个ms 左右,所以实际的情况会有1ms 左右的误差)

2. 等待到下一个整数倍毫秒

该VI 输入为整型,单位是ms。该VI 将定时和系统的时钟对应起来,使用该定时VI 后,代码将在系统时钟为定时时间的整数倍执行。使用该定时VI 的第一次运行时间间隔是不确定的。比如设定定时为1000ms,对于第一次运行,无论当前时间是50ms 还是850ms,都将在下一次1000ms 的整数倍时间第二次运行该代码,那么实际的间隔分别是950ms 和150ms。

3.定时的精度: 对于上面提到的定时VI,输入的单位都是ms,但是实际运行的最小间隔在2ms 以上。这是因为Windows 操作系统中,对线程的操作最小的间隔是2ms。

4.使用定时的注意事项:

在使用等待到下一个整数倍毫秒时需要注意,当该VI 处于等待状态时,整个线程都将处于等待状态。在对时间要求较高的实时系统中,往往不可以简单的将该定时VI 和代码并行的放置。

,和等待到下一个整数程序介绍

a、主要用途和功能 在测量过程中,有时需要测量、记录数据在2小时内的分布情况(稳定性、波动性);有时需要每10分钟测量一次数据并保存结果。这就需要有一个定时器或倒计时器来控制测量的过程,利用“已用时间”快速vi做了一个既有“定时”功能又有“倒计时”功能的vi,基本上满足应用程序的设计要求。

该vi的定时精度不是很高,大概在正、负1s左右,基本上可以满足工程上的使用要求。

b、前面板图和主要部件的功能

定时时间选择——这是一个枚举控件,用来选择定时或倒计时的时间间隔。设计时定义了一些常用时间的数据列表。

定时器(倒计时器)——这是一个开关控件,用来选择是定时功能还是倒计时功能。开始计时后将被灰化(运行时不可再操作)。

停止(开始)——这是一个开关控件,用来控制是否开始计时。开始计时后将被灰化(运行时不可再操作)。

定时持续时间——这是一个字符显示控件,用来实时显示定时或倒计时的时间间隔数值。

强行停止计时——这是一个开关控件,用来强行停止计时过程(退出计时)。

c、程序框图

整个程序框图

程序在执行时,首先通过选择按钮,选择是定时器模式还是倒计时模式,然后经过每局按钮确定定时时间,再按下开始,若在定时器模式下,则定时显示时间从0递增到枚举选择的时间,此过程中按钮变灰,不可用,到点时,由开始转为停止,所有键可用。倒计时器模式与此过程大致相同,唯一不同便是计数从预设值递减为0。程序在执行过程中可用确定强制退出键退出。

计时的功能由“已用时间”实现,枚举的数值为其上限,在定时器模式,已用时间直接输出到格式化日期,再到时间显示控件。在倒计数器模式,已用时间输出数据先与枚举数做减法运算,在输入到格式化日期。

中断循环由已用时间的结束输出、强行停止键、过程错误输出三者通过逻辑与接到中止键。

程序改进

上述程序过于简单,现做改进如下:

1.将枚举控件用一个数值输入控件代替,这样就可以自行确定定时或倒计时的时间,从而扩大了程序适用的范围。(注意输入的数值以分钟记)

2.为了更好的达到倒计时预警的效果,现加入LED灯进行倒计时小于10时的显示,从而更加直观,鲜明,同时为了不影响程序的观看效果,LED灯只在倒计时的最后10秒出现,其余情况皆为不可见。3.在程序设计中使用属性节点,比如本例中:利用属性节点将程序运行过程中的操作限定在唯一性上,可以降低操作者的误操作可能性。本程序运行时,要么等待定时结束,要么由操作者强行停止计时。

4.新增一个图片下拉表,它的可视性与LED灯的情况相同。

5当定时时间到时,发出声音报警。整体程序图

程序界面

存在的一些问题

本程序的定时显示精确性不高,例如LED灯的数字无法做到同步显示等等。程序来源说明

本文原程序来源于http://tieba.baidu.com/p/1585935847 9

labview课程设计程序 篇2

一、前面板设计

前面板的设计首先要考虑的因素是界面友好, 操作方便。前面板上设计了一个导入图片按钮, 点击此按钮可选择需要导入的图片;一个隐藏按钮, 点击此按钮可隐藏导入的图片, 再次点击可将隐藏的图片显示出来;一个停止按钮, 用来停止该程序的运行;同时设计了四个显示控件用来显示图片的大小及位置;一个图形控件用来显示导入的图片。

二、框图程序设计

用Labview编制的程序由许多相互关联的对象所组成, 这些对象按照程序流程的需要连接。因此用Labview编制的框图程序同时也就是一张数据流程图。设计图象处理框图程序应按以下步骤进行:

(1) 设计程序流程;

(2) 做程序分析, 尽量将主程序设计的易读;

(3) 针对具体要求, 对相应对象的特性进一步设计和修改;

(4) 按程序流程用连线连接各对象;

(5) 用Labview提供的各种程序调试工具调试源程序, 直至达到预期要求。

1. 子VI的设计

(1) 图片导入

在Labview中, 使用JPEG文件路径来导入图片, 利用“读取JPEG文件”函数 (如图3所示) 来读取图象数据并将该数据输入到“绘制平化象素图”及“解除捆绑”函数中, 显示导入的图片及图片的位置和大小, 图片导入的子VI程序如图4所示。

(2) 图片处理

导入图片后即可对图片进行显示、隐藏等处理了。本设计中利用属性节点来实现对图片的隐藏和显示处理。

将“隐藏图片”按钮连接至属性节点, 当按下按钮时隐藏图片, 再次按下按钮时可将隐藏的图片显示出来, 图片处理的子VI如图5所示。

2. 主程序介绍

在主程序中根据数据流将上述实现个部分功能的子VI组合起来, 并以适当的方式将它们与前面板联系起来, 再对其进行一些必要的处理, 比如循环控制、创建属性节点等。

主程序中包括一个While循环和两个Case选择结构。While循环用于控制启动或者退出程序的运行;一个Case选择结构是选择是否进行图片导入, 另一个Case选择结构是选择显示图片还是隐藏图片。主程序如图6所示。

设计好主程序以后需要对程序进行调试, Labview中提供了5种对于程序排错很有用软件调试技术, 分别为: (1) 找出错误; (2) 设置执行程序高亮; (3) VI程序的单步执行; (4) 探针; (5) 断点。本设计利用上述方法进行程序调试, 最终调试通过, 达到了预期要求。

三、结论

本设计利用Labview图形化编程语言的特点, 设计了一个图片处理程序, 实现了图片的隐藏及显示等简单功能, 基本达到预期要求。

参考文献

[1]袁渊, 古军, 习友宝, 古天祥.虚拟仪器基本教程[M].电子科技大学出版社, 2002.4

[2]张微, 晏康.LabVIEW的虚拟仪器技术应用[M].重庆工商大学计算机科学与信息工程学院

labview课程设计程序 篇3

【摘要】为了真实模拟电厂燃油储罐泄漏的变化规律,在分析液体储罐泄漏模型和蒸发模型的基础上,基于LabVIEW虚拟仪器平台,设计了一款电厂燃油储罐泄漏模拟程序。通过输入储罐的设计资料,燃油的存储情况及油罐车卸油进罐的流速等指标,可以模拟出储罐泄漏的变化情况及各时刻的泄漏量和蒸发量。仿真实验结果表明:电厂燃油储罐泄漏速率高,短时间泄漏量大;蒸发速率随时间的推移呈显著的指数增长。模拟结果符合客观实际,为电厂燃油储罐的安全管理提供了有益参考。

【关键词】电厂储罐;泄漏;蒸发;LabVIEW虚拟仪器

1、引言

火力发电厂一般将轻柴油存储于封闭的储罐中,由于轻柴油中含有一定量的硫化物、环烷酸和氯盐[1],加之个别电厂的地理位置靠近海洋,储罐长期处在强风和潮湿的环境中,极容易出现腐蚀性泄漏的情况。液态燃油泄漏可能会引发火灾、爆炸和扩散中毒事故,造成极其严重的后果[2]。因此,对电厂燃油储罐泄漏过程的正确研究是控制事故发生,提高电厂安全管理的前提条件。由于电厂燃油储罐规模庞大,实验模拟的难度极大,而运用计算机仿真则能很好的解决这一问题,同时节约了成本,缩短了研究周期。本文针对电厂燃油储罐泄漏的特点建立了储罐泄漏和蒸发模型,基于LabVIEW虚拟仪器平台开发了一套动态仿真模拟程序,该程序可以展现储罐泄漏后实时的泄漏量和蒸发量,并图形化的展现该两种定量指标的变化趋势,为电厂燃油储罐区的安全评价和应急救援管理提供了有益参考。

2、材料与方法

2.1软件的开发环境

实验室虚拟仪器工程工作台简称LabVIEW,是一个用于开发虚拟程序语言的平台软件。通过系统软件的框图来组成算法,然后形成用户界面,算法、条件、功能都包括在详细的框图之中,框图的性质在每个分行代码和终端决策中得以体现[3]。LabVIEW最大的特点之一是具有较好的数据图形化功能,通过图形展示的数据变化趋势,可使结果一目了然。并且其图形代码(G代码)的设计方式降低了开发的难度和周期。

2.2储罐的泄漏模式及数学模型

2.2.1泄漏模型。燃油储罐泄漏主要是由于油品中存在强氧化性和强腐蚀性的化合物,加之环境潮湿而形成腐蚀小孔,泄漏发生的部位一般是储罐的底部。泄漏的流速和液面高度、储罐内外压差有关。由于小孔的泄漏量相对于整个储罐的存储量不大,所以在瞬时或短时间内的泄漏可以看做压强差没有变化,根据伯努利方程[4]来计算,泄漏的速率为:

2.2.2蒸发模型。液体油品流出泄漏口,掉落在地面形成液池,液池在表面张力的作用下以圆形均匀向外扩展,忽略液体粘性,最终形成等厚度的圆形液池。液池在风和大气的作用下出现蒸发现象,液池蒸发的速率可根据理想气体方程[5]:

3 储罐泄漏模拟程序设计

3.1 模块和设计流程

将上述计算模型置入LabVIEW虚拟仪器平台进行编程,该程序有数据输入模块,模型算法模块和结果显示模块。其中模型算法是核心模块,选择输出格式,可以输出数值和图形两种显示格式,便于使用者根据用途进行选择,程序设计流程图如图1所示。

3.2程序应用

沧东发电厂燃油储罐区使用储罐的基本资料如表2所示。某时刻罐内已存放#0轻柴油833t,此时有油罐车卸油进罐,使用卸油泵流量为23.4m3。假设此时储罐底部出现面积为0.0025m2的长方形泄漏孔,运用本系统计算卸油过程中5分钟内的泄漏情况,得出储罐的初始泄漏速率为15.0243kg/s,最终的泄漏速率为14.9988kg/s,总泄漏量高达4488.47kg;初始蒸发速率为2.771×10-5kg/s,最终蒸发速率为6.05×10-3kg/s,总蒸发量为0.9334kg。泄漏量和蒸发量的实时变化如图2所示。

由图(a)可知,油罐车卸油进罐和泄漏共同作用,导致了泄漏流量逐渐增加,但由于腐蚀孔较小,泄漏量远远小于储罐的存装量,导致泄漏量曲线变化不明显;由图(b)可知,泄漏液体的蒸发量明显呈指数增长,这是由于流出液体形成的液池扩大速度极快,液體的单位蒸发面积也随之扩大,蒸发速率呈指数增长。两种曲线的变化是符合客观规律的,由此可见LabVIEW的动态模拟结果是合理的。而在此作业过程中,仅5分钟储罐的泄漏量就达到了4t以上,足见燃油储罐泄漏事故的严重程度,需要对其进行重点管理。

4、结论

本文针对电厂燃油储罐泄漏的特点,设计了燃油储罐泄漏模拟系统。该系统可以准确的模拟储罐的泄漏过程,计算出任意时刻的泄漏量和蒸发量等定量参数,并展现出其变化趋势,在储罐存量动态变化时也能起到较好的效果。运用该系统可以较好的模拟储罐泄漏的事故后果,企业可以此为依据安排应急救援力量,同时也为储罐的安全评价提供了一定的参考。

参考文献

[1]郑明光,于凤昌.原油动态腐蚀评价[J].石油化工腐蚀与防护,2007,24(4): l6-l8.

[2]蒋国辉,张晓明,闫春晖,等.国内外储罐事故案例及储罐标准修改建议[J].油气储运,2013,32(006):633-637.

[3] Chouder A, Silvestre S, Taghezouit B, et al. Monitoring, modelling and simulation of PV systems using LabVIEW[J].Solar Energy, 2013, 91:337-349.

[4] 蔡凤英等.化工安全工程[M].科学出版社,2009.

[5] Mackay D, Matsugu R S. Evaporation rates of liquid hydrocarbon spills on land and water[J]. The Canadian Journal of Chemical Engineering, 1973, 51(4): 434-439.

[6]潘旭海,蒋军成.泄漏液池动态蒸发过程模型研究与分析[J].工业安全与环保,2006,32(4):43-46.

作者简介

labview课程设计程序 篇4

一、题目

1、实用的通讯录管理

2、单科课程成绩管理

3、多功能网址收藏管理

4、图书信息管理

二、调试环境

TurboC++3.0或者VC++6.0 所有同学必须提交实验报告电子版一份,内容包括: 1.课程设计说明书

2.源代码和注释、编译链接生成的目标文件、可执行文件(请将所有文件压缩成rar格式一并提交)

三、注意事项

(一)独立完成

任何人不得抄袭、拷贝。凡发现实验报告或源程序雷同,涉及的全部人员后果自负。

(二)一人一题

一人一题,要求独立完成,清考学生可以自选任意一题。

(二)课程设计说明书要求 课程设计说明书有以下内容:

题目一 实用的通讯录管理

题目简述

现代社会人们之间的交往越来越多,通信录的建立和管理显得尤为重要。本课题旨在建立一个通讯录系统,系统中保存着各人员的姓名、电话、Email以及与本人的关系(亲戚、同学、朋友、同事等)等信息,通过该系统的简单界面可以对通讯录进行新建、浏览、查找、更新、删除等操作。

具体要求

1、基本功能:(1)添加记录

先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。(2)显示记录 显示当前所有记录。(3)查询记录

按名字查找,并显示该记录。(4)通信录排序

按姓名的字母顺序排序,涉及到冒泡等排序算法。(5)删除记录

实现逐条删除和删除全部记录两种功能。(6)更新记录

修改已存在记录的信息(提示:需首先判断该记录是否存在)。(7)按关系显示记录

只显示与本人有指定关系(亲戚、朋友、同事、同学)的记录。(8)保存记录

存储所有记录到某个文件(.txt)或缺省文件(Phonebook.txt)。(9)读入记录

从某个文件(.txt)或缺省文件(Phonebook.txt)读入所有记录。首先判断当前是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,之后才能从文件读入记录。(10)退出

结束通讯录软件操作,释放内存后退出。

2、数据录入提示(1)Name 联系人姓名。为了实现排序,可以输入英文或拼音的姓名,便于调用字符串比较等函数进行比较排序。(2)Tel 可以为固定电话号码或手机号。(3)Email 输入时要根据@判断一下是否是正确的email地址格式。Email地址首位不能是下划线’_’,斜杠‘’或‘/’,点号‘.’等(类似对输入数据的判断可作为扩展,不是必须实现的功能)。(4)Relation 可以为Relative, Friend, Workmate或Classmate中的一种,用于进行条件显示,即只显示与本人有某种关系的记录。

3、其他实现提示

对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。

除了基本功能和异常处理,鼓励进行以下扩展或改进:

 有创意的设计

 采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵活性、可移植性等) 友好的输入界面;

 对输入数据的对错判断等;  功能扩展;

 程序的简洁明了和可读性等。

主要数据结构

结构体Address: 包含Name, Tel, Email, Relation(与本人的关系)以及Address类型的指针(用于链表操作)等成员变量。

具体技术

1.指针、结构体的应用

2.单向链表的建立,插入,添加及删除等 3.文件的读写

4.简单算法:如排序算法等 测试要求

1、要求准备至少有10条记录的通信录文件(addrlist.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

题目二 单科课程成绩管理

2.1 题目背景

依照学校教务处的规定,各位每门课的成绩的给出要依据三方面的内容,平时成绩、期中成绩和期末成绩,期中和期末均为满分制,平时成绩则主要由平时作业组成,可能由4次到5次等,每次10分。这三项按照任课组老师指定的百分比计算总评分,例如可能总评分=平时成绩×20%+期中成绩×20%+期末成绩×60%。

现在我们希望大家给老师们做一个这样的单科课程成绩管理系统,要求能够实现上面所说的要求,具体的规范如下。2.2 程序功能

本程序利用单链表存储结构完成对学生成绩的动态管理,要求实现如下的基本功能。

2.2.1 菜单操作

在屏幕上显示菜单,通过输入0-X之间的数字调用相应的功能函数。2.2.2 创建链表

即输入学生成绩信息,按照提示信息输入学号、姓名、各个平时成绩、期中成绩和期末成绩。注意:申请内存空间,验证输入数据是否符合要求,设置输入结束标志。2.2.3 显示链表

显示当前链表中的所有记录。注意输出格式的直观。2.2.4 删除记录

删除指定学号的记录。注意删除记录要释放该记录占用的内存空间。2.2.5 查询记录

按姓名查找并显示该记录。(可扩展为按照姓名和学号两种方式查找)2.2.6 插入记录

插入记录需要输入插入位置和新记录信息。输入某个记录的学号,新结点将插入在这个指定记录之前。2.2.7 更新记录

修改已存在记录的分量信息。2.2.8 保存文件

将学生成绩信息保存到指定文件(wgrade.txt)中。2.2.9 读取记录

从指定的文件(rgrade.txt)中读入所有记录。2.2.10计算: 根据结点的平时成绩、期中成绩和期末成绩,来计算每个人的总评分和所有人的平均分(平时的成绩的次数可通过N的宏定义来进行,而每项所占的比例可以在计算的时候进行输入)2.2.11排序

根据总评分进行排序,由高到低的顺序排列 2.2.12统计:

统计各个分数段的人数,不及格的,60-69的等,并保存到文件total.txt中。2.2.13退出

结束软件操作,释放内存后退出。2.3 数据结构

将一个学生的信息当作一个结点,这个结点的类型为结构体,其中至少含有下列类型的信息:学号、姓名、平时成绩(可多次)、期中成绩、期末成绩、总评分、名次,以及指向后续结点的指针等。2.4 功能扩展

可扩展程序功能,例如可集中录入某次平时作业的成绩等。鼓励有创意和实用的扩展。

2.5 测试要求

1、要求准备分别至少有10条记录的课程成绩文件(score.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

题目三 多功能网址收藏管理

题目简述

信息社会我们离不开Internet,网址的保存和管理将变得十分必要。本课题旨在建立一个多功能网址管理系统,系统中保存着各网址的命名、网址、收藏日期以及类别(学习、体育、音乐、健康等)等信息,通过该系统的简单界面可以对通讯录进行新建、浏览、查找、更新、删除等操作。

具体要求

1、基本功能:(1)添加记录

先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。(2)显示记录 显示当前所有记录。(3)查询记录

按命名查找,并显示该记录。(4)网址的排序

按网址的字母顺序排序,涉及到冒泡等排序算法。(5)删除记录

实现逐条删除和删除全部记录两种功能。(6)更新记录

修改已存在记录的信息(提示:需首先判断该记录是否存在)。(7)按关系类别显示记录

只显示与网址有指定关系(学习、体育、音乐、健康)的记录。(8)保存记录

存储所有记录到某个文件(.txt)或缺省文件(favorite.txt)。(9)读入记录

从某个文件(.txt)或缺省文件(favorite.txt)读入所有记录。首先判断当前 7 是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,之后才能从文件读入记录。(10)退出

结束通讯录软件操作,释放内存后退出。

2、数据录入提示(1)命名

自己对网址的命名。为了实现排序,可以输入英文或拼音的姓名,便于调用字符串比较等函数进行比较排序。(2)域名

可以为ftp或www。(3)收藏日期

输入时要判断一下是否是正确的日期格式。(类似对输入数据的判断可作为扩展,不是必须实现的功能)。(4)类别

可以为学习, 体育, 音乐或健康中的一种,用于进行条件显示,即只显示与网址有某种关系的记录。

3、其他实现提示

对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。

除了基本功能和异常处理,鼓励进行以下扩展或改进:

 有创意的设计

 采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵活性、可移植性等) 友好的输入界面;

 对输入数据的对错判断等;  功能扩展;

 程序的简洁明了和可读性等。

主要数据结构

结构体Address: 包含Name, Domain, Date, Sort(与网址的关系)以及Address类型的指针(用于链表操作)等成员变量。

具体技术

1.指针、结构体的应用

2.单向链表的建立,插入,添加及删除等 3.文件的读写

4.简单算法:如排序算法等 测试要求

1、要求准备至少有10条记录的通信录文件(favorite.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

题目四 图书管理系统

3.1 程序功能

3.1.1 必须实现的功能

 图书信息录入功能,包括图书信息的插入、修改和删除。

 借阅人员信息录入和修改功能,包括借阅人员信息的插入、修改和删除。 借书功能;  还书功能;  预约功能;  统计输出功能:

 统计馆藏书籍总数、已借出图书总数、在馆书籍数等  统计过期书及其借阅者信息;

 所有图书的列表输出、所有读者信息的列表输出功能。3.1.2扩展功能(加分) 借阅人违章罚款功能

 图书的分类统计功能(如按出版社、中图分类号、出版年份分类等) 借阅权限设定,如:

 对读者进行分类,设置不同的最大借阅数量;  有超期书籍禁止借阅等。 违章统计,如:

 统计违章次数超过x次的所有读者

 按违章次数对有违章情况的读者进行排序等。3.2 提示与实现要求 3.2.1基本数据信息

图书资料基本信息:图书编号、中图分类号、书名、作者、出版社、出版日期、ISBN、版次、定价等。

图书的扩展信息:借阅状态(空闲、借出和预约)、借阅人或预约人(借书证号),借阅时间。

读者的基本信息:借书证号、读者姓名、读者单位、读者类别(本科生、研究生、教师)

读者的扩展信息:已借图书的册数等。3.2.2 数据结构

用两个链表分别存储图书信息和读者信息,具体的链表结构由同学们自行设计,可以采用较简单的单链表,也可以采用较为复杂的链表结构,如对于图书,可以先建立中图分类号的链表,对于每种分类则可以再组织一个单独的链表;对于读者,则可以先建立读者单位链表,为每个单位建立一个单独的读者链表。注:中图分类号可以在网上搜到,为了简化设计,不要求同学们细化中图分类号,只考虑大类,如:TB 一般工业技术,TD 矿业工程,TE石油、天然气工业,TF 金工业,TG 金属学,TH 机械TJ 武器工业,TK 动力工业,TL 原子能技术,TM 电工技术,TN 无线电电子学、通信技术,TP 自动化技术、计算技术等。3.2.3 功能提示

1)、图书和读者信息的插入功能:参照在链表中插入一个节点的方法。2)、图书和读者信息的插入功能:参照在链表中插入一个节点的方法。3)、图书和读者信息的删除功能:参照链表的删除操作方法。4)、图书和读者信息的修改功能:在链表中寻找相应的记录并修改。

5)借书功能:图书状态由空闲变为借出,借书读者的借书册数等相关信息发生变化。(可选:有超期图书的读者不能借书,超过借阅权限数不能借书)。6)还书功能:图书状态发生变化,由借出状态变为空闲或预约状态。7)预约功能:图书借出时才能由其他读者使用预约功能,该图书归还后只有预约读者才能借出。

8)统计功能:“统计馆藏书籍总数、已借出图书总数、在馆书籍数、统计过期书及其借阅者信息”等功能都可以通过遍历整个链表的方式得到;所有图书的列表输出、所有读者信息的列表输出功能同样可以用遍历链表的方式得到,要求输出结果分别存在books.txt和reader.txt文件中。测试要求

1、要求准备分别至少有10条记录的图书信息文件(bookt.txt)和读者信息文件(reader.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

附录二: 编程规范

1、空行

每个函数定义结束之后都要加空行。

在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

2、代码行

一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。

代码行最大长度宜控制在70至80个字符以内。

长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。

if、for、while、do等语句自占一行,执行语句(包括{})不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。

3、空格

关键字之后要留空格。

赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。

一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

4、对齐

 程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

 { }之内的代码块在‘{’右边数格处左对齐。

5、注释

每个函数之前需要对该函数的功能和接口进行说明。

边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。12 不再有用的注释要删除。注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

6、标识符命名

《C语言程序设计》课程教学设计 篇5

理学院电子科学系计算机基础教研室 赵永梅

《C语言程序设计》是大学计算机基础教学系列中的核心课程之一,是计算机及信息类专业本科生必修的一门专业基础课。它讲述了C语言的语法、数据类型、结构化程序设计方法等方面的内容,从而形成一个比较完整的、系统的计算机及信息类专业计算机程序设计基础教学内容,是学员从技术的角度学习计算机的主要基础课,具有不可替代的基础性、先导性和全局性作用。

一、课程教学对象分析

本课程的教学对象是培训部计算机类专业一、二年级本科层次学员。所有教学对象都应该已经学习过《大学计算机基础》,但由于学员的计算机基础的较大差异,针对教学对象的实际情况,应当根据教育部高等学校计算机科学与技术教学指导委员会《关于进一步加强高等学校计算机基础教学的意见》暨计算机基础课程教学基本要求,给以适当的分类、分层次教学,即一般要求和较高要求,使学员掌握C语言的简单程序设计的基本技术和方法。

二、课程基本理念

本课程以培养复合型的专业技术人才为目标,全面贯彻素质教育和创新教育思想,着力提高人才培养质量。通过本课程的学习应使学员掌握正确的程序设计方法与思想。具有初步的利用计算机分析问题、解决问题的意识与能力,为学员将来到社会从事专业应用软件的开发打下重要基础。

三、课程设计思路

以本课程的基本理念为指导,对课程目标分别从知识与技能、过程与方法、情感态度与价值观等方面进行了具体明确的阐述。课程内容与教学要求主要阐述学员学习本课程必须掌握的内容要点及达到的基本要求,并注明了重点和难点。在实施建议部分,分别对课程教学实施、课程考核评价、教材选编使用、课程资源开发与利用以及教学保障等提出了明确建议。本课程是一门实践性很强的课程,应改变传统的注重语法规则的应试型教学模式,合理安排教学实践环节,加强程序设计技能的教学,以培养学员的专业技能,突出学员学习的主体地位。可通过与实际应用结合紧密的例题,增设小型工程应用项目的研究或运用案例式教学,提高学员编程的技巧。

四、课程教学目标

以《计算机程序设计》的课程标准为参考,根据教育部新的精神和要求,通过课堂教学与实践教学,让学员了解《C语言程序设计》这门课程的性质、地位和在工程应用中的价值;熟练掌握C语言的语法,掌握程序设计的基本思想和方法,具备良好的程序设计风格和程序的调试技能。能够利用软件工程的思想,运用数据结构基本知识和算法,解决实际生活中或者专业课中涉及到的实际问题,从而培养学员分析问题、解决问题的能力。

五、课程教学内容

(一)教学内容

根据《C语言程序设计》课程标准,参照相关专业人才培养方案以及后续课程的开设情况,讲授8个教学单元的教学内容。

第一单元:C语言概述

教学内容:C语言的特点、C语言源程序简介、C语言源程序的基本结构、C程序的编辑、编译、链接和运行

学时分配:讲课2学时,实习2学时

目的和要求:了解C语言及其特点、掌握C语言源程序基本结构、掌握C语言源程序集成开发环境

重 点:C语言源程序的基本结构。难 点:C语言源程序集成开发环境。第二单元:基本数据类型及其运算 教学内容:C语言的基本数据类型及其分类、变量与常量、各种运算符及其表达式

学时分配:讲课4学时,实习2学时

目的和要求:了解C语言的数据类型、掌握常量与变量的概念和使用方法、掌握C语言中的整型数据、浮点型数据和字符型数据的表示方法、掌握各种运算符和表达式的使用方法、掌握各类数值型数据之间混合运算的方法

重 点:基本数据类型及其分类 难 点:各种运算符和表达式的使用 第三单元: 结构化程序设计

教学内容:算法的概念及特性、算法的描述、结构化程序设计方法、C的语句、赋值语句、数据的输入与输出、顺序结构程序设计、关系运算、逻辑运算和条件运算、if语句、switch语句、while、do„while、for、break、continue语句、循环结构程序设计

学时分配:讲课22学时,实习6学时

目的和要求:理解算法的概念和特性、掌握用N-S图描述算法、初步了解结构化程序设计的思想、掌握用N-S图描述三种基本结构、掌握C语句的种类和特点、掌握数据输入、输出的方法、掌握顺序结构程序设计方法、掌握关系运算、逻辑运算和条件运算、掌握if语句和switch语句的执行过程、掌握选择结构程序设计方法、掌握三种循环语句的执行过程和区别、掌握break和continue语句的用法、掌握循环结构程序设计方法。

重 点:算法的概念及特性、C的语句、逻辑运算,if语句和switch语句构成选择结构、三种循环语句

难 点:掌握用N-S图描述算法、数据的输入与输出、switch语句的执行过程、循环结构程序设计

第四单元:函 数

教学内容:函数的定义与声明、函数的调用与返回、数组作为函数的参数、变量的存储类别、内部函数和外部函数

学时分配:讲课4学时、实习2学时

目的和要求:理解函数的基本概念、掌握函数的定义、声明、调用和返回、掌握数组作为函数的参数的特性、掌握变量的作用域及存储方式、了解内部函数和外部函数的使用方法及区别

重 点: 函数的定义和调用,数组作函数的参数 难 点: 函数的递归调用和嵌套调用 第五单元:数 组

教学内容:数组的概念、一维数组的定义、引用和初始化、二维数组的定义、引用和初始化、字符数组的定义、引用和初始化、字符串处理函数

学时分配:讲课6学时、实习2学时

目的和要求:理解数组的基本概念、掌握数组的定义、初始化和数组元素的引用方法、掌握字符数组和字符串处理函数的使用、掌握与数组有关的常用算法(冒泡排序和选择排序)

重 点:数组的定义、初始化和数组元素的引用 难 点:二维数组和字符数组的应用 第六单元:结构体和共用体

教学内容:结构体类型及其使用方法、指向结构体类型数据的指针、用指针处理链表、共用体类型及其使用方法、枚举类型及其使用方法、用typedef定义新类型

学时分配:讲课4学时、实习2学时

目的和要求:理解结构体、共用体类型和枚举类型的概念、掌握结构体、共用体和枚举类型数据的使用、了解用指针处理链表的方法和意义、掌握typedef命令的使用方法

重 点:结构体、共用体类型和枚举类型数据的使用方法 难 点:指针处理链表的方法 第七单元:指 针 教学内容:指针的概念、指针与变量、指针与数组、指针与字符串、指针与函数

学时分配:讲课6学时、实习2学时

目的和要求:理解指针的概念、掌握指针变量的定义、引用方法及运算、掌握通过指针访问数组的方法、掌握通过指针处理字符串的方法、掌握使用指针作为函数的参数、掌握函数指针、掌握指针数组和指向指针的指针

重 点:指针的概念、指针作函数的参数、数组的指针和字符串的指针

难 点:函数的指针、指针数组和指针的指针 第八单元:文 件

教学内容:文件类型指针、文件的打开与关闭、文件的读写 学时分配:讲课2学时,实习2学时

目的和要求:掌握文件概念及文件的打开与关闭、掌握文件的顺序和随机读写、了解文件的出错检测

重 点:文件的打开、关闭和读写函数的使用 难 点:文件类型指针

(二)教学实践

本课程是一门实践性很强的课程,上机实习是教学过程中的一个重要环节,目的是使学员熟练掌握C程序编辑、编译、链接和运行的基本步骤,提高学员在TURBOC环境下,运用C语言对具体问题进行程序设计的能力。按照课程标准,本课程共安排20 学时的上机实习。

为了更好地开展教学实践,给每位学员统一发放了与主讲教材配套的上机指导书《C程序设计上机实践指导书》,以辅助理论教学,提高学员的程序设计的能力。

实践教学内容与课时分配如下: 实验1: TURBOC 2.0环境下的基本操作 课时分配:2学时 实验目的:

(1)掌握TURBOC 2.0的基本操作;

(2)掌握TURBOC 2.0环境下编辑、编译、链接和运行程序的基本方法;

(3)初步了解C语言源程序的基本结构。实验2 :基本数据类型及其运算 课时分配:2学时 实验目的:

(1)掌握C语言的基本数据类型,学会变量的定义和赋值;(2)熟练掌握C语言有关运算符、表达式的使用方法;

(3)进一步熟悉C语言程序的编辑、编译、链接和运行的基本步骤。实验3: 顺序结构程序设计 课时分配:2学时 实验目的:

(1)熟练掌握各种基本类型数据的输入、输出方法;(2)熟练掌握赋值语句的使用方法;

(3)熟练掌握格式输入、输出函数的使用方法。实验4 :选择结构程序设计 课时分配:2学时 实验目的:

(1)掌握关系表达式、条件表达式以及逻辑表达式;(2)熟练运用if语句的不同形式编写程序;(3)掌握switch语句的使用方法。实验5: 循环结构程序设计 课时分配:2学时 实验目的:

(1)熟练掌握while,do„while,for语句的使用;(2)掌握在程序设计中用循环方法实现的一些常用算法;(3)进一步熟悉调试程序的方法。实验6: 函数 课时分配:2学时 实验目的:

(1)掌握实参和形参在函数间进行“值传递”的对应关系和传递方法;

(2)掌握函数的嵌套调用和递归调用;(3)理解变量的存储类别和作用域。实验7: 数组 课时分配:2学时 实验目的:

(1)掌握数值型数组的初始化和输入、输出的方法;(2)掌握字符数组的初始化和字符串的输入、输出方法;(3)掌握数组下标的表示方法。实验8: 结构体与共用体 课时分配:2学时 实验目的:

(1)掌握结构体类型和结构体变量的定义和使用方法;(2)学会构造合理的数据结构解决实际问题的方法;(3)理解动态内存分配的概念;(4)掌握简单链表的定义和操作;(5)掌握共用体数据的定义和使用方法;(6)掌握枚举类型数据的定义和使用方法。实验9: 指针 课时分配:2学时 实验目的:

(1)理解指针和地址的概念;掌握指针变量的定义和使用方法;(2)掌握用指针处理数组的方法;(3)掌握字符串指针的使用方法;(4)掌握函数的指针的使用方法;(5)掌握指针数组和指针的指针的使用方法;(6)掌握指针变量的运算。实验10: 文件 课时分配:2学时 实验目的:

(1)掌握文件的打开和关闭方法以及文件的读写方法;(2)了解文件的定位以及出错的检测。

六、教学方法手段

(一)教学方法

通过对基础知识的讲解,突出基本概念、基本思想的讲授和基本技能的训练,结合案例精讲多练,注重讲解与实际应用结合紧密的例题,加强实践练习。在教学过程中,贯穿“讲授式”、“启发式”、“案例式”、和“研讨式” 等教学方法。

注意教学方法的灵活性,教学过程中,借助现有的多媒体设备,灵活运用教学方法,再现问题情景,增加互动氛围,培养学员分析问题、解决问题的能力和探究意识。

作业量每次3-5题,难度应当适中,教员应做到定时批阅,及时讲评。

注重实践环节。实习课(20学时),在教员指导下,单人单机自主进行。实习内容根据程序设计基本技能中的要求合理设计,依次实施。

适当增加一些小型项目或以大作业的形式,使学员进一步加强学习的自主性,培养解决综合问题的能力。

(二)备课与课堂设计 1.备课

按照人才培养方案、课程标准和教学基本要求,在开课前需要深刻理解本课程各单元的主要教学内容,以课程教学组为基本单位组织集体备课,统一教学要求、统一授课标准、统一课程进度。认真撰写教案、制作课件并对针对重点如何突出、难点如何突破进行讨论与试教练讲。

2.课堂设计

将课程的全部教学内容分解落实到有限的25次课堂面授(50学时)和10次自主上机实习(20机时)之中去。在开课之前适当时候组织学员进行摸底考试,并且在开课后的两周之内及时组织召开教学联系会,全面了解学员对C语言的掌握情况和掌握程序设计方法的情况,以便因材施教,有的放矢。

七、教学评价

程序设计技术课程教学大纲 篇6

一、课程名称:程序设计技术

二、学时与学分:56学时(含实验学时32/2)3.5学分

三、适用专业:非计算机理工科各专业

四、先修课程:大学计算机基础、高等数学

五、课程教材: 《程序设计技术(C语言)》(第3版)熊壮,陈策等编著,重庆大学出版社出版

六、参考教材: 《计算机程序设计基础》,熊壮,刘慧君,伍星编著,机械工业出版社

《计算机软件技术基础》,梁光春、曾

一、熊壮编著,重庆大学出版社出版

《C语言程序设计》,孙家骕等编著,北京大学出版社出版 《The C Programming Language》(Second Edition),Brian W.Kernighan & Dennis M.Ritchie,机械工业出版社

七、开课单位:计算机学院

八、课程的性质、目的和任务:

计算机软件技术基础课程是我校为非计算机专业理工科学生设置的一门重要的计算机基础课程。程序设计技术和程序设计语言是大学计算机基础系列课程中的重要组成部分,培养学生的逻辑思维能力、抽象能力和基本的程序设计能力是程序设计技术课程的主要任务。本课程从结构化程序设计技术出发,以C程序设计语言为教学语言,通过对典型实例的算法描述以及相应C语言代码描述展现了在程序设计过程中如何对问题进行分析,如何组织数据和如何描述解决问题的方法,展现了在计算机应用过程中如何将方法和编码相联系的具体程序设计过程,进而向学生传授结构化程序设计的基本概念、基本技术和方法。通过本课程的学习,可以为学生学习其他计算机应用课程打下良好的程序设计基础。

九、课程的主要内容:

(一)C语言数据描述和C程序设计初步

1.C程序的基本结构

2.C语言的基本数据类型

3.基本运算符和表达式

4.不同类型数据混合运算及数据转换 5.C程序设计初步

6.常用数学类标准库函数使用

(二)结构化程序设计基础和C语言的控制结构

1.C程序控制结构中的条件表示 2.分支结构程序设计基础 3.循环结构程序设计基础

4.C语言中的其它简单控制结构 5.C语言控制结构应用举例

(三)数组及其应用基础

1.一维数组应用基础

2.二维数组和多维数组应用基础

3.数组简单应用——数组元素值的随机生成 4.数组简单应用——常用排序方法 5.数组简单应用——常用查找方法

(四)C程序结构与C函数

1.函数的定义和调用 2.函数的嵌套调用和递归调用 3.变量的作用域和生存期 4.编译预处理

5.多源文件C程序的组织方法

(五)指针及其应用基础

1.函数与指针的关系及其简单应用 2.返回指针值的函数

3.多级指针的定义和使用

4.指针与数组的关系

5.指针数组和命令行参数 6.用指针构成动态数组(*)

(六)字符串数据处理及其应用

1.C语言的字符串表示方法 2.字符串中有效字符的统计 3.字符串的复制 4.字符串的连接

5.字符串中字符的查找 6.字符串中字符的插入和删除 7.字符串的比较和子串的查找 8.字符串中子串的插入和删除

(七)结构体类型和联合体类型

1.结构体数据类型的基本概念

2.typedef关键字的简单应用 3.结构体数组

4.结构体数据类型与指针的关系

5.结构体数据类型的简单应用——单链表 6.联合体数据类型的基本概念

(八)C语言的文件处理及其应用

1.文件概念与文件类型指针

2.C语言中的文件处理基础

3.文件的基本读写操作和顺序文件处理 4.文件的定位操作和随机文件处理

(九)位运算与枚举类型

1.C语言的位运算及其应用 2.位段及应用

3.枚举数据类型及其应用

十、课程的实践性教学环节

本课程实践性教学环节学时数为32/2,实验环境为:

1)WINDOWS 9X/2000/XP/2003操作系统环境; 2)Microsoft Visual C++ 6.0)集成环境;

实验内容参照《程序设计技术》课程实验教学大纲执行。

十一、说明:

十二、学时分配:

本课程理论教学学时数为40,各部分学时分配如下:

(一)C语言数据描述和C程序设计初步(3H)

(二)结构化程序设计基础和C语言的控制结构(5H)

(三)数组及其应用基础(4H)

(四)C程序结构与C函数(5H)

(五)指针及其应用基础(8H)

(六)字符串数据处理及其应用(4H)

(七)结构体类型和联合体类型(4H)

(八)C语言的文件处理及其应用(4H)

(九)位运算与枚举类型(3H)

十三、考试方式:

本课程考试由笔试和实践环节考试(考查)组成,笔试为闭卷考试,试题类型为:

1)单项选择 2)程序填空 3)阅读程序题

4)根据算法写程序或者根据程序写出算法描述 5)按要求编写程序

大纲制定者:熊壮

labview课程设计程序 篇7

关键词:LabVIEW语言,NI-VISA驱动,串口通信,虚拟仪器

Lab VIEW是Laboratory Virtual Instruments EngineeringWorkbench的缩写 , 即实验室虚拟仪器工程平台 , 是美国国家仪器公司 (National Instruments, 简称NI) 开发的编程语言 , 使用图形方式编程, 最早版本诞生于1986年。LabVIEW不仅可以与数据采集、视觉、运动控制设备等硬件进行通信, 还可以与GPIB、PXI、VXI、RS232和RS485等仪器进行通信。NI公司独创了虚拟仪器的理念 , 提出了“软件就是仪器”的理念。Lab VIEW程序称为虚拟仪器 (Virtual Instruments , 即VI) , 其外观和操作类似于真实的物理仪器 , 可用于采集、分析、显示和存储数据, 由前面板和程序框图组成。前面板实现人机交互界面, 由控件选板中的输入控件和显示控件组成。输入控件指旋钮、按钮、转盘等输入装置, 显示控件指图形、指示灯等输出显示装置。程序框图使用图形方式 编写代码 , 使用函数选板中的VI和函数控制前面板上的对象。

NI-VISA是仪器编 程的标准I/O API, 可控制GPIB、串口、USB、以太网、PXI和VXI仪器, 并根据使用仪器的类型调用相应的驱动程序, 用户无需学习各种仪器的通信协议。

接下来介绍结合实例讨论基于Lab VIEW和NI-VISA的两台PC机串口通信的程序设计方法。软件的开发运行环境为:LabVIEW 2013 SP1、NI-VISA 5.4.1、Windows XP SP3。

1 串口 VI 和函数

串口通信在一台计算机和一个外围设备 (如一台可编程仪器或另一台计算机) 间传输数据。在近距离串 口通信时 , 只需要用电缆直接连接计算机和外围设备, 不需要其他多余的硬件。使用串口通信前必须指定4个参数: 波特率、数据位、校验位和停止位, 然后可以使用串口收发数据, 串口通信结束后必须关闭串口以释放资源。

串口VI和函数用于访问与连接至串口的设备进行通信的VISA VI和函数。VISA VI和函数用于对使用VISA的仪器编程。串口VI和函数位于“函数选板->仪器I/O->串口”, 共8个函数, 它们分别是: VISA配置串口、VISA写入、VISA读取、VISA关闭、VISA串口字节数、VISA串口中断、VISA设置I/O缓冲区大小和VISA清空I/O缓冲区。

1.1 VISA 配置串口

功能: 按指定的设置初始化VISA资源名称指定的串口。参数如图1所示。

启用终止符指定串行设备是否识别终止符。值为TRUE (默认 ) , 识别终止符 ; 值为FALSE, 串行设备不识别终止符。

终止符设置终止符, 当串行设备读取终止符后读取操作终止。默认的终止符是换行符0x A (n) , 回车符0x D (r) 也常用作终止符。

超时指定读/写操作的超时时间, 以毫秒为单位, 默认值为10000。

波特率传输速率, 默认值为9600。

数据位发送数据的位数, 数据位的值介于5和8之间, 默认值为8。

奇偶指定要发送或接收的每一帧使用的奇偶校验。0:no parity ( 默认 ) , 1: odd parity, 2: even parity, 3: markparity, 4: space parity。

停止位指定用于表示帧结束的停止位的数量。10: 1停止位, 15: 1.5停止位, 20: 2停止位。

流控制设 置传输机 制使用的 控制类型 。0: None (默认) , 1: XON/XOFF, 2: RTS/CTS, 3: XON/XOFF and RTS/CTS, 4: DTR/DSR, 5: XON/XOFF and DTR/DSR。

1.2 VISA 写入

功能: 将写入缓冲区的数据写入VISA资源名称指定的设备或接口。参数如图2所示。

写入缓冲区包含要写入设备的数据。

返回数包含实际写入的字节数。

1.3 VISA 读取

功能: 从VISA资源名称指定的设备或接口中读取指定数量的字节, 并将数据返回至读取缓冲区。参数如图3所示。

字节总数要读取的字节数。

读取缓冲区包含从设备读取的数据。

返回数包含实际读取的字节数。

1.4 VISA 关闭

功能: 关闭VISA资源名称指定的设备会话句柄或事件对象。参数如图4所示。

1.5 VISA 串口字节数

功能: 返回指定串口的输入缓冲区的字节数。参数如图5所示。

Bytes at Port VISA类Instr的属性节点 , 可指定该会话句柄使用的串口当前可用字节数。

1.6 VISA 串口中断

功能: 发送指定端口上的中断。参数如图6所示。

持续时间指定中断的长度, 以毫秒为单位。

1.7 VISA 设置 I/O 缓冲区大小

功能: 设置I/O缓冲区大小。如需设置串口缓冲区大小, 必须先运行VISA配置串口VI。参数如图7所示。

屏蔽指明要设置大小的缓冲区。16: I/O接收缓冲区 , 32: I/O发送缓冲区 , 48: I/O接收和发送缓冲区。

大小指明I/O缓冲区的大小, 以字节为单位。大小应略大于要发送或接收的数据数量。如在未指定缓冲区大小的情况下调用该函数, 函数可设置缓冲区大小为4096字节。如未调用该函数, 缓冲区大小取决于VISA和操作系统的设置。

1.8 VISA 清空 I/O 缓冲区

功能: 清空由屏蔽指定的I/O缓冲区。参数如图8所示。

屏蔽指明要刷新的缓冲区。按位合并缓冲区屏蔽可同时刷新多个缓冲区, 接收缓冲区和发送缓冲区分别只用一个屏蔽值。16: 刷新接收缓冲区 并放弃内 容 (与64相同 ) , 32:通过将所有缓冲数据写入设备, 刷新发送缓冲区并放弃内容, 64: 刷新接收 缓冲区并 放弃内容 ( 设备不执 行任何I/O) , 128: 刷新发送缓冲区并放弃内容 (设备不执行任何I/O) 。

2 程序实现

利用Lab VIEW编写程序实现两台PC机通过串口发送和接收字符串。

2.1 前面板

在前面板设计区的空白处单击鼠标右键, 可以显示控件选板。

(1) 添加1个字符串输入 控件和2个字符串 显示控件 , 位置在“控件->新式->字符串与路径”。字符串输入控件用来输入要发送的数据, 字符串显示控件用来显示接收到的数据。

(2) 添加1个VISA资源名称控件 , 位置在“控件 -> 新式->I/O”。VISA资源名称控件用来检测串口资源, 单击箭头, 可以选择串口号和刷新资源。

(3) 添加1个确定按钮控件和1个停止按钮控件 , 位置在“控件->新式->布尔”。将确定按钮的文本改为“发送”, 将停止按钮的文本改为“退出”。

设计完成后的前面板如图9所示。

2.2 程序框图

在程序框图设计区的空白处单击鼠标右键, 可以显示函数选板。

(1) 配置串口

使用VISA配置串口函数初始化串口参数, 如图10所示。使用VISA资源名称控件获取可用的串口。使用常量设置串口参数, 这里的设置为: 9600波特率、8位数据位、无奇偶校验、1位停止位、不使用终止符, 这些参数可以根据需要适当调整。

(2) 串口发送数据

使用VISA写入函数发送数据, 如图11所示。点击发送按钮, 发送字符串控件中的数据经由串口发送出去。使用连接字符串函数给发送字符串添加上“【我说】:”和“rn”。

(3) 串口接收数据

使用VISA读取函数接收数据, 如图12所示。当串口的输入缓冲区有数据时, 读取数据并在接收字符串2控件中以十六进制形式显示出来。使用连接字符串函数给接收字符串添加上“【你说】:”和“rn”。

(4) 显示数据

当有数据发送或接收时, 在接收字符串1控件中以正常形式显示发送和接收的字符串, 并清空发送字符串控件中的数据。在程序框图中通过控件引用的方法节点对控件进行操作, 在接收字符串1控件中追加字符串, 在发送字符串控件中重新初始化为默认值。使用连接字符串函数合并发送和接收字符串。

设计完成后的程序框图如图14所示, 程序运行界面截图如图15所示。在while循环中使用了500毫秒延时用来进行流控制。使用字符串长度函数计算字符串长度, 当字符串长度大于0时, 在显示控件1中输出收发的数据。

3 结语

C++程序设计课程教学探讨 篇8

关键词:C++程序设计教学方法教学内容教学手段

目前面向对象程序设计和分析方法是当前软件开发应用最广的方法,C++程序设计作为面向对象程序设计的具体的实现语言,其重要性可想而知。在目前计算机专业的高校毕业生在求职过程中,很多单位以C++作为一道初步的考核门槛。因此,C++程序设计的教学直接关系着高校计算机专业学生以后的就业竞争力,提高C++程序设计的教学效果对提高学生的就业能力作用可谓非常大。本文从教学方法、教学内容和教学手段这三方面有针对性的提出了改进思路。

1.教学方法的选取要和课程特点相结合

目前,高校计算机专业C++程序设计这门课程的开设方法主要有两种,第一种是先开设一个学期的C语言程序设计,再在下一学期开设C++面向对象的程序设计;第二种方法是直接开设C++程序设计这门课。 两种方法各有优缺点,第一种方法采取循序渐进的方法,学生在学习C++时相对比较轻松,因为C++中毕竟要用到C语言中的基本语法,而他们事先已经学过C语言程序设计。但缺点是C++程序设计和C语言程序设计主张的思想不同,C语言用的结构化的程序设计思想,而C++采用的是面向对象的程序设计思想[1],这样会导致学生以以前学习C语言的方法来学习C++程序设计;第二种方法可以让学生一开始就接受面向对象的程序设计思想,但缺点是学生入门比较难。

梧州学院计算机专业C++程序设计这门课程是排在大二的第一学期,也就是在刚学完C语言程序设计之后,这样有一个优点是可以使学生尽快的利用已学习的C语言基础来学习C++,因为C++程序设计中必须用到相关的C语言的基本语法知识,但缺点是会导致学生以以前学习C语言的方法来学习C++程序设计,因此,必须要让学生的思维从C语言学习中过渡到C++学习中来。荐于这样,在教学过程中可以采用这种方法:首先在正式讲解C++中的类之前,要求学生先利用以前学习过的C语言来编写一个较为复杂的程序,然后在在以后讲解C++的内容时,就以这个较为复杂的程序为例,以面向对象的思想对比以前用C语言编写的程序,从而可以使学生深入理解面向对象的程序设计方法比结构化程序设计方法的优越性,这样更能让学生理解到面向对象的程序设计思想的优点。

2.教学内容的组织要合理

C++程序设计课程要求学生掌握的是面向对象的程序设计思想和方法[2],对算法没有很高的要求,因此教学内容的组织也和其它程序设计语言有所区别。下面分课堂教学[3]和实验课教学两方面来研究一下。

2.1课堂教学方面

首先,要告诉学生C++程序设计这门课程学习的目标和要求。本课程主要要是讲解面向对象程序设计的三种特性,即封装性、继承性和多态性,要求学生在理解这三种特性的基础上能对其进行灵活运用,并且最终能运用面向对象的程序设计的思想和方法来分析问题和解决问题。因此在教学过程中,首先是要告诉学生这门课程学习的目标和要求是对面向对象程序设计的思想,而对算法没有什么要求。这一点针对梧州学院计算机专业的学生很重要,因为根据以前的教学经验了解到,梧州学院的在校生大多来自广西区,很多学生在高中时根本没有接触过计算机,逻辑分析能力比较差,因此很多学生对所学的第一门程序设计语言——C语言都还不是很熟悉,对C语言存在着心理阴影,因此首先从告诉他们学习C++程序设计对具体的逻辑分析要求不高,以解除学生的压力,只有这样才能在以后的教学过程中逐步激发学生的学习积极性。

另一方面,在C++程序设计课程教学过程中举例要有代表性和针对性。正是因为C++程序设计对具体的算法要求不高,因此对相关内容的讲解不可能用到那些短小而有趣的例程来讲解,这就给激发学生的兴趣带来了不利影响。实际上,几乎所有的C++程序设计的教材在讲解相关知识点时都是举一些简单而又很枯燥的例子,比如在讲封装性时,很多教材就直接以桌子、椅子等对象来说明怎样达到封装的效果,但根本体现不了封装带来的好处。针对这一特点,我总结的方法是首先在正式讲解C++程序设计前,让学生运用C语言编写一个较为复杂的程序,比如前面讲到的“学生成绩管理系统”,然后在讲解后面的封装时告诉学生哪些应该封装成一个类,应该怎样封装,封装之后有什么好处,再和以前的程序进行比较就可以让学生很直接就体会到面向对象的程序设计方法的优点。

2.2实验教学方面

C++程序设计作为一门程序设计语言,上机实验是必不可少的,而且是很重要的一个教学环节。实验课的目的是让学生把课堂上学习的C++程序设计方法具体的运用到实际的程序中,以加强学生对面向对象程序设计思想和方法的进一步的体会[4]。

首先,在C++程序设计实验课教学中,要改变传统的TC集成环境,而要用更加实用和方便的Visual C++开发环境。和C语言程序设计不同,C++程序设计不仅是要学习基本的语法,更重要的是学习面向对象的程序设计的思想和方法,比C语言程序设计有着更高的实用性,并且Visual C++开发环境对C++语法有着更好的支持,对多文件结构的程序更加容易组织,可以直接在窗口界面下直接操作,调式功能比TC集成环境操作更加简单,而功能更加强大;另外,Visual C++作为一个优秀的开发环境,学生越早接触越能够激起学生的编程兴趣,对学生以后掌握Visual C++开发环境有很大好处。

其次,在实验内容方面体现多层次、阶段性的特点。针对梧州学院计算机专业的学生,其中有一部分相对基础比较差,有一部分相对比较好,因此要做到因材施教,在实验内容方面就要有一个层次要求。实验内容分成基本部分和提高部分,基础比较差的只要完成基本部分,基础相对好的可以让他们完成提高部分;阶段性主要是和C++程序设计这门课程特点相关的,可以在实验课时要求学生完成一个比较复杂的程序作为课程设计,在学习到相关知识点时就完成相关的设计,到学期期末时,所有知识点学完了就正好可以完成整个设计,这样的好处是可以使学生在学习中直接运用所学到的方法开发具体的程序,使学生更快更牢的掌握对面向对象的程序设计方法。

3.教学手段采用多媒体技术和传统的黑板板书相结合的方式

在教学手段方面,主要采用多媒体技术和传统的黑板板书施教。现代教学手段充分利用计算机网络和多媒体技术,突出信息的形象性及感染力,使计算机具有综合处理文字、声音、图形、图像和视频信息的能力。多媒体教学使能把教学内容直观地显示出来,提高学生的注意力和学习兴趣,同时能加大课堂教学的信息量。另一方面,使用多媒体教学课件时,可以教师可以提前把教学资源按照自己熟悉的思路整理好,使教学内容规范有序。但使用多媒体教学由于没有板书的过程,学生在听课时可能没有太多的时间去思考,在上课过程中教师和学生的互动性也不好;而传统的黑板加粉笔法正好相反,其优点是注重抽象说理,学生可以感受到教师的思维过程,缺点是以“听”或“视”的单一通道方式传送信息,信息量少,进度较慢。因此C++程序设计这门课程建议采用多媒体技术和传统的黑板板书相结合的方式。目前,梧州学院教学综合楼大多数教室都配备了多媒体设备,在硬件上已经具备了多媒体教学的条件,另外,C++程序设计这门课程在教学过程中有很多内容需要即时演示给学生,主要采取多媒体教学为主,传统教学为辅的方式。

4.结束语

每门课程都有自身的特点,根据课程自身特点和各学校学生特点而采取相应的教学方法和手段,以及对课程教学内容的组织,是提高课程教学效果的一个较好的方法。

参考文献:

[1] 刘玉英.《C++语言程序设计》教学中的几个关键问题[J].浙江万里学院学报.2004,17(2):169

[2] 谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006

[3] 陈鸣,胡谷雨,周雷,等.计算机网络课程教学的思考与创新[J].高等教育研究学报,2008(2):66

[4] 李文军. 计算机专业实验教学改革的实践与探讨[J]. 实验室研究与探索,2007( 12) :45-47

上一篇:骨干教师技能培训小结下一篇:小学教师的基本功