欢迎来到天天文库
浏览记录
ID:37898611
大小:31.00 KB
页数:3页
时间:2019-06-02
《VB设计计算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OptionExplicitPublicFunctionFun_YunSuan(strAsString)AsDoubleDimstr1AsString,str2AsString,ch1AsString,ch2AsStringDimstr_lenAsInteger,iAsInteger,jAsInteger,kuohaoAsIntegerDimstr1_lenAsIntegerDimmAsInteger,nAsIntegerDimdata(20)AsDouble,flag(20)AsString,IndexAsIntegerDi
2、mdAsIntegerstr=str&"+"str_len=Len(str)Index=0j=1Fori=1Tostr_len'获取操作数ch1=Mid(str,i,1)Ifch1="+"Orch1="-"Orch1="*"Orch1="/"ThenIfj3、r,m,1)Ifch2="("Thenkuohao=kuohao+1ElseIfch2=")"Thenkuohao=kuohao-1EndIfIfkuohao=0Thenstr1_len=m-i-1ExitForEndIfNextmstr1=Mid(str,i+1,str1_len)data(Index)=Fun_YunSuan(str1)i=m+1flag(Index)=Mid(str,i,1)j=i+1Index=Index+1EndIfNextiFori=0ToIndex-1If(flag(i-d)="*"Orflag(4、i-d)="/")ThenIf(flag(i-d)="*")Thendata(i-d)=data(i-d)*data(i-d+1)ElseIfdata(i-d+1)=0ThenMsgBox("除数不能为‘0’!")ExitFunctionElsedata(i-d)=data(i-d)/data(i-d+1)EndIfEndIfForj=(i-d)To(Index-1)-dflag(j)=flag(j+1)If(j>i-d)Thendata(j)=data(j+1)EndIfNextjd=d+1EndIfNextii=0d=0D5、oWhile(flag(i)<>"")If(flag(i-d)="+"Orflag(i-d)="-")ThenIf(flag(i-d)="+")Thendata(i-d)=data(i-d)+data(i-d+1)Elsedata(i-d)=data(i-d)-data(i-d+1)EndIfForj=(i-d)To(Index-1)-dflag(j)=flag(j+1)If(j>i-d)Thendata(j)=data(j+1)EndIfNextjd=d+1EndIfi=i+1LoopFun_YunSuan=data(0)E6、ndFunction
3、r,m,1)Ifch2="("Thenkuohao=kuohao+1ElseIfch2=")"Thenkuohao=kuohao-1EndIfIfkuohao=0Thenstr1_len=m-i-1ExitForEndIfNextmstr1=Mid(str,i+1,str1_len)data(Index)=Fun_YunSuan(str1)i=m+1flag(Index)=Mid(str,i,1)j=i+1Index=Index+1EndIfNextiFori=0ToIndex-1If(flag(i-d)="*"Orflag(
4、i-d)="/")ThenIf(flag(i-d)="*")Thendata(i-d)=data(i-d)*data(i-d+1)ElseIfdata(i-d+1)=0ThenMsgBox("除数不能为‘0’!")ExitFunctionElsedata(i-d)=data(i-d)/data(i-d+1)EndIfEndIfForj=(i-d)To(Index-1)-dflag(j)=flag(j+1)If(j>i-d)Thendata(j)=data(j+1)EndIfNextjd=d+1EndIfNextii=0d=0D
5、oWhile(flag(i)<>"")If(flag(i-d)="+"Orflag(i-d)="-")ThenIf(flag(i-d)="+")Thendata(i-d)=data(i-d)+data(i-d+1)Elsedata(i-d)=data(i-d)-data(i-d+1)EndIfForj=(i-d)To(Index-1)-dflag(j)=flag(j+1)If(j>i-d)Thendata(j)=data(j+1)EndIfNextjd=d+1EndIfi=i+1LoopFun_YunSuan=data(0)E
6、ndFunction
此文档下载收益归作者所有