昆明理工大学VB综合实验作业答案
上传者:史彦斌|上传时间:2017-06-07|密次下载
昆明理工大学VB综合实验作业答案
VB综合实验作业
综合实验报告
实验题目:科学计算器成绩:
学院及班级:环境工程学院 学号:201510701137 姓名:朱敏
一、 实验目的
1.通过本实验,进一步理解Visual Basic的编程方法。
2.提高运用Visual Basic编程的能力。
3.培养对所学知识的综合运用能力。
二、实验内容
1.分析问题,选择算法
本科学计算器主要实现基本的加减乘除运算、正弦、余弦、正切、对数和求绝对值等函数功能。
为实现上述功能,我的基本思路是在窗体上建立三个控件数组,第一个控件数组有九个命令按钮,分别实现正弦、余弦、正切、对数和求绝对值等函数功能;第二个控件数组作包括十一个命令按钮,用来进行计算器的数据输入;第三个控件数组为基本的运算符号,实现基本加减乘除和乘方运算。退格、清除、等于、退出作为独立的命令按钮。在这个计算器的程序中,我用到了单行选择语句If … Then …Else…,If语句的嵌套,多条件选择语句Select Case等。
2. 设计流程框图
1
三、实验步骤 1.建立用户界面 建立如下界面:
2、设置窗体和控件属性
2
3.编写代码,进行调试
编写代码如下: 通用
Dim i As Integer, p As Integer, op(100) As Double, j As Integer, k As Integer Dim m As Integer, n As Integer, u As Integer, v As Integer, w As Integer Function e(ByVal o As Integer, t As Double) As Double '定义e函数 e = 1 t = 1
For o = 1 To 100 t = t / o
3
op(u) = Label1.Caption
End If
If Index = 15 Then
If w = 1 Then
Label1.Caption = Label1.Caption
Else
If j = 1 Then
Label1.Caption = op(u - 1) + op(u)
ElseIf j = 2 Then
Label1.Caption = op(u - 1) - op(u)
4
Label1.Caption = Label1.Caption + 2 * 10 ^ (-n) n = n + 1
End If
End If
k = k + 1
op(u) = Label1.Caption
w = 0
v = 1
End If
If Index = 3 Then
If k = 0 Then
Label1.Caption = 3
Else
If m = 1 Then
Label1.Caption = Label1.Caption * 10 + 3 5
Label1.Caption = Label1.Caption + 5 * 10 ^ (-n) n = n + 1
End If
End If
k = k + 1
op(u) = Label1.Caption
w = 0
v = 1
End If
If Index = 6 Then
If k = 0 Then
Label1.Caption = 6
Else
If m = 1 Then
6
Label1.Caption = Label1.Caption * 10 + 8 Else
Label1.Caption = Label1.Caption + 8 * 10 ^ (-n) n = n + 1
End If
End If
k = k + 1
op(u) = Label1.Caption
w = 0
v = 1
End If
If Index = 9 Then
If k = 0 Then
Label1.Caption = 9
Else
7
Label1.Caption = op(u - 1) + op(u)
ElseIf j = 2 Then
Label1.Caption = op(u - 1) - op(u)
ElseIf j = 3 Then
Label1.Caption = op(u - 1) * op(u)
ElseIf j = 4 Then
Label1.Caption = op(u - 1) / op(u)
End If
If u = -1 Then
u = 0
End If
8
u = u - 1
End If
If j = 1 Then
Label1.Caption = op(u - 1) + op(u) ElseIf j = 2 Then
Label1.Caption = op(u - 1) - op(u) ElseIf j = 3 Then
Label1.Caption = op(u - 1) * op(u) ElseIf j = 4 Then
Label1.Caption = op(u - 1) / op(u) End If
9
If u = -1 Then
u = 0
End If
k = 0
op(u) = Label1.Caption
j = 3
i = i + 1
m = 1
n = 1
u = u + 1
v = 0
End If
If Index = 14 Then
If v = 0 Then
u = u - 1
End If
If j = 1 Then
Label1.Caption = op(u - 1) + op(u) ElseIf j = 2 Then
Label1.Caption = op(u - 1) - op(u) ElseIf j = 3 Then
Label1.Caption = op(u - 1) * op(u) ElseIf j = 4 Then
Label1.Caption = op(u - 1) / op(u) End If
If u = -1 Then
u = 0
End If
k = 0
op(u) = Label1.Caption
j = 4
i = i + 1
m = 1
n = 1
u = u + 1
v = 0
End If
If Index = 19 Then
a = Label1.Caption
b = Sin(a)
Label1.Caption = b
u = u + 1
v = 0
w = 1
End If
If Index = 20 Then
a = Label1.Caption
10
w = 1
End If
If Index = 23 Then
a = Label1.Caption
If Label1.Caption = 0 Then MsgBox 0不能坐真数
ElseIf Label1.Caption 0 Then MsgBox 负数不能坐真数 Else
b = Log(a) / Log(10) Label1.Caption = b
End If
u = u + 1
11
'temp = temp * (ki / (ki - 1)) * (ki / (ki + 1)) 'ni = ni + 1
'Loop Until Abs(pi - temp) 0.000000000000001 'Label1.Caption = pi
Label1.Caption = 3.14159265358979
u = u + 1
v = 0
w = 1
End If
If Index = 29 Then
Label1.Caption = e(1, 1)
u = u + 1
v = 0
12
w = 1
End If
If Index = 31 Then If n1 = 0 Then
m1 = Label1.Caption Else
Label1.Caption = m1 op(u) = Label1.Caption End If
n1 = n1 + 1
End If
If Index = 32 Then If n2 = 0 Then
m2 = Label1.Caption Else
Label1.Caption = m2 op(u) = Label1.Caption End If
n2 = n2 + 1
End If
If Index = 33 Then If n3 = 0 Then
m3 = Label1.Caption Else
Label1.Caption = m3 op(u) = Label1.Caption End If
n3 = n3 + 1
End If
If Index = 30 Then If n4 = 0 Then
m4 = Label1.Caption Else
Label1.Caption = m4 op(u) = Label1.Caption End If
n4 = n4 + 1
End If
If Index = 27 Then If n5 = 0 Then
m5 = Label1.Caption Else
Label1.Caption = m5 op(u) = Label1.Caption End If
n5 = n5 + 1
End If
13
End If
If KeyAscii = 51 Then
If k = 0 Then
Label1.Caption = 3
Else
If m = 1 Then
Label1.Caption = Label1.Caption * 10 + 3
Else
Label1.Caption = Label1.Caption + 3 * 10 ^ (-n)
n = n + 1
End If
End If
14
w = 0
v = 1
End If
If KeyAscii = 54 Then
If k = 0 Then
Label1.Caption = 6
Else
If m = 1 Then
Label1.Caption = Label1.Caption * 10 + 6 Else
Label1.Caption = Label1.Caption + 6 * 10 ^ (-n) n = n + 1
End If
15
op(u) = Label1.Caption
w = 0
v = 1
End If
If KeyAscii = 57 Then
If k = 0 Then
Label1.Caption = 9
Else
If m = 1 Then
Label1.Caption = Label1.Caption * 10 + 9 Else
Label1.Caption = Label1.Caption + 9 * 10 ^ (-n) n = n + 1
16
ElseIf j = 3 Then
Label1.Caption = op(u - 1) * op(u)
ElseIf j = 4 Then
Label1.Caption = op(u - 1) / op(u)
End If
If u = -1 Then
u = 0
End If
k = 0
op(u) = Label1.Caption
i = i + 1
j = 1
m = 1
17
Label1.Caption = op(u - 1) + op(u) ElseIf j = 2 Then
Label1.Caption = op(u - 1) - op(u) ElseIf j = 3 Then
Label1.Caption = op(u - 1) * op(u) ElseIf j = 4 Then
Label1.Caption = op(u - 1) / op(u) End If
If u = -1 Then
u = 0
End If
k = 0
op(u) = Label1.Caption
18
Label1.Caption = Label1.Caption Else
If j = 1 Then
Label1.Caption = op(u - 1) + op(u) ElseIf j = 2 Then
Label1.Caption = op(u - 1) - op(u) ElseIf j = 3 Then
Label1.Caption = op(u - 1) * op(u) ElseIf j = 4 Then
Label1.Caption = op(u - 1) / op(u) End If
u = u + 1
19
v = 0
End If
End If
End Sub
Private Sub Form_Load()
Label1.Caption = 0 '对各个值和循环条件进行初始化 i = 0 '
j = 0 'j的值对应相应的运算符
k = 1 '
m = 1 '判断一个运算数输入过程中小数点前后 n = 1 '存储小数点的位数
v = 0 '防止连续连续运算时出现错误
u = 0 '存储各个运算数数组的下标
w = 0 '
op(u) = Label1.Caption '初值赋给op(0) End Sub
4.运行结果界面图
20
5. 程序调试步骤,及遇到的问题
调试步骤:
调试 → 设断点 → 添加监视 → 修改程序
遇到的问题:
① 变量未定义
② 编译错误(这个问题在整个过程中都存在)
③ 缺少结束语句;没有end if语句等
④ 类型不匹配
⑤ 发生二义性错误
6.设计问题的不足和改进方案
不足:
在进行优先级和简易科学两个不同界面间进行变换时需要通过指定按钮进行变换。
改进方案:
设计一个公共窗体,通过选择按钮来实现两个不同界面的变换 (类似于windows系统自带计算器的界面)
四、实验总结
这次实验编写科学计算器的程序,事实上是借鉴了很多书上与网上案例再结合自己修改才完成的,感觉真的真的是非常不容易,运行时会遇到很多程序错误需要不断调试,深切地体会到了程序猿辛苦。但每一次程序错误之后的改进都会给自己带来很大的成就感,在不断的探索中也激发了起自己对编程的兴趣。
同时还更好地掌握了标准控件数组,更深刻地理解了VB的逻辑思维,增加了对VB编程的认识 。VB其实并不难,只要理清思路,逻辑正确,再了解一定的VB基本语法要求,编写一个程序也并不不是想象中的那样难,只要开始编写就有希望运行出结果。
21
五、参考文献
1、 陈明锐.《Visual Basic程序设计及应用教程》.北京:高等教育出版 社,2008.12
2、 张春英.《Visual Basic程序设计实例教程》.北京:北京邮电大学出版社, 2010.1
3、 匡松 吕峻闽《Visual Basic程序设计基础教程》. 北京:中国铁道出版社,20 06.1
22
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
网友关注视频
- 《空中课堂》二年级下册 数学第一单元第1课时
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
- 冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
- 冀教版英语五年级下册第二课课程解读
- 苏科版数学 八年级下册 第八章第二节 可能性的大小
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 12
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
- 沪教版八年级下册数学练习册21.3(2)分式方程P15
- 七年级英语下册 上海牛津版 Unit9
- 外研版英语三起5年级下册(14版)Module3 Unit1
- 沪教版八年级下次数学练习册21.4(2)无理方程P19
- 8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
- 化学九年级下册全册同步 人教版 第18集 常见的酸和碱(二)
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,辽宁省
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
- 冀教版小学数学二年级下册第二单元《租船问题》
- 苏教版二年级下册数学《认识东、南、西、北》
- 冀教版英语四年级下册第二课
- 冀教版小学英语五年级下册lesson2教学视频(2)
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣.mp4
- 外研版英语三起5年级下册(14版)Module3 Unit2
- 冀教版英语三年级下册第二课
- 飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理