• 加法计算器


    一:上图,代码简单,思路挺好

    二:代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace calculator
    {
        public partial class Frm_main : Form
        {
            public Frm_main()
            {
                InitializeComponent();
            }
    
            private void btn_0_Click(object sender, EventArgs e)
            {
                clickNum("0");
               
            }
    
            private void btn_1_Click(object sender, EventArgs e)
            {
                clickNum("1");
                
            }
            private void btn_2_Click(object sender, EventArgs e)
            {
                clickNum("2");
                 
            }
            private void btn_3_Click(object sender, EventArgs e)
            {
                clickNum("3");
                
            }
    
            private void btn_4_Click(object sender, EventArgs e)
            {
                clickNum("4");
               
            }
    
            private void btn_5_Click(object sender, EventArgs e)
            {
                clickNum("5");
                
            }
    
            private void btn_6_Click(object sender, EventArgs e)
            {
                clickNum("6");
                
            }
    
            private void btn_7_Click(object sender, EventArgs e)
            {
                clickNum("7");
               
            }
    
            private void btn_8_Click(object sender, EventArgs e)
            {
                clickNum("8");
             
            }
    
            private void btn_9_Click(object sender, EventArgs e)
            {
                clickNum("9");
               
            }
            private List<double> valueList = new List<double>();
            private bool addState = false;//加号点击状态
            private bool addOne = false;//防止加号多次打开
            private bool equalState = false;//等号点击状态
    
            /// <summary>
            /// 计算机点击数字
            /// </summary>
            /// <param name="num">点击的数字的值</param>
            private void clickNum(string num)
            {
                if (txt_value.Text.Length < 9)//长度要小于9
                {
                    if (addState)//打开加号开关
                    {
                        txt_value.Clear();//清空屏幕
                        addState = false;//关闭加号开关
                    }
                        txt_value.Text += num;//将数字叠加显示到屏幕
                        addOne = false;//没有按下一次加号
                        
                }
            }
            /// <summary>
            /// 事件:按下加号
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btn_add_Click(object sender, EventArgs e)
            {
    
                    if (addOne == false)//没有按下一次加号
                    {
                       
                        valueList.Add(double.Parse(txt_value.Text.Trim()));//将数字存到泛型数组里
                        addOne = true;//按下一次加号
                    }
    
                    addState = true;//打开加号开关
                    equalState = true;
            }
            /// <summary>
            /// 事件:按下等号
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btn_result_Click(object sender, EventArgs e)
            {
                if (addOne==false)
                {
                    if (equalState == true)
                    {
                        valueList.Add(double.Parse(txt_value.Text.Trim()));
    
                        equalState = false;
                        GetValue();
                        lbl_num.Text = GetString();
                        equalState = false;
                    }
                }
            }
    
            /// <summary>
            /// 方法用于计算累加数值并输出
            /// </summary>
            void GetValue()
            {
                double P_dbl_temp = 0;//定义局部变量
                foreach (double d in valueList)//遍历集合
                {
                    P_dbl_temp += d;//计算累加结果
                }
                txt_value.Text = P_dbl_temp.ToString();//显示累加结果
            }
            /// <summary>
            /// 方法用于得到数值的字符串表示
            /// </summary>
            /// <returns>返回字符串数值</returns>
            string GetString()
            {
                string P_str_temp = string.Empty;//定义局部变量
                for (int i = 0; i < valueList.Count; i++)//遍历集合
                {
                    if (i != 0)//判断是否是第一个数值
                    {
                        P_str_temp += //产生字符串
                            "+" + valueList[i].ToString();
                    }
                    else
                    {
                        P_str_temp = //产生字符串
                            valueList[i].ToString();
                    }
                }
                return P_str_temp;//返回字符串
            }
    
            private void btn_clean_Click(object sender, EventArgs e)
            {
                valueList.Clear();//清空集合中数值
                lbl_num.Text = null;//清空计算表达式
                txt_value.Clear();//清空累加结果
            }
           
        }
    }
  • 相关阅读:
    如何系统收集网页/电子书等相关的知识点
    针式PKM软件多个版本兼容功能的应用
    软件开发出路:做精某一卖点!
    深入针式PKM应用系列(1) 虚拟文件夹功能,让文件想放哪就放哪
    PKM软件:提供知识应用的工具支持
    解决长串英文字母显示不能自动换行的问题
    C#中判断字符串A中是否包含字符串B
    小技巧锦集
    解决Notes的"The remote server is not a known tcp/IP host"问题的方法
    将Sql Server自增长字段的目前识别值重调!
  • 原文地址:https://www.cnblogs.com/hongmaju/p/3728511.html
Copyright © 2020-2023  润新知