程序实例(精选8篇)
程序实例 篇1
数控实际加工中, 轮廓表面往往会出现许多不规则、非圆曲线, 普通程序无法编织, 这就需要用到宏程序。宏程序有A类、B类宏程序, 这里举例使用B类宏程序。
下面以实际椭圆加工为实例, 见图1。椭圆的标准数学方程为:
加工方程;
Z自变量→因变量X
程序;
o0001;程序名
G0G40G97G99M03S800T0101F0.1;定义程序参数
Z2;刀具Z向循环起点
X30;刀具X向循环起点
X0;轮廓X向起点
G1Z0;轮廓Z向起点
#1=24;椭圆长半轴赋值
#2=12;椭圆段半轴赋值
#3=0;被加工椭圆起点Z向坐标
#4=24;被加工椭圆终点Z向坐标
N5 IF[#4 LT#3]G0T025;判断是否走到终点
#5=2*[#2*SQRT[1-#4*4/#1/#1]];计算图纸中X向坐标
G01 X[#5]Z[#4-24.];进刀
#4=#4-0.1;变量依次递减
GOTO5;跳出循环语句
N25 X30;循环判断
G00 X150Z150;退刀
M30;程序结束
1注意
(1) 确定所需加工轮廓的公式, 并将其转化为与机床相同的坐标轴。
(2) 根据实际情况选择一个合适的轴作为自变量 (即尽量使自变量和因变量的值是一一对应关系) 。
(3) 根据图纸确定原始曲线坐标系, 在原始曲线坐标系下确定曲线的开始点和终止点。
(4) 确定在编程过程中所使用的变量个数及变量号。
(5) 将各种信息填入到下列通用格式中。
(6) 在根据加工情况增加一些辅助功能, 例如;冷却液的开关, 语句的循环、粗加工等。
(7) 最后检查和调试宏程序, 注意其格式, 赋值和格式。
2结论
用户宏功能是用户提高数控机床性能的一种特珠功能, 在相类似工件的加工中巧用宏程序将起到事半功倍的效果。对于数控编程的一般使用者来说, 学习宏程序也非常有助于提高数控加工工艺水平。
摘要:用户宏功能的最大特点是在用户宏功能主体中能够使用变量;变量之间还能够进行运算;用户宏功能指令可以把实际值设定为变量, 使用户宏功能更具通用性, 使程序更加简单明了。
关键词:宏程序,椭圆,编程
参考文献
[1]孙德茂.数控机床车削加工直接编程技术[M].北京:机械工业出版社, 2005.
[2]尹玉珍.数控车削编程与考级 (FANU Coi_TB系统) [M].北京:化学工业出版社, 2006.
[3]王苗.C语言程序设计[M].北京:中国铁道出版社, 2005.
[4]薛金星, 主编.高中数学基础知识手册[M].北京:北京教育出版社, 2003.
[5]沈建峰, 主编.数控车床编程与操作实训[M].北京:国防工业出版社, 2008.
程序实例 篇2
国内一生产企业技术改造需进口一套设备(一般机电产品)被批准立项。该企业委托外贸 公司 B 对外签约及办理海关手续。
设备进口后 3 个月发现这套设备中有一台机器不符合合同规定的质量要求,即发函给供 应商。供应商答应替补一台。
作为 B 公司的报关员,为了使这项技术改造顺利完成,应当做些什么工作?假如质量不符的机器不退运出口,又该办些什么手续?
答:
(一)办理技术改造设备免税手续
1.由技术改造企业办理;
2.向主管海关办理;
3.填写(减免税申请表),提供项目批准证书、进口合同、发票及海关认为必须的其他单据;
4.取得<征免税证明)。
(二)设备报关进口
1.向机电审查部门申领一般机电产品进口登记证明;
2.填写白色进口报关单,贸易方式“一般贸易”,征免性质“技术改造”;
3.预录入,通关;
4.向现场海关交单:报关单、(征免税证明)、机电产品登记证明、发票、装箱单、提货单;
5.陪同查验;
6.支付进口设备CIF价3L的监管手续费;
7.取得海关签放行章的提货单;
8.凭提货单到口岸提货。
(三)商检、索赔、报关
1.质量不好的一台机器应申请商检机构检验出证;
2.应即刻发函供应商提出索赔;
3.办理这台机器的退运出口手续,填写白色报关单,取得海关签章的出口报关单;贸易方式“质量不符退运”.提供原进口货物报关
4.办理替补机器的进口报关手续,填写白色进口报关单,贸易方式“无代价抵偿税”,提供:
(1)原进口报关单据,包括<征免税证明);
(2)退运质量不好的机器的出口报关单;
(3)商检证明;
(4)索赔协议或有关索赔的来往函电。
(四)假如原质量不好的机器不退运则有两种选择:
1.由海关按机器的实际情况估价征税,并提供这台机器的机电登记证明;替补机器进口时原机器征税的报关单将作为法定免税的依据。
程序实例 篇3
关键词:C语言,Fortran语言,混合语言编程,Windows,Linux
随着微型计算机的高速发展和普及,数值模拟或者数值仿真在科研与工程中的应用范围越来越广。物理问题的数值模拟过程必须通过由高级计算机语言(如C,Fortran,C++等等)所编写的计算机程序来实现。Fortran语言因其在数值计算方面具有其特有的优势以及流程简洁,易懂的特点,从而倍受从事数值计算的科研人员的喜爱。在www.netlib.org网站上可以下载到大量成熟的、开放的、以Fortran语言编写的数值计算的源程序。这些程序是从事数值计算的科研人员和工程师的知识宝库。它们可以很容易地向零件装配一样移植到我们自己的程序之中,从而可以节约大量宝贵的时间,避免了不必要的重复劳动。随着计算机技术的不断发展,C、C++等高级计算机语言越来越受到人们的喜爱。尤其当程序中要处理大量的字符串时,这些语言比Fortran语言具有明显的优势。因此,为了兼顾Fortran语言和C语言等的优势,所以现在混合编程得到了越来越多的应用。
Windows操作系统下的混合编程在Compaq Visual Fortran 6.6的帮助文件[1]中有较为详细的介绍。对于初学者来说,仅靠参考该帮助文件而来很好地实现Fortran与C或C++的混合编程还是比较困难的。为此,国内有些学者已经发表了在这方面的研究和体会。肖晓玲等[2]、周振红等[3]以及简建勇等[4]研究了VC与Fortran的混合语言编程。他们详细地描述了VC与Fortran之间的调用约定,命名约定以及参数传递方式。两文中均没有完整的混合语言编程源程序以供参考。黄芝平等[5]研究了VC++6.0与Fortran PowerStation4.0之间的混合语言编程。文中将Fortran语言源程序制作成动态链接库的例子非常具有参考价值,初学者参考后易于实现。在此期间,张向强,陈志英[6]也研究了VC++6.0与Fortran PowerStation 4.0之间的混合语言编程。2006年,章大勇,郑海[7]研究了VC++可执行程序调用Fortran语言编写的可执行程序的混合语言编程方法。该方法并不涉及这两种语言之间的混合程序编写问题。最近,亓雪冬等[8]研究了Linux操作系统下Fortran与C语言的混合编程方法。文中介绍了若干种Fortran与C混合编程的方法。与前面列举的大部分参考文献一样,文中没有给出完整的可直接执行的源程序。
Fortran与VC++或C语言的混合编程应用越来越广泛。随着Linux操作系统被越来越多的人接受以及大规模数值计算的需求,Fortran与VC++或C语言混合编程在Linux操作系统下的应用也越来越多。因为Fortran与VC++和C语言混合编程差别不大,所以这里下面我们仅讨论Fortran与C语言的混合编程问题且仅限于C语言程序调用Fortran语言程序。由于目前有关这类混合语言编程的可以直接运行并且能够清晰地说明混合编程的过程的可参考的源程序比较缺少,因此本文结合所研究的C语言程序在不同操作系统下调用Fortran语言程序的方法的基础上给出了完整的可直接执行的混合语言编程源程序。
1 C与Fortran的混合编程语法
1.1 Windows操作系统下的混合语言编程语法
本文所用的Windows操作系统下的软件环境是在计算机上同时安装了Microsoft Visual C++6.0和Compaq Visual Fortran 6.0(或升级至6.6)。
命名规则:需要注意的是Fortran语言不区分字母的大小写,而C语言中是严格区分字母的大小写的。Fortran语言中的subroutine或function的名字在C语言中声明或调用时是以该名称的全部小写方式实现的。例如,Fortran编写的subroutine Gauss_Integration在C语言中声明时应为extern void gauss_integration();。该例子表明Fortran语言中的subroutine对应C语言中的void函数。Fortran中的函数对应C语言中同类型的函数。不同的是C语言中没有自带复数类型。因此对于Fortran中的复数类型的函数或变量,在C语言中必须自己建立复数结构如下来与Fortran语言中的复数类型匹配。
参数传递:在Fortran语言中所有参数都是以传址的方式传递的。而C语言中默认只有数组是以传址的方式传递的,其它参数都以传值的方式传递。因为C语言对指针操作非常方便,所以我们推荐在C语言调用Fortran语言的subroutine或function时所有的参数都采用传址的方式。这样做的好处是可以减少传递错误的发生。参数传递中特别需要注意的是数组的传递。首先是Fortran中的数组下标默认是从1开始的,而C语言中是从0开始的。其次,Fortran与C语言中的数组在内存中的存储方式是不同的。Fortran中数组是以列为主排列的,而C语言中的数组是以行为主排列的。例如一个二维数组在Fortran语言中该数组在内存中的存储方式为,(11,21,12,22),而在C语言中的存储方式为,(11,21,12,22)。关于这方面的详细描述可以参考文献[3,9]。Fortran中的全局变量传递到C语言中有两种方式。一种方法是利用Fortran语言的common语句,它对应C语言中同名的结构。例如common/examp3/number,对应C语言中的结构extern struct examp3;。另一种方式就是用module的方式。例如,module examp/real rnumber1/end module examp(这里/表示回车换行)对应C语言中的全局变量extern float EXAMP_mp_NUMBER1;。该例子说明两点,一是module方式的全局变量在C语言中除字母mp小写外,其它部分必须大写。二是Fortran中的real类型与C语言中的float相对等,而real*8(或double precision)与C语言中的double类型相对应。
此外,需要补充的是文献[1]中举例说明Fortran中的type类型与C语言中的结构对应。但是遗憾的是作者多次试验都没有成功。至今也没有在文献中或网络上发现有这方面成功的案例。
1.2 Linux操作系统下混合语言编程语法
在Windows操作系统下的Visual Fortran 6.0和VC++6.0编译器中所编写的C语言程序调用Fortran语言程序的混合语言编程程序不能直接在Linux操作系统下运行。针对不同的Linux操作系统混合编程语法也会略有不同。这里以Openuse 10.2,Fedora release 9和Centos release 4.5为例来简要介绍Linux操作系统下C语言程序调用Fortran语言程序的混合语言编程语法。重点是实用性。
首先是Windows操作系统下C语言程序中常用的以下头文件在Linux操作系统下一般是不需要的。
#include
而头文件math.h在两个系统中当用到特定的数学函数时都是需要的
其次,在采用编译器默认选项的情况下Windows操作系统中C语言程序调用的Fortran语言所编写的函数名在Linux操作系统中必须在该函数名后加一下划线。例如,Window操作系统中C语言程序调用的Fortran语言所编写的函数名为gauss_integration,那么该函数在Linux操作系统下的函数名应为gauss_integration_。当C语言程序调用Fortran语言程序时如果所有参数都采用传址方式传递的话,在Linux操作系统下对应函数的参数传递部分与在Windows操作系统下的情形完全相同,不需要做任何修改。
最后,必须注意的是在Linux操作系统下连接C语言程序的目标文件和Fortran语言程序的目标文件时最好使用编译器gfortran。否则的话,将发生Fortran程序中write,read等命令无法识别的错误。
2 C与Fortran混合语言编程实例
Windows操作系统下的源程序
在Windows操作系统下安装编译器Microsoft Visual C++6.0和Compaq Visual Fortran 6.0。然后建立一个win32 console application类型的project,把以上两个源程序文件加入到该project中即可编译运行。运行结果如下:
3 Linux操作系统下的源程序
C语言程序调用的Fortran语言程序c_call_for.f90与上面Windows系统下的文件完全相同,不需要做任何变动。
在Linux操作系统下,作者还没有成功地实现Windows操作系统下已经实现的全局变量传递,例如Windows系统下的number和number1。全局变量在C语言程序和Fortran语言程序间的传递可以间接地通过函数参数传递来实现。即全局变量传递成功与否对C和Fortran语言混合语言编程影响不大。
上面的程序在Openuse 10.2,Fedora release 9和Centos release 4.5三个Linux版本下都成功地运行过。在每个版本下都必须同时安装cc和gfortran编译器。对于本例的编译过程如下,
4 结束语
通过多次数值试验深入探索和研究了Windows操作系统和Linux操作系统下C语言程序调用Fortran语言程序的混合语言编程过程和技巧。文中以完整实例说明了在这两个不同操作系统下实现C与Fortran语言混合语言编程的区别与联系。所编写的完整实例有助于理解和实现混合语言编程,从而提高学习和应用C与Fortran语言混合语言编程的工作效率。该实例具有很好的通用性,只要稍加修改即可被参考者所利用。
参考文献
[1]Programming with Mixed Languages[R].Compaq Visual Fortran Version 6.6 online documentation,2001.
[2]肖晓玲,卢正鼎,张翔.VC与Fortran混合语言编程[J].江汉石油学院学报,2000,22(2):71-74.
[3]周振红,颜国红,吴虹娟.Fortran与VisualC++混合编程研究[J].武汉大学学报,2001,34(2):84-87.
[4]简建勇,曹志宇,燕乔.混合语言编程在有限元法中的应用[J].岩土力学,2003,24(增1):140-142.
[5]黄芝平,戴路,杨波.VC++6.0与PowerStation 4.0混合语言编程[J].微计算机信息2001,17-1:67-68.
[6]张向强,陈志英.Visual C++与Fortran的混编[J].计算机工程,2001,27(1):160-161.
[7]章大勇,郑海.VC++与Fortran混合编程方法研究[J].计算机工程与设计,2006,27(12):2246-2247.
[8]亓雪冬,仝兆岐,何潮观.Linux环境中Fortran与C混合编程研究[J].计算机工程与设计,2008,29(9):2378-2380.
如何执行实例程序数据库教程 篇4
(1)以system用户、SYSDBA身份登录【SQLPlus Worksheet】,执行creategraduateuser.sql文件创建用户graduateuser,
(2)执行createtablegraduateinfo.sql文件创建数据表graduateuser.graduate_info。
(3)执行createtabledirectorinfo.sql文件创建数据表graduateuser.director_info。
(4)执行createtablemajorinfo.sql文件创建数据表graduateuser.major_info。
(5)执行createindexgraduate.sql文件创建数据表graduateuser. graduate_info的姓名字段的索引。
(6)执行createindexdirector.sql文件创建数据表graduateuser. director_info的姓名字段的索引。
(7)执行createviewgraduate.sql文件创建数据表graduateuser. graduate_info的视图。
(8)执行createviewdirector.sql文件创建数据表graduateuser. director_info的视图。
(9)执行createviewmajor.sql文件创建数据表graduateuser. major_info的视图。
在客户机上的操作
(1)在客户机上调用Oracle 9i客户机的【网络配置助手】(Net Configuration Assistant)配置一个能够连接数据库服务器的【本地网络服务名称】,笔者配置的名称为myoraclelink。这个名称是可以任意取的。
(2)在客户机的【控制面板】/【32位ODBC】中创建一个系统数据源名称,这个名称必须是graduateDB。当然如果读者要采用自己的名称,可以在VB程序的模块MODULE1中进行适当的修改。修改的代码如下。
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
‘定义了名为ConnectString的无参数函数,连接数据库
Public Function ConnectString() As String
ConnectString = “DSN=graduateDB;UID=graduateuser;PWD=12345678”
End Function
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
在客户机上运行程序
(1)将配套光盘上的Graduate.exe文件任意复制到客户机上,执行该文件出现如图10.55所示界面,
(2)出现如图10.56所示的【添加专业信息】界面。
(3)成功添加专业信息后出现如图10.57所示的提示界面。
(4)按照同样的步骤依次添加专业信息数据,这样添加后的专业数据将用于研究生信息录入和导师信息录入窗体使用。
(5)出现如图10.58所示的【添加导师信息】界面。
(6)成功添加导师信息后出现如图10.59所示的界面。
(7)按照同样的步骤依次添加导师信息数据。
(8)出现如图10.60所示的界面。
(9)成功添加研究生信息后出现如图10.61所示界面,单击“确定”按钮。
(10)出现如图10.62所示的【修改研究生信息】界面。
(11)出现如图10.63所示的【查询研究生信息】界面。
(12)在图10.55所示的系统主界面的【菜单栏】选择【退出系统】选项将退出系统。
程序实例 篇5
关键词:宏程序,特点,实例
一、宏程序编程的特点
随着数控技术的快速发展以及数控车技能大赛的举行, 在数控车竞赛中会经常遇到复杂轮廓的加工, 如椭圆、抛物线、双曲线等, 采用常规的数控编程指令, 需要计算每个节点的坐标值, 不但计算量大、精度差、编程速度慢, 而且容易出错, 难以满足生产要求。若采用CAD/CAM软件自动编程, 也需要大量时间来建模和处理, 而且程序过于冗长, 程序传输速度慢导致加工滞后, 且空刀多, 浪费时间。随着数控技术的发展, 现在先进的数控系统不仅向用户编程提供了一般的准备功能和辅助功能, 而且为编程提供了扩展数控功能的手段, 宏程序的出现为此类图形的编程提供了很好的解决办法。宏程序在数控车中的运用越来越广泛, 掌握它的编程, 掌握一定的编程模式, 对刚开始接触数控车宏程序的学生可以大大降低学生接受的难度, 从而提高教学的效果。宏程序也属于计算机高级语言编程, 它可以在程序中使用变量, 通过对变量进行赋值, 变量可以进行算术运算, 逻辑判断和跳转等操作。
二、宏程序的应用
(1) 宏程序在实际生产中的应用
在实际生产中, 宏程序编程是自动编程的有效补充。使用CAD/CAM软件编程一般都存在工作量大、程序庞大和加工参数不易修改等缺点, 只要任何一个加工参数发生变化, 软件就要根据变化后的加工参数重新计算刀具轨迹, 任何智能化的软件也不能避免这一步骤。在实1.机械零件上常见的一些典型结构, 如多边形槽、圆槽、孔系、内外球面和倒R面等, 在采用了宏程序编程之后, 只要是同一类型的零件, 不论尺寸如何变化, 都可以用同一程序来完成加工, 而操作者只需在加工前把反映零件关键尺寸的参数输入即可。
2. 在车削零件加工中, 可以通过G代码编程与宏程序编程相结合的方式, 来实现几乎所有零件的加工。
3. 对中等难度的零件来说, 使用宏程序编程可以选择更加合适的走刀方式。由于应用了大量的编程技巧, 使得宏程序的精度很高, 这样不仅使程序段大大的缩短了, 而且也比自动编程的程序加工时间要少了很多。
(2) 宏程序在数控编程教学中的应用
与G代码编程方式相比, 宏程序编程要更加复杂, 不再是利用已有的编程指令, 而是输入相应的参数。在进行宏程序编程之前学生必须对所加工的零件有全面的了解, 如:为什么该零件要使用宏程序编程, 用其它简单的编程方法是否可以实现;零件的哪些参数要设为变量, 是什么类型的变量;要用到哪些数学知识;使用何种语句, 达到什么样的加工效果, 等等, 在综合的考虑好这些问题之后方能进行编程。虽然这些问题对于高职学生来说是有一定难度的, 但这也正是学生能力的最好体现。
(3) 宏程序在数控大赛中的应用
纵观近几年国家、省和市级的各种数控大赛, 基本上还是以手工编程为主来实现零件的加工。如何做到在有限的时间里和有限的零件载体上体现出选手的综合素质, 需要参考多项指标, 而宏程序编程就是其中重要的一项。
三、编程实例
手动编写下图零件的程序:
参考文献
[1]陈光伟.关于宏程序循环语句的应[J].Equipment Manufac-turingTechnology, 2010 (5) :100->~103.[1]陈光伟.关于宏程序循环语句的应[J].Equipment Manufac-turingTechnology, 2010 (5) :100->~103.
[2]王宏颖, 彭二宝.变量和宏程序在数控编程中的应用[J].机床电器, 2007 (2) :11->~14.[2]王宏颖, 彭二宝.变量和宏程序在数控编程中的应用[J].机床电器, 2007 (2) :11->~14.
程序实例 篇6
程序设计是中职计算机应用专业一门重要的专业技能课。然而,由于目前中职生知识基础较差,所以,程序设计课程的教学效果并不理想。在中职生源素质短期内不可能得到很大改变的前提下,为了提高教学效果,课任教师必须改变课堂教学内容和教学方法。在长期的教学实践中发现,适合中职生水平的一些有趣的、难度不大的实例能引起他们较大的兴趣,同时,灵活有效的教学方法也能直接提高课堂教学效果。那么,教师该如何选择实例,如何组织课堂教学,才能引导学生通过学习实例来掌握程序设计的基本技能呢?在这两个方面进行了多年的探索与实践,取得了一些有效的经验,教学效果良好。
2 实例的选择原则
教育部在《关于制定中等职业学校教学计划的原则意见》(教职成[2009]2号文件)中指出,专业技能“课程内容要紧密联系生产劳动实际和社会实践,突出应用性和实践性,并注意与相关职业资格考核要求相结合”,可见,实用性是中职专业技能课程内容的核心要素,选择实例必须考虑到学以致用。在强调实用性的同时,还要力求实例能激发学生的兴趣。俗话说,兴趣是最好的老师,可见兴趣是推动学生学习的内在动力,有了动力,才有可能完成学习任务。可是,考虑中职生的现状,一个实用的实例,可能由于其复杂性让中职生失去兴趣,从而不能完成实例的学习。因此,如何在实用性、学习兴趣和教学目标之间寻找平衡点,将是对课任教师一个不小的挑战。
目前各种中职程序设计教材中的实例,能满足中职生特定需求的非常少,实例的内容也没有突破多年来传统程序设计书籍中的思维桎梏,很多是纯数学问题,如判断一个数是否是质数、求所有三位水仙花数、数字排序等。中职生本来数学基础就很薄弱,而且这些问题本身与现实生活联系并不紧密,没有实用性。所以,学生的兴趣很快就被这些数学问题给阻挡了,学习的信心和成就感更是无从谈起。通过教学实践,逐渐体会到选择实例的一些要点,如果能遵循这些要点,就比较容易激发出学生的学习兴趣.
2.1 从现实中取材
如针对计时器控件“十字路口红绿灯模拟”实例、“使用电脑爱眼倒计时”实例;针对多重循环语句,选择“4名乒乓球队员争夺前3名的可能结果”实例等。
2.2 寓教于乐
如针对随机数函数和分支语句,选择“人机石剪布”游戏、“电脑猜年龄”游戏、“掷骰子模拟”、“彩票选码模拟”、“抽奖模拟”等。
2.3 解决简单的学习生活问题
如针对列表框控件和数组的学习,选择了制作“英文单词含义查询”小程序。
2.4 与图形有关
如“三角形数字塔”、“能调节速度的移动图片”等。事实上,只要教师多留心生活,一定能发现更多有趣的实例来提供给学生学习。
3 教学方法与过程
3.1 对象、变量、控件的命名原则
任何一个实例,都不可避免要给对象、变量、控件等进行命名。在教学实践中发现,初学编程的学生总是经常写错变量名,或者忘记变量名的含义,结果导致程序调试时错误很多。考虑中职生的英语基础较差,为了有效降低程序的学习难度,学习初期,要尽可能引导他们采用中文名或拼音首字母简写。例如,在“人机石剪布”游戏中,代表“石头”、“剪刀”、“布”的3个按钮控件,就直接使用中文来命名;在“十字路口红绿灯模拟”实例中,用HongD、LuD、HuangD来分别代表红灯、绿灯和黄灯。
3.2 教学方法
对于实例的教学,教师要擅长“变复杂为简单,从简单到复杂”两个过程。“变复杂为简单”是指教师在教学过程中,将复杂的问题浓缩、精简成一个最简单的核心问题,这个核心问题要考虑的各种因素大大减少。例如,不必考虑变量的有效性验证、功能的完备性、界面的美观等等,因此实现起来不会太难。打个比方,要建一幢大厦,先要打桩,然后构筑框架,最后是装修和装饰。一个精简成的核心问题就相当于大厦的桩基和框架,暂无装饰工程。这个过程由教师完成。“从简单到复杂”是指从已经解决的核心问题出发,逐步增加程序功能、完善界面,循序渐近地由核心问题扩展为功能齐全的实例问题,这个过程由教师引导学生完成。
3.3 教学过程
下面以“人机石剪布”游戏为例来说明实例的教学过程。“石剪布”游戏几乎每一个人都玩过,有的地方又称为“猜拳”。而“人机石剪布”游戏将改变游戏的角色,游戏双方由两个人变成了一个人和一台电脑。本实例将通过VB.NET的控件和代码,实现人与电脑对玩,并能判断胜负、显示比分等一系列功能。
首先,教师应仔细分析“人机石剪布”游戏的所有功能,根据需要对其精简。例如可以先实现“出拳”和“判断胜负”两个部分,而省略“重玩游戏”、“显示比分”、“显示比赛局数”等附加功能。课堂组织过程参考如下:
(1)课堂讨论:本游戏的规则和胜负判断标准是什么?
游戏规则:通过出拳来决定胜负,出拳要在同一时间完成。
胜负标准:石头>剪刀,剪刀>布,布>石头,如果所出相同,则为平局。
(2)课堂讨论:人机互动时,人如何出拳?
通过单击“石头”、“剪刀”、“布”三个图形按钮来实现出拳。
(3)课堂讨论:人机互动时,电脑如何出拳?
利用随机函数,产生“0”、“1”、“2”三个整数,约定以下规则:0:代表“石头”,1:代表“剪刀”,2:代表“布”。
(4)课堂讨论:每一局游戏的流程如何实现?
在游戏开始后,电脑在程序控制下,依次完成以下动作:人按下按钮出拳→显示人所出的拳→电脑产生一个随机数→电脑根据产生的随机数决定出什么拳→显示电脑所出的拳→判断胜负→显示比赛结果。
(5)课堂讨论:如何判断胜负?
根据人、机所出的拳的大小来判断胜负,并通过标签控件显示比赛结果。
(6)实例的实现
1)界面设计
游戏过程中,玩家可以随意出拳,电脑随机出拳。玩家可以检查双方所出的拳,以及每一局比赛的结果。参考界面及控件说明如图1所示。
2)程序设计
根据步骤(4)中的流程完成程序的设计。
3)实现实例
以就近原则,将学生划分成若干学习小组,完成界面设计、代码编写、调试、运行,老师加以辅导与答疑。在完成实例过程中,鼓励小组成员互相交流与帮助,培养小组合作精神。部分参考代码如下(当人单击“石头”按钮时,其他类推):
运行时的实例效果图如图2所示。
(7)利用投影仪展示并评讲学生完成的实例界面和代码,分析其优点和可改进之处。
(8)在完成核心功能之后,根据学生的掌握情况和实际进度,逐步完善现这个实例的功能、界面和程序,具体步骤如下:实现“显示总局数”功能→实现“显示电脑与玩家比分”功能→实现“显示平局数量”功能→实现“重玩游戏”功能。完整功能的参考界面如图3所示。
实现所有功能的参考程序如下(以单击“石头”按钮为例,其他类推):
通过本实例的学习,不但激发了学生的学习兴趣,寓教于乐,而且以循序渐近的方式完成了以下教学目标:变量声明、随机数函数、转换函数、分支语句、计数语句、图片控件、标签控件、按钮控件等。
4 结语
程序实例 篇7
C语言是国际上广泛流行的计算机高级语言,自1972年问世以来,以其功能强大、使用灵活,既可用于编写应用软件,又能用于编写系统软件的特点得到迅速推广[1]。以我院电气工程系生产过程自动化技术专业为例,它是很重要的一门专业基础课,一般安排52学时左右(包括上机实验),通过该课程的学习,学生不仅能够掌握程序设计的一些基本方法和技巧,也为后续课程的学习打下基础。但现阶段非计算机专业的C语言教学不容乐观,为了激发学生的学习兴趣,在近几年的实际教学中不断进行探索和实践,得到一些有益的启示。
2 存在问题
2.1 学习不主动,学习方法不科学
近几年高校扩招缘故,高职学生基础下降,自我控制能力和自我约束能力较差,对学习没有兴趣。特别是对于非计算机专业的学生认为这门课程不重要,学习时课前不预习,上课注意力不集中,只是机械的听老师讲课,课堂上也不做笔记,课后也不及时复习[2],这样的恶性循环造成了学生对C语言越学越不会的局面。
2.2 教学方法单一,降低了学习兴趣
在传统的C语言整个教学过程中,教师始终处于主导地位,学生只是被动的接受知识,再加之教师只是一味地给学生灌输C语言的语法知识,而忽略了编程,学生处于一种“学完忘完”的现象。教学内容的枯燥,教学方法的单一,学生难以发挥学习的主动性和积极性,降低了学习兴趣。
3 改进方法
3.1 课堂多互动,调动学生学习兴趣
传统的教学主要以教师讲授为主,学生只是被动的接受,我们学院一节课课时长达100分钟,学生很难集中注意力,不能主动的去分析问题、解决问题。在讲课的同时,教师可以通过提问---回答---讲解的方式使学生注意力集中,还可以通过分组、进行小组讨论,让学生处于主体,提高学生兴趣,活跃课堂气氛,调动学生积极性。
3.2 教学方法和手段的改革
3.2.1 从问题入手,进行启发式教学
传统的教学过程是先介绍基本概念,再讲解语法知识,然后围绕语法知识进行举例,最后上机编程运行。对于高职学生来说,逻辑思维比较差,对于纯理论的东西缺乏兴趣。在教学过程中要精心设计各种问题,把教学内容巧妙地隐含在每个任务中,让学生带着任务和问题去学习[3]。比如在讲数组时先提出问题:如何编写程序来计算全班同学的平均成绩?这个时候学生进入思考过程,能力强一些的甚至试图动手写出程序。但由于之前只学过变量,程序中变量设置过多,比较麻烦,这个时候,教师可以引出一批相同类型的数据应该怎么解决-----数组的概念,最终成功解决问题。
3.2.2 作业布置循序渐进,由易到难
教师在布置作业时,要能够满足学生的成就心理,以鼓励的方式进行作业设置。也就是说在作业布置时应该从简单入手,必要时给出提示或相似的例子,由易到难提高作业难度,这样可以增强学生自信心,进而解决更难的问题。例如在利用循环的嵌套打印图形组合的作业中,作业题目由易到难可以做如下布置。
题目1:打印由3*3个星号构成的方形,如图所示。
这个题目对于刚学习了循环结构二层嵌套的学生来说,问题比较简单,大多数同学都能做出来,在此题目的基础上进一步实现
N*N个星号构成的图形问题,学生都能迎刃而解。
题目2:打印由星号构成的三角形如图2所示。
这个题目在简单的二层循环应用下提高了一些难度,学生通过分析,发现二层循环结构不能解决类似问题,要加一层循环才能实现。
题目3:打印由星号构成的菱形,如图3所示。
这个题目在先前题目的基础上,进一步提高了难度,由有规律变换变成了无规律变换的图形组合,学生通过本题目的练习有意识的会拆分图形,把无规律变换成为有规律变换,对知识融会贯通,成功解决问题。
由此可见,从所学知识的简单应用到复杂推广,可在逐步增加难度的题目中逐渐提高学生的应用能力。
3.2.3 理论与实践相结合,提高学生实践能力
C语言程序设计这门课程是实践性较强的课程,不仅要学习理论知识,更重要的是要学以致用,利用所学到的知识编写程序解决实际问题。在上机过程中,学生可以通过编译软件掌握程序的编写、调试、运行。在具体的操作中,发现问题、解决问题。本专业理论与实践课比是2:1,一般两次理论课后安排一次上机,这样学生可以吧课堂上的理论知识通过编译软件进行练习,进一步验证程序的可执行行。这样不但能培养学生动手能力,还能培养学生独立思考能力,理论与实践相结合,提高学习的质量和效率。
4 结语
总之,在C语言程序设计的教学过程中,要努力提高学生对该课程的学习兴趣和学习热情,在教学方法和手段上不断进行改革,加强实践动手能力。C语言的教学改革是一项长期的过程,需要我们不断改进、不断完善,只有坚持不懈的探索实践,才能达到更好的效果。
参考文献
[1]谭浩强.C语言程序设计.北京:清华大学出版社,2010.2-6.
[2]朱益江.高职非计算机专业C语言教学方法探索.电气电子教学学报,2006,(04).112-114.
程序实例 篇8
快走丝线切割机床结构简单,机床成本和使用成本低,易加工大厚度工件,经过几十年的发展,已成为我国产量最大,应用最广泛的机床种类之一。HF线切割数控自动编程软件系统,是一个高智能化的图形交互式软件系统。通过简单、直观的绘图工具,将所要进行切割的零件形状描绘出来;按照工艺的要求,将描绘出来的图形进行编排等处理,再通过系统处理成一定格式的加工程序。HF软件能够四轴联动控制,进行上下异形面加工;在加工时也可进行绘图编程;具有AUOTCAD、AUTOP数据接口;加工轨迹、加工数据能实时跟踪显示;HF软件加工控制稳定可靠,使用方便,界面友好,经过实例加工应用,HF软件在快走丝线切割机床上运行效果良好,可以提高生产效益,为新产品的试制和模具加工起到了重要的作用。
1 快走丝线切割机床的编程规范
在编制数控机床的NC文件之前,首先要了解该机床的程序规范。以DK7725D型快走丝线切割机床为例,该线切割机床的编程具有如下一些特点:
(1)程序开头以N作为序号,后面的数字从1开始,往后以1逐步递增;
(2)程序中的x、y坐标数值保留三位小数;
(3)程序第一段以G92作为机床的定位点,此点必不可少,而且只能在一个程序中出现一次,加工前由操作者装夹好零件后对丝定好该点,也就是切割的起始点,然后再进行直线(G01)、圆弧(G02或者G03)等的插补;
(4)圆弧中心I、J值为从圆弧起点指向圆心的向量;
(5)当整段程序运行完成以后,以M02结束该程序段。
2 HF软件编程实例
2.1 基本图形的绘图编程
基本图形用HF软件进行绘图、编程非常的方便。如图1所示的零件,各个点的坐标可以很明确的知道。对于这样的图形,在绘图时直接用[绘直线]、[绘圆弧]的功能将轨迹线描述出来。
进入HF软件在“全绘式编程”界面,点击[绘直线],定义起点为(-40,-20);再点击“直线:终点”按钮,在“对话提示框”中输入40,-20回车便绘出了平行X轴一条轨迹线。点击[绘圆弧]按钮,进入绘圆弧功能。再点出“逆圆:终点+圆心”或“逆圆:终点+半径”按钮,进入其子功能。输入:40,20回车,再输入R20回车便绘好了R20的圆弧。
再进入[绘直线]功能中,用“直线:终点”子功能接着绘出剩下的两条轨迹线。从而完成此图形的绘制工作。最后再进行[引入线引出线]等操作,全部图形绘制好后如图2所示。确认图形完全正确后,通过[后置]按钮进入[后置处理],生成NC文件。
2.2 具有特殊性质轨迹线的编程
图3为一个封闭图形,P6P1和P1P6为引入线和引出线,P1P7和P7P1为两段具有不偏离性质的轨迹直线,因为P1P7具有物殊性质,所以在HF软件里面通过排序来完成。
先作出正方形轨迹线,再作出整圆轨迹,再连接P1P7和P7P1,从而形成两段具有特殊性质的轨迹线(不偏离补偿);
为了使P1P7和P7P1形成具有“不偏离补偿”的性质,在规定不偏这两根线上各点击一下,对作出的轨迹线按轨迹方向进行排序;最后作出引入线和引出线,最终形成的补偿方向和轨迹方向对不对,应通过显向来检查,如补偿方向不对,应选择修改补偿方向来修改,如轨迹方向不对,可通过排序来处理,通过排序,要达到如下目的:不偏直线─整圆─不偏直线─正方形。
2.3 上下异形件的编程
上下异形是指工件的上端与下端形状不一样,如上端为一个圆,下端为一正方形,如图4所示:
用HF软件可以很方便地生成该图形的NC文件,在[异面合成]前,必须准备好相应的HGT类图形文件。这些HGT图形文件都是在全绘图编程环境下完成的。打开HF软件,在全绘方式下绘制一个圆形,命名存盘。绘制一个四方图形,命名存盘到加工菜单一栏合成异面体。
合成异面体步骤如下:给出上表面的图形名,给出下表面图形名,给出工件的高度,选择合成异面体的方式,在此例中选择按长度合成,合成的上下异形件如图5所示。
在主菜单中选[异面合成],则生成上下异面体G代码加工文件,其文件的后缀为“5NC”。
上下异形件的NC文件:
有了加工文件,我们就可以进行加工了。在上面的程式中,以两点隔开,前面的程式是下面的形状为正方形,后面的程式是上面的形状为圆形。它为一个复合程式,是将上下两个程式并在一起走,上面数据走X、Y轴,下面的数据走U、V轴。
3 结束语
利用HF软件进行线切割数控编程,通过对数控线切割程序规范的分析,创建了后置处理文件并应用于机床加工。实践证明,采用HF软件进行线切割程序编制并控制机床加工,在快走丝线切割机床上运行情况良好,取得了很好的经济效益。
参考文献
[1]魏峥主编《.Mastercamv9.0加工应用技术》.北京:清华大学出版社,2005.
[2]翟肖墨主编《.数控机床加工技术》.北京:机械工业出版社,2002.
[3]顾京主编《.数控机床加工程序编制》.北京:机械工业出版社,2004.