精华内容
下载资源
问答
  • c# 科学计算器 简单计算器
  • C#科学计算器

    2018-01-01 21:59:46
    C#实现可视化的科学计算器,支持四则运算,各种三角函数运算,开方运算等常见计算器功能。
  • C# 科学计算器

    2013-11-16 10:06:00
    利用C#编写一个简易计算器,实现与XP自带计算器科学型类似的功能
  • C#科学计算器源码

    2013-01-29 18:58:12
    多功能C#科学计算器,有乘方、开方、三角函数、反三角函数、双曲函数、对数。
  • C# 科学计算器-Sources

    2021-03-16 00:34:48
    C#科学计算器源代码-可直接输入一个数学计算式进行计算,源代码部分含有判断输入的是不是正确的计算式子。科学计算器更侧重数字方面的运算,功能比普通计算器更强大,本代码目的不是研究计算器,而是在编写的过程中...
  • c#科学计算器

    2014-04-24 19:30:56
    C#自己写的计算器,界面清晰,功能齐全,可供参考!
  • C#科学计算器代码

    2014-04-01 19:08:34
    C#写的科学计算器。不是最简单的,而是科学计算器。绝对可以用。逻辑也没有问题~
  • C# 科学计算器 华东师范大学 作业 开发环境:win8+VS2013 功能介绍: 界面上模仿windows自带的计算器软件,实现了标准计算和科学计算两个功能,在其基础上添加键盘手动输入的功能,可以计算带小括号的简单计算,...
  • C# 科学 计算器

    2012-11-20 13:57:58
    还没发现程序崩溃 现了计算器基本功能了2 8 16进制 开方平方开根号等功能
  • C#简单及科学计算器

    2018-03-16 20:20:37
    C#计算器,可识别+-*/优先级,有从左到右的计算顺序,并能进行语音播报
  • 基于Laura.Compute开发的C#win窗口科学计算器程序。
  • C# 简易计算器

    千次阅读 2021-03-15 10:49:45
    首先先运行VS2019: 如果这里没有Windows窗体应用组件,可以参照这篇博文进行修改安装一下: ... 打开之后就是这个界面: 没有工具栏的话,就用视图->...代码部分: ...using System.Collections.Generic;...

    首先先运行VS2019:
    在这里插入图片描述
    如果这里没有Windows窗体应用组件,可以参照这篇博文进行修改安装一下:
    https://blog.csdn.net/qq_43058685/article/details/104246518

    在这里插入图片描述
    在这里插入图片描述
    打开之后就是这个界面:
    在这里插入图片描述
    没有工具栏的话,就用视图->工具栏打开,就可以进行拖拽式开发了,加监听器的话,就直接点击相应控件进行代码编辑

    代码部分:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace MyCal
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            Double first_num,second_num,result;
            String flag;
            private void button1_Click(object sender, EventArgs e)
            {
                textBox1.Text += "1";
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                textBox1.Text += "2";
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                textBox1.Text += "3";
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                textBox1.Text += "4";
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                textBox1.Text += "5";
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                textBox1.Text += "6";
            }
    
            private void button7_Click(object sender, EventArgs e)
            {
                textBox1.Text += "7";
            }
    
            private void button10_Click(object sender, EventArgs e)
            {
                textBox1.Text += "0";
            }
    
            private void buttonPoint_Click(object sender, EventArgs e)
            {
                textBox1.Text += ".";
            }
    
            private void buttonAdd_Click(object sender, EventArgs e)
            {
                first_num = Convert.ToDouble(textBox1.Text);
                textBox2.Text = first_num.ToString() + "+";
                flag = "+";
                textBox1.Text = "";
            }
    
            private void buttonEqual_Click(object sender, EventArgs e)
            {
                second_num = Convert.ToDouble(textBox1.Text);
                textBox2.Text += second_num.ToString() + "="; 
                if (flag == "+")
                    result = first_num + second_num;
                else if (flag == "-")
                    result = first_num - second_num;
                else if (flag == "*")
                    result = first_num * second_num;
                else if (flag == "/")
                    result = first_num / second_num;
                textBox1.Text = result.ToString();
            }
    
            private void buttonAC_Click(object sender, EventArgs e)
            {
                first_num = 0;
                second_num = 0;
                textBox1.Text = "";
            }
    
            private void buttonReduce_Click(object sender, EventArgs e)
            {
                first_num = Convert.ToDouble(textBox1.Text);
                textBox2.Text = first_num.ToString() + "-";
                flag = "-";
                textBox1.Text = "";
            }
    
            private void buttonMutiply_Click(object sender, EventArgs e)
            {
                first_num = Convert.ToDouble(textBox1.Text);
                textBox2.Text = first_num.ToString() + "*";
                flag = "*";
                textBox1.Text = "";
            }
    
            private void buttonDevide_Click(object sender, EventArgs e)
            {
                first_num = Convert.ToDouble(textBox1.Text);
                textBox2.Text = first_num.ToString() + "/";
                flag = "/";
                textBox1.Text = "";
            }
    
            private void button8_Click(object sender, EventArgs e)
            {
                textBox1.Text += "8";
            }
    
            private void button9_Click(object sender, EventArgs e)
            {
                textBox1.Text += "9";
            }
        }
    }
    

    运行结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • C#制作科学计算器课程设计(源程序)

    热门讨论 2010-05-20 21:30:39
    C#编写的科学计算器 里边就是命名不太规范 其它的没什么了 都加上了注释 关键是 运算符的优先级问题 大家可以仔细的看看
  • C#普通计算器与科学计算器

    千次阅读 2014-06-05 09:43:53
    A,支持“科学运算”功能,即输入表达式时遵循运算符号的优先原则,连续输入“2+3×5”后点击“等号”按钮进行运算其结果为17; B,支持数字键盘(小键盘)输入功能(焦点不在文本框内时也支持键盘输入);

    一. 功能

      1)基本功能:实现“普通运算”功能,支持连续运算,如连续输入“2+3×5”后点击“等号”按钮进行运算其结果为25.

      2)附加功能:

    A,支持“科学运算”功能,即输入表达式时遵循运算符号的优先原则,连续输入“2+3×5”后点击“等号”按钮进行运算其结果为17;

    B,支持数字键盘(小键盘)输入功能(焦点不在文本框内时也支持键盘输入);

    二. 设计思路

    在项目中设计一个计算类,其中包含“普通计算”和“科学计算”功能,即输入数学运算表达式字符串,返回计算结果。直接在项目中调用该类,输出计算结果。

    public partial class Form1 : Form
        {
            string str = string.Empty;
            string sumStr;
            char[] _operator = { '+', '-', '*', '/', '%' };
            string[] strArray;
            char[] opArray;
            Regex r = new Regex(@"[0-9]");
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Press_Button_Click(object sender, EventArgs e)
            {
                if (textBox2.Text.Contains('='))
                {
                    textBox2.Text = "";
                    if (r.IsMatch((string)((Button)sender).Tag))//判D断?是?否?接ó着?计?算?
                    {
                        str = "";
                    }
    
                }
                if (!str.Contains('.'))
                {
                    str += (string)((Button)sender).Tag;
                    textBox1.Text = str;
                }
                else
                {
                    if ((string)((Button)sender).Tag != ".")
                    {
                        str += (string)((Button)sender).Tag;
                        textBox1.Text = str;
                    }
                }
            }
    
            private void Clear_Button_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox2.Text = "";
                str = "";
                textBox1.Text = 0.ToString();
            }
    
            private void Delete_Button_Click(object sender, EventArgs e)
            {
                if (str.Length > 0)
                {
                    str = str.Substring(0, str.Length - 1);
                    if (str.Length == 0)
                    {
                        textBox1.Text = "0";
                    }
                    else
                        textBox1.Text = str;
                }
            }
    
            private static string MyOperate(string strA, string strB, char _operator)
            {
                double numA = Convert.ToDouble(strA);
                double a, b, numB;
                double result = 0;
                if (strB.Contains('^'))
                {
                    a = Convert.ToDouble(strB.Split('^')[0]);
                    b = Convert.ToDouble(strB.Split('^')[1]);
                    numB = Math.Pow(a, b);
                }
                else if (strB.Contains('Ó'))
                {
                    numB = Math.Sqrt(Convert.ToDouble(strB.Substring(1)));
                }
                else
                {
                    numB = Convert.ToDouble(strB);
                }
                switch (_operator)
                {
                    case '+': result = numA + numB; break;
                    case '-': result = numA - numB; break;
                    case '*': result = numA * numB; break;
                    case '/':
                        {
                            if (numB == 0)
                            {
                                return "除y数簓不?能ü为a零?!?";
                            }
                            result = numA / numB;
                            break;
                        }
                    case '%':
                        {
                            if (numA.ToString().Contains('.') == true || numB.ToString().Contains('.'))
                            {
                                return "不?能ü对?浮?点?数簓求ó余?!?";
                            }
                            result = numA % numB;
                            break;
                        }
                }
                return result.ToString();
            }
    
    
            private void Equal_Button_Click(object sender, EventArgs e)
            {
                if (radioButton1.Checked)
                {
                    sumStr = MyNormalCalculating(str);
                }
                else
                {
                    sumStr = MyScienceCalculating(str);
                }
                if (strArray.Length == 1)
                {
                    textBox1.Text = sumStr;
                }
                else
                {
                    str += '=';
                    textBox2.Text = str;
                    textBox1.Text = sumStr;
                }
                str = sumStr;
            }
    
            private string MyScienceCalculating(string s)
            {
                strArray = str.Split(_operator);
                opArray = new char[strArray.Length - 1];
                int index = -1;
                int numLength = 0;
                int opLength = 0;
                for (int i = 0; i < strArray.Length - 1; i++)
                {
                    index += (strArray[i].Length + 1);
                    opArray[i] = str[index];
                }
                opLength = opArray.Length;
                numLength = strArray.Length;
                for (int i = 0; i < opLength; i++)
                {
                    if (opArray[i] == '*' || opArray[i] == '/')
                    {
    
                        strArray[i] = MyOperate(strArray[i], strArray[i + 1], opArray[i]);
    
                        for (int k = i + 1; k < numLength - 1; k++)
                        {
                            strArray[k] = strArray[k + 1];
                        }
                        numLength--;
                        for (int k = i; k < opLength - 1; k++)
                        {
                            opArray[k] = opArray[k + 1];
                        }
                        opLength--;
                    }
                }
                for (int i = 0; i < opLength; i++)
                {
                    strArray[i + 1] = MyOperate(strArray[i], strArray[i + 1], opArray[i]);
                }
                return strArray[numLength - 1];
            }
    
            private string MyNormalCalculating(string s)
            {
                strArray = str.Split(_operator);
                string sum = "0";
                char op;
                int index = -1;
                for (int i = 0; i < strArray.Length; i++)
                {
                    if (i == 0)
                    {
                        sum = MyOperate(sum, strArray[i], '+');
                    }
                    else
                    {
                        index += (strArray[i - 1].Length + 1);
                        op = s[index];
                        sum = MyOperate(sum, strArray[i], op);
                    }
                }
                return sum;
            }
    
            private void Form1_KeyPress(object sender, KeyPressEventArgs e)
            {
                switch (e.KeyChar)
                {
                    case '0': Press_Button_Click(button16, null); break;
                    case '1': Press_Button_Click(button5, null); break;
                    case '2': Press_Button_Click(button6, null); break;
                    case '3': Press_Button_Click(button7, null); break;
                    case '4': Press_Button_Click(button9, null); break;
                    case '5': Press_Button_Click(button10, null); break;
                    case '6': Press_Button_Click(button11, null); break;
                    case '7': Press_Button_Click(button13, null); break;
                    case '8': Press_Button_Click(button14, null); break;
                    case '9': Press_Button_Click(button15, null); break;
                    case '.': Press_Button_Click(button12, null); break;
                    case '+': Press_Button_Click(button17, null); break;
                    case '-': Press_Button_Click(button8, null); break;
                    case '*': Press_Button_Click(button4, null); break;
                    case '/': Press_Button_Click(button3, null); break;
                    case '^': Press_Button_Click(button23, null); break;
                    case 'Ó': Press_Button_Click(button22, null); break;
                    case (char)Keys.Enter:
                    case '=': Equal_Button_Click(Equal_Button, null); break;
                    case (char)Keys.Back: Delete_Button_Click(Delete_Button, null); break;
                }
            }
    
            private void radioButton1_CheckedChanged(object sender, EventArgs e)
            {
                str = string.Empty;
                textBox1.Text = "0";
                textBox2.Text = "";
            }
    
        }


    展开全文
  • 代码绝对可用 支持键盘输入 科学计算 本人自己编写 VS2008 需要.NET运行环境。
  • C#编写的科学计算器

    2012-07-07 14:57:03
    代码清晰整齐,都有注释的
  • 初学学了三四天c#,学长让我实现一个计算器,难度还是大大的。。。 写的很简单。。。也很笨拙。。。好多可以优化的地方我懒得改了。。。 我好想忘整一个 “撤销键”。。。(⊙﹏⊙) 难点 1.计算器算法: 刚开始自己...

    wdnm,你说俺一个学信息安全的,为啥要学c#呢。。。。。哎。。都是实验室逼得。。。。学长还一个比一个消极。。。你说俺咋整啊。。。。

    初学学了三四天c#,学长让我实现一个计算器,难度还是大大的。。。
    写的很简单。。。也很笨拙。。。好多可以优化的地方我懒得改了。。。
    我好想忘整一个 “撤销键”。。。(⊙﹏⊙)


    后缀表达式算法写错了。。。别看了。。。丢人。。。。。。。。。。。

    难点


    1.计算器算法:
    刚开始自己想了一个贼麻烦的计算方法,十分麻烦。被学长疯狂diss。。。。。
    算法其实还是很简单的,下面这篇博客讲的就很好:
    https://blog.csdn.net/wanzhen4330/article/details/81952851
    2.窗体设计:
    刚开始学习设计窗体贼吉尔惆怅。。。。看了视频教学之后就好多了;
    p2讲的很详细,俺全靠这一个视频才活下来的;
    https://www.bilibili.com/video/av1422127/?p=2
    3.类的调用:
    刚开始不会调用类啊!c#和c++不一样啊!c#的头文件什么鬼啊!!!!
    虽然俺c++的类也只会一丢丢。。。。
    看了视频之后才会用。。。。p8;
    https://www.bilibili.com/video/av1422127/?p=8
    写完之后觉得自己还是没有充分利用类,没有把各种方法进行分类

    效果

    在这里插入图片描述
    在这里插入图片描述
    可以连续计算(^U^)ノ~YO
    suprise 妈* *克er!!!
    在这里插入图片描述

    代码

    //Form1.cs
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace 简单计算器
    {
        public partial class Form1 : Form
        {
            private string shizi="";
            private string value;
            private bool flag=false;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btn_0_Click(object sender, EventArgs e)
            {
                shizi += '0';
                textBox1.AppendText("0");
                textBox1.ScrollToCaret();
            }
    
            private void btn_1_Click(object sender, EventArgs e)
            {
                shizi += '1';
                textBox1.AppendText("1");
                textBox1.ScrollToCaret();
            }
    
            private void btn_2_Click(object sender, EventArgs e)
            {
                shizi += '2';
                textBox1.AppendText("2");
                textBox1.ScrollToCaret();
            }
    
            private void btn_3_Click(object sender, EventArgs e)
            {
                shizi += '3';
                textBox1.AppendText("3");
                textBox1.ScrollToCaret();
            }
    
            private void btn_4_Click(object sender, EventArgs e)
            {
                shizi += '4';
                textBox1.AppendText("4");
                textBox1.ScrollToCaret();
            }
    
            private void btn_5_Click(object sender, EventArgs e)
            {
                shizi += '5';
                textBox1.AppendText("5");
                textBox1.ScrollToCaret();
            }
    
            private void btn_6_Click(object sender, EventArgs e)
            {
                shizi += '6';
                textBox1.AppendText("6");
                textBox1.ScrollToCaret();
            }
    
            private void btn_7_Click(object sender, EventArgs e)
            {
                shizi += '7';
                textBox1.AppendText("7");
                textBox1.ScrollToCaret();
            }
    
            private void btn_8_Click(object sender, EventArgs e)
            {
                shizi += '8';
                textBox1.AppendText("8");
                textBox1.ScrollToCaret();
            }
    
            private void btn_9_Click(object sender, EventArgs e)
            {
                shizi += '9';
                textBox1.AppendText("9");
                textBox1.ScrollToCaret();
            }
    
            private void btn_point_Click(object sender, EventArgs e)
            {
                shizi += '.';
                textBox1.AppendText(".");
                textBox1.ScrollToCaret();
            }
    
            private void btn_l_bracket_Click(object sender, EventArgs e)
            {
                shizi += '(';
                textBox1.AppendText("(");
                textBox1.ScrollToCaret();
            }
    
            private void btn_r_bracket_Click(object sender, EventArgs e)
            {
                shizi += ')';
                textBox1.AppendText(")");
                textBox1.ScrollToCaret();
            }
    
            private void btn_add_Click(object sender, EventArgs e)
            {
                shizi += '+';
                textBox1.AppendText("+");
                textBox1.ScrollToCaret();
            }
    
            private void btn_sub_Click(object sender, EventArgs e)
            {
                shizi += '-';
                textBox1.AppendText("-");
                textBox1.ScrollToCaret();
            }
    
            private void btn_mul_Click(object sender, EventArgs e)
            {
                shizi += '*';
                textBox1.AppendText("*");
                textBox1.ScrollToCaret();
            }
    
            private void btn_div_Click(object sender, EventArgs e)
            {
                shizi += '/';
                textBox1.AppendText("/");
                textBox1.ScrollToCaret();
            }
            private void btn_remain_Click(object sender, EventArgs e)
            {
                shizi += '%';
                textBox1.AppendText("%");
                textBox1.ScrollToCaret();
            }
    
            private void btn_val_Click(object sender, EventArgs e)
            {
                if (shizi.Length == 0) return;
                textBox1.Text += "\r\n=\r\n";
                diaoyong temp = new diaoyong();
                value = temp.getstring(shizi);
                //textBox1.Text += value ;
                shizi = value;
                textBox1.AppendText(value);
                textBox1.ScrollToCaret();
            }
    
            private void btn_clear_Click(object sender, EventArgs e)
            {
                if(shizi.Length>0)
                    shizi = shizi.Remove(0);
                //value = value.Remove(0);
                textBox1.Text = string.Empty;
            }
    
            
        }
    }
    
    

    算法实现代码↓

    //Program.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace 简单计算器
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
        class diaoyong
        {
            //private string shizi;
            private Stack<char> symbol = new Stack<char>(1000);//符号栈
            private Stack<double> num = new Stack<double>(1000);//数栈
            //获得运算式子
            public string getstring(string shizi)
            {
                
                string shabi = "wdnm!你个**式子写错了!";//绝对有2B来捣乱!
                //先检查式子是否正确
                if (!detection_all(shizi)) return shabi;
                if (!detection_bracket(shizi)) return shabi;
                //MessageBox.Show("??");
                return stack_operation(shizi);
            }
    
            private string stack_operation(string shizi)
            {
                int flag1 = 0;//负数判断
                int flag2 = 0;//小数判断
                double temp = 0;
                for(int i=0;i<shizi.Length;i++)
                {
                    if (detection_num(shizi[i]))
                    {
                        if (flag1 != 0 && flag2 != 0)//负小数
                        {
                            temp -= stringTOdouble(shizi[i], flag2);
                            flag2++;
                        }
                        else if (flag1 != 0 && flag2 == 0)//负整数
                            temp = temp * 10 - (shizi[i] - '0');
                        else if (flag1 == 0 && flag2 != 0)//正小数判断
                            temp += stringTOdouble(shizi[i], flag2++);
                        else temp = temp * 10 + (shizi[i] - '0');//正整数判断
                    }
                    else
                    {
                        switch(shizi[i])
                        {
                            case '.': flag2++;break;
                            case '-': if (detection_negative(shizi, i)) flag1 = 1;
                                      else { symbol.Push('-'); num.Push(temp);temp = 0;flag1 = 0;flag2 = 0; }
                                      break;
                            case '+': symbol.Push('+'); if (shizi[i - 1] != ')') num.Push(temp); temp = 0; flag1 = 0; flag2 = 0; break;
                            case '*': symbol.Push('*'); if (shizi[i - 1] != ')') num.Push(temp); temp = 0; flag1 = 0; flag2 = 0; break;
                            case '/': symbol.Push('/'); if (shizi[i - 1] != ')') num.Push(temp); temp = 0; flag1 = 0; flag2 = 0; break;
                            case '%': symbol.Push('%'); if (shizi[i - 1] != ')') num.Push(temp); temp = 0; flag1 = 0; flag2 = 0; break;
                            case '(': symbol.Push('('); flag1 = 0; flag2 = 0; break;
                            case ')': if(shizi[i-1]!=')') num.Push(temp);
                                    temp = 0; flag1 = 0; flag2 = 0; run_data(); break;
                        }
                    }
                }
                if (shizi[shizi.Length - 1] != ')')
                {
                    num.Push(temp);
                }
                if(num.Count>1)
                    run_data();
                //double cnt = num.Count();
                //string ccnt = cnt.ToString();
                //MessageBox.Show(ccnt);
                double ttemp = num.Peek();
                string amazing = ttemp.ToString();
                return amazing;
            }
    
            private void run_data()
            {
                double temp1;
                double temp2;
                char temp3;
                while(num.Count>1&&symbol.Count>0)
                {
                    temp3 = symbol.Peek();
                    symbol.Pop();
                    if (temp3 == '(') break;
                    temp2 = num.Peek();
                    num.Pop();
                    temp1 = num.Peek();
                    num.Pop();
                    switch(temp3)
                    {
                        case '+': temp1 += temp2;break;
                        case '-': temp1 -= temp2;break;
                        case '*': temp1 *= temp2;break;
                        case '/': temp1 /= temp2;break;
                        case '%': temp1 %= temp2;break;
                    }
                    num.Push(temp1);
                }
            }
    
            //string转为double小数
            private double stringTOdouble(char temp,int x)
            {
                double num = 0;
                num = temp - '0';
                for(int i=1;i<=x;i++)
                {
                    num /= 10;
                }
                return num;
            }
    
            //检测整体式子函数
            private bool detection_all(string shizi)
            {
                int len = shizi.Length;
                if (!detection_num(shizi[0]) && (shizi[0] != '(' && shizi[0] != '-')) return false; //首位检测
                if (!detection_num(shizi[len - 1]) && shizi[len - 1] != ')') return false;//末位检测
    
                for(int i=1;i<shizi.Length-1;i++)
                {
                    if (detection_num(shizi[i])) continue;
                    if(shizi[i]=='-')
                    {
                        if (!detection_num(shizi[i - 1]) && (shizi[i - 1] != '(' && shizi[i - 1] != ')')) return false;
                        if (!detection_num(shizi[i + 1])&&shizi[i+1]!='(') return false;
                    }
                    else if(shizi[i]=='(')
                    {
                        if (detection_num(shizi[i - 1]) || shizi[i-1]==')') return false;
                        if (shizi[i + 1] == '*' || shizi[i + 1] == '/' || shizi[i + 1] == '%' || shizi[i + 1] == '+') return false;
                    }
                    else if(shizi[i]==')')
                    {
                        if (shizi[i - 1] == '*' || shizi[i - 1] == '/' || shizi[i - 1] == '%' || shizi[i - 1] == '+'||shizi[i-1]=='-') return false;
                        if (detection_num(shizi[i+1]) || shizi[i + 1] == '(') return false;
                    }
                    else if(shizi[i]=='+'||shizi[i]=='*'||shizi[i]=='/'||shizi[i]=='%'||shizi[i]=='.')
                    {
                        if (!detection_num(shizi[i - 1]) && shizi[i - 1] != ')') return false;
                        if (!detection_num(shizi[i + 1]) && shizi[i + 1] != '(') return false;
                        if (shizi[i] == '/' && shizi[i + 1] == '0') return false;
                    }
                }
                return true;
            }
            //检测负数规则函数
            private bool detection_negative(string shizi,int i)
            {
                if (i == 0) return true;
                if (shizi[i - 1] =='(')
                    return true;
                return false;
            }
            //检测是否是数字函数 
            private bool detection_num(char temp)
            {
                if (temp >= '0' && temp <= '9') return true;
                else return false;
            }
            //检测括弧顺序
            private bool detection_bracket(string shizi)
            {
                int flag = 0;
                for(int i=0;i<shizi.Length;i++)
                {
                    if (shizi[i] == '(') flag++;
                    if (shizi[i] == ')') flag--;
                    if (flag < 0) return false;
                }
                if (flag != 0) return false;
                return true;
            }
        }
    }
    
    

    啊??界面自己看着代码设计去!岂能让你直接copy!要啥自行车!
    注意控件名字哈

    分享一波吧~
    源代码:
    链接:https://pan.baidu.com/s/1CbgWhB0AbXblbUTmkfSw-Q
    提取码:q8qx

    展开全文
  • 科学计算器的源代码,判断一个计算式子是不是正确的,还有源代码
  • 大一时用C#写的简易计算器。主要功能有:直接用表达式计算运算结果(支持括号、小数点)、判断运算表达式输入是否有错、记录运算历史、进制转换、单位转换。 特别需要注意的一点是,若计算时有小数点且小数点后第一...
  • C#实现计算器

    2015-02-23 23:03:28
    C#实现计算机,除简单的运算外,还包括了科学型与程序员型的计算功能
  • C#开发计算器

    2017-12-02 20:57:02
    实现科学计算器的开发全功能。et/ningchao328/article/details/53116411 package com.example.dbli; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database....
  • C# wpf 版计算器

    2020-09-24 08:48:22
    C# wpf 版计算器 ,仿造windows电自带计算器的标准模式下的所有功能.C# wpf 版计算器 ,仿造windows电自带计算器的标准模式下的所有功能.
  • 自己做的的简易计算器,仿Windows计算器C#开发,含所有源文档与代码。
  • C#实现简单的计算器

    千次阅读 2021-03-17 11:04:11
    C#实现简单的计算器 环境:VS2010及以上版本 建立个Window窗体应用 在工具箱里拖出两个TextBox,第一个放上面,第二个放下面 。主要这里的Name,上面是textBox1,下面是textBox2。这涉及到后面代码的书写 在工具...

    C#实现简单的计算器

    环境:VS2010及以上版本

    1. 建立个Window窗体应用
      在这里插入图片描述
    2. 在工具箱里拖出两个TextBox,第一个放上面,第二个放下面 。主要这里的Name,上面是textBox1,下面是textBox2。这涉及到后面代码的书写
      在这里插入图片描述
    3. 在工具栏里拖动Button,摆放好。可利用上面的对齐工具辅助设计。
      在这里插入图片描述
    4. 在属性里改变各Button的Text,如下
      在这里插入图片描述
      注意这里的1~9,小数点,±*/ 的Text应只有一个字符,不要多输。←
    5. 选中任意一个Button,右键,选择查看代码,转到Form1.cs
      在这里插入图片描述
    6. 开始写代码
      AddNum 修改TextBox的Text,应用于1~9与小数点的Click事件
      Reset 重置temp、myoperator,以及两个TextBox的Text
      Delete 删除textBox2的Text最后一个字符
      Calculate 把textBox2的Text转为double给temp,修改myoperator
      Equal 具体的计算
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    //----上面是自动生成的代码,下面得我们手写----
            private double temp = 0;  //存储临时数据
            private char myoperator = ' ';  //判断之前按的是+-*/中的哪个
    
            private void AddNum(object sender, EventArgs e)
            {   // 1~9与小数点的Click事件
                //sender是引发该事件的控件,这里我们拆箱为Button
                Button button = (Button)sender;
                textBox2.Text += button.Text;
            }
    
            private void Reset(object sender, EventArgs e)
            {   // CE的Click事件
                temp = 0;
                myoperator = ' ';
                textBox1.Text = textBox2.Text = "";
            }
    
            private void Delete(object sender, EventArgs e)
            {   // ←的Click事件
                //移除最后一个字符
                if (textBox2.TextLength > 0)
                    textBox2.Text = textBox2.Text.Remove(textBox2.TextLength - 1);
            }
    
            private void Calculate(object sender, EventArgs e)
            {   // +-*/的Click事件
                Button button = (Button)sender;
                if (double.TryParse(textBox2.Text, out temp))  //尝试把textBox2的Text转为double并赋值给temp
                {
                    myoperator = button.Text[0]; //Text是string,取第一个字符
                    textBox1.Text = temp.ToString() + ' ' + myoperator;
                    textBox2.Text = "";
                }
                else
                {   //转换失败,重置所有
                    Reset(sender, e);
                }
            }
    
            private void Equal(object sender, EventArgs e)
            {   // = 的Click事件,计算并显示
                double temp2;
                //尝试转换,失败则重置并返回
                if (!double.TryParse(textBox2.Text, out temp2)) { Reset(sender, e); return; }
                switch (myoperator)
                {
                    case '+':
                        temp += temp2;
                        break;
    
                    case '-':
                        temp -= temp2;
                        break;
    
                    case '*':
                        temp *= temp2;
                        break;
    
                    case '/':
                        temp /= temp2;
                        break;
    
                    default:
                        break;
                }
                textBox1.Text = "";
                textBox2.Text = temp.ToString();
            }
        }
    }
    
    1. 设置各Button的Click事件
    • AddNum: 1~9与小数点的Click事件
    • Reset:CE的Click事件
    • Delete:←的Click事件
    • Calculate :±*/的Click事件
    • Equal:= 的Click事件
      在这里插入图片描述
    1. 启动(F5)
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,621
精华内容 648
关键字:

c#科学计算器

c# 订阅