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

admin2018-06-29  20

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

选项

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

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

最新回复(0)