在考生文件夹下有一个工程文件sjt5.vbp。程序运行时,单击“装入数据”按钮,则从考生文件夹下的in5.txt文件中读入所有城市名称和距离,城市名称按顺序添加到列表框List1中,距离放到数组a中;当选中列表框中的一个城市时,它的距离就在Text1中显示

admin2018-12-20  35

问题 在考生文件夹下有一个工程文件sjt5.vbp。程序运行时,单击“装入数据”按钮,则从考生文件夹下的in5.txt文件中读入所有城市名称和距离,城市名称按顺序添加到列表框List1中,距离放到数组a中;当选中列表框中的一个城市时,它的距离就在Text1中显示,如图所示;此时,单击“计算运费”按钮,则计算到该城市的每吨运费(结果取整,不四舍五入),并在Text2中显示。
    每吨运费的计算方法是:距离×折扣×单价。
    其中。单价为0.3。
    折扣为距离<500     折扣为1
    500≤距离<1000     折扣为0.98
    1000~<距离<1500    折扣为0.95
    1500≤距离<2000    折扣为O.92
    2000≤距离    折扣为0.9
    单击“保存”按钮,则把距离和每吨运费存到文件out5.txt冲。
    已经给出了所有控件和部分程序.要求:
    ①去掉程序中的注释符,把程序中的?改为正确的内容。
    ②编写“计算运费”按钮的Click事件过程。
    ③编写列表框的Click事件过程。
    注意:不得修改已经存在的程序;在退出程序之前,必须至少计算一次运费,且必须使用“保存”按钮存储计算结果,否则无成绩。最后。程序按原文件名存盘。

选项

答案步骤1:打开本题工程文件。 步骤2:打开代码编辑窗口,去掉程序中的注释符“’”,将问号改为正确的内容,并编写相应的代码。 Dim a(10)As Integer,n As Integer Private Sub Commandl Click() Open App.Path&"\in5.txt"For Input As:I}1 While Not EOF(1) n=n+1’下标循环加1 Input #1,ch $,a(n)’将文件依次读入ch,a(n)中 List1.AddItem黼将城市名添加到List1中 Wend Close#1 End Sub Private Sub Command2 Click() ’需要考生编写的内容 b=Val(Text1) If b>=0 And b<500 Then’判断b的范围 m=0.3*b ElseIf b>=500 And b<1000 Then m=0.3*b*0.98 E1seIf b>=1000 And b<1500 Then m=0.3*b*0.95 E1seIf b>=1500 And b<2000 Then m=0.3*b*0.92 E1seIf b>=2000 Then m=0.3*b*0.9 End If Text2=int(m) End Sub Private Sub Listl Click() ’需要考生编写的内容 Text1=a(List1.ListIndex+1) ’通过List1.ListIndex+1来确定所选城市对应的距离 End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析 单击“装入数据”按钮,从考生文件夹下的in5.txt文件中读入所有城市名称和距离,通过Listl的Addlt·em方法把城市名称ch按顺序添加到列表框List1中,将距离放到数组a中,在读入数据时,同时注意While语句,其中数组下标n的下限为1,即数组中第1个元素为a(1);Command2一Click事件过程实现单选列表框中的一个城市时,使它的距离显示在Textl中,a(List1.Listlndex+1)表示的是所选城市对应的距离,通过List1的ListIndex属性确定数组的F标,但是ListIndex属性是从0开始的,因此要加1才能与之对应。通过Val()函数使Text1中的字符转化为数值型,运用表达式,计算结果。因为题目要求“结果取整,不四舍五人”,所以是截尾取整,可以用int()函数实现。
转载请注明原文地址:https://kaotiyun.com/show/S5Fp777K
0

最新回复(0)