您的位置:程序门 -> vb -> 基础类



用vb编出计算器的功能?99我!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


用vb编出计算器的功能?99我!
发表于:2007-11-27 11:09:20 楼主

模仿windows自带的计算器
1   基本的界面要做出来
2   要有菜单栏
3   能有效地实现数字的输入
4   能实现backspace
5   实现“清零按钮”
6   能实现正整数的加法\乘法\除法
7   能实现整数的加法\乘法\除法

由于我是新手,只会很基础的vb语言!所以请大家帮忙!
发表于:2007-11-27 11:17:491楼 得分:0
这应该是基础吧
发表于:2007-11-27 11:18:122楼 得分:0
竟然是沙发
发表于:2007-11-27 11:18:213楼 得分:0
作业吧。。。。。
给你个,网上的,界面你可以看到程序自己添加哈。
vbscript code
option explicit dim strnumber as string dim strpoint as string dim dblnum1 as double dim intoperator as integer '清除结果 private sub cmdgt_click() txtdisplay.text = "0." strnumber = "" strpoint = "." intoperator = 7 end sub '输入数字 private sub cmdnumber_click(index as integer) strnumber = strnumber & cmdnumber(index).caption txtdisplay.text = strnumber & strpoint end sub private sub cmdonoff_click() end end sub '运算过程 private sub cmdoperator_click(index as integer) dim dblnum2 as double '是第一次单击运算符时,将输入的值先赋给第一个数,否则赋值给第二个数进行运算 if intoperator = 7 then dblnum1 = cdbl(txtdisplay.text) else dblnum2 = cdbl(val(txtdisplay.text)) '根据输入的符号进行运算 '求普通运算 select case intoperator case 0 dblnum1 = dblnum1 + dblnum2 case 1 dblnum1 = dblnum1 - dblnum2 case 2 dblnum1 = dblnum1 * dblnum2 case 3 if dblnum2 <> 0 then dblnum1 = dblnum1 / dblnum2 else msgbox "除数不能为“0”!请重新输入除数。", vbokonly + vbinformation, "除零错误" index = intoperator end if case 6 dblnum1 = dblnum1 * dblnum2 / 100 end select end if '取得当前输入的运算符,以做下次运算 intoperator = index strnumber = "" txtdisplay = cstr(dblnum1) '判断是否为文本框中的数字加点 if not txtdisplay like "*.*" then txtdisplay.text = txtdisplay.text & "." end if end sub private sub cmdotheroper_click(index as integer) dim dblnum as double '求平方根,平方, dblnum = cdbl(val(txtdisplay.text)) select case index case 0 '验证数据是否有效 if dblnum >= 0 then txtdisplay.text = cstrsqr(dblnum)) else msgbox "负数不能开平方根!", _ vbokonly + vbcritical, "开平方根错误" end if case 1 txtdisplay.text = cstr(dblnum ^ 2) end select '判断是否为文本框中的数字加点 if not txtdisplay like "*.*" then txtdisplay.text = txtdisplay.text & "." end if end sub private sub cmdpoint_click() strnumber = strnumber & strpoint strpoint = "" end sub private sub form_keydown(keycode as integer, shift as integer) '使被按下的数字键的对应按钮取得焦点 select case keycode case 48 to 57 cmdnumber(keycode - 48).setfocus case 96 to 105 cmdnumber(keycode - 96).setfocus case else '使按下的符号键对应的按钮取得焦点 if keycode = 107 or (shift = vbshiftmask and keycode = 187) then cmdoperator(0).setfocus cmdoperator_click (0) elseif keycode = 109 or keycode = 189 then cmdoperator(1).setfocus cmdoperator_click (1) elseif keycode = 106 or (shift = vbshiftmask and keycode = 56) then cmdoperator(2).setfocus cmdoperator_click (2) elseif keycode = 111 or keycode = 191 then cmdoperator(3).setfocus cmdoperator_click (3) elseif keycode = 13 then cmdoperator(7).setfocus cmdoperator_click (7) elseif keycode = 8 then cmdgt.setfocus call cmdgt_click end if end select end sub private sub form_keypress(keyascii as integer) '将合法的数据输入到文本框 select case keyascii case 48 to 58 '调用数字键点击处理程序 cmdnumber_click keyascii - 48 keyascii = 0 case 46 '调用小数点输入 cmdpoint_click keyascii = 0 case 13 '当敲击回车时,不能触发form的 keyup 事件,因此在这里设置文本框的焦点 txtdisplay.setfocus case else keyascii = 0 end select end sub private sub form_keyup(keycode as integer, shift as integer) txtdisplay.setfocus end sub private sub form_load() strnumber = "" strpoint = "." intoperator = 7 end sub
发表于:2007-11-27 11:18:474楼 得分:0
是啊,但是我不会呢-   -!
请帮下忙吧!
发表于:2007-11-27 11:30:425楼 得分:0
vbscript   code   这个是论坛的一个帖代码的功能。
你看下面的,用了哪些控件,相应的添加进去就可以了。还是自己琢磨下哇。


快速检索

最新资讯
热门点击