罗家马德里球迷 2019-07-14 12:09 采纳率: 0%
浏览 496

求解如何利用C#实现计算器的乘方、开方功能?

本人技术渣,小问题钻研了半天没结果,求大佬指点迷津!
附上相关代码:

public partial class MainWindow : Window
    {
        double sum = 0;
        bool blnClear = false;
        string strOper = "+";

        private void Check_button(object sender)
        {
            double dbSecond = Convert.ToDouble(textBox1.Text);
            if (!blnClear)
                switch (strOper)
                {
                    case "+":
                        sum += dbSecond;
                        break;
                    case "-":
                        sum -= dbSecond;
                        break;
                    case "*":
                        sum *= dbSecond;
                        break;
                    case "/":
                        sum /= dbSecond;
                        break;
                    case "SQ":
                        sum += dbSecond;
                        sum = sum * sum;
                        break;
                    case "sqt":
                        sum += dbSecond;
                        sum = Math.Sqrt(sum);
                        break;
                }
            if (sender == Button_add)
                strOper = "+";
            if (sender == Button_equ)
                strOper = "=";
            if (sender == Button_sub)
                strOper = "-";
            if (sender == Button_mul)
                strOper = "*";
            if (sender == Button_div)
                strOper = "/";
            if (sender == Button_square)
                strOper = "SQ";
            if (sender == Button_sqt)
                strOper = "sqt";
        }

        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

        }

        private void Button_equ_Click(object sender, RoutedEventArgs e)
        {
            Check_button(sender);
            textBox1.Text = Convert.ToString(sum);
            blnClear = true;
        }

        private void Button_C_Click(object sender, RoutedEventArgs e)
        {
            textBox1.Text = "0";
            sum = 0;
            blnClear = false;
            strOper = "+";
        }

        private void Button_sqt_Click(object sender, RoutedEventArgs e)
        {
            Check_button(sender);
            //if (textBox1.Text == Convert.ToString(sum))
            //    textBox1.Text = Convert.ToString(sum);
            textBox1.Text = Convert.ToString(sum);
            blnClear = true;
        }

        private void Button_SQ_Click(object sender, RoutedEventArgs e)
        {
            Check_button(sender);
            if (textBox1.Text == Convert.ToString(sum))
                textBox1.Text = Convert.ToString(sum);
            blnClear = true;

        }
    }
}

加减乘除都已经成功实现,就是乘方、开方这两个单元操作符一直没成功,请问上述代码问题出在哪里?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?
    • ¥100 求三轴之间相互配合画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题