应用题 2. 在考生文件夹下有一个工程文件sjt4.vbp,窗体如图所示。其功能是单击“输入数据”按钮,则可输入一个整数n(要求:8≤n≤12);单击“计算”按钮,则计算1!+2!+3!…+n!的值,并将计算结果显示在文本框中;单击“存盘”按钮,则把文本框中的结果保存到考生文件夹下的out4.dat文件中。
    文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容,并编写“计算”按钮的Click事件过程。
    注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用“存盘”按钮存储计算结果,否则无成绩。最后将修改后的文件按原文件名存盘。
   
【正确答案】【操作步骤】
   步骤1:打开本题工程文件。
   步骤2:打开代码编辑窗口,去掉程序中的注释符“'”,将问号改为正确的内容,并编写相应代码。
   参考答案(字体加粗部分是需考生填入的内容)
   Dim n As Integer
   Private Sub Command1_Click()
   n=Val(InputBox("请输入整数(8-12)","输入"))
   If n>12 Or n<8 Then '确定输入值最大为12,最小为8,否则提示错误
   MsgBox("数据错误,请重新输入")
   command2.Enabled=False
   Command3.Enabled=False '两按钮不可用
   Else
   Command2.Enabled=True
   Command3.Enabled=True '两按钮可用
   End If
   End Sub
   Private Sub Command2_Click()
   Dim s As Long, k As Integer
   '考生应编写的程序
   s=0
   For k=1 To n
   s=s+f(k)
   Next k
   Text1=s
   '编程结束
   End Sub
   Function f(n As Integer)As Long
   s=1 '初始化s为1
   For k=2 To n '循环求n的阶乘
   s=s * k
   Next
   f=s '返回阶乘结果
   End Function
   Private Sub Command3 Click()
   Open App.Path & "\out4.dat" For Output As #1
   Print #1,n,Text1
   Close #1
   End Sub
   步骤3:调试并运行程序,关闭程序后按题目要求存盘,如图所示。
   
【答案解析】[考点] 本题考点有:Val()函数、InputBox()函数、MsgBox()函数、命令按钮的Enabled属性以及文件操作。
在Command1_Click事件过程中通过Val()函数和InputBox()函数取得输入对话框中的数值,如果输入的数值不在范围内,那么弹出对话框MsgBox("数据错误,请重新输入"),并使命令按钮Command2和Comnmnd3不可用,Function f()函数则用来实现阶乘的计算,Command2_Click事件过程中,运用循环语句的累加实现表达式求和运算,Command3_Click事件过程通过文件操作实现数据的存盘处理。