my计算器程序设计报告要点Word格式文档下载.docx
- 文档编号:19493139
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:26
- 大小:42.43KB
my计算器程序设计报告要点Word格式文档下载.docx
《my计算器程序设计报告要点Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《my计算器程序设计报告要点Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
将"
作为一个控件数组,其程序如下:
Ifnotbooleanstr1=strelsestr2=str
SelectCaseIndex
Case0
str1="
"
str2="
Text1.text="
键
Case1
str="
Case2
str=Left(str,len(str)-1)"
而"
在另一个数组控件中,其程序的一部分如下:
Case0
n4=0:
Text1.text="
0"
可见它们的代码是存在区别的,这就要求在编程时弄清楚它们的区别,不可想当然把同一种代码复制过来.
这里我再介绍一下小数点的使用
PrivateSubCommand2_Click(IndexAsInteger)
IfIndex<
10Then
str=str+CStr(Index)"
输入数字"
Else
IfInStr(str,"
."
)=0Thenstr=str+"
输入小数点"
EndIf
IfLen(str)>
1AndLeft(str,1)="
AndMid(str,2,1)<
>
Then
str=Right(str,Len(str)-1)"
删除前面多余的0"
Text1.text=str"
显示输入的数据"
IfnotbooleanThenstr1=strElsestr2=str"
用两个字符串变量存放"
EndSub
计算器虽复杂,但大部分还是比较简单的,最难的地方就是进制转换器的编码了,要编好这一部分必须对各进制之间的转换关系了如指掌.其中各个进制都和二进制有着直接的转换关系.而其他三个之间都不可直接进行转换.对于不能直接转化的,可以间接转化,例如,可以将十六进制先转化成十进制然后再转化成八进制.
ElseIfOption4=TrueThen
t4="
str=Text1.Text
DimpAsInteger,qAsLong
q=0
DoWhilestr<
‘把输入的字母先转化为对应的数
t=Right(str,1)
Ift="
a"
Then
n=10
ElseIft="
b"
n=11
c"
n=12
d"
n=13
e"
n=14
f"
n=15
Else:
n=CInt(t)
q=q+n*16^(p)
str=Left(str,Len(str)-1)’从后逐步取出每个字符
p=p+1’指数从后依次加一
Loop
m=q’十六进制转成了十进制
DoWhilem<
0
Form1=1To3
n=mMod2
m=m\2
int1=n*2^(m1-1)十进制再转化为八进制
int2=int2+int1
Next
t3=CStr(int2)
t4=t3+t4
t3="
int1=0
int2=0
Text2.Text=t4
以下是用来判断输入的字符是否符合所选择进制的要求的,如果不符和就会出现一个对话框同时删除所输入的字符。
PrivateSubText1_Change()
str=Text1.Text
t=Right(str,1)
Ift<
n=Asc(s)找出所输入数字的ASCII码
Else:
ExitSub
EndIf
IfOption1=TrueThen
Ifn<
48Orn>
49Then与符合要求的比较,排除符合的
MsgBox"
输入的数据不符和进制要求,请重新输入."
16,"
数据输入"
Text1.Text=Left(str,Len(str)-1)删除最后一位
ElseIfOption2=TrueThen
55Then
MsgBox"
Text1.Text=Left(str,Len(str)-1)
ElseIfOption3=TrueThen
57Then
Text1.Text=Left(str,Len(str)-1)
ElseIfOption4=TrueThen
48Or(n>
57Andn<
97)Orn>
102Then
EndSub
通过此次编程,我知道了它的难处,我在参考了前人的基础上加以摸索,并对前人的不足加以改善,但是并没有做到十分完美,还是有一些不足之处,这也是将来要努力的地方。
以下是代码
主窗体
OptionExplicit'
强制申明变量
Dimstr,str1,str2,str3,str4AsString
Dimx1,x2,x3,x4,pAsDouble
Dimj,k,x,int1AsLong
DimwAsBoolean
PrivateSubText1_Change()'
调节输入的内容和输出的结果
PrivateSubCommand2_Click(IndexAsInteger)'
函数转换
IfNotwThenstr=str1Elsestr=str2
x=str
SelectCaseIndex
Case0'
sin函数
str=CStr(Sin(x))
Case1
str=CStr(Cos(x))'
cos函数
Case2
str=CStr(Tan(x))'
tan函数
Case3
str=CStr(1/Tan(x))'
ctg函数
Case4
str=CStr(1/Cos(x))'
sec函数
Case5
k=1
Forj=1Tox'
阶乘运算
k=j*k
Next
str=CStr(k)
Case6
p=3.1415926535898'
边界限定
Ifx>
1Orx<
-1Then
数据超出反正弦的数值范围,请重新输入"
0,"
出错提醒"
ElseIfx=1Then
str=CStr(p/2)
ElseIfx=-1Then'
限定反三角的范围
str=CStr(-p/2)
Else
str=CStr(Atn(x/Sqr(1-x*x)))
Case7
数据超出反余弦的数值范围,请重新输入"
str=CStr(0)
ElseIfx=-1Then
str=CStr(p)
str=CStr(Atn(-x/Sqr(1-x*x)))+2*Atn
(1)
Case8
str=CStr(Atn(x))
Case9
str=(Atn(x)+2*Atn
(1))
Case10
Ifx<
=0Then
请重新输入一个正数"
'
Log函数
str=CStr(Log(x)/Log(10))
Case11
Else'
Ln函数
str=CStr(Log(x))
EndSelect
Text1.Text=str
str1=str
str="
PrivateSubCommand3_Click(IndexAsInteger)'
关于小数点的使用
Text1.Text="
IfIndex<
10Then
str=str+CStr(Index)
IfInStr(str,"
)=0Thenstr=str+"
IfLen(str)>
1AndLeft(str,1)="
AndMid(str,2,1)<
str=Right(str,Len(str)-1)'
IfNotwThenstr1=strElsestr2=str
PrivateSubCommand4_Click(IndexAsInteger)
Ifstr2<
x1=Val(str1):
x2=Val(str2)
SelectCaseint1
Case0
Ifx2=0Then
除数不能为0!
计算器"
ExitSub
x3=x1/x2
x3=x1*x2
x3=x1+x2'
加减乘除运算
x3=x1-x2
str1=CStr(x3)
str2="
:
Text1.Text="
w=True:
int1=Index
PrivateSubCommand5_Click(IndexAsInteger)
SelectCaseIndex'
“M+”按钮
x4=0:
“0->
M”按钮
Text1.Text=CStr(x4)'
“RM”按钮
x4=x4+Val(Text1.Text)
PrivateSubCommand6_Click()
0AndLeft(str,1)="
-"
Then'
负号的使用
str=Right(str,Len(str)-1)
&
str
PrivateSubCommand8_Click()'
“C”按钮
str1="
w=False
PrivateSubCommand9_Click()'
“CE"
按钮
Text1.Text=str1:
str2="
PrivateSubCommand1_Click()'
OFF按钮
Unloadfrmcal
PrivateSubCommand10_Click()'
str3=Text1.Text
str3=Left(str3,Len(str3)-1)
Ifstr3="
Text1.Text=str3
str=str3
PrivateSubCommand11_Click()'
=按钮
IfLen(Trim(str1))=0OrLen(Trim(str2))=0Then
ExitSub
SelectCaseint1
Ifx2=0Then
MsgBox"
ExitSub'
防止除数为零
x3=x1/x2
Case1
x3=x1*x2
Case2
x3=x1+x2
Case3
x3=x1-x2
EndSelect
Text1.Text=CStr(x3)
str1=Text1.Text
str="
PrivateSubCommand12_Click()'
显示进制转换窗口
formjdzh.Show
进制转化窗体
OptionExplicit
Dimstr,t,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11AsString
Dimn,n1,n2,n3,m,m1,m2,int1,int2,int3AsLong
转换成二进制
IfOption1=TrueThen'
输入二进制数
Text2.Text=Text1.Text'
结果不变
ElseIfOption2=TrueThen'
八进制转换成二进制
Form=1To3
t2=CStr(nMod2)
n=n\2
t3=t2+t3
str=Left(str,Len(str)-1)
IfLeft(t4,1)="
AndLeft(t4,2)<
00"
t4=Right(t4,Len(t4)-1)
ElseIfLeft(t4,2)="
AndLeft(t4,3)<
000"
t4=Right(t4,Len(t4)-2)
ElseIfOption3=TrueThen'
十进制转换成二进制
t2="
m=CInt(str)
t1=CStr(n)
t2=t1+t2
Text2.Text=t2
ElseIfOption4=TrueThen'
十六进制转换成二进制
n=10
Form=1To4
ElseIfLeft(t4,3)="
AndLeft(t4,4)<
0000"
t4=Right(t4,Len(t4)-3)
PrivateSubCommand2_Click()'
转换成八进制
二进制转换成八进制
IfLen(str)=1Then
+str
ElseIfLen(str)=2Then
t=Right(str,3)
t2=Right(t,1)
n=CInt(t2)
int1=n*2^(m-1)
t=Left(t,Len(t)-1)
str=Left(str,Len(str)-3)
八进制转换成八进制,结果不变
Text2.Text=Text1.Text
十进制转换成八进制
int1=n*2^(m1-1)
十六进制转换成八进制
p=p+1
m=q
DoWhi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- my 计算器 程序设计 报告 要点