用VB制作计算器.docx

上传人:b****8 文档编号:11936320 上传时间:2023-06-03 格式:DOCX 页数:13 大小:40.10KB
下载 相关 举报
用VB制作计算器.docx_第1页
第1页 / 共13页
用VB制作计算器.docx_第2页
第2页 / 共13页
用VB制作计算器.docx_第3页
第3页 / 共13页
用VB制作计算器.docx_第4页
第4页 / 共13页
用VB制作计算器.docx_第5页
第5页 / 共13页
用VB制作计算器.docx_第6页
第6页 / 共13页
用VB制作计算器.docx_第7页
第7页 / 共13页
用VB制作计算器.docx_第8页
第8页 / 共13页
用VB制作计算器.docx_第9页
第9页 / 共13页
用VB制作计算器.docx_第10页
第10页 / 共13页
用VB制作计算器.docx_第11页
第11页 / 共13页
用VB制作计算器.docx_第12页
第12页 / 共13页
用VB制作计算器.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用VB制作计算器.docx

《用VB制作计算器.docx》由会员分享,可在线阅读,更多相关《用VB制作计算器.docx(13页珍藏版)》请在冰点文库上搜索。

用VB制作计算器.docx

用VB制作计算器

化工原理大作业

程序设计报告

所选课题:

化工计算程序设计

指导老师:

马四朋

作者姓名:

严程相

作者学号:

0887

学科班级:

化学工程与工艺3班

所在学院:

化学与化工学院

摘要2

目录3

第一章任务概述4

1.1、目标4

1.2、需求概述4

4

4

第二章总体设计5

2.1、系统结构功能图5

第三章功能分配6

3.1、打开计算器界面6

3.2、平方根,平方,倒数,正弦,余弦的实现8

3.3、退格9

3.4、清除9

9

9

3.5、鼠标的输入10

3.6、进制间的转换12

小结14

摘要

这个程序是我用VB制作的,它可以实现简单的四则运算,数字的平方,平方根,正弦,余弦,倒数,以及进制的相互转换。

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

在这个计算器的程序中,我用到了单行选择语句If…Then…Else…,If语句的嵌套,多条件选择语句SelectCase,而且还用到了组合框,框架,菜单的设计,以及键盘事件,可以通过键盘来用于计算。

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

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

还有说明了键盘怎样用于操作计算。

虽然表达能力不太行,但我会尽力使用系统结构图,程序流程图,划分多个模块,让大家明白我设计的运算器的功能的。

第一章任务概述

1.1、目标

本系统的目标是建立一套可以计算数的平方,平方根,倒数,正弦,余弦,数字的进制转换的计算器系统,系统可以帮助我们更好的学习,更好的节省时间。

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

1.2、需求概述

根据本系统的需求分析,系统的需求可以分为以下的几个方面:

你可以利用鼠标点击界面上的各个按钮来实现计算器的运算。

当不方便使用鼠标时可以利用键盘来实现运算,数字的复制和粘贴

第二章总体设计

2.1、系统结构功能图

图2-1系统结构功能图

第三章功能分配

3.1、打开计算器界面

图3-1计算器界面

DimdflagAsInteger‘小数点仍然存在吗?

DimiAsInteger

DimopnreAsInteger‘初始值

DimprevAsDouble‘前面输入的操作数

DimoflagAsInteger‘等号前后对数字的标记

DimindAsInteger‘cmdoperator控件数组的数

DimxAsDouble

DimyAsDouble

'运算符(+,-,x,/,=)的Click事件过程

'如果接下来的按键是数字键,增加val(text1.Caption)。

'如果有一个操作数,则设置prev。

'如果有两个操作数,则将prev设置为prev与val(text1.Caption)

'当前输入字符串的运算结果,并显示结果。

PrivateSubcmdnumber_Click(IndexAsInteger)

Ifind=4Then

prev=0

text1.Caption=""

ind=0

EndIf

opnre=0

Ifoflag=0Then

text1.Caption=""

EndIf

oflag=1

小数点(.)按钮的Click事件过程

'如果上一次按键为运算符,初始化opnre为"0.";

'否则显示时追加一个小数点。

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

Iftext1.Caption<>"0"Then

text1.Caption=text1.Caption&cmdnumber(Index).Caption

Else

text1.Caption=""&cmdnumber(Index).Caption

EndIf

Else

Ifdflag=0Then

text1.Caption=text1.Caption&"."

dflag=1

Else

MsgBox("ILLEGALSAIRAM")

EndIf

EndIf

'窗体的初始化过程

'设置所有变量为其初始值。

PrivateSubForm_Load()

计算器.Height=5460

计算器.Width=4680

prev=0

oflag=0

ind=0

opnre=0

Clipboard.Clear

EndSub

3.2、平方根,平方,倒数,正弦,余弦的实现

“平方根(sqrt)”按钮的click事件

PrivateSubcmdsqrt_Click()

y=Val(text1.Caption)

text1.Caption=Sqr(y)

EndSub

“平方(sqmt)”按钮的click事件

PrivateSubCmdsqmt_Click()

EndSub

x=Val(text1.Caption)

text1.Caption=x^2

EndSub

“倒数(reciprocal)”按钮的click事件

PrivateSubcmdreciprocal_Click()

x=Val(text1.Caption)

Ifx=0Then

MsgBox("除数不能为零!

")

Else

text1.Caption=1/x

EndIf

EndSub

“正弦(sine)”按钮的click事件

PrivateSubCmdsine_Click()

text1.Caption=Sin(x)

EndSub

“余弦(cosine)”按钮的click事件

PrivateSubcmdcosine_Click()

DimaAsInteger

a=Val(text1.Caption)

text1.Caption=Cos(a)

EndSub

3.3、退格

“退格”按钮的click事件

PrivateSubcmdback_Click()

DimlengthAsInteger

length=Len(text1.Caption)‘数字的长度

Iflength=1Then

Iftext1.Caption<>"0"Then‘除非结果为零,否则长度都要减一

text1.Caption="0"

EndIf

Else

text1.Caption=Left(text1.Caption,length-1)

EndIf

flag=True

EndSub

3.4、清除

C(取消)按钮的Click事件过程

PrivateSubCmdclear_Click()

text1.Caption="0"

CE(取消输入)按钮的Click事件过程

'重新设置显示并初始化变量。

PrivateSubCancelEntry_Click()

dflag=0

prev=0

oflag=0

ind=0

opnre=0

text1.Caption="0"

EndSub

3.5、鼠标的输入

利用keypress事件,当用户按下和松开一个ASCII字符键时发生。

PrivateSubForm_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=Asc(".")Then

i=10

cmdnumber_Click(i)

Beep‘当按下这个ASCII字符键时会发出响声

ElseIfKeyAscii=Asc("0")Then

i=0

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("1")Then

i=1

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("2")Then

i=2

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("3")Then

i=3

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("4")Then

i=4

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("5")Then

i=5

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("6")Then

i=6

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("7")Then

i=7

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("8")Then

i=8

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("9")Then

i=9

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("0")Then

i=0

cmdnumber_Click(i)

Beep

ElseIfKeyAscii=Asc("+")Then

i=0

cmdoperator_Click(i)

Beep

ElseIfKeyAscii=Asc("+")Then

i=0

cmdoperator_Click(i)

Beep

ElseIfKeyAscii=Asc("-")Then

i=1

cmdoperator_Click(i)

Beep

ElseIfKeyAscii=Asc("/")Then

i=2

cmdoperator_Click(i)

Beep

ElseIfKeyAscii=Asc("*")Then

i=3

cmdoperator_Click(i)

Beep

ElseIfKeyAscii=Asc("=")Then

i=4

cmdoperator_Click(i)

Beep

ElseIfKeyAscii=Asc("d")OrKeyAscii=Asc("D")Then

dflag=0

prev=0

oflag=0

ind=0

opnre=0

text1.Caption="0"

Beep

Beep

ElseIfKeyAscii=Asc("c")OrKeyAscii=Asc("C")Then

text1.Caption="0"

Beep

EndIf

EndSub

3.6、进制间的转换

进制转换按钮的click事件

PrivateSubCommand1_Click()

DimxAsLong,yAsString,sAsInteger‘定义

DimchAsString,nAsInteger

ch="09ABCDEF"‘把所有数字归纳

IfCombo1.Text="二进制"Then

n=2

Else

IfCombo1.Text="八进制"Then

n=8

Else

n=16

EndIf

EndIf

y=""

x=Val(text1.Caption)

Ifx=0Then

Text2.Text=""

MsgBox"请输入要转换的十进制数"

text1.Caption=""

ExitSub

EndIf

DoWhilex>0

s=xModn‘取x/n的最大整数

x=Int(x/n)‘取小于或等于x/n的最大整数

y=Mid(ch,s+1,1)+y

Loop

Text2.Text=y

EndSub

图3-6-1十进制转换成二进制

图3-6-2十进制转换成八进制

图3-6-3十进制转换成十六进制

小结

通过这次的课程设计,虽然很辛苦,但同时也让我弄懂了许多以前感觉很模糊的概念,也更加巩固了自己所学的知识,使得自己所学的知识更加系统化了,这次的程序设计,做的很疯狂,有时还会熬夜,但心里挺开心的。

因为自己可以做出点东西出来,不会觉得自己这半年什么也没学到。

这是其他的实验中海没有的事经过这几天的变成训练,。

总之,通过这次的程序设计,让我明白了很多,不管是所学的知识还是所领悟的道理。

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

当前位置:首页 > 经管营销 > 经济市场

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

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