【VB开源代码栏目提醒】:网学会员为广大网友收集整理了,用VB程序设计一个计算器 - 职业资格,希望对大家有所帮助!
第28卷 第2期 湖北广播电视大学学报 Vol.28 No.2 2008年2月 Journal of HuBei TV University February. 2008 158~159 用
VB程序设计一个计算器 姚兴华 (佛山市高级技工学校,广东 佛山 528200) 内容提要 技校学生在
学习VB语言时,找不到简单而实用的例子,其实在计算机附件中有一个“计算器”,通过用
VB语言设计一个计算器,加深对
VB语言的认识。
关键词
VB语言;
VB语句;计算器;程序 中图分类号 TP323 文献标识码 A 文章编号 1008-7427(2008)02-0158-02 编程前,必须了解计算器个按键的功能,
计算机附件中,计算器(标准型)的按健功能如下:(1)数值字符组:0~9、“.”,共11个键,每次键入时,内容直接显示在显示框(
VB叫文本框,下同)内。
(2)单独运算符组:“/-”(正负转换)、“sqrt”(开方)、“1/x”(求倒数),“%”(求百分比),将显示框的内容分别正负变换、开方、求倒数或求存储值的百分比后再显示。
(3)基本运算符组:“+”(加)、“-”(减)、“*”(乘以)、“/”(除以)、“=”(等于),如果之前存储有加、减、乘、除之一,则作相应的计算后显示和存储,再把当前的基本运算符作为运算字段存储。
(4)求和运算符组:“MC”(累加器清零)、“MR”(显示累加器内容)、“MS”(用显示框内容替代累加器内容)、“M”(将显示框内容加到累加器内容中但不显示),用于连续求和。
(5)操作按纽组:“退格”(将刚才输入的数字删除)、“CE”(把显示框内容变成零)、“C”(初始化,将显示框内容、运算符存储器、数据存储器请空) 了解各按键的功能后,还要了解各按键的运作情况和各存储器的情况,以便用相应的变量去表示。
(1)每次按求和运算符后,求和结果要作记录存储或清除,用M_DATA变量表示。
(2)每次按基本运算符后,显示框的内容和运算符要作记录存储,用L_DATA存储内容,用FUHAO存储运算符。
(3)连续两次按基本运算符,后面的一次不作运算动作,只存储运算符,用CF 1表示刚按基本运算符(除“”外),CF 0表示刚按数字字符、单独运算符(除“/-”外)等。
(4)求负数的平方、求零的倒数、除于零这三种情况,将显示相应的警告信息,以后只有按初始化键才有反应,用变量LF 1表示这三个结果。
(5)按完单独运算符、单独运算符(正负转换符外)、基本运算符、求和运算符后,再按数字字符,显示框内容会用目前字符作为第一个数字从头开始显示。
用变量TF 1表示刚按完这些字符,即用变量TF 0表示刚按完数字字符。
(6)文本框的内容是字符串,要转换成数字量才能计算,用变量D_DATA记录当前的字符串。
有了这些设定,即可进入编程状态,程序的窗口布局如图1所示。
各对象主要属性设置值为: Form1的Caption属性为“计算器”;Text1的Alignment属性为“1-靠右”,Locked的属性为“True”;Text2的Alignment属性为“2-居中”;Enabled的属性为“False”;Command1 ~ Command27的Caption的属性值分别是“退格”、CE、C、MC、MR、MS、M、7、8、9、4、5、6、1、2、3、0、“/-”、“.”、“/”、“”、“-”、“”、“sqrt”、“”、“1/x”、“”。
图1 图2 具体
程序如下:(说明:续行表示该行与上一行在
VB中是同一行)运行本程序,屏幕显示如图2。
Dim m_data As Double 用于M求和Dim l_data As Double 加减乘除的前一个数据Dim fuhao As String 加减乘除的符号之一 Dim cf As Integer 、-、、/后置1置1后、-、、/不计算 Dim lf As Integer 负数开方、除零时置1,置1后只能复位C Dim d_data As String 当前的字符串 Dim tf As Integer 、-、、/、开方、、1/x、置1,置1后输数字从1位算起 Private Sub Command1_Click()输入退格If lf 1 Or cf 1 Or tf 1 Or d_data 0(续行) Then GoTo 10l1 Len(d_data)If l1 1 Then d_data 0 Else d_data Left(d_data l1 - 1)If InStr(d_data .) 0 Then Text1.Text d_data .If InStr(d_data .) 0 Then Text1.Text d_data10:End Sub Private Sub Command10_Click()输入9Call num_Load(9)End Sub Private Sub Command11_Click()输入4Call num_Load(4)End Sub Private Sub Command12_Click()输入5Call num_Load收稿日期2008-01-08 作者系佛山市高级技工学校讲师。
第2期 姚兴华:用VP程序
设计一个计算器 159(5)End Sub Private Sub Command13_Click()输入6Call num_Load(6)End Sub Private Sub Command14_Click()输入1Call num_Load(1)End Sub Private Sub Command15_Click()输入2Call num_Load(2)End Sub Private Sub Command16_Click()输入3Call num_Load(3)End Sub Private Sub Command17_Click()输入0Call num_Load(0)End Sub Private Sub Command18_Click() 输入/-If lf 1 Then GoTo 10If Val(d_data) 0 Then GoTo 10If Left(d_data 1) - Then d_data - Trim(d_data) Else d_data Right(d_data Len(d_data) - 1)If InStr(d_data .) 0 Then Text1.Text d_data .If InStr(d_data .) 0 Then Text1.Text d_data10:End Sub Private Sub Command19_Click() 输入”.”If lf 1 Then GoTo 10If tf 1 Then d_data 0.: GoTo 20:If InStr(d_data .) 0 Then GoTo 10d_data d_data .20: Text1.Text d_databaif 010:End Sub Private Sub Command2_Click()输入”CE”If lf 1 Then GoTo 10d_data 0Text1.Text 0.tf 010:End Sub Private Sub Command20_Click() 求除数/If cf 1 Then GoTo 20Call num_Compute(/)20: fuhao /End Sub Private Sub Command21_Click() 求乘数If cf 1 Then GoTo 20Call num_Compute()20: fuhao End Sub Private Sub Command22_Click() 求减数If cf 1 Then GoTo 20Call num_Compute(-)20: fuhao -End Sub Private Sub Command23_Click() 求和If cf 1 Then GoTo 20Call num_Compute()20: fuhao End Sub Private Sub Command24_Click() 求sqrtIf Val(Text1.Text) 0 Then GoTo 20If Left(Text1.Text 1) - Then Text1.Text 函数的输入无效。
: d_data : lf 1: GoTo 20d_data Str(Sqr(Val(Text1.Text)))If InStr(d_data .) 0 Then Text1.Text d_data .If InStr(d_data .) 0 Then Text1.Text d_datacf 0tf 120:End Sub Private Sub Command25_Click() 求d_data Str(l_data Val(d_data 0.01))If InStr(d_data .) 0 Then Text1.Text d_data .-If InStr(d_data .) 0 Then Text1.Text d_datacf 0tf 110:End Sub Private Sub Command26_Click() 求倒数If lf 1 Then GoTo 10If Val(d_data) 0 Then Text1.Text 出错,正无穷大。
: lf 1: GoTo 10d_data Str(1 / (Val(d_data)))If InStr(d_data .) 0 Then Text1.Text d_data . If InStr(d_data .) 0 Then Text1.Text d_datacf 0tf 110:End Sub Private Sub Command27_Click()号If lf 1 Then GoTo 10Call num_Compute()10:End Sub Private Sub Command3_Click()输复位CCall Form_ActivateEnd Sub Private Sub Command4_Click()If lf 1 Then GoTo 10m_data 0d_data 0Text1.Text 0.Text2.Text 10:End Sub Private Sub Command5_Click() 输入MRIf lf 1 Then GoTo 10d_data Trim(Str(m_data))If InStr(d_data .) 0 Then Text1.Text d_dataIf InStr(d_data .) 0 Then Text1.Text d_data .tf 110:End Sub Private Sub Command6_Click() 输入MSIf lf 1 Then GoTo 10m_data Val(Text1.Text)Text2.Text If m_data 0 Then Text2.Text Mtf 110:End Sub Private Sub Command7_Click() 输入Mm_data m_data Val(Text1.Text)Text2.Text If m_data 0 Then Text2.Text Mtf 1End Sub Private Sub Command8_Click() 输入7Call num_Load(7)End Sub Private Sub Command9_Click() 输入8Call num_Load(8)End Sub Private Sub Form_Activate()l_data 0fuhao d_data 0Text1.Text 0.lf 0cf 0End Sub Sub num_Load(n As String)If lf 1 Then GoTo 10If d_data 0 Or tf 1 Then d_data n: GoTo 20l1 Len(d_data)If Left(Text1.Text 1) - Then l1 l1 - 1If InStr(d_data .) 0 Then l1 l1 - 1If l1 14 Then GoTo 10d_data d_data nIf InStr(d_data .) 0 Then Text1.Text d_data20: If InStr(d_data .) 0 Then Text1.Text d_data .cf 0: tf 010:End SubSub num_Compute(n As String)If lf 1 Then GoTo 10If cf 1 And n Then GoTo 10If fuhao Then d_data Str(l_data Val(d_data)): GoTo 20If fuhao - Then d_data Str(l_data - Val(d_data)): GoTo 20If fuhao Then d_data Str(l_data Val(d_data)): GoTo 20If fuhao / And Val(d_data) 0 Then d_data Str(l_data / Val(d_data))If fuhao / And Val(d_data) 0 Then Text1.Text 出错,正无穷大。
: cf 1: lf 1: GoTo 2020: If InStr(d_data .) 0 Then Text1.Text d_data .If InStr(d_data .) 0 Then Text1.Text d_dataIf n Then GoTo 10l_data Val(d_data)10: cf 1tf 1Text3.Text Str(cf)End Sub 参考文献 1 刘瑞新,汪远征.Visual Basic程序设计
课程M.机械工业出版社. 2 冯昊.Visual Basic 6.0程序设计与上几指导M.清华大学出版社. Program a Calculator in
VB Language YAO Xing-hua Abstract It is not easy for teachers to find a brief and practical example during the teaching of
VB language. Actually there is soft ware called calculator in the attachments of Windows system. This article is to briefly elaborate how to program a calculator through
VB language and to increase the knowledge of
VB language as well. Key
words
VB language;
VB sentences;calculator;program