欢迎访问爱发表,线上期刊服务咨询

程序设计的结构8篇

时间:2023-07-19 09:28:52

绪论:在寻找写作灵感吗?爱发表网为您精选了8篇程序设计的结构,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!

程序设计的结构

篇1

关键词:C语言;程序设计;教学;结构体;实验

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)09-0163-02

Abstract: C language programming is a profession course in the computer special field of study, and it is usually the first programming course to the students. So the experiment teaching of the course is too important. It mainly discusses the teaching design of structures in this paper, which can help the students to grasp the basic knowledge about structures, and can solve problems by using arrays of structure and linked lists. It proves that the teaching design can stimulate the students’ study interest.

Key words:C language; programming; teaching; structure; experiment

《C语言程序设计》这门课一般是计算机专业学生入学时所接触到的第一门程序设计课程,这门课程需要学生掌握程序设计的方法,用C语言编程解决问题。在现实问题求解时,往往用简单数据类型描述问题对象时可能不是很方便和准确,例如,描述职工信息这样不同类型的数据组合时,这时就需要定义一种构造类型的数据结构来描述,这就是结构体。而且,本文认为结构体是实现了数据的封装,在一定程度上体现了封装的特性,对后续课程的教学有一定的启发性。所以,结构体教学是C语言程序设计的一个重要的部分,同样,在实验课教学中结构体的实验教学也是重要的一个环节,特别是链表方面的实验教学对后续课程,如《数据结构》起着基础性的作用。本文主要是对结构体的实验教学的设计进行探讨。

1 结构体实验教学的设计

结构体实验教学在教学时设计了3个实验题目,这三个实验题目的难度由易到难,试图让学生掌握结构体变量、结构体数组和链表的使用。

1.1 结构体变量的实验设计

结构体变量的实验属于结构体实验中比较简单的实验,这个实验就是让学生练习如何根据实际问题,用结构体定义自己所需的类型,再使用这种类型定义变量,编写程序去解决问题。

在实验教学中,教师要求学生解决如下的问题:要求用户输入三个点的坐标,编程判断这三个点是否可以构成一个三角形,如果可以则输出三角形的类型,即直角三角形、锐角三角形或者钝角三角形。这个题目在实验课上是以程序填空题的形式提供,这样既可以引导学生初次使用结构体进行编程,在填写缺失的代码过程中,锻炼学生的程序阅读能力。在题目设计中尽可能的考察学生以前的所学知识点,比如,函数形参、函数调用、选择结构编程等等。

这个程序填空题首先要求完成图1中所示的点的结构体的设计,从而让学生掌握如何根据实际需要来定义结构体这种类型。再要求学生完成图1中input函数和len函数的填写,让学生掌握如何使用结构体变量的成员分量,并注意函数的类型;judgeexist函数用于判断三个点能否构成三角形,在这个函数中强调逻辑运算符的使用,同时让学生注意函数的返回值类型,强调C语言的数据类型没有逻辑型,若想表示真假这样的逻辑型值可以用1和0这样的数值型数据来表示。

图2中的qcos函数在设计填空时主要考察的是指针的使用,让学生加深指针作为函数形参传递的是地址值这一个概念的理解。这个函数在编写时并不是很难,就是三角形余弦函数的使用,关键在于形参变量中指

针变量的引用,即诸如*cosA的赋值。而图2中judgetype函数就是依据三个角的余弦值来判断三角形是直角三角形、锐角三角形,还是钝角三角形。这个函数在设计填空时,主要是考察学生关系运算符的使用,以及嵌套的选择if语句的理解和应用。图3中主函数的设计填空主要是考察学生是否了解上述用户自定义函数的功能,并通过填写函数调用语句能正确的使用这些函数,此外,还考察了switch多分支语句的使用。

这个题目总体来说设计的并不是很难,当学生完成程序填空后,要求学生必须完成4种情况,即无法构成三角形、构成直角三角形、锐角三角形和钝角三角形的数据测试,通过输出的结果与预期结果作比较,从而检查程序是否编写正确。

1.2 结构体数组的实验设计

结构体数组的实验在结构体实验中是中等难度的实验,这个实验题目的设计主要是让学生掌握结构体数组的定义,让学生了解结构体数组元素的访问和其他基本数据类型的数组元素访问是类似的,如若要访问某个数组元素的成员分量时,需要在结构体数组元素后加上“.成员分量名”。

在实验课时,布置了如下的实验题目:输入职工的职工号、姓名、工资和出生年、月、日,按职工工资由高到低输出职工的职工号、姓名和周岁年龄。注意:输入“#”表示输入结束,假设最多只处理200个职工记录。此题在定义职工信息这种数据类型时,涉及到了出生年、月、日这种日期类型,而C语言的基本类型中没有这种类型,因此,教师可以引导学生先写出如图4(a)所示的日期类型struct date,再引导学生思考职工类型如何定义,提示学生职工信息包含出生日期这样的日期型数据,建议定义出如图4(b)所示的职工信息类型struct zg。一般地,学生会依据题目要求定义出struct zg的数组,其数组的大小为200。这个题目之所以这样设计就是希望通过这个练习让学生了解结构体类型中的成员分量没有具体类型要求,完全根据需要而设。

此题的另一个设计要点是排序算法在结构体数组中的应用,在课堂练习时,有的学生使用的是冒泡排序法,有的则使用选择排序法,但是在交换两个struct zg的数组元素时,有部分学生会注意交换结构体数组元素的成员分量,那么这时就需要声明交换结构体数组元素和交换整型数组元素的方法类似,将结构体数组元素看作一个整体。这个设计要点在于复习数组章节中所提到的排序算法。

此题最后一个设计要点是由已知的职工出生年、月、日求出该职工的周岁年龄,此处要求学生使用计算机的系统时间计算出职工的周岁年龄。为了能成功获取计算机的系统时间,则要求学生在帮助菜单或者网上查找C中“time.h”所定义的time_t这个数据类型,让学生了解typedef的用法;了解函数time()和localtime的用法,并能在程序中正确的使用;了解结构体struct tm,掌握该结构体中关于年、月、日表示的成员分量,让学生特别注意每个成员分量所表示的意义及其取值的范围,例如,成员分量tm_year表示的是年份,但是它的取值是从1900开始的一个整数,若想正确获得当前的年份值,应该是tm_year+1900。当学生能正确地完成获取系统时间的年、月、日的程序代码设计后,引导学生思考如何计算周岁年龄,实际上就是用if嵌套语句完成多分支结构的设计。这个设计要点是希望学生了解C程序设计过程中可能会出现书本上所未介绍过的知识,这就需要学生通过其他方式,例如查阅工具书或者上网等手段来获取所需的知识,同时,也复习了多分支结构的程序设计。

此外,在编程时要求学生尽量不要程序中只有一个main()函数,要尽量根据需要编写用户自定义函数。

1.3 链表的实验设计

链表实验的题目主要是让学生熟悉结构体与指针相结合,对链表有个初步认识,了解链表中的一些操作。题目与1.2中结构体数组的题目非常类似,但是要求必须用链表来完成,从而让学生熟悉链表这种结构。实验题目是:输入学生的学号、姓名和年龄,要求按学号由小到大输出学生的学号、姓名和年龄,要求输入“#”表示输入结束。这个题目解决的方法很多,因为学生初次接触链表,因此实验教学时没有提出任何方法的限制,只是要求学生用单链表求解,在求解过程中要求学生注意链表的创建算法,链表的输出算法,以及链表修改结点指针的一些操作。

首先,教师要引导学生正确的完成链表结点的定义,即指针与结构体相结合,学生信息结点的定义可以如图5所示。在求解问题时,需要学生注意结点指针的操作。实验课上,有的学生在输入学生信息时,即建链表时采用插入排序的思想,将待插入的学生信息的结点插入到已建好的且有序的链表中,用这种方法创建链表后,链表本身就是有序的,那么只需用循环结构输出链表就可以完成问题的求解。在实验课上,会发现有的学生有了这个想法但是算法编写有问题,教师在指导的过程中可以建议学生在建链表过程中,每插入一个结点后就完成当前链表的输出,从而有助于发现算法设计出错之处。

在实验课上,有的学生则先是创建链表,即将学生信息结点按输入的顺序插入到链表中,此时链表中的学生信息结点是无序的,再采用冒泡排序法或者选择排序法对链表中的结点调整顺序,最后编写循环完成链表输出。在调整结点时有的学生会出现算法思路不够清晰,有点混乱这种现象,这时教师可以建议学生在草稿纸画出链表结点的调整草图,再依据图示编写代码。在实验课上,有的学生采用排序算法调整结点时直接交换图5所示结点的no、name和age值,这种方法很便捷,但是达不到链表练习的目的,因此,教师可以鼓励学生再换一种算法。

2 结束语

本文给出了结构体实验教学的三个实验题目,这三个题目有各自的重点,而且题目有程序填空,也有程序设计,让学生由浅入深地逐步掌握结构体的定义,使用结构体变量和数组编程求解实际问题。并且实验题目中有的内容是对课本上的知识进行一定的扩展,力图培养学生的自学能力,因为在实际解决问题时,有的知识可能是课堂上没有提到的,因此,学生要学会查阅资料进行自学。

参考文献:

[1] 胡明, 王红梅. 程序设计基础――从问题到程序[M]. 北京: 清华大学出版社, 2011.

[2] 孙燮华. C程序设计导引实验与习题解答[M]. 北京: 清华大学出版社, 2011.

[3] 罗永龙, 方群. C语言程序设计[M]. 北京: 科学出版社, 2013.

篇2

全书共20章。1.Python编程101:对使用Python语言编程进行总体介绍,包括创建对象、对象调用方法、运算符重载、读取文件方法、XML文件等内容;2.计算复杂度:包括计算机体系结构介绍、常见的计算复杂性、摊销复杂度的方法等;3.递归:包括时栈和堆的概念、简单递归函数的编写、运行,递归计算机图形学、列表与字符串等;4.排序:包括选择排序、归并排序、快速排序、链表、栈和队列等内容;5.集合与映射:数独游戏介绍、集、散列等相关概念,最后分析规划问题;6.树:抽象语法树和表达、前缀和后缀表达式、解析前缀表达式、二叉搜索树等内容;7.图:包括图的定义及理论、存储结构及算法实现、Kruskal算法、Dijkstra算法、图的表示方法等;8.Bloom过滤器、Trie数据类型等相关内容;9.堆:包括堆的主要思想及其建立、排序算法、与其他算法的比较等;10.平衡二叉搜索树:二叉搜索树的概念、存储结构与性质、AVL树与 Splay树等具体实例;11.B树:包括关系型数据库的概念、B树的组织结构、优势、实现、B树的插入与删除等内容;12.启发式搜索:包括深度优先搜索与广度优先搜索、A*搜索、最佳搜索等相关内容;13.附录A:整数操作符;14.附录B:浮算子;15.附录C:字符串运算符和方法;16.附录D:列表操作符和方法;17.附录E:字典操作和方法;18.附录F:Turtle方法;19附录G:TurtleScreen方法;20.附录H:完整的程序。

作者Kent D.Lee博士是美国艾奥瓦洲路德学院计算机科学教授,已成功出版两本著作:Python编程基础和编程语言基础。另一作者Steve Hubbard博士是路德学院数学与计算机科学系教授。

本书介绍了初级与高级的数据结构和算法问题,每一章开始提供了学习目标,复习题和编程练习,以及众多的例证;同时在相关的网站提供可下载的程序和补充文件。本书可以作为计算机学科相关专业的教材或参考书,同时对计算机科技工作者也有参考价值。

篇3

关键词:循环结构;C语言程序设计;非计算机专业

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)26-6323-05

Discussion on Loop Structure Teaching in C Language Programming of Non-computer Specialty

XIA Yun

(College of Mathematics and Computer Science, Anhui Normal University , Wuhu 241000 , China)

Abstract: The teaching of loop structure is an important component in C language programming. This paper designed 5 teach? ing examples for the students of non-computer specialty. This paper analyzes the teaching progress in detail and emphasizes the teaching points of the loop structure teaching. And it produces a good effect in the actual teaching progress.

Key words: loop structure; C Language programming; non-computer specialty

大学计算机应用基础作为一门课程大约于20世纪90年代中期开设,现在已成为大学里的计算机学习基础课程,是所有非计算机专业大一新生的必修公共基础课,也是培养学生基本素质的一门重要课程[1]。作为大学计算机应用基础课程,理工类专业大部分会开设程序设计课程,有部分专业会开设C程序设计课程。C语言是一种语法灵活、适用范围广的高级程序设计语言。结构化程序设计方法有三种基本结构:顺序结构、分支结构和循环结构。顺序结构和分支结构比较简单,循环结构从教学上来说是重点也是难点。本文主要对C语言循环结构教学进行探讨。

1教学内容的分析

C语言循环结构编程主要涉及到三种循环结构语句while、do-while和for。本文作者认为非计算机专业开设这门课程,主要是讲解程序设计的方法,培养学生的编程能力和思维能力,因此,在教学中上述的三种语句可以以while语句为重点,讲解循环结构编程的思想,do-while和for语句可以简单举例说明它们的流程。在讲解循环结构编程分析时,可以以流程图或者用自然语言逐步描述操作步骤的形式,指出循环结构编程关键是找到在什么情况下需要反复执行某些操作,并找到这些反复执行的操作是什么。

2教学用例的分析

在课程教学过程中,需要用一些例子来配合讲解循环结构的编程。在教学时,选取一些比较合适的例子,可以很好地帮助学生理解所教授的内容。教师在教学过程中除了要加强课堂启发外,尽可能结合课程自身的特点,注重学生现场演练,并采用任务驱动、师生互动、鼓励学生等教学手段来提高其学习的主动性和积极性[2]。

2.1导入的例子

在教学活动中,讲授后面知识内容时要与前面知识相互呼应[3],因此,在上课时,可以以这样的问题开始,例题1:用户输入正整数n值的大小后,要求计算1+2+3+…+n,将所得出的结果输出。这个例题主要是复习前面的内容,复习输入、输出函数和分支结构的编程。该问题提出后,可以让同学们思考一下,然后再进行提问,提问时可以让学生说出编程思路,若课堂时间比较多也可以请学生直接编写源代码并运行。

提问时,有的同学可能给出如下的顺序结构编程的解答:

步骤1:输入整数n

步骤2:求s=(1+n)*n/2

步骤3:输出s

while (j

{输出i*j

j++;}

由此,得出在循环while (i

循环结构是结构化程序设计的一种重要结构,在教学中不仅需要学生掌握这种结构的语法,更重要的是培养学生的设计思维和思考方法,本文主要是从教学的角度,对循环结构的整个教学过程设计了5个教学用例,并对其进行展开分析,重点是让学生掌握循环结构编程的思想,实际上就是在问题分析过程中找循环条件和循环操作,在实际教学中取得了较好的效果。

[1]何文海,吴明珠,谢剑刚.情商与智商相结合的教学模式[J].现代计算机,2007(8):73-75.

[2]郭海花,陈允芳,王健.非计算机专业中“VB程序设计”教学方法初探[J].计算机教育,2009(18):98-100.

篇4

1、整体思路清楚,目标明确。

2、设计工作中阶段性非常强,有利于系统开发的总体管理和控制。

3、在系统分析时可以诊断出原系统中存在的问题和结构上的缺陷。

4、用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。

5、用系统开发每个阶段的成果来进行控制,不能适应事物变化的要求。

6、系统的开发周期长。

篇5

关键词:教学设计;分支结构;IF语句

中图分类号:G633.67 文献标志码:A 文章编号:1674-9324(2012)03-0226-02

教材分析:

该课题的内容选自于《算法与程序设计》教材,该教材是上海市高中信息科技课程选修模块。学习本模块的内容,目的是进一步激发学生对计算机探索学习的兴趣,培养运用计算机解决具体问题的基础能力,养成良好的思维与程序设计基本习惯。

《分支结构的程序实现》是本模块第四章第一节的内容。分支结构的授课分为两课时,第一课时:分支结构的流程图绘制;第二课时:分支结构的程序实现。本课为第二课时,主要内容是用IF语句解决日常生活中涉及分支结构的实际问题。

通过本课的学习,有助于学生体会和理解程序设计的思想,提升学生解决问题的能力,而且也为之后循环结构、枚举算法的学习打下基础。

学情分析:

学生在学习本课内容前,需有两方面的知识储备:

1.通过分支结构第一课时“分支结构的流程图绘制”知识的学习,理解并掌握分支结构的特点、执行流程及其作用。

2.通过“顺序结构及其程序实现”知识的学习,基本掌握VB控件的设置、动作的实现等内容,对于VB程序的建立、运行、调试过程也有一定的实践经验。

对上述内容的学习和掌握为本节课的学习奠定了一定的基础。另外,高一的学生分析解决问题的能力、自我探究的能力也有了一定的水平。

教学资源:

根据教学内容和学生实际,在教学资源方面做如下准备:

1.技术准备:计算机网络机房、多媒体广播软件、Microsoft Visual Basic 6.0中文版

2.资源。①教师机:1个PPT课件,2个程序(1个“猜价格”的演示程序,1个“ATM机录入密码”半成品程序)②学生机:1个“半成品”程序(包含3个小任务)

教学目标分析:

1.知识与技能:①掌握分支选择中IF语句(块语句)的格式和功能。②学会用IF语句解决日常生活中的实际问题。

2.过程与方法:①通过依次学习单分支语句、双分支语句,再到分支嵌套语句,学生能循序渐进地掌握分支结构。②通过采用VB半成品加工策略来完善程序,学生能体验运用编写程序解决问题的基本过程。

3.情感态度与价值观:①培养学生严密的逻辑思维能力、自主探究能力。②加强学生利用本学科解决日常学习生活中问题的意识。

教学重点难点:

教学重点:掌握分支结构IF语句的格式。

教学难点:能根据实际分析问题,写出程序并调试成功。

教法与学法:

1.教法:半成品加工方法。采用半成品加工方法,可以淡化与分支结构无关的内容,例如可视化VB界面的设计,从而有效提高课堂效率,这种方式在巩固练习中使用非常合适。

2.学法:自主学习、小组讨论、组间交流。学生作为学习的个人主体,必须通过自主学习掌握本节课的学习内容,从而培养学生独立解决问题的能力。采用小组讨论、组间交流的方法,培养学生互助、团结协作的良好品质;增强学生协作学习、与人合作交流的意识;形成积极主动的学习和使用信息技术、参与信息活动的态度。

教学过程设计:

(一)创设情境,激发兴趣

1.教师演示猜价格的小程序。

2.提出问题:该程序是一种什么结构?顺序结构?还是分支结构?

3.举例:生活中有很多分支结构的问题。

4.引出分支结构的程序实现。

(设计意图:从生活中提取问题,让学生能有学习兴趣,并能及时了解本节课的学习任务。)

(二)合作探究,获得新知

以“银行ATM机录入密码”程序为例:

1.教师展示“密码判断”的单分支结构流程图,请同学用自然语言来描述。学生回答:如果(用户输入的密码为999)那么(程序提示密码正确)。

2.教师引出VB中单分支结构IF语句的基本用法。同时让同学们讨论IF…THEN…中省略号代表什么含义。学生回答:IF(条件)THEN(条件成立时执行的语句)。

3.师生共同共同编写代码,程序实现。

4.教师提出问题:如果密码是错误的,那么将会出现什么情况?如果要让程序在密码输入错误时,也要出现提示,该如何做。

5.教师展示双分支结构流程图,请同学用自然语言来描述算法。学生回答:如果(用户输入的密码为999)那么(程序提示密码正确)否则(程序提示密码错误)。

6.教师引出VB中双分支结构IF语句的基本用法,同时让学生讨论IF…THEN…ELSE…中省略号代表什么含义。学生回答:IF(条件)THEN(条件成立时执行的语句)ELSE(条件不成立时执行的语句)。

7.师生共同编写代码,程序实现。

8.教师讲解IF语句的两种格式:行IF语句和块IF语句的用法。

(设计意图:通过自然语言与程序设计语言的比对,加深学生对分支结构的认识。通过师生共同参与改写程序,使学生了解IF语句的书写格式,并感受程序语言的严谨性。)

(三)学生实践,解决问题

1.教师布置3个任务,学生选择其中一个进行操作,要求自主完成。①判断是否中奖,要求如下:程序设置初始中奖号码,若用户输入的号码为中奖号码,程序则显示“恭喜您,您中奖啦!”②判断是否打折,超市进行苹果促销,如果买5斤以内就按价格4.5元/斤计算,如果大于等于5斤,总价可打九折。要求如下:输入你买的苹果重量(单位:斤),程序显示总金额。③判断一元二次方程是否有解。要求:输入一元二次方程的系数a,b,c,判断该方程是否有解,如果有解,则输出解,如果没有解,则输出“该方程无解”。

2.任务分析:判断是单分支还是双分支结构?鼓励学生可多选任务来完成。

3.展示成果,教师强调IF语句的格式规范。

(设计意图:通过三道难易不同的题目进行分层训练,让不同知识基础和思维能力的学生都能够体验到成功的喜悦,提高学生分析问题、解决问题的能力,突出本课的重点。)

(四)交流提升,应用拓展

1.教师提出在任务2中,若要求如下:输入斤数,如果小于5斤,就按价格4.5元/斤计算,如果大于等于5斤,就打九折,如果大于等于10斤就打八折,程序显示总金额,该如何设计算法?学生回答:利用分支嵌套结构可以实现该算法。

2.教师展示分支嵌套流程图。

3.学生小组讨论,组间交流。

4.学生组内共同撰写程序。

5.教师展示学生的代码,再次强调语句撰写的规范。

(设计意图:通过对新任务的探讨、分析,加深学生对分支结构嵌套语句的理解。同时进一步养成良好的编程习惯。)

(五)总结回顾,布置作业

篇6

关键词:PLC;结构化;给排水

1 引言

随着现代工业发展进程的不断加快,工业自动化控制技术发挥着越来越大的作用,PLC控制系统的应用也日益广泛。PLC程序设计的水平优劣往往决定着工程能否及时竣工投产,工业设备能否充分发挥其设计生产能力。传统的PLC编程方式程序繁琐冗长,结构不清晰,不利于控制程序在多个项目中的重复使用。如何迅速、优质地编制符合不同设备工艺特点,参数的PLC程序,对工业控制系统的及时完工,提高自动化控制水平具有较大的意义。本文结合给排水行业常用设备及工艺程序的编写,对结构化编程在PLC中的应用进行了初步的探索,取得了较理想的效果。

2 PLC程序设计方法简介

常见的程序设计方法分为三种:线性化方法、模块化方法以及结构化方法[1]。

线性化编程方法:将所有的程序代码全部放在一个程序块中,如对S7-300/400来说,在OB1中写入数据采集、设备控制、台时统计等全部用户程序。该方法与PLC所代替的继电器控制电路类似,系统按照顺序处理各条指令。它适用于小型设备配套PLC的编程,对于大中型项目则显得程序结构不清晰,同时由于需要对不同设备编制大量类似的代码,导致代码冗长,难以调试和维护。

模块化编程方法:将程序根据不同功能需求分成不同的块,每个功能的控制指令在各自的块内,OB1按顺序调用每个块。该方法程序结构清晰,便于调试和维护,但仅将功能按块分配,加以有条件的调用,故虽然CPU效率得到提高,但代码冗长、调试困难的缺点未得到明显改善。

结构化编程方法:将复杂的自动化任务分割成过程相关的功能或可多次处理的小任务,以提供可以用于类似任务的通用的程序代码,这样更易于控制复杂任务。而这些小任务以相应的程序段表示,称为块。只需要在调用程序块时针对不同的设备和工艺流程代入不同的参数或地址,即可实现不同设备的控制,无须多处重复输入相同功能的代码。当需要对功能进行修改时只需要修改程序块即可,提高了编程的效率和可靠性。

3 结构化编程方法设计实例

在实际应用中,在对给排水行业通用设备和工艺进行详细分析的基础上,针对典型设备和工艺分别编制了水泵、仪表、阀门、泵站水泵调度、自动加药等不同的控制模块,使高效开发PLC程序在给排水行业的应用成为可能。下面以变频水泵及泵站的水泵调度为例来介绍结构化编程方法。

3.1 变频水泵功能块

变频水泵是给排水行业最常见的设备,其调用如图2所示。

图2为变频水泵控制块的调用实例,该FB的输入输出参数如图3示。

功能块接口参数共分为三种类型:输入(INPUT);输出(OUTPUT);输入输出(IN_OUT)。其中输入参数主要有:远程信号,上电信号,运行信号,水泵故障,电回路故障,变频器故障,频率输入等;输出参数主要有:开停控制,频率控制输出,实际运行频率等;输入输出类型参数主要有:变频电机状态,变频电机控制命令,电机台时及开停次数统计,频率设定值等。

输入输出类型参数可由人工或自控程序在功能块外部进行赋值,也可由本功能块内部逻辑进行修改。其中的State、Command等参数均为WORD类型,其每一位分别代表了不同的含义。

该功能块包含了除电流外的变频水泵常见的绝大部分信号处理及控制功能,对于部分实际工程中未使用的参数,可通过直接设置默认值或空置的方式进行处理。水泵电流可通过专门的模拟量处理程序块进行数据转换和上下限报警判断,当电流超过上下限设定值时发出报警信号(过流、欠流)传送给变频水泵功能块,从而实现水泵的电流超限保护功能。

3.2 泵站水泵调度功能块

污水厂一般具有进水泵房、中间提升泵站、出水泵房等工艺段,其水泵控制模式基本相同,都是根据液位的变化来调节运行的水泵频率和台数,调泵时又要考虑单台设备的运行台时和启停间隔等因素。其基本原理介绍如下:

泵站的液位控制一般采用根据液位分段启停泵的模式,不同的液位分别对应当前需要开泵的台数,同时具备死区保护功能,停泵液位设定值比启泵液位设定值略低,以防止特殊情况下水泵的频繁启停[2]。

水泵的启停选择需要考虑以下几个条件:

(1)热备状态。PLC首先检测水泵上电情况,远程状态,控制模式,故障情况等,当以上条件均满足时认为该泵处于热备状态,可被自控程序进行开停调度。

(2)平衡调泵。累计运行时间最短的泵优先被启动,运行时间最长的泵优先停止,使每台泵运转时间大致相等。当运行时间相同时,按泵的顺序启停。

(3)启动间隔保护。控制程序使每一台泵每小时起动次数少于6次,两次起动间隔≥10分钟,且不论何种情况,不同时起动2台及2台以上水泵。

在实际应用中,根据分段启泵原理以及低水位保护等条件编制泵站自控功能块,计算当前需要开泵台数。根据上述三条件,编制了水泵启停调度选择功能块,用于选择当前需要启动的水泵编号。两功能块配套使用,可快速完成泵站自动调泵程序的编制工作。限于篇幅,本处不再详述其具体实现过程。

篇7

关键词:实例拓展;结构化;程序设计教学;教学应用

中图分类号:TP311.1

在计算机专业的教学中,程序设计是一门最基础,也是最重要的课程之一,是培养学生计算编程能力的主要课程[1]。但是又因为这门课程涉及到很多理论性极强的内容和大量的编码知识,不容易被学生理解,所以是计算机专业教学的重点和难点。在过去传统的教学方式之下,老师只是按照大纲的顺序来讲解相关的知识点,即使举例也只是引用一些比较典型的例题,例题和例题之间缺乏联系,使得学生只能进行生硬的记忆法来掌握程序设计各种语句,不能真正理解这些编程方法,达不到自主编程的教学目的,收效甚微。为了改变这一现状,让学生能够真正理解程序结构之间的关系,能够灵活运用各种编程方法进行自主编程,在教学的过程中怎样选择具合适的实例已经成为提高教学效果的关键。我校推行的实例拓展教学法很好地解决了这一难题,在我校大力推行之后,受到广大师生的好评,结构化程序设计的教学效果明显。

1 实例拓展法概述

实例拓展教学法属于教学方式创新的表现形式之一。在这种教学方法中,实例就是整个教学的中心,所有的教学活动都可以通过实例来完成,这也是这种教学方法最典型的特征[2]。运用实例拓展法进行教学,学王可以充分利用各种学习资源,通过自主探索或者相互合作的方式来完成实例任务,同时又会催生出一种新的实例。这种重在学生实践活动的教学方式就被称之为拓展实例法。这种教学方法有助于培养学生的自主学习能力,提高他们独立分析问题和解决问题的能力。在计算机结构化程序设计这种实践性较强的课程教学中,尤其适合使用这种方法。

2 实例拓展法在结构化程序设计教学中的实际应用

在计算机程序设计中,VB语言是一门重要的课程,所以我们就以这门课程为例,对实例拓展教学方法在课堂上的具体应用进行具体。为了便于学生理解和练习,我们将实例分成了两种,一种在老师进行课堂理论教学时应用,另一种则在上机实践活动中应用,下面我们对实例的应用进行出详细介绍。

老师在进行教学设计时,如何安排实例是教学活动的核心所在。在对教学实例进行安排时,老师一定要结合中专学生的年龄特点、心理发展水平和实际生活的需要等因素。同时,实例的拓展应该遵循教育学的客观规律,从易到难,由浅入深,便于学生进行理解[3]。另外,实例的难度应该适中,既不能让他们一看就明白,也不能让他们冥思苦想而不得,要让大部分学生通过自己的思考能够完成,而且要将相关的知识点囊括其中,这样才能充分实例拓展的作用。

在VB结构化程序设计的教学中,课堂内容可以被大致分成顺序结构、选择结构、循环结构、数组应用和过程设计等五个部分[4]。老师在进行教学的过程中一定要全面掌握这些内容之间的内在关系。在本文中,我们将省略比较复杂的程序代码,对这5部分内容运用到的实例进行简单分析。

在进行顺序结构这一内容的教学时,我们可以以计算圆的面积为例,在输入圆的半径之后就可以计算出来。这一实例可以作为入门介绍,理解起来并不困难。在这个实例中,融入了程序的三大基本组成部分,即数据输入、处理和输出,在讲解实例的过程中,就能让学生掌握这一知识点。

在结构程序的教学中,可以在对上述实例进行拓展,提出问题:“假设圆的半径的小于0时该怎们办?”让学生进行思考,然后提出程序设计中的基本语句――选择结构的if语句。为了让学生理解if语句的语法,老师可以让学生在键盘上随意输入三个数字,求解最大值和最小值,在这个过程中介绍if语句的两种格式,即单行格式和多行格式。到这里,我们就在前两个实例的基础上衍生出了新的实例。在了解if语句的格式之后,老师还可以对实例进行进一步拓展,让学生求解分段函数,明确if语句和Select Case这两种多支结构的语句格式。

在循环结构的教学中,我们可以引入一个新的实例来介绍循环结构For Next语句,例如在窗体上显示出1、3、5、7、9这五个奇数。然后让学生对求解上述数字之和,对上述实例进行拓展。进一步掌握For Next语句。在求和的基础上,再一次对实例进行拓展,让学生在100以内,求出1+3+5+7+……的最大奇数值,在讲解实例的过程中引入循环结构中一种重要的语句形式――Do Loop语句。

在讲解数组应用这一内容时,可以在任意输入3个数字求解最大值和最小值这一实例的基础上加以拓展,让学生思考怎样求出任意10个数字的最大值和最小值,通过这个实例引入数组概念和静态数组的使用方法。在这一实例的基础上还能进一步拓展,求出任意数字的最大值和最小,引入动态数组的概念的和具体的使用方法。

在进行过程设计这一内容的教学时,依然在任意求解3个数字的最大值和最小值这一实例的基础上加以拓展,将它们分成两个函数,在讲解的过程中让学生掌握过程的概念以及Function过程的建立和使用方法。在此基础上,对实例进一步拓展,将3个数字的最大值和最小值看成两个Sub过程,让学生通过老师对实例的讲解掌握Sub过程的建立和使用方法[5],并与Function过程进行对比。

以上的实例主要是在引入相关概念和讲解程序基本原理时使用的,需要在多个课时中讲解。根据所讲内容的课时安排,可适当补充其他实例,更加详细地讲解相关知识,也可以补充一些比较有趣实用的综合例子,如制作计算器、打印九九乘法表等,进一步开阔学生的眼界。

经过多年的教学实践,笔者发现在运用实力拓展法之后,学生对程序设计的学习兴趣大增,不管是课堂表现还是作业完成情况都有了明显改善,考试成绩也得到了大幅度提升。通过这种教学方法,学生能够从中学到自己需要的知识,并真正将其转化为实际应用,设计出实用的小软件来,对于他们将来学习其他知识和提高计算机操作水平都有很大的促进作用。

3 结束语

综上所述,在结构化程序设计的教学中,实力拓展法对于提高教学效果,培养学生的计算机运用能力具有非常重要的作用。但是在具体的教学过程中还要从学生的实际情况出发,进行灵活地调整,才能真正激发出学生的兴趣,充分发挥实例拓展法的作用。

参考文献:

[1]武相军,白晨希.实例拓展法在结构化程序设计教学中的应用[J].计算机教育,2013(17):47-49.

[2]傅篱.计算机结构化程序设计教学探索与实践[J].计算机教育,2009(12):78-80.

[3]孙英,徐顺琼,李兴美.C语言中循环结构程序课的教学设计与探讨[J].计算机教育,2009(07):186-187.

[4]周显春.合作探究式教学法在结构化程序设计教学中的运用[J].学习月刊,2010(30):91-92.

篇8

关键词:液压支架;结构件断面;抗弯强度计算;VB软件计算

DOI:10.16640/ki.37-1222/t.2017.02.034

1 引言 背景技术

液压支架为煤矿机械化采煤的主要支护设备,结构件是液压支架的主体框架,其结构多呈箱型,目前,对于液压支架结构件箱体断面抗弯强度设计计算,多为依靠OPT液压支架计算程序、采用迈实软件或人工列方程计算等方式进行计算,前者涉及到程序不能升级、不能支持win7以上操作系统,且界面可视化程度不好;中者为采用导入截面图形来识别各个截面图形尺寸分别对每块板进行计算,原理不同,使用起来效率方面并不算出众;而后者在计算时效性方面计算太烦琐,耗时耗力,多已放弃采用。

2 计算原理

根据液压支架受力分析给出结构件危险断面的最大弯矩M进行抗弯强度校核,画出该部件危险断面图,该断面图通常为数十块钢板拼装组成,首先需对相同类型尺寸钢板进行归类,整理出若干组钢板类型;分别对每组钢板进行截面积、截面型心高度计算,进而计算出断面的总型心高度、并分别计算出每组钢板的矩形截面惯性矩,进而计算出断面总惯性矩J;依次计算出最大、最小弯曲应力、、最大最小安全系数;通过使用VB语言编制出自动计算结构件断面抗弯强度计算分析程序,获得相应安全系数并校核出该断面是否设计合理;如图1所示为某一部件危险断面图:

3 设计意图及VB程序的实现

(1)设计意图:使用VB语言编写程序代替人工计算意义在于利用计算机快捷准确、功能强大以及具有可视化界;本程序设计目的在于克服上述缺点,基于VB语言设计,对各功能模块编写代码、并进行编译生成可执行exe文件。该程序包括信息参数输入模块、导入导出模块、计算结果显示模块,并设有计算按钮、导入、导出、清除按钮;断面抗弯强度计算分析截图如2所示:

(2)信息参数输入模块:可按要求将已知的箱体截面的组件数量、断面最大高度、箱体选用的材料强度、断面位置所受最大弯矩,各组件的宽度、高度、形心高度、块数依次输入模块;如该断面中有某组钢板高于或低其他材料强度,可按相应的板材屈服强度比比值换算出该组钢板在与其他钢板使用相同材料强度时的厚度换算输入即可;如钢板组数9为使用Q690材料,其他各组钢板都采用Q550材料,相应厚度换算为30*690/550=37.636。

(3)计算结果显示模块:点击计算按钮后,计算程序就会根据信息参数输入模块中的数据计算出截面形心高度y、截面惯性矩Jz、最大弯曲应力σmax、最小弯曲应力σmin、最大安全系数Nmax、最小安全系数Nmin,并在计算结果显示模块中相应位置显示出来,液压支架工艺设计人员可根据计算分析安全系数大小作出相应的强度增补或验证措施。

(4)导入导出模块:点击导出按钮后,计算程序会弹出另存为对话框,将信息参数输入数据及输出分析按txt格式保存;以备后期存档或方便查看。点击导入按钮后,计算程序会弹出打开对话框,供工艺设计人员选择已保存的txt文件进行导入至信息参数输入模块,方便设计人员及时验算用;既可在信息参数输入模块直接输入数据方式,也可按导入txt数据文件方式计算,期间可以根据设计意图临时更改输入的参数,并且还可识别原OPT生成格式文件进行导入、计算分析进而实现新旧计算工具的融合体现。

4 使用效果及结语

使用效果:在进行液压支架结构件箱体设计计算时,将技术人员从繁重的强度计算中解放出来,实现了方便快捷的抗弯强度计算过程,而且计算结果可靠,经验证与OPT液压支架优化软件计算结果一致,界面友好,计算结果可靠,简单易用、不受操作系统限制,适用所有windows98以上系统,所用时间相对较少。

推荐期刊