| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1809 人关注过本帖
标题:改进版计算器?
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:16 
改进版计算器?
这个是我那个简易计算器的改进版 参照了各位大牛的各种好意见 写出来的
帮忙看看有什么可以改进的地方 类模板做的是否合理
程序代码:
**************************************************
*-- 主函数
SET CLOCK on
SET TALK OFF
frmMain = CREATEOBJECT("C_Form")
frmMain.show
READ events
RETURN
*
*-- 程序结束
**************************************************    
  
**************************************************
*-- 类:           C_Form (d:\vfp\td\12.vcx)
*-- 父类:  form
*-- 基类:    form
*-- 时间戳:   09/15/16
DEFINE CLASS C_Form as Form
    _screen.minbutton = .f.
    _screen.MaxButton = .f.
    _screen.Closable = .f.
    caption = "简单计算器"
    width = 600
    height = 400
    autocenter = .T.
    
    ADD OBJECT LT1 as LT WITH sub_label.caption = "第一个数",;
                              top = 100,;
                              left = thisform.width/2 - thisform.LT1.width - 10     
    ADD OBJECT LT2 as LT WITH sub_label.caption = "第二个数",;
                              top = thisform.LT1.top,;
                              left = thisform.width/2 + 10
    ADD OBJECT LT3 as LT WITH sub_label.caption = "第三个数",;
                              top = ThisForm.LT1.TOP + 100,;
                              Left = ThisForm.Width/2 + 10
    ADD OBJECT com_box as ComboBox WITH height = 20, width = 50,;
                              top = ThisForm.LT3.top,  left = ThisForm.width/2 - ThisForm.LT3.width - 10               
    ADD OBJECT exit_one as commandbutton WITH top = thisform.LT3.top + 100, left = 50, width = 100,;
                              height = 25, caption = "退出"
                                                                     
    PROCEDURE init
        WITH  = 2
        .rowsource = [+,-,*,/,@]
        .rowsourcetype = 1
        .value = 5
        ENDWITH
    ENDPROC
  
    PROCEDURE exit_one.click
        a = MESSAGEBOX("真的要退出吗", 1 + 32, "确认")
        IF a == 1
        CLEAR EVENTS
        ELSE

        RETURN
        ENDIF
    ENDPROC
    
    PROCEDURE com_box.interactivechange
        IF !EMPTY(thisform.LT1.sub_text.value) .and. !EMPTY(thisform.LT2.sub_text.value)
            IF ALLTRIM() == '/' .and. VAL(thisform.LT2.sub_text.value) == 0
                MESSAGEBOX("除数不能为零")
                RETURN
            ELSE
                IF  > 4 .or.  < 1
                    MESSAGEBOX("错误的计算方式")
                    RETURN
                ELSE
                    kk = ALLTRIM(thisform.LT1.sub_text.value) + ALLTRIM();
                         + ALLTRIM(thisform.LT2.sub_text.value)
                    thisform.LT3.sub_text.value = ALLTRIM(STR(&kk, 10, 2))
                ENDIF  
            ENDIF
         ENDIF         
    ENDPROC
ENDDEFINE
*
*-- EndDefine: C_Form
**************************************************       

**************************************************
*-- 类:           LT (d:\vfp\td\12.vcx)
*-- 父类:  container
*-- 基类:    container
*-- 时间戳:   09/15/16
*
#INCLUDE "d:\vfp\vfp\foxpro.h"
*
DEFINE CLASS LT AS container
    Width = 160
    Height = 25
    Name = "LT"

    ADD OBJECT sub_label AS label WITH ;
        Caption = "", ;
        Height = this.Height, ;
        Left = 0, ;
        Top = 0, ;
        Width = 60, ;
        Name = "sub_label"

    ADD OBJECT sub_text AS textbox WITH ;
        Height = this.Height, ;
        Left = This.sub_label.Left + this.sub_label.width, ;
        Top = 0, ;
        Width = 100, ;
        Name = "sub_text"
ENDDEFINE
*
*-- EndDefine: LT
************************************************** 
顺便发个图
图片附件: 游客没有浏览图片的权限,请 登录注册



[ 本帖最后由 有容就大 于 2012-9-16 14:15 编辑 ]
搜索更多相关主题的帖子: color 计算器 
2012-09-16 14:10
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 sdta
嘿嘿 就是练习下

梅尚程荀
马谭杨奚







                                                       
2012-09-16 15:44
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 sdta
恩 确实 这样好看多了。
我想问下 vfp里定义数组的同时能给他赋值吗
比如:declare a(4) = [+, -, *,/]

梅尚程荀
马谭杨奚







                                                       
2012-09-16 15:46
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
去试试看

梅尚程荀
马谭杨奚







                                                       
2012-09-16 15:58
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 11楼 sdta
哦 好的 那么应该是除数不能为0 吧

梅尚程荀
马谭杨奚







                                                       
2012-09-16 16:26
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
搞点晚饭吃 先
晚上好好再整理下 谢谢S版了

梅尚程荀
马谭杨奚







                                                       
2012-09-16 16:31
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 16楼 TonyDeng
按这个来 我写那个只能算原始的 原生态的 原汁原味的

梅尚程荀
马谭杨奚







                                                       
2012-09-16 21:42
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用sdta在2012-9-16 21:40:04的发言:

估计也不是你写的

看样子貌似是原创呢

梅尚程荀
马谭杨奚







                                                       
2012-09-16 21:43
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-9-16 21:43:46的发言:


以你现有的基础,写这个不是问题,不难的,正好练手。

好 试试看
我看这个功能好多 有些难度啊


梅尚程荀
马谭杨奚







                                                       
2012-09-16 21:45
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 7楼 sdta
呵呵 又增加了一个新知识点 确实要的

梅尚程荀
马谭杨奚







                                                       
2012-09-16 21:50
快速回复:改进版计算器?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030834 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved