计算机源代码编写规范(VB版本)

计算机源代码编写规范(VB版本)
计算机源代码编写规范(VB版本)

VB编码规范

VB编码规范 (1)

1目的 (1)

2适用范围 (1)

3规范内容 (2)

3.1最低限制的编程规约 (2)

3.2对象的命名基准 (2)

3.3控件的前缀 (2)

3.4数据访问对象 (DAO,ADO)的前缀 (3)

3.5菜单的前缀 (4)

3.6其他控件前缀的选择 (4)

3.7常量和变量的命名基准 (5)

3.8变量的有效范围 (5)

3.9变量有效范围的前缀 (5)

3.10常量 (6)

3.11变量 (6)

3.12变量的数据类型 (6)

3.13说明变量和过程用途的名字 (7)

3.14用户自定义类型 (7)

3.15代码编写规约 (7)

3.16代码注释规约 (7)

3.17代码的形式 (8)

3.18常量的分组化 (9)

3.19& 运算符和 + 运算符 (9)

3.20MsgBox、InputBox、以及 SQL 查询字符串的作成 (9)

1目的

规范ASP代码编写人员的编程工作。

2适用范围

本规约是科大量星的基本编程规约,用于Visual Basic编程。

编程规约不是程序的逻辑,而是作为统一程序的物理结构和外观的基准规约。编码是如果遵守编程规约,那么代码的阅读理解和维护都将会变成一种乐趣。编程规约的内容如下:

工程,变量以及过程的命名基准

代码的惯用标签和注释的标准形式

间隔,记述形式以及缩进

编程规约设定的理由是,如果一贯使用某种编程规约,应用程序的风格和结构都是标准化的,代码将很容易理解和维护。

3规范内容

3.1最低限制的编程规约

作为通用的编程规约,规定最低限制的必要条件。为实现这个目标,同时也是为了程序,程序的逻辑以及车工序的流程能自由的做成。

该规约推荐的基准是一个简单的参考,没有提供对全部的对象和控件的规定。另外也没有规定注释的全部类型。对应于工程和组织的各自要求条件,添加以下的要素作为基准:

公司内部开发的或由第三方处购入的特殊对象和控件的命名基准

表示组织的事业内容和设施的变量名

对于工程和公司,容易理解和容易阅读作为一个重要的要素考虑

赋予对象具有一个一惯性使用的前缀的名字,对于方便容易的理解对象的种类是必要的。在这里推荐控件,数据访问对象和菜单的命名基准。

对于常量和变量的命名基准,列举Visual Basic支持的常量和变量的命名基准推荐例子。另外,也说明一下数据类型和适用范围的识别。

3.2对象的命名基准

如果一惯性的赋予对象名某个前缀,识别对象的种类就会很容易。下表中是Visual Basic支持的部分对象命名推荐基准一览。

3.3

表1 对象命名标准

3.4数据访问对象 (DAO,ADO)的前缀

为了识别数据访问对象,使用下表所示的前缀

表2 DAO/ADO对象命名标准

例:

Dim dbBiblio As Database

Dim recPubsInNY As Recordset, strSQLStmt As String

Const DB_READONLY = 4 ' 常量设定

'打开数据库

Set dbBiblio = OpenDatabase("Biblio.mdb")

' SQL文设定

strSQLStmt = "SELECT * FROM Publishers WHERE State = 'NY'"

' 新的Recordset对象做成

Set recPubsInNY = dbBiblio.OpenRecordset(strSQLStmt, dbReadOnly)

3.5菜单的前缀

应用程序大多使用菜单。菜单控件的前缀是"mnu"。命名例子一览如下表所示

使用该命名规约,特定的菜单组的成员在Visual Basic的[属性]窗口按照组别的方式排序。另外菜单控件的名字也明确表示了其所关联的菜单项目。

3.6其他控件前缀的选择

对于上面没有说到的控件,为了保持一惯性,开发者可以决定使用两到三个字母的前缀。超过三个字母的前缀,如非必要,不要使用。

例如,派生的控件或修改了的控件,可以扩张我们上面所说明了的前缀。如果是其他

公司开发的控件,可以用小写字母拓展前缀。

3.7常量和变量的命名基准

不仅对象,对常量和变量的适当命名基准也是必要的。在这里列举Visual Basic支持的常量和变量的命名基准推荐例子。另外也说明数据类型和适用范围。

3.8变量的有效范围

变量的有效范围要尽量的小。若使用全局 (Public) 变量、程序的状态就会变得复杂,逻辑也有可能变得难以理解。另外代码的再利用和维护也会变得困难。

Visual Basic变量有效范围一览,入下表示

在Visual Basic程序中,没有其他方法在多个Form间共有数据时,才考虑使用全局变量。在使用全局变量的场合,推荐的方法是,根据变量的机能,对变量进行分组,把所有的变量定义在一个模块中。

编程时,尽可能的使代码模块化。例如,应用程序弹出对话框的场合,与这个对话框相关联的控制和代码应该全部写在1个Form中。

过程和函数仅仅只操作被传递的对象(全局变量除外)。没有必要传递全局变量。过程内使用的全局变量,必须在过程的开头处声明。另外,处理被传递的参数的之明确会被改变以外,ByVal 的方式传递过程或函数的参数。

3.9变量有效范围的前缀

当工程鞭打时、正在使用的变量的有效范围的识别将变得非常重要。表示数据类型的前缀的前面加上一个表示有效范围的1个字母的前缀,变量名不会变得太长,而又能识别变量的有效范围。

在标准模块或Form模块中,把变量作为public声明的话,该变量就是全局变量,该变量的有效范围就是模块级的。

注意为了有效的后用这种方法,使用一贯性的前缀很重要的。

3.10常量

常量名使用大写字母书写。标准的Visual Basic 常量名中部含有数据类型和有效范围情报。在用户定义的常量中,如使用int、str、g、m 等前缀的话,常量的值和范围就很容易理解。常量名可以和变量名用相同的命名基准,如下面的例子。

mintUSERLISTMAX '用户列表的最大数

'(整形,模块内有效)

gstrNEWLINE '新的改行字符

'(字符串,全局变量)

3.11变量

预先声明全部的变量,因为变量类型错误而产生的bug就会减少,那么就会减少编程时间,提高效率。比如,为防止把aUserNameTmp误作为 sUserNameTmp或sUserNameTemp这样的bug,可以把 [选项] 对话框的[编辑]属性页的[变量强制声明]选中。根据Option Explicit声明,Visual Basic会要求所有使用的变量都必须事先声明。

对于变量,名字要加上表时数据类型的前缀。特别是党程序的规模变得很大时,可以用前缀识别出变量的数据类型。

3.12变量的数据类型

为表示变量的数据类型,可以使用以下的前缀

3.13说明变量和过程用途的名字

变量和过程名字的主体部分用大写和小写字母书写。另外变量的名字应该象InitNameArray 和CloseDialogIn 一仰泳动词开头。

频繁使用的单词或长的单词,可以考虑使用缩写的形式,以缩短变量名字长度。一般来说变量名的长度超过32个字符,用VGA 显示的话,阅读起来就会很困难。

使用省略形式,必须在整个应用程序内统一使用。比如,在工程内 Cnt 和 Count 两种表示方法时,就有可能产生混淆。

3.14用户自定义类型

在多数使用用户自定义类型的大规模工程中,对各个类型使用固有的三个字母的前缀时方便的。这个前缀的开头如果是”u”、在处理用户自定义数据类型使就很容易看出来。例如 ucli 就可以作为用户自定义的client类型的前缀使用。

3.15代码编写规约

除了命名规约以外,也规定代码的注释和缩进等待代码写规约,代码的阅读和理解就更容易了。

3.16代码注释规约

在过程和函数的开头,记述说明各自的功能(做什么的过程) 的简单注释。该注释不是详细的记述过程或函数是怎样实现的。对于实现方法用函数或方法内的inline注释来记述。

党项过程传递的参数的功能难以理解时,必须对参数注释说明。函数的返回值,全局变量在过程内被改变以及特殊的参数以引用形式传递的场合,必须在各个过程的开头处注释说明。

关于过程的头注释,参照下表的说明。

注意以下几点:

重要的变量声明,变量的使用方法要注释说明。

变量,过程名要使用容易理解的名字。

3.17代码的形式

现在虽然实用 VGA 的编程者已经很多了、但也要尽可能考虑画面的空间,同时也要考虑程序的逻辑结构和缩进的代码形式。以下是参考项目:

用标准的TAB键作一个缩进,一个TAB四个空格长度。

具体如下例:

'********************************************************************************** **********

' 目的说明:strUserList 检索数组,取第一个符合要求的

' : 目的用户

' 输入参数:

' strUserList() :检索用户一览

' strTargetUser :检索用户的名字

' 返回值:

' n ( n > 0 ) : strUserList 数组中第一个与strTargetUser相同的项的索引值

' -1 :如果没有发现目的用户,返回-1

'********************************************************************************** **********

Function fintFindUser(strUserList() As String, strTargetUser As String) As Integer Dim intIdx As Integer ' 循环变量

Dim blnFound As Boolean ' 目的数据发现标志

fintFindUser = -1

intIdx = 0

While intIdx <= Ubound(strUserList) and Not blnFound

If strUserList(intIdx) = strTargetUser Then

blnFound = True

fintFindUser = intIdx

End If

intIdx = intIdx + 1

Wend

End Function

注:象上面例子一样,为了区别函数名和变量名,在函数名的前面加一个’f’前缀。

3.18常量的分组化

为了不使变量合用胡子定义的常量分布在各个领域和文件中,按机能别分组。Visual Basic 公用的常量分组化以后,定义在一个模块文件中,与其他的应用程序固有的声明分开。

3.19& 运算符和 + 运算符

字符串联结使用&运算符,数值相加使用+运算符。字符串联结时如果使用+运算符,2个variant类型的数据操作时就会产生问题。

例:

vntVar1 = "10.01"

vntVar2 = 11

vntResult = vntVar1 + vntVar2 'vntResult = 21.01

vntResult = vntVar1 & vntVar2 'vntResult = 10.0111

3.20MsgBox、InputBox、以及 SQL 查询字符串的作成

长的代码书写时,用下划线(_)换行。这样的话复数行代码的阅读和调试都变得容易。使用这种方法,在消息框 (MsgBox) 和输入框 (InputBox) 中表示消息,以及 SQL 字符串做成时特别方便。

次に例を挙げます。

Dim Msg As String

Msg = "这是在消息框中 " _

& "表示的段落。" _

& " 数行分开写时,读起来容易," _

& " 调试也容易。"

MsgBox Msg

Dim QRY As String

QRY = "SELECT *" _

& " FROM Titles" _

& " WHERE [Year Published] > 1988" TitlesQry.SQL = QRY

VBProject代码操作代码之常用语句

一、增加模块 1.增加一个模块,命名为“我的模块” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "我的模块" 系统常量vbext_ct_StdModule=1 2.增加一个类模块,命名为“我的类” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name = "我的类" vbext_ct_ClassModule=2 3.增加一个窗体,命名为“我的窗体” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "我的窗体" vbext_ct_MSForm=3 二、删除模块 1.删除“模块1” ThisWorkbook.VBProject.VBComponents.Remove hisWorkbook.VBProject.VBComponents("模块1") 2.删除窗体“UserForm1” ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("UserForm1") 3.删除类模块“类1” ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("类1") 4.删除所有的窗体 Sub RmvForms() Dim vbCmp As VBComponent For Each vbCmp In ThisWorkbook.VBProject.VBComponents If vbCmp.Type = vbext_ct_MSForm Then ThisWorkbook.VBProject.VBComponents.Remove vbCmp Next vbCmp End Sub 相关: 工作表和ThisWorkbook的模块类型为vbext_ct_Document=100 三、增加代码 1.在“模块1”中插入代码 如果需要在“Sheet1”、“Thisworkbook”、或“Userform1”中操作,用只需将下面的“模块1”换成相应的名称即可。 方法1: 在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。 Sub AddCode1() ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.AddFromString _ "sub aTest()" & Chr(10) & _ "msgbox ""Hello""" & Chr(10) & _ "end sub" End Sub

推箱子程序设计报告

程序设计报告 推 箱 子 通信学院 电子信息1204工程班 1207050420 郝国成 一.设计思路 推箱子游戏是一款很有趣味的游戏,其开发过程有一定的技

巧和方法,其中涉及到二维数组、键盘操作以及图形化函数等方面的知识。 设计推箱子这个游戏,目的是将箱子推到指定的空位,以完成游戏。 首先,要在窗口上,绘制地图,画出墙和草地。 然后,要保证人和箱子可以移动,这个就用到了case WM_KEYDOWN函数去控制了。 下来,就是要制定游戏规则,根据游戏规则,箱子可以在空地之间、目的地之间、空地和目的地之间来回移动,。 最后,把全部箱子移动到指定位置才算完成本次游戏,因此箱子每移动一次都必须判断全部箱子当前位置是否到达指定坐标。 而且,只要游戏没有结束,就没有时间的限制。 大体思路确定以后就是要去怎么做,怎么去实现自己的想法。 我是采用二维数组绘制地图的原理,把资源图片一张张绘制到窗口DC上,然后记录人物资源的坐标,通过方向键响应,改变人物坐标,达到控制人物移动的目的。箱子也同样是这个道理。 想好思路以后,就是动手写代码。这期间我又认识了好多新的Windows的函数,不断的修改,使我更能深刻理解到WIN 32 的作用,收获很大。 二.部分代码 // 推箱子.cpp : Defines the entry point for the application. #include "stdafx.h" #include "resource.h" //#include "mmsystem.h"//导入声音头文件

//#pragma comment(lib,"winmm.lib")//导入声音头文件库 #define MAX_LOADSTRING 100 #define width 48 #define heigth 48 typedefstruct { int x; int y; }point; char map1[10][10]= //地图二维数组 { " ####", " ### @#", " # b #", " ## # ###", " # # #*#", " # # b*#", " # b *#", " ########", " " }; char map2[10][10]= //地图二维数组 { "nnnn#####", "nnnn# @#", "###n#bb #", "#*#n# b #", "#*### ###", "#* ##n", "# # #n", "#### #", "nnn#####", " " }; staticintbStarted=0; int a = 0; intaimnum_qj=0; intaimnum=0; intboxoknum_qj=0; charmap_mid[10][10]; char map[10][10];

基于VC++的推箱子游戏设计与实现

本科毕业设计(论文) 基于VC++的推箱子游戏设计与实现 学院自动化学院 专业电子信息科学与技术 年级班别2008级(2)班 学号3108001166 学生姓名吕文财 指导教师 ________张学习 ___ __ 2012年6月

基于 VC++ 的推箱子游戏的设计与实现 吕文财 自动化学院

摘要 近年来随着科技的飞速发展, Visual C++语言的应用正在不断深入。Visual C++语言是当今国际上非常流行的计算机高级编程语言之一,它是面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它更以自动编译功能和高级除错功能著称。因此,广泛受到编程人员青睐。不仅适合作为系统描述语言,也用来编写系统软件,还可以用来编写应用软件和设计游戏等。 本论文着重分析用Microsoft Visual C++语言实现一个较为简单的推箱子游戏,旨在介绍推箱子游戏的实现方法,并逐步介绍Microsoft Visual C++6.0图形编程的方法和技巧。本设计通过主界面对话框类、关口选择对话框类、帮助对话框类三大类以及键盘操作模块、游戏规则模块、地图文件读取模块、背景音乐播放模块、地图绘制模块,共五大模块构成。实现了任意关数选择、难度依次加大、游戏步数记录、背景音乐播放、游戏帮助、胜负判断等多个功能,采用图形函数的使用实现了一个完整的推箱子游戏界面,界面清晰可见。 关键词:推箱子,c++语言,模块,图形编程

vb代码大全

用VB5实现窗口图象缩放、滚动技巧 成都理工学院计算机工程系 洪志全 ---- Visual Basic 是Windows 平台中最常用的应用软件开发语言, 窗口图像缩放、滚动是图像处理、多媒体数据库等应用软件开发中的基本功能。本文将介绍如何用VB 5.0 实现地窗口图像缩放和滚动技巧, 供读者在各种语言系统开发中参考。 ---- 一、获取图像 ---- 本文所介绍的图像缩放并没有对真正的图像进行缩放, 而是复制一幅窗口图像的真实画面, 对这个窗口图像附本进行局部缩放和滚动, 获取窗口图像可使用Windows 的API 函数来实现。具体来说, 实现窗口图像缩放、滚动需要用GetDeskTopWindow() 函数获取桌面窗口句柄, 再通过GetDC() 函数转换为描述表句柄, 则用BitBlt() 函数把桌面图像复制到任意图形容器控件中, 桌面图像复制完成后, 再用ReleaseDC 释放窗口描述表, 各API 函数的具体使用方法参见本文的例子程序。 ---- 本文所用的API 函数包含在WIN95/98 的GDI32.DLL 和USER32.DLL 动态链接库中, 在使用时可通过VB5.0 的TEXT VIEWER 复制到所开发的应用程序中。 ---- 二、图像缩放 ---- 图像缩放显示的基本原理就是把原图像的一部分缩放后再送入窗口的图形容器控件中, 在VB 中可用内部命令PaintPicture 来进行, 语法格式为: PaintPicture Pic,DestX,DestY,DestWidth, DestHeight,ScrX,ScrY,ScrWidth,ScrHeight ---- 其中,Pic 为图片对象, 如图形控件对象等; DestX,DestY为目标图像起始坐标; DestWidth,DestHeight为目标图像幅面尺寸; ScrX,ScrY为源图像起始坐标; ScrWidth,ScrHeight为源图像剪裁尺寸。 ---- 该命令就是把一个源图像资源任意复制到指定的区域, 其功能相当于API 函数的BitBlt, 但使用更简单, 若复制时改变源图像的ScrWidth,ScrHeight 或目标图像的DestWidth,DestHeight 可使复制后的图像尺寸发生变化, 实现窗口图像的缩放显示。若ScrWidth,ScrHeight 或

VB函数大全_基本函数大全

VB函数大全_基本函数大全 Abs 函数返回数的绝对值。 And 运算符执行两个表达式的逻辑连接。 Array 函数返回含一数组的变体。 Asc 函数返回字符串首字母的ANSI 字符代码。 赋值运算符(=) 给变量或属性赋值。 Atn 函数返回数的反正切值。 调用语句将控制移交Sub 或Function 过程。 CBool 函数返回已被转换为Boolean 子类型的变体的表达式。 CByte 函数返回已被转换为字节子类型的变体的表达式。 CCur 函数返回已被转换为货币子类型的变体的表达式。 CDate 函数返回已被转换为日期子类型的变体的表达式。 CDbl 函数返回已被转换为双精度子类型的变体的表达式。 Chr 函数返回指定ANSI 字符码的字符。 CInt 函数返回已被转换为整数子类型的变体的表达式。 Class 对象提供对已创建的类的事件的访问。 Class 语句声明类名 Clear 方法清除Err 对象的所有属性设置。 CLng 函数返回已被转换为Long 子类型的变体的表达式。 颜色常数颜色常数列表。 比较常数用于比较运算的常数列表。 连接运算符(&) 强制两个表达式的字符串连接。 Const 语句声明用于字母值的常数。 Cos 函数返回角度的余弦值。 CreateObject 函数创建并返回对“自动”对象的引用。 CSng 函数返回已被转换为单精度子类型的变体的表达式。 CStr 函数返回已被转换为字符串子类型的变体的表达式。 日期和时间常数在日期和时间运算中用来定义星期几和其他常数的常数列表。日期格式常数用于日期和时间格式的常数列表。 Date 函数返回当前系统日期。 DateAdd 函数返回加上了指定的时间间隔的日期。 DateDiff 函数返回两个日期之间的间隔。 DatePart 函数返回给定日期的指定部分。 DateSerial 函数返回指定年月日的日期子类型的变体。 DateValue 函数返回日期子类型的变体。 Day 函数返回日期,取值范围为1 至31。 Description 属性返回或者设置说明某个错误的字符串。 Dictionary 对象存储数据键、项目对的对象。 Dim 语句声明变量并分配存储空间。 除法运算符(/) 两数相除并以浮点数格式返回商。 Do...Loop 语句当条件为True 或者当条件变为True 时,重复一语句块。Empty 表示尚未初始化的变量值。 Eqv 运算符使两个表达式相等。 Erase 语句重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象含有关于运行时错误的信息。 Eval 函数计算并返回表达式的值。 Execute 方法根据指定的字符串,执行正则表达式的搜索。 Execute 语句执行单个或更多的指定语句。 Exit 语句退出Do...Loop、For...Next、Function 或Sub 代码块。 Exp 函数返回e (自然对数的底)的多少次方。 自乘运算符(^) 指数函数,幂为自变量。 False 关键字,其值为零。

vb常用程序代码

1、求半径为r的圆的面积,要求用户从键盘输入半r。 程序代码: Private Sub Form_click() Const PI = 3.14 Dim r% Dim s! r = InputBox("请输入半径r的值:", "求圆的面积") s = PI * r * r Form1.FontSize = 16 Print "半径是" + Str(r) + "的圆的面积是" + Str(s) End Sub 2、输入三个整数,从小到大顺序输出。 程序代码: Private Sub Form_click() a = InputBox("a") b = InputBox("b") c = InputBox("c") Print "排序前:"; a, b, c If a > b Then t = a: a = b: b = t If a > c Then t = a: a = c: c = t If b > c Then t = b: b = c: c = t Print "排序后:"; a, b, c End Sub 3、输入三个整数,从大到小顺序输出。 程序代码: Private Sub Form_click() a = InputBox("a") b = InputBox("b") c = InputBox("c") Print "排序前:"; a, b, c If a

c语言推箱子代码

#include #include void map1(); void map2(); void map3(); void show(); void move(); void main(int argc,char*argv[]) { time_t a,b; time(&a); system("color 1E"); loop1: { system("cls");//刷屏 printf("\n\n\n\n\n\n\t\t\t\t欢迎进入推箱子游戏\n\n\t\t\t\t 请按a b c选择游戏\n\n\t\t\t\t 按 d 键结束"); int t=getch(); if(t=='d') { printf("\n\t\t\t "); } else { if(t=='a') { map1(); goto loop1; } if(t=='b') { map2(); goto loop1; } if(t=='c') { map3(); goto loop1; } else { printf("\n\n\t\t\t\t 请重新输入:"); goto loop1; } }

time(&b); printf("\n\n\n\n\t\t\t\t 游戏总共用时%.3d秒\n\t\t\t ",b-a); getch();//等待读取回车符以结束程序 } void map1() { time_t p,q,o; time(&p); int i=4,j=4,m=6,n=2,t=1,k=3; system("cls");//刷屏 system("color 2E"); int x=1,y=7; char z,a[9][9]= { /*为背景设置初始资料*/ {'#','#','#','#','#','#','#','#','#'}, {'#','#','#', 3, 0 , 0 , 0 , 1 ,'#'}, {'#','#', 0 , 0 , 0 ,'#', 0 ,'#','#'}, {'#', 0 , 0 ,'#', 0 , 0 , 5 , 0 ,'#'}, {'#', 0 , 5 , 5 , 3 , 0 , 0 , 0 ,'#'}, {'#','#', 0 ,'#', 0 , 0 ,'#','#','#'}, {'#','#', 3 , 0 , 0 , 0 ,'#','#','#'}, {'#','#','#','#','#','#','#','#','#'}, {'#','#','#','#','#','#','#','#','#'} }; show(a);//调用输出函数 loop://语句标号 move(a,&x,&y,i,j,m,n,t,k,&z); if(a[i][j]=='!'&&a[m][n]=='!'&&a[t][k]=='!') { system("cls");//刷屏 show(a); printf("\t\t\t\t YOU ARE WIN!\n"); time(&q); printf("\t\t\t\t\t 用时%.3d秒\n",q-p); printf("\t\t\t\t*******回车重新选择*******\n\t\t\t\t"); getch(); } else { time(&o); if(z=='d') { return;

VB常用命令大全

常用命令 FontStrikeThru属性是逻辑型,决定对象上正文是否加一删除线。 FontItalic属性是逻辑型,决定对象上正文是否是斜体。 窗体的其它常用属性 2.Icon 控制图标属性:返回或设置窗体左上角显示或最小化时显示的图标。 注意:此属性必须在ControlBox属性设置为Ture才有效 3.ControlBox控制菜单框属性:设置Ture为有,如设置为False则无控件菜单,同时窗体也无最大化按钮和最小化按钮,即使MaxButton属性和MinButton属性设置为Ture。 5. BorderStyle:边框风格, 通过改变BorderStyle 属性,可以控制窗体如何调整大小。 0-None:无边框; 1-Fixed Single:单线边框,不可以改变窗口大小; 2-Sizable:双线边框,可以改变窗口大小; 3-Fixed Double:双线框架,不可以改变窗口大小。 4-Fixed Tool Window:窗体外观与工具条相似。有关闭按钮,不可以改变窗口大小。 5-Sizable Tool Window:窗体外观与工具条相似。有关闭按钮,可以改变窗口大小。 6. WindowsState属性 用来设置窗体的运行状态。 0-Normal:正常窗口状态,有窗口边界; 1-Minimized:最小化状态,以图标方式运行; 2-Maximized:最大化状态,无边框,充满整个屏幕。 7. AutoRedraw属性 该属性决定窗体被隐藏或被另一窗口覆盖之后,是否重新还原该窗体被隐藏或覆盖以前的画面。即是否重画如Circle、Line、Pset和Print等方法的输出。 当为True时,重新还原该窗体以前的画面。 当为False时,则不重画AutoRedraw属性。 4 Resize事件 无论是因为用户交互,还是通过代码调整窗体的大小,都会触发一个Resize事件。 5 Activate事件:当窗体由非活动窗体变为活动窗体,即当窗体得到焦点时触发该事件。窗体常用的方法有: 打印输出Print 移动Move 清除Cls 显示Show 隐藏Hide等方法。 方法的使用的形式: [对象.]方法[参数] 1.Print方法 形式: [窗体名.]Print[{Spc(n)|Tab(n)}][表达式列表][;|,] 作用: 在对象上输出信息 Spc(n)函数:插入n个空格,允许重复使用。 Tab(n)函数:从窗体第n列开始输出,允许重复使用。 ;(分号):光标定位上一个显示的字符后(紧凑格式)。 ,(逗号):光标定位在下一个打印区的开始位置处。每个打印区占14列(标准格式)。无;,换行。

用java实现推箱子(sokoban)游戏

推箱子游戏 一、功能描述: 可以通过面板上的按钮或是键盘上的pageup,pagedown键选择上下关 可以通过面板上按钮或是键盘上的Backspace键后退,一直后退自己想要的位置,知道游戏开始时的位置。 可以通过面板上的按钮或是键盘上的字母r重新开始当前关卡游戏。 可以在复选框内选择想要玩的关卡。 二、界面及运行截图

三、源代码(三部分) 1、地图类 package box; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader;//读取字符文件类FileReader import java.io.IOException; public class map { int[][] map=new int[20][20]; int manX,manY;

public map(int level){ String filepath="mapc/"+level+".txt"; File file = new File(filepath); FileReader fr = null;//利用FileReader流来读取一个文件中的数据 BufferedReader br = null;//字符读到缓存里 try { fr = new FileReader(file); br = new BufferedReader(fr); for (int i = 0; i < 15; i++){ String line = br.readLine();//以行为单位,一次读一行利用BufferedReader 的readLine,读取分行文本 byte[] point = line.getBytes();//将字符串转换为字节数组 for (int j = 0; j < 15; j++) { map[i][j] = point[j] - 48;// 根据ASCall码表要减掉30H(十进制的48) if (map[i][j] == 5 || map[i][j] == 6 || map[i][j] == 7|| map[i][j] == 8){ manX = i; manY = j; } } } } catch (FileNotFoundException e){ e.printStackTrace();//深层次的输出异常调用的流程 } catch (IOException e){ e.printStackTrace();//深层次的输出异常调用的流程 } catch(NullPointerException e){ e.printStackTrace();//深层次的输出异常调用的流程 } finally { if (br == null){ try{ br.close(); } catch (IOException e){ e.printStackTrace(); } br = null; } if (fr == null){ try {

推箱子源代码

#include #include #include #include #include using std::cout; using std::endl; #ifndef SOKOBAN_H_ //防止文件重复包含 #define SOKOBAN_H_ #include using std::queue; //每一步的数据类型 struct node { int bx, by; //箱子的坐标 int px, py; //人的坐标 }; //推箱子类 class Sokoban { private: enum {L = 15, H = 7}; char GameMap[H][L]; //地图 int Pex, Pey; //人的位置 int Boxx, Boxy; //箱子的位置 int Succeed, Prove; //是否成功到目的地, 是否可玩性 int dx[4], dy[4]; //方向数组 protected: char Empty; char People; char Box; char Block; char Target; int dir; //记录按键方向 node s, e; public: Sokoban(); //构建函数 ~Sokoban() {} //析构函数,即为inline //地图初始化函数 void Initial(); //箱子路劲验证函数,参数为箱子坐标(bx,by),人坐标(px,py) void Box_Bfs(int bx, int by, int px, int py); //人路劲验证函数,人所到的目的地(ex,ey)

vb程序设计试题(含答案)

第一套试题 一、选择题(每题2分,共30分) 1.在VB环境中,工程文件的扩展名是( C ) (A).frm (B).bas (C).vbp (D).frx 2.下面4项中不属于面向对象系统三要素的是( A ) (A)变量(B)事件(C)属性(D)方法 3. \、/、Mod、*这4个算述运算符中,优先级别最低的是( C ) (A)\ (B)/ (C)Mod (D)* 4.要使Print方法在Form_Load事件中起作用,要对窗体的( C )属性进行设置(A)BackColor (B)ForeColor (C)AutoRedraw (D)Caption 5.不论何控件,共同具有的属性是( B ) (A)Text (B)Name (C)ForeColor (D)Caption 6.要使Form1窗体的标题栏显示“欢迎使用VB”,以下语句正确的是( D ) (A)Form1.Caption=“欢迎使用VB”(B)Form1.Caption=ˊ欢迎使用VBˊ(C)Form1.Caption=欢迎使用VB (D)Form1.Caption=〞欢迎使用VB〞 7.VB提供了结构化程序设计的3种基本结构,这3种基本结构是( D ) (A)递归结构,选择结构,循环结构(B)选择结构,过程结构,顺序结构 (C)过程结构,输入、输出结构,转向结构(D)选择结构,循环结构,顺序结构 8.给变量赋值a=123+MID(“123456”,3,2),a变量中的值是( D ) (A)“12334”(B)123 (C)12334 (D)157 9.下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是( D ) (A)If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1 (B)If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1 (C)If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1 (D)If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1 10.若要清除列表框的所有内容,可用来实现的方法是( C )

VB程序练习题整理稿剖析

1.退出Visual Basic 的快捷键是______。A. Ctrl+Q B.Shift+Q C.Alt+Q 2.窗体设计器是用于设计______。 A.应用程序的界面 C.应用程序的代码D. Ctrl+Alt+Q B. 对象的属性D. 窗体的代码 3.启动Visual Basic 后,VB为用户建立的第一个窗体是______。 A.Form1 B.Form C.窗体1 D. 窗体 4.启动Visual Basic 后,VB为用户新建立的工程的名字是______。 A.窗体1 B. 工程1 C.窗体 D. 工程 5.工程资源管理器窗口包含的文件类型有______种。 A.1 B.2 C.3 D. 4 6.如果VB环境中缺少某个窗口,一般应从主菜单______的下拉菜单中找到相应的激活命令。 A.编辑C.调试B. 文件D. 视图 7.能够通过标准工具栏打开的窗口是______。 A.代码窗口 C.属性窗口 8.窗体文件的扩展名______。B. 设计器窗口D. 窗体布局窗口 A..bas B. vbp C..exe 9.工程文件的扩展名______。 A..com D. frm B. vbp C..exe D. bas 10.Visual Basic的编程机制是______。 A.面向过程C.事件驱动B. 面向对象D. 可视化 (三)练习题 使用VB建立一个应用软件的全过程有哪些步骤?。1.具体过程如下(1)在窗体上建立用户窗口(界面)对象。 (2)分别对对象设置属性。 (3)分别对对象事件的过程编程且完成代码输入。 (4)运行程序和调试程序。 (5)保存程序。 1. 2.保存VB文件,至少要保存几个文件?应先保存什么文件?2.至少保存2个文件,先保存窗体文件,后保存工程文件。

VB编程常用代码 大一练习专用

A,B,C排序由大到小 Dim a As Single,b As Single,c As Single a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If b>a Then d=a:a=b:b=d End If If c>a Then d=a:a=c:c=d End If If c>b Then d=b:b=c:c=d End If Text4.Text=a Text5.Text=b Text6.Text=c End Sub Private Sub Command2_Click() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" Text5.Text="" Text6.Text="" End Sub 计算a+b Private Sub Command1_Click() Text4.Text=Val(Text2.Text)+Val(Text3.Text) Text1.Text="欢迎新同学" End Sub 清除

Private Sub Command2_Click() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" End Sub 奇偶数显示器 显示 Private Sub Command1_Click() Dim a As Integer a=Val(Text1.Text) If a/2=Int(a/2)Then Text2.Text="您输入的数是偶数" Else Text2.Text="您输入的数是奇数" End If End Sub 清除 Private Sub Command2_Click() Text1.Text="" Text2.Text="" End Sub 奇偶数判断 Dim a,b As Integer Dim result As Integer a=Val(InputBox("请输入一个整数","数的输入",300,400)) b=Val(InputBox("请输入一个整数","数的输入",300,400)) If a/2=Int(a/2)Then result=MsgBox("您输入的数:"&a&"是一个偶数",1,"判断结果") Form1.Print rusult Else m="您输入的数:"&a&"是一个奇数" result=MsgBox("您输入的数:"&a&"是一个奇数",1,"判断结果") Form1.Print result End If If b/2=Int(b/2)Then result=MsgBox("您输入的数:"&b&"是一个偶数",1,"判断结果") Form1.Print rusult Else result=MsgBox("您输入的数:"&b&"是一个奇数",1,"判断结果")

推箱子游戏代码

#include #include #include #include #include #include typedef struct winer { int x,y; struct winer *p; }winer; char status [20][20]; char far *printScreen=(char far* )0xB8000000; void putoutChar(int y,int x,char ch,char fc,char bc); void printWall(int x, int y); void printBox(int x, int y); void printBoxDes(int x, int y); void printDestination(int x, int y); void printDestination1(int x,int y,winer **win,winer **pw); void printMan(int x, int y); void init(); winer *initStep1(); winer *initStep2(); winer *initStep3(); winer *initStep4(); void moveBoxSpacetoSpace(int x ,int y, char a); void moveBoxDestoSpace(int x ,int y, char a) ; void moveBoxSpacetoDes(int x, int y, char a); void moveBoxDestoDes(int x, int y, char a); int judge(int x, int y); void move(int x, int y, char a); void reset(int i); void putoutChar(int y,int x,char ch,char fc,char bc) { printScreen[(x*160)+(y<<1)+0]=ch; printScreen[(x*160)+(y<<1)+1]=(bc*16)+fc; } void printWall(int x,int y) { putoutChar(y-1,x-1,219,GREEN,BLACK); status[x][y]='w'; } void printBox(int x,int y) { putoutChar(y-1,x-1,10,WHITE,BLACK); status[x][y]='b'; } void printDestination1(int x,int y,winer **win,winer **pw) {

VB代码大全

隐藏form1: form1.hide 显示form1: form1.show --------------------------------------------------------------------------------------------- 退出程序时,弹出窗口提示是否要退出: Private Sub Form_Unload(Cancel As Integer) Dim iAnswer As Integer iAnswer = MsgBox("真要退出吗?", vbYesNo) If iAnswer = vbNo Then Cancel = True Else End End If End Sub ---------------------------------------------------------------------------------------------- 只能用任务管理器关闭程序的代码: Private Sub From_Unload(Cancel As Integer) Cancel = true End Sub ------------------------------------------------------------------------------------------------ 点击command1打开33IQ网: Dim strURL Private Sub Command1_Click() strURL = "错误!超链接引用无效。 Shell "explorer.exe " & strURL, 1 End Sub ------------------------------------------------------------------------------------------------ 运行c:\1.exe shell "c:\1.exe" 执行c:\1.bat shell "c:\1.bat" 注:只适用于大部分exe和全部bat。

常见vb程序设计代码

常见vb程序设计代码 作者 : 窦振山 1、猴子每天吃掉的桃子是所有桃子的一半多一个,到第七天发现只剩下一个了,问最开始有几个桃子?、、 Private Sub Command1_Click() Dim m(1 To 7) m(1) = 1 For i = 2 To 7 m(i) = (m(i - 1) + 1) * 2 Next For i = 1 To 7 Print "第" & i & "天的桃数是"; m(i) Next End Sub 2、百元百鸡问题:公鸡三元一只,母鸡两元一只,小鸡一元两只,现用百元买一百只鸡Private Sub Command1_Click() Dim x As Integer Dim y As Integer For x = 1 To 100 For y = 1 To 100 If 3 * x + 2 * y + (100 - x - y) / 2 = 100 Then Print "公鸡 "; x; "母鸡"; y; "小鸡"; 100 - x - y End If Next Next End Sub 1、综合运用一维数组、二维数组、动态数组和控件数组的有关知识编写程序,要求能输入学生的学号、姓名、性别、年龄等个人简况,输入的学生人数不限,并可按学号或姓名查询。界面设计用到了三个command即“添加”、“查询”和“退出”,八个label和四个text 用来输入学号、姓名、成绩和年龄,一个frame,一个picturebox图片框用来显示结果 其程序代码设计如下: Private Type stu id As Integer nam As String sco As Single age As Integer End Type Dim students(100) As stu Dim s As Integer Private Sub Command1_Click() Static i As Integer If Text1.Text = "" Then

java推箱子游戏源代码(含推箱子的判断)

第一个Java文件: package xiaoA; import java.awt.Color; import java.awt.HeadlessException; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; public class GameFrame extends JFrame { JPanel zhuobu = new JPanel(); //工人 JLabel worker = null; //箱子 JLabel box = null; //目的地 JLabel goal = null; JLabel[] walls = null; public static final int SPEED = 12; //设置图片大小 int imgSize = 48; public void setImgSize(int imgSize){ this.imgSize = imgSize; } public GameFrame(String title) throws HeadlessException { super(title); //构造方法中调用本类的其它方法 this.initContentPane(); this.addKeyListener(new KeyListener() { //键盘按下事件 public void keyPressed(KeyEvent e) { //[2.5] 使工人可以移动 int xSpeed = 0, ySpeed = 0; switch (e.getKeyCode()) { case KeyEvent.VK_LEFT :

VB代码

VB代码 *概述(将文本框移动到右上角) Private Sub Command1_Click() Text1.Left = Form1.Width - Text1.Width Text1.Top = 0 End Sub *控件1(登录窗口的设置登录名:admin 密码:123456)Private Sub cmdLogin_Click() If txtID.Text = "admin" And txtPsw.Text = "123456" Then MsgBox "登录成功", vbOKOnly + vbInformation Else MsgBox "登录失败", vbOKOnly + vbCritical End If End Sub Private Sub cmdReset_Click() txtID.Text = "" txtPsw.Text = "" End Sub Private Sub cmdClose_Click() End End Sub Private Sub txtID_Change() End Sub *控件2(改变字体字形和字号) Private Sub cmdSet_Click() If optST.Value = True Then lblCaption.FontName = "宋体" ElseIf optLS.Value = True Then lblCaption.FontName = "隶书" Else lblCaption.FontName = "楷体" End If

If optFont16.Value = True Then lblCaption.FontSize = 16 ElseIf optFont18.Value = True Then lblCaption.FontSize = 18 Else lblCaption.FontSize = 20 End If lblCaption.FontBold = ChkBold.Value lblCaption.FontItalic = ChkItalic.Value End Sub *控件3(对列表框进行选项添加,删除,清空)Option Explicit Private Sub Form_Load() List1.AddItem "蚕豆" List1.AddItem "扁豆" List1.AddItem "绿豆" List1.AddItem "红豆" List1.AddItem "刀豆" End Sub Private Sub Command1_Click() List1.AddItem Text1 Text1 = "" End Sub Private Sub Command2_Click() List1.RemoveItem List1.ListIndex End Sub Private Sub Command3_Click() List1.Clear End Sub Private Sub Command4_Click() End End Sub

相关文档
最新文档