VB 2Word文档格式.docx
- 文档编号:18249130
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:17
- 大小:60.19KB
VB 2Word文档格式.docx
《VB 2Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB 2Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
函数、进制、弧度转换等运算功能,并带有存储器、统计框等,基本实现了Windows自带计算器的所有功能。
要实现计算器的这些功能就用到我们所学的VB知识编写程序来实现运算功能并解决问题。
3.总体设计结构与功能
1.设计框架和计算器整体形象
2.主要功能模块的计算设计思路,以及对应的N-S流程图,说明本功能的特点,其各功能的代码如下
首先对0到9进行赋值和设置
PrivateSubn0_Click()
Form1.Caption="
输入"
Ift.Text="
0"
Then
t.Text="
GoToE
EndIf
Ifinputn=1Thent.Text=t.Text+"
Ifinputn=0Thent.Text="
E:
inputn=1
dengyu.SetFocus
EndSub
PrivateSubn1_Click()
1"
PrivateSubn2_Click()
2"
PrivateSubn3_Click()
3"
PrivateSubn4_Click()
4"
PrivateSubn5_Click()
5"
PrivateSubn6_Click()
6"
PrivateSubn7_Click()
7"
PrivateSubn8_Click()
8"
PrivateSubn9_Click()
9"
再在对小数点进行赋值
PrivateSubdot_Click()
IfInStr(t.Text,"
."
)=0Thent.Text=t.Text+"
0."
取负运算的设置
PrivateSubqufu_Click()
取负"
t.Text=0-Val(t.Text)
IfMid(t.Text,1,1)="
Thent.Text="
+t.Text
IfMid(t.Text,1,2)="
-."
-0"
+Mid(t.Text,2)
加减乘除的设置和赋值
PrivateSubjia_Click()
m=cal()
加法运算"
inputn=0
number1=Val(t.Text)
operation=1
PrivateSubjian_Click()
减法运算"
operation=2
PrivateSubcheng_Click()
乘法运算"
operation=3
PrivateSubchu_Click()
除法运算"
operation=4
百分数的设置和赋值
PrivateSubbaifen_Click()
转化为百分数"
t.Text=Val(t.Text)*100
取倒数运算的赋值语句
PrivateSubdaoshu_Click()
取倒数"
t.Text=CDbl
(1)/Val(t.Text)
等于号的赋值语句
PrivateSubdengyu_Click()
运算结果"
取对数的赋值语句(ln和log)
PrivateSubln_Click()
取自然数对数"
Ift.Text>
0Thent.Text=Log(Val(t.Text))/Log(2.71828183)
EndSubPrivateSubduishu_Click()
对数运算"
0Thent.Text=Log(Val(t.Text))
对sin、cos、tan语句的赋值
PrivateSubsine_Click()
正弦"
DimnAsDouble
n=Val(t.Text)/180*3.14159265358979
t.Text=Sin(n)
PrivateSubcose_Click()
余弦"
t.Text=Cos(n)
PrivateSubtane_Click()
正切"
t.Text=Tan(n)
对平方和开方语句的赋值
PrivateSubpingfang_Click()
平方"
t.Text=Val(t.Text)^2
PrivateSubkaifang_Click()
开方运算"
IfVal(t.Text)<
0ThenGoToE
t.Text=Sqr(Val(t.Text))
阶乘运算的赋值
PrivateSubjiecheng_Click()
阶乘运算"
0OrVal(t.Text)-Int(Val(t.Text))<
>
t.Text=fac(CLng(Val(t.Text)))
存储的设置赋值能够调出记忆1和记忆2
PrivateSubsto_Click()
Ifstatics=1Then
存储数据按等号结束输入"
numarray(arraylen)=Val(t.Text)
arraylen=arraylen+1
t.Text=Str(arraylen)
Else
存储(选择M1或M2)"
storage=1
EndSubPrivateSubm1_Click()
记忆1"
Ifstorage=1Then
memory1=Val(t.Text)
storage=0
Else:
t.Text=memory1
PrivateSubm2_Click()
记忆2"
memory2=Val(t.Text)
t.Text=memory2
统计状态的设置和赋值语句
PrivateSubsta_Click()
进入统计状态"
statics=1
inputok=0
Forn=0To500
numarray(n)=0
Nextn
arraylen=0
PrivateSubexitsta_Click()
退出统计状态"
statics=0
清零键、退格、关闭的设置赋值语句
PrivateSubclear_Click()
清零"
t.Text=0
PrivateSubback_Click()
退格"
IfLen(t.Text)>
=1Thent.Text=Left(t.Text,Len(t.Text)-1)
IfLen(t.Text)=0Thent.Text="
关闭程序
PrivateSubpoweroff_Click()
End
出现异常和不符合数学规律的提示
Functionave()AsDouble
DimsumAsDouble
sum=0
Forn=0Toarraylen
sum=sum+numarray(n)
Ifarraylen=0Then
m=MsgBox("
出错!
"
vbOKOnly,"
单击确定退出!
)
ave=sum/arraylen
EndFunction
变量的赋值和函数调用的设置
Diminputn,operation,storage,statics,inputokAsInteger
Dimnumber1,memory1,memory2,numarray(500),arraylenAsDouble
Functionfac(aAsLong)AsLong
Dimr,nAsLong
r=1
Forn=1ToaStep1
r=r*n
fac=r
Functioncal()
Dimnumber2AsDouble
number2=Val(t.Text)
SelectCaseoperation
Case1:
t.Text=number1+number2
Case2:
t.Text=number1-number2
Case3:
t.Text=number1*number2
Case4:
Ift.Text<
"
Thent.Text=number1/number2
Case5:
Ifnumber2>
number1Ornumber2-Int(number2)<
0_
Ornumber1-Int(number1)<
0Ornumber1<
0Ornumber2<
Ornumber1>
12OrNumber>
12ThenGoToE
t.Text=fac(CLng(number1))/(fac(CLng(number2))*fac(CLng(number1)_
-CLng(number2)))
Case6:
Ornumber2<
0Ornumber1>
t.Text=fac(CLng(number1))/fac(CLng(number2))
Case7:
Ifnumber1<
t.Text=number1*number2/(number1+number2)
Case8:
t.Text=number1^number2
EndSelect
operation=0
3.运行结果分析
运行程序进行调试COS((56+120)*3
调试COS((56+120)*3)
结果正确=-0.97814760073
4.总结
对于正切值的计算和有关规定存在比较大的问题,由于对代码书写的不熟悉,导致在设计此代码的过程存在过大的问题。
经过翻阅书本及网络查询,最终得以完成代码的编写,此处的重难点在于正切函数存在无意义的特点,要重新根据这一点加以调试和代码的书写。
对此次科学计算器的编写的体会深刻。
在编写的过程当中加强了对vb的知识的巩固和理解。
Vb对于我来说,它还是比较难的,对其理解的不够深刻,认识的不够透彻。
我觉得光是学点理论知识是不够的,关键在于能够将理论转化为现实操作,自己动手才能让自己更清楚的理解和巩固知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB