在考生文件夹下有一个工程文件sjt5.vbp,已给出了所有控件(如图3.141所示)和部分程序。程序运行时,请按以下顺序操作: 1)单击“读入文件”按钮,把考生目录下的文件in5.dat中的内容读入内存并显示在上面的文本框(Text1)中;

admin2017-09-22  26

问题 在考生文件夹下有一个工程文件sjt5.vbp,已给出了所有控件(如图3.141所示)和部分程序。程序运行时,请按以下顺序操作:
    1)单击“读入文件”按钮,把考生目录下的文件in5.dat中的内容读入内存并显示在上面的文本框(Text1)中;
    2)单击“加密”按钮,则可对Text1中的内容进行加密并显示在下面的文本框(Text2)中。
    3)单击“存结果"按钮则把Text2中的内容存到out5.dat文件中。
    加密规则:对于第奇数个字符,若是字母,则把它变为它后面的字符(若为“Z”则变为“A”),不是字母则不变;对于第偶数个字符,若是字母,则把它变为它前面的字符(若为“A”则变为“Z”),不是字母则不变。大小写字母都遵循此规则。例如:
    若原有的字符是:AbbaZOHa-MnnKYzx
    则加密后的字符是:BaczAFGb-NmojXaw
    已经给出“存结果”按钮的Click事件过程和函数isletter,函数isletter(aAsString)判断变量a中是否为一个字母,若是则返回True,否则返回False,可以直接调用。
    请编写“读入文件”按钮和“加密”按钮的Click事件过程,以实现上述功能。(in5.dat文件中只含英文单词和空格,不分段落和行)
    注意:考生不得修改已经存在的程序,必须用“存结果"按钮存储加密结果,否则无成绩。最后,按原文件名把程序存盘。

选项

答案步骤1:打开考生文件夹中的本题工程文件sjt5.vbp,在代码编辑窗口指定位置编写以下代码。参考代码: Private Sub Command1_Click() Open"in5.dat"For Input As 1 Line Input #1,s Close #1 Text1.Text=s End Sub Private Sub Command2_Click() Dim i As Integer,ss As String ss="" For i=1 To Len(s) If isletter(Mid(s,i,1))=True Then If i MOd 2=0 Then If Mid(s,i,1)="a"Then ss=ss & "Z" ElseIf Mid(s,i,1)="A"Then ss=ss & "Z" Else ss=ss & Chr(Asc(Mid(S,i,1))-1) End If Else If Mid(s,i,1)="Z"Then ss=ss & "A" Else If Mid(s,i,1)="z" Then ss=ss & "a" Else s=ss & Chr(Asc(Mid(s,i,1))+1) End If End If Else ss=ss & Mid(s,i,1) End If Next Text2.Text=ss End Sub 步骤2:按键运行程序,先单击“读入文件”按钮,接着单击“加密”按钮,然后单击“存结果”按钮保存结果,最后单击窗体右上角的关闭按钮结束程序。 步骤3:按要求将文件保存至考生文件夹中。

解析 分析题目可知,本题中“读入文件”命令按钮中首先使用For But方式打开文件,然后通过Line Input撑语句将打开文件中的数据读出到变量S中并且赋给文本框。
    在“加密”按钮的单击事件中,利用For循环对字符串S进行遍历,依次取出S中的每一个字符;如果循环变量i的值为偶数,接下来就要判断取出的字符是不是字母,如果是字母则进行Chr(Asc(Mid(s,i,1)).1)的转换,但是要注意如果为字母“A”或者“a”要转换为“Z”或者“z”。同理,如果循环变量的值为奇数,如果取出的字符是字母,则进行Chr(Asc(Mid(s,i,1))+1)的转换,如果为字母“Z”或者“z”要转换为“A”或者“a”。最后将转换得到的字母连接起来即得到结果。
转载请注明原文地址:https://kaotiyun.com/show/NjGp777K
0

最新回复(0)