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

admin2010-09-02  17

问题 在考生文件夹下有一个工程文件sjt5.vbp。程序运行时,单击“装入数据”按钮,则从考生目录下的in5.txt文件中读入所有城市名称和距离,城市名称按顺序添加到列表框Listl中,距离放到数组a中:当选中列表框中的一个城市:时,它的距离就显示在Textl中,如图1-175所示;此时,单击“计算运费”按钮,则计算到该城市的每吨运费(结果取整,不四舍五入),并显示在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:打开考生文件夹下的本题工程文件sjtS.vbp。 步骤2:在代码编辑窗口,去掉程序中的注释符“’”,将问号“?”改为正确的内容。 参考代码: n=n+1 Listl.AddItem ch$ 步骤3:编写“计算运费”按钮和列表框的单击事件过程。 参考代码: Private Sub Command2_Click() P=0.3 d=Int(Textl.Text/500) Se}lect Case d Case 0 discount=1 Case 1 discount=0.98 Case 2 discount=0.95 Case 3 diScount=0.92 Case Else diScount=0.9 End Select Text2=Int(discount*P*Text1) End Sub Private Sub Listl_Click() Textl=a(Listl.ListIndex+1) End Sub 步骤4:运行程序,单击列表框中的某个列表项,并单击“计算运费”按钮获得一个结果,然后单击“保存”按钮保存计算结果。 步骤5:按要求将文件保存至考生文件夹中。

解析
  根据题意,需要从in5.txt文件中读取数据至列表框和全局数组a中,应该首先使用Input方式打开文件,然后通过循环利用Input语句来完成操作。由于文件中数据的长度未知,故此使用全局变量n来记录数据的个数,在每一次循环中,每读出一组数据就令n自增1,然后将每组数据的第一部分放入变量ch,后一部分放入a(n),接下来调用列表框的Addltem方法把变量ch的值加入列表框。
    在列表框的单击事件过程中,需要给Textl赋值,由于列表框中的列表项和数组a中的数据有着一一对应的关系,而a的下标由1开始,列表框中列表项的索引号从0开始,因此应该是Textl=a(Listl.Lisflndex+1)。
    在“计算运费”按钮的单击事件中,只需要使用SelectCase语句进行判断距离在哪个区间内,就按照何种公式来计算折扣。
转载请注明原文地址:https://jikaoti.com/ti/WNg0FFFM
0

最新回复(0)