已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一部分题目一:编写一程序找出并显示19999之间的全部同构数。所谓同构数是指这样的整数,它恰好出现在其平方数的右边:如 1,25等。1. 解题分析、方法:题目要求求同构数,就是求一个整数,其平方所得到的整数的右边包含这个数。我们可以以这样一个解题思路去分析它:因为题目只要求求出1-9999中的同构数,我们可以先假设一个数n,先求出他的平方令其为e,接着我们就去看e的右边是否等于n,先看它的个位,就是除以10之后的余数a,看a是不是等于n;不行,再检查它右边两位,除以100所得的余数b,接着再检测右边3位和右边4位数。如果其中有一个余数等于n,那么就符合条件,为同构数,否则不是。其中对1到9999分别进行检测,采用for循环语句。2. 源程序:Private Sub Command1_Click()Dim n, a, b, c, d As IntegerDim e As LongFor n = 1 To 9999e = n 2a = e Mod 10b = e Mod 100c = e Mod 1000d = e Mod 10000If a = n Or b = n Or c = n Or d = n ThenText1.Text = Text1.Text & Str(n)End IfNext nEnd Sub3. 运行结果:题目二:统计文本框中英文单词的个数,设计界面参考如下:1. 解题分析、方法:统计一段文字的单词个数,我认为其中关键点是对字符的判断,就是判断字符是不是属于字母,如果前一个字符属于字符,而后面一个字符不是字符,那么它就是一个单词。根据这个思路,首先先统计段落的总字符数,然后再运用for逐个循环判断每个字符与其后一个字符,如果满足前一个字符属于字符,而后面一个字符不是字符,那么它就是一个单词,单词数就加一,知道判断完所有的字符,总的单词数也就出来了。2. 源程序:Private Sub Command1_Click()N = 0m1 = text1.TextFor i = 1 To Len(m1)k1 = UCase(Mid(m1, i, 1)k2 = UCase(Mid(m1, i + 1, 1)If (A = k1 And k2 = Z) And (k2 Z) ThenN = N + 1End IfNext iText2.Text = Str(N)End Sub3. 运行结果:题目三:设计一个进度条,用来指示程序结束的时间进度,界面如下:1. 解题分析、方法: 要建立一个进度条,首先先添加进度条这个控件,然后将开始的progressbar中的 value值设为0,计时器每秒计时一次,每过一秒progressbar中value值加一(value的最大值为100)。用if语句实现上面的功能。2. 源程序:Private Sub Form_Load()ProgressBar1.Value = 0Timer1.Interval = 1000Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()If ProgressBar1.Value 100 ThenProgressBar1.Value = ProgressBar1.Value + 10ElseEndEnd IfEnd Sub题目四:设计如图所示界面:各按钮功能如下,请给出以下四个按钮的事件过程代码。1. 解题分析、方法: 根据题目要求,有四个命令,除了执行本身任务要求外,每一个命令都得考虑到一个共同点,当书名未选定时,按这些命令,得跳出“未选中课本”。同时对于上移得考虑是否为最上面一本,下移得考虑是否为最下面一本,下榜得考虑是否有书,上榜还得考虑是否已输入书名。当输入书名后,光标要移回输入书名那个text中,当有点击某本书时,显示名次时。考虑到这些情况后,在根据一般思路便可以编写出比较完善的程序。2. 源程序:Private Sub Command1_Click()If List1.ListCount = 0 Then MsgBox 列表无书Exit SubEnd IfSelect Case List1.ListIndex Case 0 MsgBox 已是第一本 Case -1 MsgBox 未选中书名 Case Else k = List1.ListIndex a = List1.List(k - 1) List1.List(k - 1) = List1.ListIndex List1.List(k) = a List1.Selected(k - 1) = True 光标选择list1的第k-1项End SelectEnd SubPrivate Sub Command2_Click()If List1.ListCount = 0 Then MsgBox 列表无书Exit SubEnd IfSelect Case List1.ListIndex Case List1.ListCount - 1 MsgBox 已是最后一本 Case -1 MsgBox 未选中书名 Case Else k = List1.ListIndex a = List1.List(k + 1) List1.List(k + 1) = List1.ListIndex List1.List(k) = a List1.Selected(k + 1) = TrueEnd SelectEnd SubPrivate Sub Command3_Click()If List1.ListCount = 0 Then MsgBox 列表无书Exit SubEnd IfIf List1.ListIndex = -1 Then MsgBox 未选中书名Else List1.RemoveItem List1.ListIndex End IfEnd SubPrivate Sub Command4_Click()If text1.Text = Then MsgBox 请输入入榜书名 Else List1.AddItem Trim(text1.Text) 删除text1中的前后空格 text1.SetFocus text1.SelStart = 0 text1.SelLength = Len(text1.Text) 光标移到移到text1End IfEnd SubPrivate Sub List1_Click()Text2.Text = List1.ListIndex + 1End Sub题目五:用PSet方法在窗体上绘制一条的正弦曲线,要求坐标原点在窗体中心,曲线显示两个周期长度。1. 解题分析、方法:在form1中作图,首先得先设定坐标,根据题目要求坐标原点在中心,且要求两个周期。所以设置左上角的坐标为(-360,-1),右下角坐标为(360,1),接着在设置曲线的宽度,然后再写出正弦函数的表达式,运用pset(x,y)式子画点,因为画点是一点一点的画,所以要用到for这个循环函数。2. 源程序:Private Sub Form_Click()Scale (-360, 1)-(360, -1) 定义坐标系DrawWidth = 2For x = -360 To 360y = 0.9 * Sin(x * 3.1415926 / 180)PSet (x, y)Next xEnd Sub3. 运行结果: 第二部分 设计一功能完整的计算器,实现如下图所示按钮(除”MC”,”MR”,”MS”,”M+”)及菜单功能,如图: 1. 解题思路、分析: 对于我来说,设置一个完整的计算器是一个艰巨的任务,一开始想了一小段时间,自己试着编了一些,但就是无法达到一个完整的计算器,于是,就到网上去下载了一些有关计算器的程序进行参考分析。首先先定义一些量,比如说前后两个操作数op1、op2,小数点是否真存在的量DecimalFlag,操作数个数NumOps,上一次按键的类型等。接着对窗体进行初始化,同时设置所有变量为其初始。然后对各个键盘的命令进行编写程序,对0-9按键设置为一个按键命令组,编写一个程序,同时加减乘除设置一个命令组,也编写一个程序,其他按键都各自设置为一个命令,分别单独进行编写程序。同时在多个命令中都要对显示器中的小数点进行分析,看它是否是真实存在。同时对于除法分母是否为0,也要加以考虑。2. 源程序:Option Explicit Dim Op1, Op2 前面输入的操作数 Dim DecimalFlag As Integer 小数点仍然存在吗? Dim NumOps As Integer 操作数个数 Dim LastInput 指示上一次按键事件的类型 Dim OpFlag 指示未完成的操作 Dim TempReadout 窗体的初始化过程 设置所有变量为其初始值 Private Sub Form_Load() DecimalFlag = False NumOps = 0 LastInput = NONE OpFlag = Text1.Text = Format(0, 0.) Decimal.Caption = Format(0, .) End Sub 退格键Private Sub Command1_Click()If Len(Text1.Text) = 1 ThenText1.Text = Format(0, 0.)DecimalFlag = FalseLastInput = NONEElse If Text1.Text = 0. Then Text1.Text = 0. DecimalFlag = FalseLastInput = NONE Else Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1) End If End IfEnd SubPrivate Sub Command2_Click() CE (取消输入) 按钮的 Click 事件过程 Text1.Text = Format(0, 0.) DecimalFlag = False LastInput = CEEnd SubPrivate Sub Command3_Click() C (取消) 按钮的 Click 事件过程 重新设置显示并初始化变量 Text1.Text = Format(0, 0.) Op1 = 0 Op2 = 0 Form_LoadEnd SubPrivate Sub Command8_Click(Index As Integer) 数字键 (0-9) 的 Click 事件过程 向显示中的数追加新数 If LastInput NUMS Then Text1.Text = Format(0, .) DecimalFlag = False End If If DecimalFlag Then Text1.Text = Text1.Text + Command8(Index).Caption Else Text1.Text = Left(Text1.Text, InStr(Text1.Text, Format(0, .) - 1) + Command8(Index).Caption + Format(0, .) End If If LastInput = NEG Then Text1.Text = - & Text1.Text LastInput = NUMSEnd SubPrivate Sub Command11_Click(Index As Integer) 运算符 (+, -, x, /, =) 的 Click 事件过程 如果接下来的按键是数字键,增加 NumOps。 如果有一个操作数,则设置 Op1。 如果有两个操作数,则将 Op1 设置为 Op1 与 当前输入字符串的运算结果,并显示结果( CDbl 或 CSng 函数强制进行双精度或单精度算术运算) TempReadout = Text1.Text If LastInput = NUMS Then NumOps = NumOps + 1 End If Select Case NumOps Case 0 If Command11(Index).Caption = - And LastInput NEG Then Text1.Text = - & Text1.Text LastInput = NEG End If Case 1 Op1 = Text1.Text If Command11(Index).Caption = - And LastInput NUMS And OpFlag = Then Text1.Text = - LastInput = NEG End If 3-3=6 Case 2 Op2 = TempReadout Select Case OpFlag Case + Op1 = CDbl(Op1) + CDbl(Op2) Case - Op1 = CDbl(Op1) - CDbl(Op2) Case * Op1 = CDbl(Op1) * CDbl(Op2) Case / If Op2 = 0 Then MsgBox 除数不能为 0, 48, 计算器 Else Op1 = CDbl(Op1) / CDbl(Op2) End If Case = Op1 = CDbl(Op2) Case % Op1 = CDbl(Op1) * CDbl(Op2) End Select Text1.Text = Op1 Text1.Text = Format(Text1.Text, 0.#) NumOps = 1 End Select If LastInput NEG Then LastInput = OPS OpFlag = Command11(Index).Caption End IfEnd Sub Private Sub Command9_Click()Text1.Text = -Text1.Text Text1.Text = Format(Text1.Text, 0.#)End Sub Private Sub Command10_Click() 小数点 (.) 按钮的 Click 事件过程 如果上一次按键为运算符,初始化 Text1.Text 为 0.; 否则显示时追加一个小数点 If LastInput = NEG Then Text1.Text = Format(0, -0.) ElseIf LastInput NUMS Then Text1.Text = Format(0, 0.) End If DecimalFlag = True LastInput = NUMS End Sub Private Sub Command12_Click()Text1.Text = Sqr(Val(Text1.Text) Text1.Text = Format(Text1.Text, 0.#)End SubPrivate Sub Command13_Click() 百分比键 (%) 的 Click 事件过程 计算并显示第一个操作数的百分数 Text1.Text = Text1.Text / 100 Text1.Text = Format(Text1.Text, 0.#) LastInput
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中培训机构工作计划书
- 培训机构异地就业
- 2024年美食广场早餐区特许经营合同3篇
- 2024年武陟县人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年横山县中医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 商业保理业务培训
- 医疗建筑电气培训
- 高中信息技术粤教版必修说课稿 -2.4.2 活动任务001
- 2024版软件交易协议样本一
- 2024版国际会展服务标准协议版B版
- 以消费者为中心:提升营销效果的技巧
- 部编版四年级道德与法治上册期末复习计划
- 兽用疫苗管理制度
- 2023瑞幸员工合同协议书
- 大气数据测试仪校准规范
- 硬笔书法田字格标准尺寸
- 升降柱 施工方案
- 中建办公商业楼有限空间作业专项施工方案
- 堤防工程施工规范
- 小细胞肺癌治疗进展及预后
- 成品出货检验报告模板
评论
0/150
提交评论