毕业设计论文:基于VB的计算器的设计与实现.doc

上传人:wj 文档编号:4855413 上传时间:2023-05-07 格式:DOC 页数:33 大小:150.11KB
下载 相关 举报
毕业设计论文:基于VB的计算器的设计与实现.doc_第1页
第1页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第2页
第2页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第3页
第3页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第4页
第4页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第5页
第5页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第6页
第6页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第7页
第7页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第8页
第8页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第9页
第9页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第10页
第10页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第11页
第11页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第12页
第12页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第13页
第13页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第14页
第14页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第15页
第15页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第16页
第16页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第17页
第17页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第18页
第18页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第19页
第19页 / 共33页
毕业设计论文:基于VB的计算器的设计与实现.doc_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计论文:基于VB的计算器的设计与实现.doc

《毕业设计论文:基于VB的计算器的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文:基于VB的计算器的设计与实现.doc(33页珍藏版)》请在冰点文库上搜索。

毕业设计论文:基于VB的计算器的设计与实现.doc

摘要

我用VB制作这个程序的简单计算器,它包括一个标准的计算器和一个科学计算器。

它可以实现简单的加减乘除四则运算,数字的平方、平方根,正弦、余弦、正切,倒数、指数函数、对数函数,角度、弧度、梯度的转换,以及各进制的相互转换。

而且它的功能还有退格,清除当前数据,清除所有数据,复制数据,粘贴数据。

在这个计算器的程序中,我用到了单行选择语句If…Then…Else…,

块语句if…then…endif,If语句的嵌套,多条件选择语句SelectCase,而且还用到了按钮、文本框、框架、单选按钮控件,菜单的设计。

在此报告中我重点叙述了计算机的各个功能及用法。

特别是进制间的转换和数字与运算符之间的联系。

虽然描述的不太完整,但我会尽力使用系统结构图,划分多个模块,让大家明白我设计的运算器的功能的。

目录

第一章、程序概述 -3-

1.1、创作目的 -3-

1.2、基本功能 -3-

第二章、总体设计 -4-

2.1、程序轮廓图 -4-

第三章、程序代码 -6-

3.1、计算器界面 -6-

3.1.1、标准型计算器:

-6-

3.1.2、科学型计算器:

-7-

3.2、标准计算器代码 -8-

3.2.1、变量的定义及初始化 -8-

3.2.2、简单的运算 -8-

3.2.3、退格、清除、清空 -10-

3.2.4、复制、粘贴 -11-

3.2.5、两窗体的切换 -12-

3.3、科学型计算器的代码 -12-

3.3.1、变量的定义及初始化 -12-

3.3.2、简单的运算 -13-

3.3.3、正弦、余弦、正切 -15-

3.3.4、平方、立方、多次方 -15-

3.3.5、指数函数、对数函数 -16-

3.3.6、倒数、平方根 -16-

3.3.7、角度、弧度、梯度 -17-

3.3.8、各进制转换 -18-

3.3.9、退格、清除、清空 -27-

3.3.10、复制、粘贴 -28-

3.3.11、两窗体的切换 -29-

第四章、总结 -30-

4.1、对学习者知识的要求:

-30-

4.2、学习程序设计基本要求:

-30-

4.3、程序设计方法概述 -31-

4.4、如何学好VB -31-

4.5、不足之处 -32-

参考文献 -33-

第一章、程序概述

1.1、创作目的

本程序的目标是建立一套可以计算数的平方,平方根,倒数,正弦,余弦,正切,指数函数,对数函数,角度、弧度、梯度相互转换和数字的

进制转换的计算器系统,系统可以帮助我们更快的计算,更好的学习,更

好的节省时间。

还能避免出现一些不必要的计算错误。

1.2、基本功能

1)能够完成整型和实型常数的四则运算。

2)能够进行如下函数的求值运算,包括sin,cos,tan,exp,log,sqr,1/x,及和园周率π。

3)能够实现角度、弧度、梯度的相互转换。

4)能够实现的进制的相互转换。

5)输出时的格式:

结果为整数时不显示小数点,结果为1以下小数时要显示前导0。

6)分门别类采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。

7)能够实现退格键、清除、清空功能。

8)出错处理:

操作数如果不符合数学上的定义,应该给出错误信息。

例:

0做除数,负数或0做真数等情况

第二章、总体设计

2.1、程序轮廓图

输入数字

平方根

平方

余弦

立方

正弦

选择转换的进制

转换

退格

清除说有数据

清除当前数据

正切

倒数

指数函数

对数函数

角度、弧度、梯度的转换

简单四则运算

结果

图一

第三章、程序代码

3.1、计算器界面

3.1.1、标准型计算器:

图二

3.1.2、科学型计算器:

图三

3.2、标准计算器代码

3.2.1、变量的定义及初始化

DimdflagAsInteger

DimiAsInteger

DimopnreAsInteger

DimprevAsDouble

DimoflagAsInteger

DimindAsInteger

DimXAsDouble

DimYAsDouble

PrivateSubForm_Load()

prev=0

oflag=0

ind=0

opnre=0

Clipboard.Clear

ang=3.14/180

EndSub

3.2.2、简单的运算

PrivateSubCommand1_Click(IndexAsInteger)

Ifind=4Then

prev=0

Text1.Text=""

ind=0

EndIf

opnre=0

Ifoflag=0Then

Text1.Text=""

EndIf

oflag=1

IfCommand1(Index).Caption<>"."Then

IfText1.Text<>"0"Then

Text1.Text=Text1.Text&Command1(Index).Caption

Else

Text1.Text=""&Command1(Index).Caption

EndIf

Else

Ifdflag=0Then

Text1.Text=Text1.Text&"."

dflag=1

Else

MsgBox("Error")

EndIf

EndIf

EndSub

PrivateSubCommand2_Click(IndexAsInteger)

Ifopnre=0OrIndex=4Then

Ifind=0Then

prev=prev+Val(Text1.Text)

ElseIfind=1Then

prev=prev-Val(Text1.Text)

ElseIfind=2Then

IfVal(Text1.Text)=0Then

MsgBox("SORRYDIVIDEZERO")

ExitSub

Else

prev=prev/Val(Text1.Text)

EndIf

ElseIfind=3Then

prev=prev*Val(Text1.Text)

EndIf

Text1.Text=Str(prev)

oflag=0

EndIf

opnre=1

ind=Index

dflag=0

EndSub

3.2.3、退格、清除、清空

PrivateSubCommand3_Click()

DimlengthAsInteger

length=Len(Text1.Text)

Iflength=1Then

IfText1.Text<>"0"Then

Text1.Text="0"

EndIf

Else

Text1.Text=Left(Text1.Text,length-1)

EndIf

flag=True

EndSub

PrivateSubCommand4_Click()

dflag=0

prev=0

oflag=0

ind=0

opnre=0

Text1.Text="0"

EndSub

PrivateSubCommand5_Click()

Text1.Text="0"

EndSub

3.2.4、复制、粘贴

PrivateSubfz_Click()

Clipboard.Clear

Clipboard.SetTextText1.Text

EndSub

PrivateSubzt_Click()

Text1.Text=""

Text1.Text=Clipboard.GetText()

EndSub

3.2.5、两窗体的切换

PrivateSubck_Click()

form1.Hide

Form2.Show

EndSub

PrivateSubckx_Click()

Form2.Hide

form1.Show

EndSub

3.3、科学型计算器的代码

3.3.1、变量的定义及初始化

DimdflagAsInteger

DimiAsInteger

DimopnreAsInteger

DimprevAsDouble

DimoflagAsInteger

DimindAsInteger

DimXAsDouble

DimYAsDouble

PrivateSubForm_Load()

prev=0

oflag=0

ind=0

opnre=0

Clipboard.Clear

ang=3.14/180

EndSub

3.3.2、简单的运算

PrivateSubCommand1_Click(IndexAsInteger)

Ifind=4Then

prev=0

Text1.Text=""

ind=0

EndIf

opnre=0

Ifoflag=0Then

Text1.Text=""

EndIf

oflag=1

IfCommand1(Index).Caption<>"."Then

IfText1.Text<>"0"Then

Text1.Text=Text1.Text&Command1(Index).Caption

Else

Text1.Text=""&Command1(Index).Caption

EndIf

Else

Ifdflag=0Then

Text1.Text=Text1.Text&"."

dflag=1

Else

MsgBox("Error")

EndIf

EndIf

EndSub

PrivateSubCommand2_Click(IndexAsInteger)

Ifopnre=0OrIndex=4Then

Ifind=0Then

prev=prev+Val(Text1.Text)

ElseIfind=1Then

prev=prev-Val(Text1.Text)

ElseIfind=2Then

IfVal(Text1.Text)=0Then

MsgBox("SORRYDIVIDEZERO")

ExitSub

Else

prev=prev/Val(Text1.Text)

EndIf

ElseIfind=3Then

prev=prev*Val(Text1.Text)

EndIf

Text1.Text=Str(prev)

oflag=0

EndIf

opnre=1

ind=Index

dflag=0

EndSub

3.3.3、正弦、余弦、正切

PrivateSubCommand5_Click()

Text1.Text=Str(Sin(ang*Val(Text1.Text)))

EndSub

PrivateSubCommand6_Click()

Text1.Text=Str(Cos(ang*Val(Text1.Text)))

EndSub

PrivateSubCommand7_Click()

If(Cos(Val(Text1.Text)))<>0Then

Text1.Text=Str(Sin(ang*Val(Text1.Text))/Cos(ang*Val(Text1.Text)))

Else

MsgBox("该数无正切值")

Text1.Text="0"

EndIf

EndSub

3.3.4、平方、立方、多次方

PrivateSubCommand8_Click()

X=Val(Text1.Text)

Text1.Text=X^2

EndSub

PrivateSubCommand9_Click()

X=Val(Text1.Text)

Text1.Text=X^3

EndSub

PrivateSubCommand10_Click()

If(Text1.Text=""Orprev=0)Then

MsgBox("不合法输入!

")

Text1.Text="0"

Else

prev=power(prev,Fix(Val(Text1.Text)))

EndIf

EndSub

3.3.5、指数函数、对数函数

PrivateSubCommand11_Click()

e=Val(Text1.Text)

Text1.Text=Exp(e)

EndSub

PrivateSubCommand12_Click()

L=Val(Text1.Text)

Text1.Text=Log(L)

EndSub

3.3.6、倒数、平方根

PrivateSubCommand13_Click()

X=Val(Text1.Text)

IfX=0Then

MsgBox("除数不能为零!

")

Else

Text1.Text=1/X

EndIf

EndSub

PrivateSubCommand14_Click()

IfText1.Text<0Then

MsgBox("负数不能开方")

Text1.Text="0"

Else

Text1.Text=Str(Sqr(Val(Text1.Text)))

EndIf

EndSub

3.3.7、角度、弧度、梯度

PrivateSubOption5_Click(IndexAsInteger)

DimjdAsDouble,huAsDouble,tdAsDouble

ju=Val(Text1.Text)

SelectCaseIndex

Case0

Text1.Text=ju

Case1

hu=3.141592654/180*ju

Text1.Text=hu

Case2

td=3.141592654/200

Text1.Text=td

EndSelect

ind=Index

EndSub

3.3.8、各进制转换

PrivateSubOption1_Click(IndexAsInteger)

Staticr

SelectCaseIndex

Case0

DimwAsInteger

Forw=2To9

Command1(w).Enabled=True

Nextw

Forw=0To5

Command3(w).Enabled=True

Nextw

Ifr=10Then

Text1.Text=trandec(Val(Text1.Text),16)

ElseIfr=2Then

Text1.Text=Two16(Text1.Text)

ElseIfr=8Then

Text1.Text=OCT_to_HEX(Text1.Text)

EndIf

r=16

Case1

DimXAsInteger

ForX=2To9

Command1(X).Enabled=True

NextX

ForX=0To5

Command3(X).Enabled=False

NextX

Text1.Text=Convert(Text1.Text,r)

Ifr=8ThenText1.Text=trandec(Val(Text1.Text),10)

r=10

Case2

DimYAsInteger

ForY=2To7

Command1(Y).Enabled=True

NextY

Command1(8).Enabled=False

Command1(9).Enabled=False

ForY=0To5

Command3(Y).Enabled=False

NextY

Ifr=10Then

Text1.Text=trandec(Val(Text1.Text),8)

ElseIfr=16Then

Text1.Text=HEX_to_OCT(Text1.Text)

ElseIfr=2Then

Text1.Text=BIN_to_OCT(Text1.Text)

EndIf

r=8

Case3

DimzAsInteger

Forz=2To9

Command1(z).Enabled=False

Nextz

Forz=0To5

Command3(z).Enabled=False

Nextz

Ifr=10Then

Text1.Text=trandec(Val(Text1.Text),2)

EndIf

Ifr=16Then

Text1.Text=HEX_to_BIN(Text1.Text)

ElseIfr=8Then

Text1.Text=OCT_to_BIN(Text1.Text)

EndIf

r=2

EndSelect

Y=N

EndSub

Functionfact(numAsLong)AsLong

If(num<0Ornum=0)Then

MsgBox("Error")

fact=num

Else

If(num>12)Then

MsgBox("指太大")

fact=num

Else

re=1

While(num>0)

re=re*num

num=num-1

Wend

fact=re

EndIf

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2