我的第一个winform程序:简单的计算器(1)

    刚开始看winform就有点手痒,打算编个计算器来着。因为它用到的控件很少,就是几个按钮和文本框,而且事件处理程序也算不上复杂。
     软件要求:实现简单运算,暂时不支持括号和科学计算,但要求能按先乘除后加减的顺序运算,结果显示在显示器(文本框)上。
    组件设置:
        1.输入按钮,包括数值键0至9和小数点。
        2.正负号按钮。       
        3.控制键,即清零按钮。
        4.运算符,即加减乘除4个按钮外加等号。
    具体要求及实现:
        1.输入按钮:要求能在文本框内显示按下的数字,若第一次输入为小数点,则小数点前加0;一串数字只允许一个小数点;第一个数按下之前若多次输入0则忽略之;若输入数字(包括小数点不包括正号)超过10个,则报错并且不接受继续输入的数,即最大输入数字为9999999999。
        为了实现要求,设置一个class,以string储存输入数字,为适应操作数的需要,设置2个string。实现click方法时使用if语句来达到要求。代码为:

    public class NumberKeys        //数值键
 
{
        
public const string DefaultString="0";
        
private static string strLeftNum=string.Empty,strRightNum=string.Empty,strResult=string.Empty;

        
public static string StrLeftNum
      
{
            
get
            
{return strLeftNum;}
           
set
           
{strLeftNum=value;}
        }

        
public static string StrRightNum
      
{
           
get
            
{return strRightNum;}
           
set
           
{strRightNum=value;}
        }

        
public static string StrResult
     
{
            
get
            
{return strResult;}
           
set
           
{strResult=value;}
        }


        
public static void NumBtn_Click(object sender)
      
{
            Button numBtn
=(Button)sender;
            
if(strRightNum.Length<=10)
          
{
                
if(!((numBtn.Text=="0"&&strRightNum.Length==0)||(numBtn.Text=="."&&strRightNum.IndexOf('.')!=-1)))
                    strRightNum
+=numBtn.Text;
                
if(strRightNum==".")
                    strRightNum
=strRightNum.Insert(0,"0");
            }

            
else
          
{
                MessageBox.Show(
"最多能输入10位数!");
            }

        }


    }


(不知道怎么回事,代码总是无法对齐
    说明:1.  该类所有成员都是static,因为没有必要实例化。
                2.  strLeftNum,strRightNum,strResult分别表示左右操作数和运算结果,初始值都为string.Empty,最后不设为null,以免编译时要求实例化。这3个private成员都有相应的可读写属性。因为这3个变量在其他方法中也将频繁使用和修改。
                3.  这里的Click方法并不是按钮的Click方法,需要在Form类中进一步实现(因为以我的水平还无法把整个Form类都改成static),这个很简单,就不提了。


     未完待续。

posted on 2005-04-13 20:42  天蓝  阅读(1714)  评论(0编辑  收藏  举报