在考生文件夹下有一个工程文件sjf5.vbp,其功能是: ①单击“读数据”按钮,则将考生文件夹下in5.dat文件中的100个正整数读入到数组a中,同时在Textl文本框中显示。 ②单击“分组”按钮,则将数组a中所有3的倍数的元素存入数组b中,并对

admin2020-07-22  52

问题 在考生文件夹下有一个工程文件sjf5.vbp,其功能是:
  ①单击“读数据”按钮,则将考生文件夹下in5.dat文件中的100个正整数读入到数组a中,同时在Textl文本框中显示。
  ②单击“分组”按钮,则将数组a中所有3的倍数的元素存入数组b中,并对数组b中的元素按升序排序后显示在文本框Text2中。在给出的窗体文件中已经有了全部控件(如图所示),但程序不完整。 要求:编写适当的程序部分使其实现上述功能。
   注意:考生不得修改窗体文件中已经存在的控件和程序,在结果程序运行之前,必须先执行“分组”操作,然后再用窗体右上角的关闭按钮结束程序,否则将没有成绩。最后,程序按原文件名进行存盘。

选项

答案单击“读数据”按钮,运用文件操作把考生文件夹下in5.dat文件中的10个正数读入数组a中,同时显示在Textl文本框中;并运用Space函数使数值之间空一个格,在Command2 Click事件过程中,判断Len(Textl.Text)是否为0,如果为0,弹出MsgBox对话框“请执行‘读数据’功能!”,然后进行分组排序处理,首先通过循环判断数组a 中所有3的倍数的元素,并把该元素存入数组b中,运用冒泡排序对数组b中的元素从小到大排序后显示在文本框Text2中。 步骤1:打开本题工程文件。 步骤2:分析并编写程序代码。 程序提供代码 Option Base 1 Dim a(100)AsInteger,num As Integer Private Sub Commandl_Click() Dim k As Integer Open App.Path&“\in5.dat”For Input As#l For k=l To 100 Input#l,a(k) Textl=Textl+Str(a(k))+Space(1) Next k Close#l End Sub Pri rate Sub Command2_Click() Dim b(100)As Integer num=0 If Len(Textl.Text)=0 Then MsgBox“请先执行‘读数据’功能!” Else 考生编写(功能:生成b数组,且按从小到大顺序排序) ’注意:请务必将数组b的元素个数存入变量num中 以下程序段将已排序的b数组显示在Text2中 Fori=l To hum Text2.Text=Text2.Text+Str(b(i))+Space(2) Next i End lf End Sub Private Sub Form_Unload(Cancel As Integer) Open App.Path&“\out5.dat”For Output As#1 Print#1.Text2.Text Close#l End Sub 程序结束 n=0 For k=1 To 100 If a(k)Mod 3=0 Then num=num+1 b(Bum)=a(k) End If Next k For i=1 To num f=True For j=l To num-l Ifb(j)>b(j+1)Then t=b(j) b(j)=b(j+1) b(j+1)=t f=False End If Nextj If f Then Exit For End If Next i 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析
转载请注明原文地址:https://kaotiyun.com/show/2fHp777K
0

最新回复(0)