




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
YY精品资料(ZQ科技出版社) VB课后题编程详解(1)完成例1-1,并保存工程文件为ex01.vbp,窗体名为LT01-01.frm。运行程序,输入一些数据试运行验证运行结果。Private Sub Command1_Click() Label2.Caption = Text1.Text & !欢迎您进入VB世界!End SubPrivate Sub Command2_Click() EndEnd Sub(2)完成课本第20页上的设计题Private Sub Command1_Click() Label1.Caption = 欢迎使用VB6.0End SubPrivate Sub Command2_Click() Label1.Caption = 欢迎进入VB世界!End SubPrivate Sub Command3_Click() EndEnd Sub(3)设计一个程序,在文本框中输入一个角度,用4个标签分别输出其正弦、余弦、正切、余切值。Private Sub Command1_Click() Dim x!, a!, b!, c!, d! Const pi = 3.1415926 x = Val(Text1.Text) a = Sin(x * pi / 180) b = Cos(x * pi / 180) c = Tan(x * pi / 180) d = 1 / c Label2.Caption = 正弦值: & a Label3.Caption = 余弦值: & b Label4.Caption = 正切值: & c Label5.Caption = 余切值: & dEnd Sub(4)自行设计实习,检测如果向一个文本框中输入一个字符时,KeyDown和KeyPress事件谁先被触发。写出检测方案、代码及结果。检测方案:因为keycode与keyascii分别由keydown和keypress触发,所以将两个事件加载到同一个文本框下,在文本框中输入一个两种操作都能捕捉的的字符,看那条语句先执行(在上的先执行)。Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)Print 你按下的键是; Chr(KeyCode); KeyCode为; KeyCodeEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) Print 你输入的键是; Chr(KeyAscii); ASCII码为; KeyAsciiEnd SubKeycode首先显示Ascii后显示,所以Keydown事件先于Keypress事件发生。(5)在工程中添加一个窗体,将该窗体设置为启动窗体,窗体上添加3个命令按钮,其中,分别写入代码“Form1.Show”、“Form2.Show” 、“Form3.Show”。运行窗体,单击各命令按钮。体会这个窗体的功能。Private Sub Command1_Click() Form1.ShowEnd SubPrivate Sub Command2_Click() Form2.ShowEnd SubPrivate Sub Command3_Click() Form3.ShowEnd Sub (6)编程实现用InputBox函数输入一个正数,用Print方法在一行显示它的平方、平方根、立方、立方根,每个数保留三位小数,各输出项之间应有间隔。 Private Sub Command1_Click() Dim x, a, b, c, d x = InputBox(请输入一个正数) a = Val(x 2) b = Val(Sqr(x) c = Val(x 3) d = Val(x (1 / 3) Print Format(a, #.000), Format(b, #.000), Format(c, #.000), Format(d, #.000) End SubPS:从左到右依次为该数的平方,平方根,立方和立方根。(7)输入三个数,输出其中最大的数、最小的数。 Private Sub Command1_Click() Dim a, b, c, t a = Text1.Text: b = Text2.Text: c = Text3.Text If a b Then t = a a = b b = t End If If a c Then t = a a = c c = t End If If b c Then t = b b = c c = t End If Label1.Caption = 三个数中最小数为 & a Label2.Caption = 三个数中最大数为 & cEnd Sub(8)闰年的条件是年份能被4整除但不能被100整除,或者能被400整除,从键盘输入一个年号,判断是否闰年。Private Sub Command1_Click() x = InputBox(请输入一个年份) If (x Mod 4 = 0 And x Mod 100 0) Or (x Mod 400 = 0) Then Print x & 年是闰年 Else Print x & 年是平年 End IfEnd Sub(9) 从键盘上输入一个整数x,判断其能否被5整除,输出相应的信息。 Private Sub Command1_Click() Dim x As Integer x = InputBox(请输入一个整数) If x Mod 5 = 0 Then MsgBox x & 能被5整除 Else MsgBox x & 不能被5整除 End IfEnd Sub(10)税务部门征收所得税,规定如下:收入在300元以内,免征;收入为300500元,超过300元的部分纳税2%;收入超过500元的部分,纳税3%;当收入达5000元或超过时,超过500元的部分纳税4%。Private Sub Command1_Click() Dim x!, y! x = Text1.Text If x = 300 And x 500 And x = 5000 Then y = (x - 5000) * 0.04 + 139 MsgBox 应征所得税为 & y & 元 End If End Sub(11)输出100200之间不能被3整除的数。Private Sub Command1_Click() Dim x As Integer For x = 100 To 200 If x Mod 3 0 Then i = i + 1 Print Tab(i - 1) Mod 6) * 6 + 2); x; End IfNext xEnd Sub(12)求从1000到1100之间的所有质数,每行输出6个,分多行输出。 Private Sub Command1_Click() Dim x As Integer, y As Integer, i As Integer For x = 1000 To 1100 For y = 2 To x - 1 If x Mod y = 0 Then Exit For End If Next y If y = x Then i = i + 1 Print Tab(i - 1) Mod 6) * 6 + 2); x; End If Next xEnd Sub(13)设计一个猜数字游戏,计算机随机产生一个0100之间的数,给8次机会,每猜一次通过键盘输入,计算机可以给出“大了点!”、“小了点!”、“猜中了”三种提示,当出现“猜对了”时,程序结束,如果8次都猜不中,用消息框给出正确结果。Private Sub Command1_Click() Dim x%, y%, i% x = Int(Rnd() * 101) For i = 1 To 8 y = InputBox(请输入猜的数) If y x Then MsgBox 大了点 ElseIf y 8 Then MsgBox 正确结果为: & x End IfEnd Sub(14)一个自然数倒过来读仍是这个数,就叫回文数。如151。编程求出100-999范围内的回文数。Private Sub Command1_Click() Dim x As Integer, i As Integer For x = 100 To 999 If x = (x Mod 100) Mod 10) * 100 + (x Mod 100) 10) * 10 + x 100 Then i = i + 1 Print Tab(i - 1) Mod 6) * 6 + 2); x; End If Next xEnd Sub(15)求自然对数e的近似值,当任意项的值小于10-4时结束计算,近似公式为:Private Sub Command1_Click() Dim f, d, s f = 1: d = 1: s = 1 Do d = d * f f = f + 1 s = s + 1 / d If (1 / d) 10 (-4) Then Exit Do End If Loop Label1.Caption = e & sEnd Sub(16)编写程序实现从键盘输入1个大于200的整数m,计算并输出满足不等式1+23 +33 +43 +n3= m Then Exit Do End If Loop Label1.Caption = 满足不等式13+23+n3 & m & 的最大整数n为 & nEnd Sub(17)编一个程序,打印出如图4-23所示的图案。Private Sub Command1_Click() For i = 1 To 6 Print Tab(7 - i); For j = 2 To 2 * i + 1 Print 0; Next j Next iEnd Sub(18)下面程序可以将一个从键盘上输入的十进制数转换成二进制数,试根据此题编写将十进制数转换成十六进制数的程序。 Private Sub Command1_Click() Dim a, b, m, n, x n = Val(InputBox(请输入需要转换的十进制整数) m = n x = Do While n 0 If n Mod 16 0 Then a = n Mod 16 b = Choose(a, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) n = n 16 If n Mod 16 0 Then x = b & x Else x = b & x & 0 End If Loop MsgBox m & 转换为十六进制数为 & xEnd Sub(19)求解数学灯谜,有以下算式:A B C D - C D C A B C求A、B、C、D的值。Private Sub Command1_Click() Dim A%, B%, C%, D% For A = 1 To 9 For B = 0 To 9 For C = 0 To 9 For D = o To 9 If (A * 1000 + B * 100 + C * 10 + D) - (C * 100 + D * 10 + C) = A * 100 + B * 10 + C Then MsgBox A= & A & B= & B & C= & C & D= & D End If Next D Next C Next B Next A End Sub(20)猴子吃桃:猴子第一天摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃了一个。第二天早上有将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上猴子想再吃时,桃子只剩下一个。问第一天猴子共摘了多少个桃子。Private Sub Command1_Click() Dim x% x = 1 For i = 1 To 9 x = (x + 1) * 2 Next i MsgBox 猴子一共摘了 & x & 只桃子End Sub(21)设有如下两组数据:(1)1,3,5,2,4,18,50,25(2)5,27,30,35,60,41,87,33编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即1+5,3+27,25+33,并把相应的结果放入第三个数组中,最后输出第三个数组的值。Private Sub Command1_Click() Dim a(), b() a = Array(1, 3, 5, 2, 4, 18, 50, 25) For i = LBound(a) To UBound(a) Picture1.Print a(i) Next i b = Array(5, 27, 30, 35, 60, 41, 87, 33) For i = LBound(a) To UBound(a) Picture2.Print b(i) Next i For i = LBound(a) To UBound(a) s = a(i) + b(i) Picture3.Print s Next iEnd Sub(22)有一个nm的矩阵,编写程序写找出其中最大的那个元素所在的行和列,并输出其值及行号和列号。Private Sub Command1_Click() Dim x As Integer, y As Integer, px As Integer, py As Integer, jz() As Integer, i As Integer, t As Integer x = Val(InputBox(输入行数, 计算矩阵) y = Val(InputBox(输入列数, 计算矩阵) ReDim jz(0 To x - 1, 0 To y - 1) For i = 0 To x - 1 Step 1 For t = 0 To y - 1 Step 1 jz(i, t) = Val(InputBox(输入行数为 & (i + 1) & ,列数为 & (t + 1) & 的元素, 输入矩阵的元素) Picture1.Print Tab(t * 6); jz(i, t); Next t Next i px = 0: py = 0 For i = 0 To x - 1 For t = 0 To y - 1 If jz(i, t) jz(px, py) Then px = i: py = t End If Next t Next i Print 矩阵最大的元素的值为: & jz(px, py) Print 它所在的行号为: & (px + 1) & 列号为: & (py + 1)End Sub(23)某数组中有10个元素,元素的值由键盘输入,要求将前5个元素与后5个元素对换。即第1个元素与第10个元素互换,第2个元素与第9个元素互换。请输出数组中原来各元素的值和对换后各元素的值。注:此处元素为自定义。采用a(i)=i。Private Sub Command1_Click() Dim a(9) As Single, b(9) As Single, k%, t%, i% Print 对换前各元素为: For i = 0 To 9 a(i) = i Print a(i); Next i For i = 0 To 9 b(i) = a(i) Next i Print Print 对换后各元素为: For i = 0 To 4 k = 9 - i t = a(i) a(i) = a(k) a(k) = t Print a(i); Next i For i = 5 To 9 k = 9 - i t = b(i) b(i) = b(k) b(k) = t Print b(i); Next i End Sub(24)输入若干个学生的一门课的成绩,统计各分数段的人数。按小于60分、6069分、7079分、8089分、90100分各为一个分数段。Private Sub Command1_Click() Dim a$(), k%, y, m, n Dim x(1 To 10) As Integer a = Split(Text1, ,) For Each y In a k = y / 10 x(k) = x(k) + 1 Next y Picture1.Print 统计结果如下: m = Val(x(9) + Val(x(10) Picture1.Print 90-100分的有: & m & 人 For i = 8 To 6 Step -1 Picture1.Print i * 10 & 分-; i * 10 + 9 & 分有: & x(i) & 人 Next i For i = 1 To 5 n = n + x(i) Next i Picture1.Print 小于60分的有: & n & 人End Sub(25)我国身份证号码的第18位是由前17位通过公式计算出来的,计算过程:(1)对前17位数字的权求和S,公式为:S = Sum(Ai * Wi)其中:i = 0,1,2, . , 16 Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子,加权因子对应表为:i012345678910111213141516Wi7910584216379105842(2)计算模Y,公式为: Y=mod(S,11)即求S除以11后的余数。(3)通过模Y可得出对应的第18位编码,对应表为:Y012345678910校验码10X98765432请编程:要求从键盘上输入其一身份证号码的前17位,求出第18位。Private Sub Command1_Click() Dim a(), x, s, y, t, n, r a = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2) n = UBound(a) For i = o To n x = InputBox(请输入身份证号码的第 & i + 1 & 位数) s = s + x * a(i) r = r & x Next i y = s Mod 11 If y = 1 And y = 10 Then t = Choose(y, 0, x, 9, 8, 7, 6, 5, 4, 3, 2) Else t = 1 End If Label1.Caption = 身份证第18位数是: & t Label2.Caption = 您的18位身份号为: & r & tEnd Sub(26)有一个数列,前两项为1,从第三项开始,每一项都是前现两项之和,输出该数列前30项。Private Sub Command1_Click() Dim a(1 To 30) For i = 1 To 2 a(i) = 1 Print a(i) Next i For i = 3 To 30 a(i) = a(i - 1) + a(i - 2) Print a(i) Next iEnd Sub(27)随机产生15个不重复的AZ之间的大写字母,存放在字符数组中。提示:(1)要产生AZ的字符,通过Rnd函数产生65,90两位随机整数,再通过Chr函数转换成为相应字符。(2)要产生不重复字符,需要将每次产生的字符同数组中已有的字符进行比较,若有相同的字符,则重新产生。Private Sub Command1_Click() Dim i%, j%, s(1 To 26), t For i = 1 To 26 s(i) = Chr(i + 64) Next i Randomize For i = 1 To 15 j = Int(Rnd * (26 - i + 1) + i) t = s(i): s(i) = s(j): s(j) = t Print s(i); Next iEnd Sub(28)将从键盘上输入的一个数插入到数组指定位置。提示:在数组中插入元素的过程是:(1) 输入插入的位置及要插入的数;(2) 增加数组元素个数;(3) 将待插入位置以后的数逐一后移一位,腾出插入位置;(4) 在插入位置上插入数。注:数列元素为自行设计。Private Sub Command1_Click() Dim a(), i, k k = Val(InputBox(请输入插入的位置) x = Val(InputBox(请输入插入的数) Print 插入前排列情况为: ReDim a(9) For i = 0 To 9 a(i) = i Print a(i); Next i Print ReDim Preserve a(10) For i = 9 To k Step -1 a(i + 1) = a(i) Next i a(k) = x Print 插入后排列情况为: For i = 0 To 10 Print a(i); Next iEnd Sub(29)在数组中查找从键盘上输入的一个数,如果找不到输出相应信息,如果找到,则删除该元素。提示:删除数组中元素的过程是:(1) 输入要删除的数;(2) 在数组中找到待删除数的位置k,若数组中没有要删除的数,输出提示信息;(3) 将k以后的每一个元素前移一位,覆盖要删除的数;(4) 减少数组元素的个数,完成删除。Private Sub Command1_Click() Dim a(), x, l, u, k, p As Boolean a = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) l = LBound(a) u = UBound(a) Print 删除前为: For i = l To u Print a(i); Next i x = Val(InputBox(请输入要删除的数字) p = False Print For i = l To u If x = a(i) Then k = i p = True Exit For End If Next i If p Then For i = k To u - 1 a(i) = a(i + 1) Next i u = u - 1 ReDim Preserve a(l To u) Print 删除后为: For i = l To u Print a(i); Next i Else MsgBox 要删除的数字不存在 End If End Sub(30)求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M、N从键盘输入。Private Sub Command1_Click() Dim a%(), m, n, s, c%, b% m = Val(InputBox(请输入矩阵的行数) n = Val(InputBox(请输入矩阵的列数) ReDim a%(m, n) For i = 1 To m For j = 1 To n a(i, j) = Int(Rnd * 10) Picture1.Print Tab(3 * j); a(i, j); Next j Next i For j = 1 To n c = c + Val(a(1, j) + Val(a(m, j) Next j For i = 2 To m - 1 b = b + Val(a(i, 1) + Val(a(i, n) Next i s = Val(c) + Val(b) Label1.Caption = 矩阵四周元素之和= & sEnd Sub(31)某校召开运动会有10人参加男子100米短跑决赛,运动员号码和成绩如表所示,试编制程序,按成绩由高到低排序。 号码成绩运动员号码成绩011号12.4秒009号10.4秒095号11.1秒021号14.4秒041号13.4秒061号15.1秒070号12.1秒006号15.4秒008号12.4秒004号11.4秒注:首先应该在C盘中建立文件 “in.txt”,并在其中输入运动员号码和成绩Private Type ydy hm As String * 10 cj As SingleEnd TypePrivate Sub Command1_Click() Dim a(1 To 10) As ydy, t As ydy Dim i As Integer, j As Integer Open C:in.txt For Input As #1 Picture1.Print Tab(2); 运动员号码; Tab(32); 成绩 For i = 1 To 10 Input #1, a(i).hm, a(i).cj Picture1.Print Tab(2); a(i).hm; Tab(32); a(i).cj Next i Close For i = 1 To 9 k = i For j = i + 1 To 10 If a(j).cj a(k).cj Then k = j End If Next j t = a(k): a(k) = a(i): a(i) = t Next i Picture1.Print =运动员成绩排列如下= Picture1.Print Tab(2); 运动员号码; Tab(32); 成绩 For i = 1 To 10 Picture1.Print Tab(2); a(i).hm; Tab(32); a(i).cj Next iEnd Sub(31)编写函数过程Gdc求两个数的最大公约数。调用此函数试求1260、198、72三个数的最大公约数。Function Gdc%(m%, n%) Dim r% r = m Mod n If r = 0 Then Gdc = n Else Gdc = Gdc(n, r) End IfEnd FunctionPrivate Sub Command1_Click() Dim a%, b%, c%, y% a = 1260: b = 198: c = 72 y = Gdc(Gdc(a, b), c) Print 1260,198,72 三个数的最大公约数为: & yEnd Sub(32)编写产生随机整数过程,输出n个指定范围的随机整数,并在主程序中调用。Function sj%(a%, b%) f = Int(Rnd() * (b - a + 1) + a) sj = fEnd FunctionPrivate Sub Command1_Click()Cls Dim a%, b%, n%, x% a = Val(InputBox(请输入产生随机整数的下限) b = Val(InputBox(请输入产生随机整数的上限) n = Val(InputBox(请输入产生随机整数的个数) For i = 1 To n x = sj(a, b) Print x; Next iEnd Sub(33)编写判断一个整数是否为素数的过程,并调用该过程输出100200之间的所有素数。Public Function ss(a&) As Boolean Dim p As Boolean: p = True For i = 2 To Sqr(a) If a Mod i = 0 Then p = False Exit For End If Next i ss = pEnd FunctionPrivate Sub Command1_Click()Dim i&, n% n = 1 For i = 100 To 200 If ss(i) = True Then Print Tab(n - 1) Mod 6) * 8 + 2); i; n = n + 1 End If Next iEnd sub(34)建立1个名为dat.txt的顺序文件,在文本框中输入字符,每次按回车键(回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园艺项目规划与执行试题及答案
- 高校辅导员招聘考试真题回顾试题及答案
- 农业经理人考试解题技巧试题及答案
- 辅导员招聘考试内容审核试题及答案
- 花艺师考试内容深化理解试题及答案
- 调酒师品酒鉴赏试题及答案剖析
- 船长颜色测试题及答案解析
- 疏理知识框架福建事业单位考试试题及答案
- 有用的信息2024年福建事业单位考试试题及答案
- 园艺师考试重点考点试题及答案
- 自动转运小车结构及控制系统设计说明书
- 《医学心理学》课件:第11章 医患关系
- 饮水设备巡查维护记录表
- 洛阳十三朝古都课件
- RomaxDesigner 培训教程(合)教学提纲
- 《中国传统服饰——汉服》PPT课件
- 顾洁Storytime
- 小学信息技术认识《画图》
- 【精品】宇通客车涂装车间实习报告
- 冷冻机的制冷效率与运行电费
- 物业服务流程图
评论
0/150
提交评论