国开学习网电大VisualBasic程序设计形考任务二【答案】

作者:奥鹏周老师 分类: 其他院校 发布时间: 2020-12-18 01:04
【答案联系我们QQ:3326650399 微信:cs80188】www.188open.com
请同学挑选课程【第3章】-【实战演练】“试验3 冒泡排序程序”,在VB集成开发环境中仔细完结试验。
试验完结后,将调试好的程序保留在以“名字+试验称号”命名的文件夹下,并将该文件夹紧缩成.rar或许.zip格局进行提交。 本次试验满分15分,提交后需求教导老师阅览打分。
试验意图
1了解冒泡排序算法。2把握循环、分支结构的运用方法。3把握断点设置、监督盯梢等调试方法,深化剖析该程序的运转过程、值的改变状况。
试验内容
本试验开发一个“冒泡排序”程序,并经过这个程序,稳固一下第2章所学的程序调试方法。这个程序的运转逻辑是:首要用户在Text1中输入一个整数,单击“增加到初始序列中”按钮后将该整数增加到“初始序列”List1中,如此屡次后,再单击“排序”按钮,在List2中显现排序成果,咱们希望的运转成果如图3.10所示。图3.10 希望的程序运转成果

试验过程
1界面设计(1)首要请同学们参照图3.11完结排序程序的界面设计。图3.11 排序程序的界面设计2编写事情代码“增加到初始序列中”按钮的Click事情:Private Sub Command1_Click()List1.AddItem Text.TextEnd Sub“排序”按钮的Click事情;Private Sub Command2_Click()Dim i, j As Integer\'界说数组,以List1的项目个数为数组维数Dim strList(List1.ListCount) As Integer\'界说中心暂时变量,用于数据交流Dim strTmp As Integer\'将List1中的项目导入到strList数组中For i = 0 To List1.ListCountstrList(i) = List1.List(i)Next i\'按“冒泡”算法完结排序工作For i = 0 To UBound(strList)For j = i + 1 To UBound(strList)If strList(i) > strList(j) ThenstrTmp = strList(i)strList(i) = strList(j)strList(j) = strTmpEnd IfNext jNext i\'将排序成果输出到List2中For i = 0 To UBound(strList)List2.AddItem strList(i)Next iEnd Sub3运转程序并调试程序语法错误(1)运转程序,在Text1文本框中输入一个整数,比方1,然后单击“增加到初始序列中”按钮,此刻会呈现如图3.12所示的错误提示。[i图3.12 实时错误(2)单击“调试”按钮,进入中止形式,VB编译器将自动标识出引发错误的句子行,如图3.13所示窗体。图3.13 自动定位引发错误的句子行(3)剖析错误缘由,很简单发现该行句子的正确写法大概是:List1.AddItem Text1.Text(4)修正错误后,按F5键继续履行程序,将呈现如图3.14所示界面。图3.14 排序程序运转界面(5)顺次输入整数序列21、9、8、6后,将呈现如图3.15所示界面。图3.15 输入初始序列后的界面(6)单击“排序”按钮后,又呈现如图3.16所示的运转错误。图3.16 编译错误(7)单击“断定”按钮后,再次进入中止形式,编译器以加剧显现的方式指出了引发错误的方位,如图3.17所示。图3.17 以加剧显现的方式定位错误(8)剖析如图3.16所示的错误提示“要求常数表达式”后,发现引证错误的缘由是不能用变量作为数组的下标,即下列数组声明句子不契合VB语法约好:Dim strList(List1.ListCount) As Integer为此咱们作如下挑选,即选用动态数组声明的方法。Dim strList() As IntegerReDim strList(List1.ListCount) As Integer(9)挑选完结后,按F5键继续履行,又会呈现如图3.18所示的错误提示。图3.18 类型不匹配错误提示(10)单击“调试”按钮后,错误定位如图3.19所示。图3.19 类型不匹配错误定位(11)剖析错误缘由发现,咱们将数组strList()声明为Integer数据类型,而List1.List()表明的是字符型数据,VB无法进行自动类型变换,因而咱们只能经过Val函数进行变换:strList(i) = Val(List1.List(i))(12)按F5键继续,程序成功运转,呈现如图3.20所示界面。这阐明语法错误已根本扫除了。可是调查运转成果,发现“排序成果”序列中多出了一个数值0。这种成果并不是咱们希望的。图3.20 有疑问的运转成果(13)封闭程序,从头运转,依然呈现图3.20的疑问,这阐明程序中存在逻辑疑问,需求进一步骤试。4设置断点,剖析逻辑错误逻辑错误是最难定位的,关于那些逻辑略微杂乱的程序,常常需求花费很多的时刻和精力查找剖析。一般要用到设置断点、单步履行和当即调试窗等东西或技术。(1)单击如图3.21所示方位,设置断点。图3.21 设置断点(2)按F5键运转程序并输入一组整数,比方5、4、3、2。单击“排序”按钮后,程序将进入中止形式,呈现如图3.22所示界面。图3.22 程序遇到断点(3)在VB集成环境的“当即”窗口中,运用“?”打印strList数组的上界和有关的值,如图3.23所示。当然也能够运用Print、Debug.Print指令,它们等效于“?”。[图3.23 在“当即”窗中调查变量的值(4)细心剖析不难发现,List1.ListCount的最大值是4,阐明数字序列中共有4个数,即5、4、3、2。可是List1.List()的下标是从0开端的,下标最大值大概为3,即:List1.ListCount – 1为此,咱们需求挑选strList()数组的上界和循环次数。\'特性数组声明ReDim strList(List1.ListCount - 1) As Integer\'修正循环次数For i = 0 To List1.ListCount - 1strList(i) = Val(List1.List(i))Next i(5)修正后的完好代码及运转成果如图3.24、图3.25[并排这两个图]所示。图3.24 修正后的代码图3.25 终究的运转成果
5程序的进一步完善这个程序通过调试可以正常运转了,但仍是存在一些缺乏,比方咱们能够在Text1中输入非整数、字符和汉字等。别的,当从头单击“排序”按钮后,数字序列会被重复增加到List2中。上述状况下,应用程序并不会报错,但这与咱们的设计要求是不相符的,因而需求进一步完善程序功用,首要有以下两种办法,这些常识将在后续章节介绍。请同学们先提早考虑一下。(1)经过Keypress事情操控Text1控件的输入,使它只能接纳数字。(2)在“排序”按钮的Click事情中参加List2.Clear句子。

作业答案 联系QQ:3326650399 微信:cs80188