《面向对象程序设计(A)》山东大学20春测试答案

[复制链接]
发表于 2020-2-20 09:49:50 | 显示全部楼层 |阅读模式
面向对象程序设计模拟题 一、简答题:
1. 在用Visual Basic开发应用程序时,一般分为几步进行?每一步需要完成什么操作?
2.按作用范围划分,变量分为几类?在什么位置以及如何声明各类变量?
参考答案:
在用Visual Basic开发应用程序时,一般分为几步进行?每一步需要完成什么操作?
创建工程,设计界面。
设置属性。设置窗体或控件等对象的属性。
编写代码。在代码窗口编写代码。
运行程序。按F5键和按工具栏上的执行按钮  就可执行一个工程。
保存工程。
编译程序,生成 .EXE 文件。2.按作用范围划分,变量分为几类?在什么位置以及如何声明各类变量?
        变量的作用范围决定变量只在那部分模块中起作用。按作用范围划分,变量分为局部变量和全局变量。在一个过程中声明的局部变量只在这个过程中才能访问。而在整个应用程序的所有过程中都需要使用的变量,则应声明为全局变量。
过程内部使用的变量只在声明它们的过程中才能识别。这样的变量为局部变量。在过程的开始部分,用Dim或者Static关键字声明它们。
在模块顶部的声明段使用Private关键字声明模块级变量。在模块级,Private 和Dim之间没有什么区别,但Private更好些。因为很容易把它和Public区别开来,使代码更容易理解。
用Public关键字声明模块级的变量为公用变量,公用变量中的值可用于应用程序中的所有过程。应在模块顶部的声明段来声明公用(全局)变量。注意在过程中不能声明公用变量,只能在模块的声明段中声明公用变量。
二、填空题:
窗体是设计工程的主界面。用户在这个窗体上           。窗体有自己的属性、事件和方法。当               运行Load 事件。当              运行Unload事件。每当              就会发生Click事件。每当               就会发生DblClick事件。
计时器控件是一个用来进行                     的控件,通常用计时器控件来设计与         有关的应用程序。在工具箱中它是一个标有           图案的工具按钮。
标签,是提供在窗体的相对位置上           的区域,但该区域不能             。因而,常用来标识没有                    属性的控件,例如给文本框控件(TextBox)加               。标签控件也常用来                  。
InputBox函数用来在对话框中显示           ,等待用户输入                    或                  ,并返回包含文本框内容的                    。
VB里有三种坐标系:                           、                         以及                         ,这三种坐标系都是以其              为坐标原点。
对话框不是模式的就是无模式的。对于模式对话框,只有           该对话框以后才能继续操作应用程序的                  。无模式对话框                  在对话框与其他窗体之间转移焦点而                           。
按下一键时将生成KeyDown和KeyPress事件,而松开此键后生成KeyUp事件。当用户按下一个KeyPress不能检测的键时将触发                 事件,而松开此键后时生成                     事件。对于键盘事件,只有当窗体为活动窗体且其上所有控件              ,窗体才获得焦点。如果将窗体上的KeyPreview属性设置为       ,则对每个控件在控件识别其所有键盘事件之前,窗体就会接受这些                。三、编程题:
1. 输入一个正整数,利用For循环来判断是否为素数。
2.设计一个屏幕保护程序,屏幕上显示当前系统时间。
3.在PictureBox控件内,用Line方法和Pset方法绘制正弦和余弦曲线。
解:1. 
Option Explicit
Private Sub Cmd判断_Click()
    Dim i, j, n As Long
    n = Val(Text1.Text)
    j = CLng(Sqr(n))
    For i = 2 To j
       If n Mod i = 0 Then Exit For
    Next i
    If i > j Then
      Label2.Caption = Text1.Text & "为素数"
    Else
       Label2.Caption = Text1.Text & "为非素数"
    End If
End Sub
Private Sub Cmd退出_Click()
    Unload Me
End Sub2. 
(1)新建“标准EXE”工程,在出现的界面上一个标签、和一个时钟(Timer)控件。窗体的
WindowState属性设置为“2-Maximized”, 运行时窗口处于最大化状态。设置标签控件
的字号为“初号”,设置时钟控件的间隔为“100”。
(2)设置窗体和控件属性。
(3)编写代码。
Option Explicit
Dim x, y As Integer
Private Sub Form_Load()
    Label1.Caption = Time
    x = 1: y = -1
End Sub
Private Sub Timer1_Timer()
    If Label1.Left < 0 Or Label1.Left + Label1.Width > Form1.ScaleWidth Then x = -x
    If Label1.Top < 0 Or Label1.Top + Label1.Height > Form1.ScaleHeight Then y = -y
    Label1.Left = Label1.Left + 100 * x
    Label1.Top = Label1.Top + 200 * y
    Label1.Caption = Time
End Sub
3. 
Option Explicit
Private Sub Cmd退出_Click()
    End
End Sub
Private Sub Cmd余弦_Click()
    Dim PicH As Integer, PicW As Integer
    Dim j, x As Integer
    PicH = Picture1.ScaleHeight
    PicW = Picture1.ScaleWidth
    Const pi = 3.1415926
    Picture1.Cls
    Picture1.Line (0, PicH / 2)-(PicW, PicH / 2), RGB(0, 0, 255) '画一条直线作为x轴。
    For x = 0 To PicW
        Rem 循环连续画点,得到正弦曲线。
        Picture1.PSet (x, PicH / 2 - 0.4 * PicH * Cos(4 * x * pi / PicH)), RGB(255, 0, 0)
        For j = 0 To 4000: Next j  '延时
    Next x
End Sub
Private Sub Cmd正弦_Click()
    Dim PicH As Integer, PicW As Integer
    Dim j, x As Integer
    PicH = Picture1.ScaleHeight
    PicW = Picture1.ScaleWidth
    Const pi = 3.1415926
    Picture1.Cls
    Picture1.Line (0, PicH / 2)-(PicW, PicH / 2), RGB(0, 0, 255) '画一条直线作为x轴。
    For x = 0 To PicW
        Rem 循环连续画点,得到正弦曲线。
        Picture1.PSet (x, PicH / 2 - 0.4 * PicH * Sin(4 * x * pi / PicH)), RGB(255, 0, 0)
        For j = 0 To 4000: Next j  '延时
    Next x
End Sub无忧答案网 www.ap5u.com

快速回复 返回顶部 返回列表