过程 过程通常是指程序设计中的一段完整代码,也被称为代码块,通常能完成某一完整的操作。 可反复调用 程序结构化 提高效率.

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
計算機程式及實習 期末報告 題目:超級猜一猜
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
計算機程式及實習 期末報告 題目:商店結帳系統
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
第四章 控制结构.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
Visual Basic 2005學習範本 第5章 選擇結構.
VB教学中游戏化教学案例设计.
第7章 过 程 本章要点: Sub过程 Function过程 参数传递.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
CH10.
BLANK overview.
第七章、RFID WinCE系統開發 本章針對RFID系統中的行動裝置架構開發方式進行介紹,這裡所指的行動裝置指的是使用Windows Mobile作業系統的個人數位助理PDA或是手機而言,本章內之範例可以在此平台上運作無虞。主要說明使用VS.NET 2008平台開發與RFID結合的Windows.
CH11.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
課程名稱:資料庫系統 授課老師:李春雄 博士
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
程式語言 -Visual Basic 變數、常數與資料型態.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
WEB伺服器控制項.
Timer & Format.
第10章 視窗應用程式的工具列與功能表.
走进编程 程序的顺序结构(二).
機器人-Robot Nobody 機器人.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
PCR300 (13.56MHz) Reader RS232/USB.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
VB程序设计语言 主讲教师:王 杨.
Visual Basic程序设计.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
江西财经大学信息管理学院 《数据库应用》课程组2007
小结 郭清溥.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
計算機概論與實習期末報告 老師:謝慶存 4a415057賴震製作.
打地鼠(陣列版).
第二章、第三章错题分析.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
第4章 Excel电子表格制作软件 4.4 函数(一).
3.16 枚举算法及其程序实现 ——数组的作用.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
算法与Visual Basic程序基础(二)
第7章 过 程 Visual Basic中过程分为两种,一种是事件过程,例如前面涉及到的按钮的Click事件过程、窗体的Load事件过程等。另一种是通用过程,它主要用来让事件过程或其他通用过程调用。本章主要介绍的就是这种过程。
程序调试与错误处理.
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
Presentation transcript:

过程 过程通常是指程序设计中的一段完整代码,也被称为代码块,通常能完成某一完整的操作。 可反复调用 程序结构化 提高效率

过程分类 Sub过程 Function过程

Sub过程 事件过程 通用Sub过程

Sub过程调用 [Call]过程名([参数列表])

Function过程 与Sub过程有许多相似之处 区别在于 Sub过程不直接返回值 Function过程则返回一个值

过程中的参数 实际参数:写在Sub过程或Function函数中的参数名称,而非具体参数值

参数传递方式 按值传递:ByVal 按引用传递:ByRef 默认值:按值传递:ByVal 实参将值传给形参 调用时形参值的改变不影响实参 实参将地址传给形参 调用时形参的值发生改变,实参也随之改变 默认值:按值传递:ByVal

程序分析 DIM  X,Y  As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click X = 5 Y = 3 Call proc(X, Y) Label1.TEXT = X Label2.TEXT = Y End Sub Sub proc(ByRef a As Integer, ByVal b As Integer)         a = a * a         b = b + b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是多少,为什么?

变量的作用域 代码块级变量 过程级变量 模块级变量 全局变量

过程分类 Sub过程 Function过程

扫雷游戏 Mine-Sweeping Game

扫雷游戏 游戏规则: 程序启动即可开始扫雷标雷,共10颗雷 鼠标左键: 鼠标右键: 若为雷,则翻牌显示地雷,弹出警告“你触雷了”,游戏并没有结束,还可继续玩! 若不是雷,则显示周围雷的个数,并自动搜索相邻按钮周围的雷数直到遇到有雷按钮搜索结束 鼠标右键: 标雷

菜单设计 游戏 开始:可重置游戏,重新开始 退出:游戏结束 帮助 操作说明: 关于游戏:版本,制作者等信息

操作说明 第二个窗体面板

多个窗体 添加窗体的方法 窗体类型 一般窗体 关于窗体 。。。 窗体显示 窗体名.Show()

关于界面

程序开始启动 开始发生的事情用什么事件? 用什么控件表示布局? 一开始就设有雷,每次雷的布局都不同,如何布雷?

动态自动生成雷区控件 定义控件类型 定义控件属性 位置 宽度 高度 颜色 背景图 字体 文字 外形 定义控件的事件 控件的显示

变量设置的考虑 Dim chks(8, 8) As CheckBox() Dim startx As Integer = 40 Dim starty As Integer = 40 Dim buttonwidth As Integer = 30 Dim buttonheight As Integer = 30

布局 For i = 0 To 8 For j = 0 To 8 chks(i, j) = New CheckBox() AddHandler chks(i, j).MouseUp, AddressOf ChksMouseUp chks(i, j).Text = "" chks(i, j).Checked = False chks(i, j).BackgroundImage = Nothing chks(i, j).BackgroundImageLayout = ImageLayout.Stretch chks(i, j).Enabled = True chks(i, j).BackColor = Color.LightGray chks(i, j).Width = buttonwidth chks(i, j).Height = buttonheight chks(i, j).Top = starty + i * buttonwidth chks(i, j).Left = startx + j * buttonheight Dim f As New Font("黑体", 12, FontStyle.Bold) chks(i, j).Font = f chks(i, j).Appearance = Appearance.Button Me.Controls.Add(chks(i, j)) chks(i, j).Show() chks(i, j).Tag = 0 Next

布雷 一共10个雷 用什么属性来判断是否为雷? 随机布雷 雷的位置随机

Math.Floor函数功能 返回小于或等于指定数字的最大整数。 Math.floor()将一个浮点值下舍入为最接近的整数。Math.floor()执行的操作不同于Math.round(),它总是进行下舍入,而不是上舍入或下舍入到最接近的整数。还中注意Math.floor()将负数舍入为更小的负数,而不是向0进行舍入。 例子     a = Math.floor(1.99);    // Result is 1.0     b = Math.floor(1.01);    // Result is 1.0     c = Math.floor(1.0);     // Result is 1.0     d = Math.floor(-1.01);   // Result is -2.0

布雷代码 Randomize() j = 0 While j <= 9 col =Math.floor(Rnd() * 9) row = Math.floor(Rnd() * 9) If chks(row, col).Tag = 0 Then chks(row, col).Tag = 1 j = j + 1 End If End While

扫雷和标雷-鼠标抬起事件 判断雷所在位置 按右键—标雷 按左键 如果触雷,翻牌,并提示触雷 如果没有触雷,则递归搜索,显示周围雷的总数目

自定义过程—控件鼠标抬起事件 Private Sub ChksMouseUp(ByVal sender As System.Object, ByVal e As Windows.Forms.MouseEventArgs) … End Sub

参考代码 Dim chk As CheckBox = sender Dim row As Integer = (chk.Top - starty) \ buttonwidth Dim col As Integer = (chk.Left - startx) \ buttonheight If e.Button = Windows.Forms.MouseButtons.Left Then chk.Enabled = False chk.Checked = True If chk.Tag = 1 Then chk.BackgroundImage = My.Resources.mine MsgBox("你触雷了!!") Exit Sub Else chk.Text = AutoOpen(row, col) End If If e.Button = Windows.Forms.MouseButtons.Right Then chk.Text = "@"

实现自动打开连续无雷区的功能 递归搜索 自定义Function函数 递归思想 周围8个位置循环逐个搜索,如果没有到达边界则统计周围类的个数 如果雷的个数为0,循环检查该位置是否检查过,如果没有检查过,则打上检查标记,并不能下次再点击,并以该位置为中心,再次逐个搜索其周围的雷数 返回周围雷的个数

递归搜索代码参考 Dim i, j As Integer Dim sum As Integer = 0 Function AutoOpen(ByVal row As Integer, ByVal col As Integer) As Integer Dim i, j As Integer Dim sum As Integer = 0 For i = row - 1 To row + 1 For j = col - 1 To col + 1 If Not (i > 8 Or i < 0 Or j > 8 Or j < 0) Then sum = sum + chks(i, j).Tag End If Next If sum = 0 Then Dim chk As CheckBox = chks(i, j) If chk.Enabled Then chk.Enabled = False chk.Checked = True chk.Text = AutoOpen(i, j) Return sum End Function

关键技术 二维数组 动态生成控件 控件的事件关联 随机函数 自定义过程 递归函数 参数传递 双重循环 While循环 IF选择语句 菜单 多个窗体 关于界面