VB课程设计 整数按由小到大排序.docx

上传人:b****6 文档编号:6230291 上传时间:2023-01-04 格式:DOCX 页数:11 大小:254.46KB
下载 相关 举报
VB课程设计 整数按由小到大排序.docx_第1页
第1页 / 共11页
VB课程设计 整数按由小到大排序.docx_第2页
第2页 / 共11页
VB课程设计 整数按由小到大排序.docx_第3页
第3页 / 共11页
VB课程设计 整数按由小到大排序.docx_第4页
第4页 / 共11页
VB课程设计 整数按由小到大排序.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

VB课程设计 整数按由小到大排序.docx

《VB课程设计 整数按由小到大排序.docx》由会员分享,可在线阅读,更多相关《VB课程设计 整数按由小到大排序.docx(11页珍藏版)》请在冰豆网上搜索。

VB课程设计 整数按由小到大排序.docx

VB课程设计整数按由小到大排序

课程设计任务书

分院(系)

专业

姓名

学号

设计题目

基于VisualBasic.Net2005的界面程序开发设计(试验4)

1.掌握VisualBasic.Net应用程序开发的基本方法

2.完成基本实验1-8

3.掌握绘制图形,文本输出,图像处理的方法。

4.基于VisualBasic.Net2005的界面程序开发设计。

第1次资料查阅,VB.NET编程查阅和学习

第2次VB.NET编程环境熟悉

第3、4次完成基本试验1-8

第5次完成基于VisualBasic.Net2005的界面程序开发设计

第6次程序调试及验收

指导教师(签字):

 

年月日

分院院长(签字):

 

年月日

 

目录

1目的和要求……………………………1

2内容和步骤………………………….1

3实现过程…………………………….1

4运行结果…………………………….4

5实习体会…………………………….6

6参考文献…………………………….7

附录A

 

1目的和要求

(1)熟练掌握代码编辑窗口操作

(2)掌握Sub过程的定义

(3)熟练掌握Sub过程的参数传递

掌握Sub过程变量的有效范围

 

2内容和步骤

在VB.NET中,过程分为事件过程和通用过程。

事件过程在前面已经练习过,下面主要联系通用过程。

过程通用是的参数传递分为按地址和按值传递两种。

通用过程的有效范围可分为Public和Private,存储类型可以使用局部变量,在本过程结束时就释放。

也可以用Static定义过程中所有的变量为静态变量,在调用结束后仍保留其值。

 

3实现过程

一.使用“代码编辑器”窗口

(1)选择过程的方法

单击对象列表框选择对象,然后单击过程列表框选择过程名

按Ctril+Alt+J键打开对象浏览器,显示项目中所有的对象和过程,在对象浏览器中选择窗体中的显示的过程名,双击过程名。

(2)查看过程代码

在“代码编辑器”窗口可以一次只查看一个过程或同时查看模块中的所有过程。

这些过程彼此之间用线隔开。

利用“代码编辑器”窗口左边的“+”“—”号图标,可展开或折叠过程代码。

(3)自动完成编码

“代码编辑器”能自动列举适当的选择,用于填充语句、属性和参数,使编码更加方便。

“自动列出成员特性”用于显示控件的下拉属性表。

当用户在代码中输入一控件名并输入“。

”时,就会显示控件的下拉属性表。

“自动快速信息”用于显示语句和函数的语法,当输入合法的VB.NET语句或函数名之后,语法立即显示在当前行的下面,并用黑体字显示它的第一个参数。

在输入第一个参数值之后,第二个参数又以黑体字出现。

二.用选择法对数组中的整数按由小到大排序

选择排序算法:

先将数组a中的最小数与第一个元素a(0)比较,当a(0)大时就对换:

再将数组中剩余数中最小数与第二个元素a

(1)比较,当a

(1)大时就对换:

依次类推。

(1)新建一个“VisualBasic“项目

将项目命名为“Exe0401“,出现一个新的Form1窗口。

(2)界面设计

窗体包括2个文本框、2个按钮和3个标签。

从文本框txtN输入排序数组中的元素个数,在标签labResult中显示排序前的数组元素,在文本框txtNumber中显示排序后的数组元素,由于元素个数未知,文本框含有垂直滚动条,并且不能修改,将“ReadOnly“设为Ture。

窗体中控件属性如表T4.1所示,界面安排如图T4.1所示。

对象

对象名

属性名

属性值

Form

frmSort

Text

排序

Button

CmdSort

Text

排序

TextBox

CmdEnd

Text

结束

TextBox

txtN

Text

TextBox

txtNumber

Text

ReadOnly

True

MultiLine

True

Label

labN

Text

需要排序元素的个数:

Label

labNumber

Text

排列前数据:

Label

labResult

Text

排列结果:

(3)添加代码

声明N和a为模块级变量,a为动态数组:

OptionExplicitOn

DimNAsInteger

Dima()AsInteger

在窗体模块代码中添加Sort过程是实现排序的通用过程。

单击“排序“按钮,调用Sort过程并将结果显示在文本框中:

PrivateSubSort(ByValb()AsInteger)

DimiAsInteger,jAsInteger

DimminAsInteger,tempAsInteger

Fori=0ToN-2

min=i

Forj=i+1ToN-1

Ifb(min)>b(j)Thenmin=j

Nextj

temp=b(i)

b(i)=b(min)

b(min)=temp

Nexti

EndSub

输入需要排序元素的个数的文本框内容改变时,判断输入数据有效性:

PrivateSubCmdSort_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCmdSort.Click

DimiAsInteger

CallSort(a)

Fori=0ToN-1

txtNumber.Text=txtNumber.Text&a(i)&""

Nexti

EndSub

PrivateSubtxtN_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlestxtN.TextChanged

DimiAsInteger

Randomize()

IfVal(txtN.Text)>0AndIsNumeric(Val(txtN.Text))Then

N=Val(txtN.Text)

ReDima(N)

Fori=0ToN-1

a(i)=Int(100*Rnd())

labNumber.Text=labNumber.Text&a(i)&""

Nexti

Else

MsgBox("数据个数出错!

",,"数据个数")

EndIf

EndSub

单击“结束“按钮的程序代码如下:

PrivateSubCmdEnd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCmdEnd.Click

End

EndSub

(4)保存项目

单击“文件“菜单,选择”保存“命令,将项目保存为”Exe0401.vbproj“.

三.计算三角形面积

在按钮click实践过程中调用计算三角形面积的子过程area,并在窗体中显示出结果。

(1)新建一个“visualbasic项目”

将项目命名为“Exe0402”,出现一个新的Formal窗口。

(2)界面设计

窗体由2个分组框、4个标签、4个文本框和2个按钮组成。

分组框输入和显示结果的控件分成两组,文本框txtA、txtB和txtC分别输入三角形的三边长,文本框txtarea显示三角形的面积。

按钮cmdStart和cmdEnd分别用于“计算”和“结束”程序。

界面设计如图T4-3所示。

(3)编写代码

在模块中添加代码。

为了能够调用VB.NET数学函数,在“代码编辑器”窗口的最上方,输入如下代码:

OptionExplicitOn

ImportsSystem.Math

计算面积的过程为通用过程。

形参x、y、z是按值传递的,形参x是按地址传递的。

因此在被调用过程area中改变了s的值。

在主调过程cmdStart-Click中的s也相应的改变。

PrivateSubGroupBox1_Enter(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles三角形面积.Enter

EndSub

PrivateSubarea(ByValxAsSingle,ByValyAsSingle,ByValzAsSingle,ByRefsAsSingle)

DimpAsSingle

p=(x+y+z)/2

s=Sqrt(p*(p-x)*(p-y)*(p-z))

EndSub

单击“计算”按钮。

cmdStart-Click中的s变量名和通用过程area中相同,都是局部变量。

但又不同的有效范围:

PrivateSubcmdStart_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlescmdStart.Click

DimaAsSingle,bAsSingle,cAsSingle

DimsAsSingle

a=Val(txtA.Text)

b=Val(txtB.Text)

c=Val(txtC.Text)

Callarea(a,b,c,s)

txtArea.Text=Int(s*100)/100

EndSub

单击”结束”按钮的程序代码如下:

PrivateSubcmdEnd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlescmdEnd.Click

End

EndSub

(4)保存项目

单击“文件”菜单。

选择“保存”命令。

将项目保存为“Exe402.vbproj”。

 

4运行结果

实验一:

运行单击“调试“菜单,选择”启动调试“命令,或单击工具栏”启动调试“按钮,单击窗体中的”排序“按钮,运行结果如图T4.2所示。

实验二:

单击“调试”菜单。

选择“启动调试”命令,或单击工具栏“启动调试”按钮,单击窗体中的“计算”按钮,运行结果如图T4.4所示。

5学习体会

开始时感觉VB.NET2005牵涉的概念比较复杂,规则繁多,使用灵活,容易出错,是门困难的不好理解的课程,通过这次课程设计机会对VB.NET2005有了更进一步的了解,加深了对VB.NET2005编程理念的领悟,使我对VB由害怕到兴趣盎然。

致使我有了一种想当一名VB程序设计员的想法。

作为一名初学者,作这样一份课程设计非常有意义,它使我意识到了自己的不足,让我在以后的学习中有的放矢。

总之,这次客收获颇多,希望下次还能有这样的机会。

6参考文献

《VisualBasic.Net实用教程》-------郑阿奇主编

电子工业出版社2008.1

7附录

实验用选择法对数组中的整数按由小到大排序代码:

OptionExplicitOn

PublicClassfrmsort

PrivateSubfrmsort_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load

EndSub

DimNAsInteger

Dima()AsInteger

PrivateSubSort(ByValb()AsInteger)

DimiAsInteger,jAsInteger

DimminAsInteger,tempAsInteger

Fori=0ToN-2

min=i

Forj=i+1ToN-1

Ifb(min)>b(j)Thenmin=j

Nextj

temp=b(i)

b(i)=b(min)

b(min)=temp

Nexti

EndSub

PrivateSubCmdSort_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCmdSort.Click

DimiAsInteger

CallSort(a)

Fori=0ToN-1

txtNumber.Text=txtNumber.Text&a(i)&""

Nexti

EndSub

PrivateSubtxtN_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlestxtN.TextChanged

DimiAsInteger

Randomize()

IfVal(txtN.Text)>0AndIsNumeric(Val(txtN.Text))Then

N=Val(txtN.Text)

ReDima(N)

Fori=0ToN-1

a(i)=Int(100*Rnd())

labNumber.Text=labNumber.Text&a(i)&""

Nexti

Else

MsgBox("数据个数出错!

",,"数据个数")

EndIf

EndSub

PrivateSubCmdEnd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCmdEnd.Click

End

EndSub

PrivateSublabNumber_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandleslabNumber.Click

EndSub

EndClass

 

实验计算三角形面积代码:

OptionExplicitOn

ImportsSystem.Math

PublicClassForm1

PrivateSubGroupBox1_Enter(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles三角形面积.Enter

EndSub

PrivateSubarea(ByValxAsSingle,ByValyAsSingle,ByValzAsSingle,ByRefsAsSingle)

DimpAsSingle

p=(x+y+z)/2

s=Sqrt(p*(p-x)*(p-y)*(p-z))

EndSub

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load

EndSub

PrivateSubcmdStart_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlescmdStart.Click

DimaAsSingle,bAsSingle,cAsSingle

DimsAsSingle

a=Val(txtA.Text)

b=Val(txtB.Text)

c=Val(txtC.Text)

Callarea(a,b,c,s)

txtArea.Text=Int(s*100)/100

EndSub

PrivateSubcmdEnd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlescmdEnd.Click

End

EndSub

EndClass

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1