精华内容
下载资源
问答
  • 目前能计算加减乘除算式。正在编写计算大中小括号算式功能。欢迎各位给我提建议。
  • 复杂型计算器可执行文件,也完整代码
  • 这是我个人在源代码的基础上增加了扩展功能(键盘监听,按键音效以及音效开关,保存时间,阶乘计算)的计算器源代码和jar实例。
  • 一个用C#编写的 可以保存计算结果的计算器源代码和安装程序。
  • 本程序为完全用JAVA语言编写,多个类组成,从主类运行,GUI界面设计及功能实现,可运行版本,适合于初学者学习。
  • 添加了对括号算式计算算法。 下次更新,简便运算。
  • 练习Python过程中写实现计算器功能py脚本兴趣同学可以参考
  • 这只是一个纯小白自治计算器,如不足之处,勿骂. 计算器的实现有关科学计算器的方法设计(C#)有关普通计算器和科学计算器的代码如下画图功能实现如下 有关普通计算器和科学计算器的代码如下 using System; using ...

    有关科学计算器的方法设计(C#)

    这只是一个纯小白的自治计算器,代码可能不是十分简便,希望可以用作参考。

    有关普通计算器和科学计算器的代码如下

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp3
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            string operation = null;
            double number1 = 0, number2 = 0;
    
            private void textpush(string x)  //普通计算器的1,2,,3等等的输入函数
            {
                if (textBox1.Text == "0")
                {
                    textBox1.Text = "";
                }
                textBox1.Text += x;
            }
            private void textpush_1(string x)  //科学计算器的1,2,3等的输入函数
            {
                if (textBox2.Text == "0")
                {
                    textBox2.Text = "";
                }
                textBox2.Text += x;
                textBox3.Text += x;
            }
            
    
            #region  General calculator
            private void button34_Click(object sender, EventArgs e)
            {
                textpush("0");
            }
    
            private void button24_Click(object sender, EventArgs e)
            {
                textpush("1");
            }
    
            private void button35_Click(object sender, EventArgs e)
            {
                textpush("2");
            }
    
            private void button40_Click(object sender, EventArgs e)
            {
                textpush("3");
            }
    
            private void button31_Click(object sender, EventArgs e)
            {
                textpush("4");
            }
    
            private void button36_Click(object sender, EventArgs e)
            {
                textpush("5");
            }
    
            private void button41_Click(object sender, EventArgs e)
            {
                textpush("6");
            }
    
            private void button32_Click(object sender, EventArgs e)
            {
                textpush("7");
            }
    
            private void button37_Click(object sender, EventArgs e)
            {
                textpush("8");
            }
    
            private void button42_Click(object sender, EventArgs e)
            {
                textpush("9");
            }
    
            
            private void button23_Click(object sender, EventArgs e)  //普通计算器正负号的运算
            {
                if (textBox1.Text == "")
                    textBox1.Text += "";
                else
                {
                    if (operation != null)
                        button49_Click(sender, e);
                    textBox1.Text = (-1 * Convert.ToDouble(textBox1.Text)).ToString();
                }
            }
    
            private void button39_Click(object sender, EventArgs e)  //普通计算器小数点的问题
            {
                if (textBox1.Text == "")
                {
                    textBox1.Text += "0.";
                }
    
                else if (textBox1.Text.IndexOf(".") > 0)
                {
                    textBox1.Text += "";
                }
                else
                {
                    textBox1.Text += ".";
                }
            }
    
            private void button47_Click(object sender, EventArgs e)  //普通计算器"+"运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text == "")
                    textBox1.Text = "0";
                number1 = Convert.ToDouble(textBox1.Text);
                operation = "+";
                textBox1.Text = "";
            }
            private void button46_Click(object sender, EventArgs e)  //普通计算器的"-"运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text == "")
                        textBox1.Text = "0";
                number1 = Convert.ToDouble(textBox1.Text);
                operation = "-";
                textBox1.Text = "";
            }
    
            private void button45_Click(object sender, EventArgs e)  //普通计算器的"*"运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text == "")
                        textBox1.Text = "0";
                number1 = Convert.ToDouble(textBox1.Text);
                operation = "*";
                textBox1.Text = "";
            }
    
            private void button44_Click(object sender, EventArgs e)  //普通计算器的"/"运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text == "")
                    textBox1.Text = "0";
                number1 = Convert.ToDouble(textBox1.Text);
                operation = "/";
                textBox1.Text = "";
            }
    
            private void button53_Click(object sender, EventArgs e)  //普通计算器的退格处理
            {
                if (textBox1.Text.Length > 0)
                {
                    textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
                }
                else
                {
                    textBox1.Text = "";
                }
            }
    
            private void button52_Click(object sender, EventArgs e)  //普通计算器的清零处理
            {
                textBox1.Text = "";
                number1 = 0;
                number2 = 0;
                operation = null;
            }
    
            private void button49_Click(object sender, EventArgs e)  //普通计算器的清理处理
            {
                if (textBox1.Text != "")
                {
                    number2 = Convert.ToDouble(textBox1.Text);
                    switch (operation)
                    {
                        case "+": textBox1.Text = (number1 + number2).ToString(); break;
                        case "-": textBox1.Text = (number1 - number2).ToString(); break;
                        case "*": textBox1.Text = (number1 * number2).ToString(); break;
                        case "/":
                            {
                                if (number2 == 0)
                                    MessageBox.Show("0 不能作为除数", "WRONG!!");
                                else
                                    textBox1.Text = (number1 / number2).ToString();
                                break;
                            }
                    }
                    number1 = Convert.ToDouble(textBox1.Text);
                    operation = null;
                }
            }
    
            private void button48_Click(object sender, EventArgs e)  //普通计算器的平方根处理
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text != "")
                {
                    if (Convert.ToDouble(textBox1.Text) < 0)
                        MessageBox.Show(" 小于0的数无法进行平方根运算.", "WRONG!!!");
                    else
                    {
                        textBox1.Text = (Math.Round(Math.Sqrt(Convert.ToDouble(textBox1.Text)), 10)).ToString();
                    }
                }
            }
    
            private void button43_Click(object sender, EventArgs e)  //普通计算器的log运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text != "")
                {
                    if (Convert.ToDouble(textBox1.Text) <= 0)
                        MessageBox.Show("真数必须大于0", "WRONG!!!");
                    else
                    {
                        textBox1.Text = (Math.Round(Math.Log10(Convert.ToDouble(textBox1.Text)), 10)).ToString();
                    }
                }
            }
    
            private void button38_Click(object sender, EventArgs e)  //普通计算器的平方运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text != "")
                {
                    textBox1.Text = (Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox1.Text)).ToString();
                }
            }
    
            private void button33_Click(object sender, EventArgs e)  //普通计算器的倒数运算
            {
                if (operation != null)
                    button49_Click(sender, e);
                if (textBox1.Text != "")
                {
                    if (textBox1.Text == "0")
                        MessageBox.Show("0不能作为除数", "WRONG!!!");
                    else
                    {
                        textBox1.Text = (Math.Round(1 / (Convert.ToDouble(textBox1.Text)), 10)).ToString();
    
                    }
                }
            }
    
            #endregion
    
            #region Science calculator
            private void button4_Click(object sender, EventArgs e)
            {
                textpush_1("1");
            }
    
            private void button9_Click(object sender, EventArgs e)
            {
                textpush_1("2");
            }
    
            private void button14_Click(object sender, EventArgs e)
            {
                textpush_1("3");
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                textpush_1("4");
            }
    
            private void button8_Click(object sender, EventArgs e)
            {
                textpush_1("5");
            }
    
            private void button13_Click(object sender, EventArgs e)
            {
                textpush_1("6");
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                textpush_1("7");
            }
    
            private void button7_Click(object sender, EventArgs e)
            {
                textpush_1("8");
            }
    
            private void button12_Click(object sender, EventArgs e)
            {
                textpush_1("9");
            }
    
            private void button10_Click(object sender, EventArgs e)
            {
                textpush_1("0");
            }
    
            
            private void button15_Click(object sender, EventArgs e)
            {
                if (textBox3.Text == "")
                {
                    textBox2.Text += "0.";
                    textBox3.Text += "0.";
                }
    
                else if (textBox3.Text.IndexOf(".") > 0)
                {
                    textBox2.Text += "";
                    textBox3.Text += "";
                }
                else
                {
                    textBox2.Text += ".";
                    textBox3.Text += ".";
                }
            }
            private void button17_Click(object sender, EventArgs e)
            {
                textBox2.Text += "+";
                textBox3.Text = "";
            }
    
            private void button18_Click(object sender, EventArgs e)
            {
                textBox2.Text += "-";
                textBox3.Text = "";
            }
    
            private void button19_Click(object sender, EventArgs e)
            {
                textBox2.Text += "*";
                textBox3.Text = "";
            }
    
            private void button20_Click(object sender, EventArgs e)
            {
                textBox2.Text += "/";
                textBox3.Text = "";
            }
    
            private void button29_Click(object sender, EventArgs e)
            {
                textBox2.Text += "(";
                textBox3.Text = "";
            }
    
            private void button50_Click(object sender, EventArgs e)
            {
                textBox2.Text += ")";
                textBox3.Text = "";
            }
    
            private void button1_Click(object sender, EventArgs e)  //科学计算器的倒数运算
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
                    if (textBox3.Text == "0")
                        MessageBox.Show("0不能作为除数", "WRONG!!!");
                    else
                    {
                        textBox3.Text = (Math.Round(1 / (Convert.ToDouble(textBox3.Text)), 10)).ToString();
                        textBox2.Text = textBox3.Text;
    
                    }
    
                }
                else
                {
                    if (textBox3.Text == "0")
                        MessageBox.Show("0不能作为除数", "WRONG!!!");
                    else
                    {
                        textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                        textBox3.Text = (Math.Round(1 / (Convert.ToDouble(textBox3.Text)), 10)).ToString();
                        textBox2.Text += textBox3.Text;
    
                    }
    
                }
            }
            private void button5_Click(object sender, EventArgs e)  //变号操作
            {
                if (textBox3.Text == "")
                    textBox2.Text+="";
                else if (textBox2.Text == textBox3.Text)
                {
                    textBox3.Text = (-1 * Convert.ToDouble(textBox3.Text)).ToString();
                    textBox2.Text = textBox3.Text;
                }
                else 
                {
                    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length );
                    textBox3.Text = (-1 * Convert.ToDouble(textBox3.Text)).ToString();
                    textBox2.Text += textBox3.Text;
                }
            }
    
            private void button21_Click(object sender, EventArgs e)  //退格操作
            {
                if (textBox3.Text.Length > 0)
                {
                    textBox3.Text = textBox3.Text.Substring(0, textBox3.Text.Length - 1);
                    textBox2.Text=textBox2.Text.Substring(0, textBox2.Text.Length - 1);
                }
                else
                {
                    textBox3.Text = "";
                    if(textBox2.Text.Length > 0)
                    {
                        textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
                    }
                    else
                        textBox2.Text = "";
                }
            }
    
            private void button22_Click(object sender, EventArgs e)  //清空操作
            {
                textBox2.Text = "";
                textBox3.Text = "";
            }
    
            private void button6_Click(object sender, EventArgs e)  //平方函数
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
                    textBox3.Text = (Convert.ToDouble(textBox3.Text) * Convert.ToDouble(textBox3.Text)).ToString();
                    textBox2.Text = textBox3.Text;
                }
                else
                {
                    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                    textBox3.Text = (Convert.ToDouble(textBox3.Text) * Convert.ToDouble(textBox3.Text)).ToString();
                    textBox2.Text += textBox3.Text;
                }
            }
    
            private void button11_Click(object sender, EventArgs e)  //logx函数
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
                    if (Convert.ToDouble(textBox3.Text) <= 0)
                        MessageBox.Show("真数必须大于0", "WRONG!!!");
                    else
                    {
                        textBox3.Text = (Math.Round(Math.Log10(Convert.ToDouble(textBox3.Text)), 10)).ToString();
                        textBox2.Text = textBox3.Text;
                    }
                    
                }
                else
                {
                    if (Convert.ToDouble(textBox3.Text) <= 0)
                        MessageBox.Show("真数必须大于0", "WRONG!!!");
                    else
                    {
                        textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                        textBox3.Text = (Math.Round(Math.Log10(Convert.ToDouble(textBox3.Text)), 10)).ToString();
                        textBox2.Text += textBox3.Text;
                    }
                    
                }
            }
    
            private void button16_Click(object sender, EventArgs e)  //平方根函数
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
                    if (Convert.ToDouble(textBox3.Text) < 0)
                        MessageBox.Show(" 小于0的数无法进行平方根运算.", "WRONG!!!");
                    else
                    {
                        textBox3.Text = Math.Round(Math.Sqrt(Convert.ToDouble(textBox3.Text)), 10).ToString();
                        textBox2.Text = textBox3.Text;
                    }
                    
                }
                else
                {
                    if (Convert.ToDouble(textBox3.Text) < 0)
                        MessageBox.Show(" 小于0的数无法进行平方根运算.", "WRONG!!!");
                    else
                    {
                        textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                        textBox3.Text = Math.Round(Math.Sqrt(Convert.ToDouble(textBox3.Text)), 10).ToString();
                        textBox2.Text += textBox3.Text;
                    }
                    
                }
            }
    
            private void button26_Click(object sender, EventArgs e)  //sin函数
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
                    
                    textBox3.Text = Math.Round(Math.Sin(Convert.ToDouble(textBox3.Text)),10).ToString();
                    textBox2.Text = textBox3.Text;
                }
                else
                {
                    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                    
                    textBox3.Text = Math.Round(Math.Sin(Convert.ToDouble(textBox3.Text)), 10).ToString();
                    textBox2.Text += textBox3.Text;
                }
            }
    
            private void button27_Click(object sender, EventArgs e)  //cos函数
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
    
                    textBox3.Text = Math.Round(Math.Cos(Convert.ToDouble(textBox3.Text)), 10).ToString();
                    textBox2.Text = textBox3.Text;
                }
                else
                {
                    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                    textBox3.Text = Math.Round(Math.Cos(Convert.ToDouble(textBox3.Text)), 10).ToString();
                    textBox2.Text += textBox3.Text;
                }
            }
    
            private void button28_Click(object sender, EventArgs e)  //tan函数
            {
                if (textBox3.Text == "")
                    textBox2.Text += "";
                else if (textBox2.Text == textBox3.Text)
                {
    
                    textBox3.Text = Math.Round(Math.Tan(Convert.ToDouble(textBox3.Text)), 10).ToString();
                    textBox2.Text = textBox3.Text;
                }
                else
                {
                    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - textBox3.Text.Length);
                    textBox3.Text = Math.Round(Math.Tan(Convert.ToDouble(textBox3.Text)), 10).ToString();
                    textBox2.Text += textBox3.Text;
                }
            }
    
            private void button25_Click(object sender, EventArgs e)
            {
                string expression_1 = textBox2.Text;
                juge(expression_1);
                expression_1 = textBox2.Text;
                string expression_2 = test_turn(expression_1);
                string number = getnumber(expression_2);
                textBox3.Text = number;
            }
    
            private void juge(string expression_1)  //判断是否有不符合常规的表达式的判断
            {
                if (expression_1[0] == '+' || expression_1[0] == '-' || expression_1[0] == '*' || expression_1[0] == '/' || expression_1[0] == '.')
                    textBox2.Text  = "0" + textBox2.Text;
            }
            private  double getvalue(char op, double ch1, double ch2)  //运算符执行的步骤
            {
                switch (op)
                {
                    case '+':
                        return ch2 + ch1;
                    case '-':
                        return ch2 - ch1;
                    case '*':
                        return ch2 * ch1;
                    case '/':
                        return ch2 / ch1;
                    default:
                        return 0;
                }
            }
    
            private  string getnumber(string test_2)  //表达式的计算
            {
                Stack<string> stacks = new Stack<string>();
                Stack<string> num = stacks;
                double non1, non2, ret;
                string number = null;
                for (int i = 0; i < test_2.Length; i++)
                {
                    if (test_2[i] != '+' && test_2[i] != '-' && test_2[i] != '*' && test_2[i] != '/')
                    {
                        if (test_2[i] == '#')
                        {
                            Console.WriteLine(number);
                            num.Push(number);
                            number = null;
                            continue;
                        }
                        number += test_2[i];
                    }
                    else
                    {
                        non1 = Convert.ToDouble(num.Pop());
                        non2 = Convert.ToDouble(num.Pop());
                        ret = getvalue(test_2[i], non1, non2);
                        num.Push(ret.ToString());
                    }
                }
    
                return num.Pop();
    
            }
    
            private  string test_turn(string test_1)  //转后缀表达式的函数
            {
                string test_2 = null;
                Stack<char> stacks = new Stack<char>();
                Stack<char> operation = stacks;
                Console.WriteLine(test_1);
                for (int i = 0; i < test_1.Length; i++)
                {
    
                    if (test_1[i] != '+' && test_1[i] != '-' && test_1[i] != '*' && test_1[i] != '/' && test_1[i] != '(' && test_1[i] != ')')
                    {
                        test_2 += test_1[i];
                        if (i == test_1.Length - 1)
                            test_2 += "#";
                        if (i < test_1.Length - 1)
                            if (test_1[i + 1] == '+' || test_1[i + 1] == '-' || test_1[i + 1] == '*' || test_1[i + 1] == '/' || test_1[i + 1] == '(' || test_1[i + 1] == ')')
                                test_2 += "#";
    
                    }
                    else
                    {
                        switch (test_1[i])
                        {
                            case ')':
                                while (operation.Count > 0)
                                {
                                    if (operation.Peek() == '(')
                                        break;
                                    test_2 += operation.Pop();
    
                                }
                                operation.Pop();
                                break;
    
                            case '(':
                                operation.Push(test_1[i]);
                                break;
    
                            case '+':
                            case '-':
                            case '*':
                            case '/':
                                while (operation.Count > 0)
                                {
                                    if (test_number(test_1[i]) <= test_number(operation.Peek()))
                                    {
                                        test_2 += operation.Pop();
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                operation.Push(test_1[i]);
                                break;
                        }
    
                    }
    
    
                }
                while (operation.Count > 0)
                    test_2 += operation.Pop();
                Console.WriteLine(test_2);
                return test_2;
            }
    
            private  int test_number(char a)  //符号优先级判断
            {
                switch (a)
                {
                    case '+': return 1;
                    case '-': return 1;
                    case '*': return 2;
                    case '/': return 2;
                    default: return 0;
                }
            }
    
            private void button30_Click(object sender, EventArgs e)  //启动画图功能
            {
                Form2 form2 = new Form2();
                form2.ShowDialog();
            }
    
    
            
            private void Form1_KeyDown(object sender, KeyEventArgs e)  //实现按键输入
            {
                switch (e.KeyCode)
                {
                    case Keys.NumPad1:
                        this.button4_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad2:
                        this.button9_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad3:
                        this.button14_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad4:
                        this.button3_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad5:
                        this.button8_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad6:
                        this.button13_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad7:
                        this.button2_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad8:
                        this.button7_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad9:
                        this.button12_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.NumPad0:
                        this.button10_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Add:
                        this.button17_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Multiply:
                        this.button19_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Subtract:
                        this.button18_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Divide:
                        this.button20_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Back:
                        this.button21_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Escape:
                        this.button22_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.Decimal:
                        this.button15_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.D9:
                        this.button29_Click(null, null);
                        button25.Focus();
                        break;
                    case Keys.D0:
                        this.button50_Click(null, null);
                        button25.Focus();
                        break;
                    default:
                        break;
                }
            }
            
            #endregion
    
        }
    }
    

    普通计算的设计页面
    科学计算器的设计页面

    画图功能的实现如下

    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 WindowsFormsApp3
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            int i=1;
            int  x1 = 0;
            int  y1 = 0;
            int number = 0;
            double[] y2=new double[2000];
            int[] x2 = new int[2000];
    
           
            private void button1_Click(object sender, EventArgs e)  //绘图button
            {
                Form2_Paint(sender, null);
                pictureBox1_Paint(sender, null);
            }
    
            private void button2_Click(object sender, EventArgs e)  //sin函数
            {
                if(textBox1.Text=="")
                    textBox1.Text += "sin(x)";
                else
                    textBox1.Text += "+sin(x)";
                if (x1 != -628)
                    x1 -= 628;
                y1 += -Convert.ToInt32(Math.Sin(0 / 100) * 100 );
                for (; i < 1500; i++)
                    y2[i]+=  - Math.Sin(i / 100.0) * 100;
                i = 1;
            }
    
            private void button3_Click(object sender, EventArgs e)  //cos函数
            {
                if (textBox1.Text == "")
                    textBox1.Text += "cos(x)";
                else
                    textBox1.Text += "+cos(x)";
                if (x1 != -628)
                    x1 -= 628;
                y1 += -Convert.ToInt32(Math.Cos(0 / 100) * 100);
                for (; i < 1500; i++)
                    y2[i] += -Math.Cos(i / 100.0) * 100;
                i = 1;
            }
    
            private void button6_Click(object sender, EventArgs e) //tan函数
            {
                if (textBox1.Text == "")
                    textBox1.Text += "tan(x)";
                else
                    textBox1.Text += "+tan(x)";
                if(x1!=-628)
                x1 -= 628;
                y1 += -Convert.ToInt32(Math.Tan(0 / 100) * 100);            
                    for (; i < 1500; i++)
                        y2[i] += -Math.Tan(i / 100.0) * 100;
                i = 1;
            }
    
            private void button7_Click(object sender, EventArgs e) //清空按钮
            {
                pictureBox1.Image = null;
                textBox1.Text = null;
                for (int j = 1; j < 1500; j++)
                    y2[j] = 0;
                y1 = 0;
                x1 = 0;
                number = 0;
                n = 1;
                m = 1;
                
            }
    
            private void button5_Click(object sender, EventArgs e)  //logx函数
            {
                if (textBox1.Text == "")
                    textBox1.Text += "log(x)";
                else
                    textBox1.Text += "+log(x)";
                if (x1 == -628)
                    x1 += 628;
                y1 += -Convert.ToInt32(Math.Log10(1) * 70)+150;
                for (; i < 1500; i++)
                    y2[i] += -Math.Log10(i / 1.0) * 70+150;
                i = 1;
            }
    
            private void button4_Click(object sender, EventArgs e)  //lnx函数
            {
                if (textBox1.Text == "")
                    textBox1.Text += "ln(x)";
                else
                    textBox1.Text += "+ln(x)";
                if (x1 == -628)
                    x1 += 628;
                y1 += -Convert.ToInt32(Math.Log( 1) * 70)+150;
                    for (; i < 1500; i++)
                    y2[i] += -Math.Log(i / 1.0) * 70+150;
                i = 1;
            }
    
            
    
            private void button8_Click(object sender, EventArgs e)  //x的幂次函数
            {
                number = 0;
                number = (int)numericUpDown1.Value;
                if (textBox1.Text == "")
                    textBox1.Text += "x^"+number.ToString();
                else
                    textBox1.Text += "+x^" + number.ToString();
                if (x1 != -628)
                    x1 -= 628;
                y1 += Convert.ToInt32(Math.Pow(0,number));
                if(number>1)
                for (i=0; i < 1500; i++)
                    y2[i] += -Math.Pow(i-628, number)/100;
                if(number<=1)
                    for (i = 0; i < 1500; i++)
                        y2[i] += -Math.Pow(i - 628, number);
                i = 1;
            }
            private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();                      
                Point begin = new Point();
                Point end = new Point();
    
                Pen pn_1 = new Pen(Color.Blue);
                
                begin.X = x1 + pictureBox1.Width / 2;     //起点
                begin.Y = y1 + pictureBox1.Height / 2;
                for (; i < 1500; i++)
                {
                    end.X = x1 + i + pictureBox1.Width / 2;
                    end.Y = Convert.ToInt32(y2[i]) + pictureBox1.Height / 2;
                    g.DrawLine(pn_1, begin, end);
                    begin = end;
                }
                i = 1;
                picture_line();
                picture_line3();
            }
    
            private void picture_line(int n=1)  //x轴标尺(放大)
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();
                Point line_1 = new Point();
                Point line_2 = new Point();
                line_1.Y = pictureBox1.Height / 2;
                line_2.Y = pictureBox1.Height / 2 - 10;
                line_1.X = 0;
                line_2.X = 0;
                Pen pn_2 = new Pen(Color.Black);
                for (; i < 1500; i++)
                {              
                    g.DrawLine(pn_2, line_1, line_2);                               
                    line_1.X +=  10*n;
                    line_2.X +=  10*n;
                }
                i = 1;
            }
            private void picture_line1(int n = 1)  //x轴标尺(缩小)
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();
                Point line_1 = new Point();
                Point line_2 = new Point();
                line_1.Y = pictureBox1.Height / 2;
                line_2.Y = pictureBox1.Height / 2 - 10;
                line_1.X = 0;
                line_2.X = 0;
                Pen pn_2 = new Pen(Color.Black);
                for (; i < 1500; i++)
                {
                    g.DrawLine(pn_2, line_1, line_2);
                    line_1.X += 10 / n;
                    line_2.X += 10 / n;
                }
                i = 1;
            }
    
    
    
            private void picture_line3(int n = 1)  //y轴标尺(放大)
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();
                Point line_1 = new Point();
                Point line_2 = new Point();
                line_1.Y = 0;
                line_2.Y = 0;
                line_1.X = pictureBox1.Width/2;
                line_2.X = pictureBox1.Width / 2+10;
                Pen pn_2 = new Pen(Color.Black);
                for (; i < 1500; i++)
                {
                    g.DrawLine(pn_2, line_1, line_2);
                    line_1.Y += 10 * n;
                    line_2.Y += 10 * n;
                }
                i = 1;
            }
    
            private void picture_line4(int m = 1)  //y轴标尺(缩小)
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();
                Point line_1 = new Point();
                Point line_2 = new Point();
                line_1.Y = 0;
                line_2.Y = 0;
                line_1.X = pictureBox1.Width / 2;
                line_2.X = pictureBox1.Width / 2 + 10;
                Pen pn_2 = new Pen(Color.Black);
                for (; i < 1500; i++)
                {
                    g.DrawLine(pn_2, line_1, line_2);
                    line_1.Y += 10 / m;
                    line_2.Y += 10 / m;
                }
                i = 1;
            }
    
            private void Form2_Paint(object sender, PaintEventArgs e)  //画坐标轴
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();    
               
                Point axis_1 = new Point();
                Point axis_2 = new Point();
                Point axis_3 = new Point();
                Point axis_4 = new Point();
               
                Pen pn_2 = new Pen(Color.Black);
    
                axis_1.X = pictureBox1.Width;         //x 轴右端点
                axis_1.Y = pictureBox1.Height / 2;
    
                axis_2.X = 0;                         //x 轴左端点
                axis_2.Y = pictureBox1.Height / 2;
    
                axis_3.X = pictureBox1.Width / 2;     //y 轴上端点
                axis_3.Y = 0;
    
                axis_4.X = pictureBox1.Width / 2;     //y 轴下端点
                axis_4.Y = pictureBox1.Height;
    
    
                
                g.DrawLine(pn_2, axis_2, axis_1);
                g.DrawLine(pn_2, axis_3, axis_4);
    
                
            }
    
            private void Form2_Load(object sender, EventArgs e) //判断鼠标滑轮
            {
                this.MouseWheel += pictureBox1_MouseWheel;
            }
    
            private void pictureBox11_Paint(object sender, PaintEventArgs e)  //放大函数功能
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();
                PointF begin = new Point();
                PointF end = new Point();
                Pen pn_1 = new Pen(Color.Blue);
                begin.X = (x1 )*n + pictureBox1.Width / 2;     //起点
                begin.Y = (y1 )*n + pictureBox1.Height / 2;
                for (; i < 1500; i++)
                {
                    end.X = (x1 + i )*n + pictureBox1.Width / 2;
                    end.Y = (Convert.ToInt32(y2[i]) )*n + pictureBox1.Height / 2;
    
                    
                    g.DrawLine(pn_1, begin, end);
                    begin = end;
                }
                i = 1;
    
                Point axis_1 = new Point();
                Point axis_2 = new Point();
                Point axis_3 = new Point();
                Point axis_4 = new Point();
    
                Pen pn_2 = new Pen(Color.Black);
    
                axis_1.X = pictureBox1.Width;         //x 轴右端点
                axis_1.Y = pictureBox1.Height / 2;
    
                axis_2.X = 0;                         //x 轴左端点
                axis_2.Y = pictureBox1.Height / 2;
    
                axis_3.X = pictureBox1.Width / 2;     //y 轴上端点
                axis_3.Y = 0;
    
                axis_4.X = pictureBox1.Width / 2;     //y 轴下端点
                axis_4.Y = pictureBox1.Height;
    
    
    
                g.DrawLine(pn_2, axis_2, axis_1);
                g.DrawLine(pn_2, axis_3, axis_4);
            }
            private void pictureBox12_Paint(object sender, PaintEventArgs e)  //缩小函数图像功能
            {
                Graphics g;
                g = this.pictureBox1.CreateGraphics();
                PointF begin = new Point();
                PointF end = new Point();
                Pen pn_1 = new Pen(Color.Blue);
                begin.X = (x1 ) / m + pictureBox1.Width / 2;     //起点
                begin.Y = (y1 ) / m + pictureBox1.Height / 2;
                for (; i < 1500; i++)
                {
                    end.X = (x1 + i ) / m + pictureBox1.Width / 2;
                    end.Y = (Convert.ToInt32(y2[i]) ) / m + pictureBox1.Height / 2;
                    g.DrawLine(pn_1, begin, end);
                    begin = end;
                }
                i = 1;
    
                Point axis_1 = new Point();
                Point axis_2 = new Point();
                Point axis_3 = new Point();
                Point axis_4 = new Point();
    
                Pen pn_2 = new Pen(Color.Black);
    
                axis_1.X = pictureBox1.Width;         //x 轴右端点
                axis_1.Y = pictureBox1.Height / 2;
    
                axis_2.X = 0;                         //x 轴左端点
                axis_2.Y = pictureBox1.Height / 2;
    
                axis_3.X = pictureBox1.Width / 2;     //y 轴上端点
                axis_3.Y = 0;
    
                axis_4.X = pictureBox1.Width / 2;     //y 轴下端点
                axis_4.Y = pictureBox1.Height;
    
    
    
                g.DrawLine(pn_2, axis_2, axis_1);
                g.DrawLine(pn_2, axis_3, axis_4);
            }
            int n = 1;
            int m = 1;
            private void pictureBox1_MouseWheel(object sender, MouseEventArgs e)  //滑轮上下滑动执行的操作
            {
                
                if(e.Delta>0)
                {
                    n++;
                    Refresh();
                    picture_line(n);
                    picture_line3(n);
                    pictureBox11_Paint(sender, null);
                }
                else
                {
                    m++;
                    Refresh();
                    picture_line1(m);
                    picture_line4(m);
                    pictureBox12_Paint(sender, null);
                }
    
                
            }
    
           
        }
    }
    

    画图功能的简单实现

    展开全文
  • 计算器编写过程

    2016-05-23 16:09:00
     计算器:我们要计算一个长字符串,字符串中包含+、-、*、/、=、[0-9]、();  在这里我们要考虑优先级问题: 括号先算括号内部的的 没有括号,要先算乘除 乘除算完之后要进行加减运算 二、 1.没有...

    一、思路:

      计算器:我们要计算一个长的字符串,字符串中包含+、-、*、/、=、[0-9]、();

      在这里我们要考虑优先级的问题:

    • 有括号先算括号内部的的
    • 没有括号,要先算乘除
    • 乘除算完之后要进行加减运算

    二、

    1.没有括号的情况下的加减乘除

    s = '1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
    s1 = '9-2*5/3+7/3*-99/4*2998+10*568/14'
    #*/的优先级高要先进行计算
    #用*或者/对字符串进行分割
    m = re.split('(\d+\.?\d*[*/]-?\d+\.?\d*)',s1,1)
    #取出内部括号内没有括号的情况
    print(m)
    #['9-', '2*5', '/3+7/3*-99/4*2998+10*568/14'] if len(m) == 3: bef = m[0] con = m[1]#这个就是我们要计算分割出来要进行计算的只含有乘除的式子 aft = m[2] if '*' in con: a,b = con.split('*') c = float(a)*float(b)#这里的c是浮点型 temp = bef + str(c) + aft s1 = temp print(s1)#9-10.0/3+7/3*-99/4*2998+10*568/14计算了第一个*两边的数计算的结果并更新了字符串
         else: a, b = con.split('/') c = float(a) / float(b) # 这里的c是浮点型 temp = bef + str(c) + aft s1 = temp print(s1)

    2.封装到函数当中

    import re
    s = '1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
    s1 = '9-2*5/3+7/3*-99/4*2998+10*568/14'
    #*/的优先级高要先进行计算#用*或者/对字符串进行分割
    def chengchu(s1):
        while True:
            m = re.split('(\d+\.?\d*[*/]-?\d+\.?\d*)',s1,1)
            #取出内部括号内没有括号的情况
            # print(m)
            if len(m) == 3:
                bef = m[0]
                con = m[1]#这个就是我们要计算分割出来要进行计算的只含有乘除的式子
                aft = m[2]
                if '*' in con:
                    a,b = con.split('*')
                    c = float(a)*float(b)#这里的c是浮点型
                    temp = bef + str(c) + aft
                    s1 = temp
                    # print(s1)
                else:
                    a, b = con.split('/')
                    c = float(a) / float(b)  # 这里的c是浮点型
                    temp = bef + str(c) + aft
                    s1 = temp
                    # print(s1)
            else:
                return s1
    q = chengchu(s1)
    m = eval('9-2*5/3+7/3*-99/4*2998+10*568/14')
    print(m)
    n = eval('9-3.3333333333333335+-173134.50000000003+405.7142857142857')
    print(n)
    print(q)
    

     结果:

    -172723.11904761908
    -172723.11904761908
    9-3.3333333333333335+-173134.50000000003+405.7142857142857
    

    三、考虑只有加减的字符串

    1.

    s = '-1+2-3+5+9-6'
    m = re.findall('-?\d+\.?\d*',s)
    print(m)#m是一个列表包含很多元素
    w = 0
    for i in m:#遍历出列表中的所有元素
        w = w + float(i)#元素遍历相加
    print(w)
    

     结果:

    ['-1', '2', '-3', '5', '9', '-6']
    6.0
    

    2.对函数进行封装

    s = '-1+2-3+5+9-6'
    def jiajian(s):
    
        m = re.findall('-?\d+\.?\d*',s)
        print(m)#m是一个列表包含很多元素
        w = 0
        for i in m:#遍历出列表中的所有元素
            w = w + float(i)#元素遍历相加
        # print(w)
        return w
    a = jiajian(s)
    print(a)
    

     结果:

    ['-1', '2', '-3', '5', '9', '-6']
    6.0
    

    四、去括号思路

    1.

    s = '1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
    s = re.sub('\s*',s)#去除字符串中的空白符
    m = re.split('\(([^()]*)\)',s,1)#找到一个不包含括号的算书式
    print(m)
    

     结果:

    ['1-2*((60-30+', '-40.0/5', '*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))']
    

     注:一次分割之后的到了一个有三个元素的列表,第一个元素就是我们要取的括号内部的内容

     五、各个模块的功能已经实现,下面要做的就是“拼图”。

    import re
    def chengchu(s):
        while True:
            m = re.split('(\d+\.?\d*[*/]-?\d+\.?\d*)',s,1)#用*、/号对列表进行分割分割之后一共是三部分,如果分割成功m[1]要么包含乘号要么包含除号
            if len(m) == 3:
                bef = m[0]
                con = m[1]
                aft = m[2]
                # print(con,type(con))
                if "*" in con:#如果包含乘号
                    a,b = con.split('*')#把*号前面的值赋值给a,把*号后面的值赋值给b
                    c = float(a)*float(b)#c是a与b的乘积
                    temp = bef + str(c) +aft#把c转换成字符串的格式,将进行乘法运算的字符串重新拼接,
                    s = temp#将新得到的字符串替换掉原来进行计算的字符串
                else:
                    a, b = con.split('/')#把/号前面的值赋值给a,把*号后面的值赋值给b
                    c = float(a) / float(b)#c是a与b的商
                    temp = bef + str(c) + aft#把c转换成字符串的格式,将进行乘法运算的字符串重新拼接,
                    s = temp#将新得到的字符串替换掉原来进行计算的字符串
            else:
                return s
    def jiajian(s):
        # 再计算之前把--、++替换成 +;把+-、-+替换成 - ;
        s = re.sub('\-\-', '+', s)
        s = re.sub('\-\+', '-', s)
        s = re.sub('\+\-', '-', s)
        s = re.sub('\+\+', '+', s)
        m = re.findall('-?\d+\.?\d*',s)#找到字符串中所有的数字,包含数字前面的符号
        w = 0
        for i in m:
            w = w + float(i)
        return w
    
    s = '1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))--(-4*3)/(16-3*2))'
    print(s)
    while True:
        s = re.sub('\s*','',s)  # 去除输入字符串中的空白符
        m = re.split('\(([^()]*)\)',s,1)#re.split之后的m是一个列表;遍历字符串依次去除第一个()一直到最后一个
        if len(m) == 3:
            bef = m[0]
            con = m[1]
            aft = m[2]
            a = chengchu(con)   # 先算乘除法
            b = jiajian(a)      #乘除法计算完之后的算术式就只是含有加减号;调用jiajian函数
            #加减计算完成之后b就是一个浮点数
            s = bef + str(b) +aft#将字符串重新拼接
            print(s)#每一次计算之后输出更新后的新的
        else:
            #全部的括号去除之后对式子在进行计算:先乘除再加减
            a = chengchu(s)#这里计算的表达式是一个单纯的算术式没有括号所以是去掉了括号的s
            b = jiajian(a)
            print(b)#输出最终的计算结果
            break
    #用eval来验证计算的是否正确
    print(eval('1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))--(-4*3)/(16-3*2))'))
    

     结果:

    1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))--(-4*3)/(16-3*2))
    1-2*((60-30+-8.0*(9-2*5/3+7/3*99/4*2998+10*568/14))--(-4*3)/(16-3*2))
    1-2*((60-30+-8.0*173545.88095238098)--(-4*3)/(16-3*2))
    1-2*(-1388337.0476190478--(-4*3)/(16-3*2))
    1-2*(-1388337.0476190478---12.0/(16-3*2))
    1-2*(-1388337.0476190478---12.0/10.0)
    1-2*-1388338.2476190478
    2776677.4952380955
    2776677.4952380955
    

         

    转载于:https://www.cnblogs.com/mosson0816/p/5519874.html

    展开全文
  • android小程序计算器的制作过程

    千次阅读 2017-06-19 10:42:06
    拥有集成电路芯片,但结构比电脑简单得多,可以说是第一代的电子计算机(电脑),且功能也较弱,但较为方便与廉价,可广泛运用于商业交易中,但现在广泛被使用的计算器应该在手机应用上,几乎每台手机都这个小程序,...

           计算器对于我们来说并不陌生,它是现代人发明的可以进行数字运算的电子机器。现代的电子计算器能进行数学运算的手持电子机器,拥有集成电路芯片,但结构比电脑简单得多,可以说是第一代的电子计算机(电脑),且功能也较弱,但较为方便与廉价,可广泛运用于商业交易中,但现在广泛被使用的计算器应该在手机应用上,几乎每台手机都有这个小程序,而使用起来也很方便。在Android系统上制作计算器,这个小程序的步骤是怎样的呢,本文就是写关于android小程序计算器的制作。

    学习android小程序计算器的制作_android_小程序_安卓小程序_课课家

     以前用Python、js写的计算器都是弱智型的,主要是练怎么做简单的UI,这次Android的计算器看到了不同的实现逻辑,虽然不是很难,但是以我的智商貌似真的想不到。

      一、布局就先不说了,我现在也没全弄懂,都是用手拖上去的,定义了16个按钮,主要说一下计算器的实现逻辑,首先建一个Item类,有value和type两个属性,value是double型,用来存数字,type是Int型,用来代替符号(加减乘除),构造方法可以定义这两个属性。

      二、建一个Types类用来存运算符号对应的数字,别引入sql里面那个Types,不然会报错:

      三、在mainactivity中构造一个Items的队列,就用三个元素,第一个存数字和结果,第二个存符号,第三个存数字:

      、定义一个checkAndCompute()方法,每次用户按下按钮的时候都会执行,当检查到队列items中元素数大于等于三时,进行算数操作:

      、在onclick()方法中绑定事件,清零就是把textview清零,把items队列清零,加减乘除运算符先向items队列中添加textview中的数字,之后检查是否需要计算,再向items队列中添加运算符,如果是等号的话,先获取数字,检查计算后直接输出items中第一个元素的value。

         五个步骤简单地制作完成了手机计算器小程序,其实使用可视化制作会比较简单,但是可视化有局限性,本文就用代码简单制作,有兴趣的同学也可以跟着我们的代码操作起来。

    展开全文
  • 该设计论文已经通过各大...Java课程设计报告保存计算过程的计算器目 录1 设计要求12 总体设计12.1 CalculatorWindow类设计22.2 NumberButton类设计22.3 OperationButton类设计22.4 HandleDigit类设计22.5 HandleO...

    该设计论文已经通过各大高校老师审核认可并通过答辩,准确完整无误。欢迎大家下载学习交流。如有疑问可随时联系店主,竭诚为您解答!!

    Java课程设计报告

    保存计算过程的计算器目 录

    1 设计要求1

    2 总体设计1

    2.1 CalculatorWindow类设计2

    2.2 NumberButton类设计2

    2.3 OperationButton类设计2

    2.4 HandleDigit类设计2

    2.5 HandleOperation类设计2

    2.6 HandleDot类设计3

    2.7 HandleEquality类设计3

    2.8 HandleSin类设计3

    2.9 HandleBack类设计3

    2.10 HandleClear类设计3

    2.11 HandlePOrN类设计3

    3详细设计3

    3.1CalculatorWindow类3

    3.2NumberButton类9

    3.3 OperationButton类10

    3.4 HandleDigit类11

    3.5 HandleOperation类13

    3.6 HandleDot类16

    3.7 HandlePOrN类18

    3.8 HandleEquality类19

    3.9 HandleSin类22

    3.10 HandleBack类24

    3.11 HandleClear类26

    4代码调试问题28

    5软件发布28

    6 程序运行效果28

    7 设计心得30

    保存过程的计算器的设计

    1 设计要求

    Windows 2000/XP系统中的“计算器”是一个方便实用的计算机工具,但是没有提供显示计算过程的功能。本计算器所遵循的计算规则与 2000/XP系统中的“计算器”相同,出了具有普通的计算功能外,还具有现实计算过程,保存计算过程的功能。

    2 单击“计算器”上的运算符按钮(+、-、*、/)可以选择运算符号。

    3 单击“计算器”上的函数按钮可以显示相应的函数值。

    4 单击“计算器”上的“ ”按钮显示计算结果。

    5 在一个文本框中显示当前的计算过程,在一个文本区中显示以往的计算过程和发生计算时的系统时间。

    6 单击“保存”按钮可以将文本区中的全部计算过程保存到文件;单击“复制”按钮可以将文本区中选中的文本复制到剪贴板;单击“清除”按钮可以清楚文本区中的全部2 总体设计

    在设计计算器时,可以编写11个ava源文件:alculatorWindow.java、umberButton.java、perationButton.java、andleDigit.java、andleOperation.java、andleDot.java、andleEquality.java、andleSin.java、andleBack.java、andleClear.java、ndlePOrN.java。

    计算器除了上述的11个va源文件给出的类外,还需要va提供的一些重要的类,入extField、extArea和

    图2.1 类之间的组合关系

    2.1 CalculatorWindow类设计

    CalculatorWindow类负责创建计算器的主窗口,该类含有Main方法,计算器从该类开始执行。 、umberButton、perationButton、utton、extField、extArea、andleDigit、andleOperation、andleDot、andleEquality、andleSin、andleBack、andleClear、ndlePOrN对象。alcuatorWindow类创建的窗口以及其中的主要成员如图2.2所示。lculatorWindow类的主要成员的作用将在后面的详细设计中阐述。

    图2.2 lculatorWindow窗口及主要的对象成员umberButton类设计

    NumberButton类创建的对象是主类Button类有一个Button所创建的10个按钮被添加到perationButton类设计

    OperationButton类创建的对象是主类andleDigit类设计

    HandleDigit类创建的对象负责处理ctionEvent事件。当用户单击andleOperation类设计

    HandleOperation类创建的对象负责处理andleDot类设计

    HandleDot类创建的对象负责处理Dot类所创建的对象负责处理小数点。andleEquality类设计

    HandleEquality类创建的对象负责处理andleSin类设计

    HandleSin类创建的对象负责处理sin”按钮(正弦三角函数)时,HandleSin类所创建的对象负责处理正弦三角函数的值。andleBack类设计

    HandleBack类创建的对象负责处理HandleBack类所创建的对象负责计算正弦三晋函数的值。andleClear类设计

    HandleClear所创建的对象负责处

    展开全文
  • js版的计算器

    万次阅读 多人点赞 2019-05-23 10:21:04
    在老师的带领下完成了这个简单的计算器,这是一个神奇的过程,计算器的基本功能都是的。虽然是个简单的计算器,但对初学者来说,还是需要强大的逻辑判断能力,里面很多的条件,作为开发者要不断的寻找设计里的...
  • 简单点就是像普通计算器算,但得出来结果和过程显示在一个显示框里面比如2*3=6这一整个 显示出来 另一个显示框是普通计算器的显示形式
  • 按照前辈们方法制作了一个计算器,并稍稍加了点女生特有小心思,现将制作过程详细给出,希望能帮到和我一样初学者。不过因为初学,水平有限(审美水平更有限),所以制作很粗糙,不当之处请大家指正。 我...
  • android的计算器

    2014-09-15 18:44:00
    今天我闲着无聊,便想仿照Iphone的计算器自己写一个出来玩玩,于是就开动脑经,来场头脑风暴了!我拿什么了写呢?wp?这是个不错的选择,但是我最近在研究安卓的开发(求各位MSP不要烧我,我买不起MAC,你们要搞应该...
  • MFC制作的计算器

    2011-12-18 19:45:33
    基于MFC对话框设计的一个简易的计算器。仅加减乘除和清零等功能,适合初学者学习,当然也欢迎更多的志同者来修改并完善这一程序,但希望用易于简单的过程实现,初中是利于初学者的学习。
  • 算一个优先级式子不太会.. 我看博主思路写..但是不对...MFC我也不会怎么逐过程debug... **人能给个下载学习一下 或者看下博主代码哪里错了吗 还有...MFC怎么像平时C++那样分步debug啊..** ![图片说明]...
  • 科学计算器 计算器

    热门讨论 2008-09-11 23:08:01
    真实的计算器界面,真正的绿色软件,不需安装,一个文件集全部功能于一身,不占用注 册表资源。 中文语音提示,键盘与鼠标操作,操作方式与现实生活中普遍使用的计算器完全相同,所 以非常容易上手,尤其对经常...
  • 1、设计App界面,可以输入2个操作数和操作符(加减乘除),还有等号; 2、编写好App行为,能正常实现数字加减乘除计算,对除零情况提示。
  • 基于STM32的计算器

    千次阅读 2020-10-30 14:51:19
    基于STM32的计算器开发如下需求: 1.操作界面在电脑端,用C++编写,只负责按键和显示; 2.计算部分在STM32端,用c语言编写,实现计算功能。 概括一下就是在电脑上编写一个上位机程序,主要负责发送数据,计算功能...
  • 简单计算器

    2017-10-19 22:09:03
    本程序是作者在学习C#过程中在老师指导下尝试完成一个计算器小程序,可以很好实现计算器的四则运算。并考虑了优先级,希望可以对大家编程过程一些参考。
  • ASM 中的计算器 TASM 的 ASM 控制台 16 位计算器 该程序是带 TASM 的控制台编程中的 16 位计算器,允许您对没有括号的整数进行加法、减法、除法。 将来我们会让它解释括号。 要做到这一点 : 分析表达式 2 ...
  • 简易的计算器

    2010-04-04 21:25:00
    可是在编写的过程中,却发现了很多意外错误。看来程序写还不够啊。。。 正好清明节放假,于是初步完成了课堂作业。在完成的过程中,不免会参照网络资源。 嘿嘿。。。了网络真不一样了。。。 程序
  • 能实现优先级的计算器

    千次阅读 2019-07-04 17:21:31
    我在网上看了很多的计算器都是那种没有实现优先级预算的,都是按照输入顺序来计算的,我不是很喜欢那种,然后我在网上查了查没有别的办法,然后我知道逆波兰表达式,要实现优先级计算器,这个技能是要掌握的,小...
  • 其实这个时候就可以调用几何画板的计算器来使用,非常的方便。但是一些用户朋友接触几何画板时间太短,对于如何调用几何画板中的计算器不是很清楚,下面我们通过几何画板教程来针对这个问题给大家讲解一下。 具体的...
  • 利用VS2010MFC制作了一个带验证用户名和密码简易计算器,并对登陆过程出现错误进行相应反应,并默认登陆名为guest,在源代码中可以更改,算是简易开发吧,打开工程项目Calc.sln运行就行了
  • 在行列式计算器中加入了收费功能生成计算过程(生成计算过程计算器程序在同一目录!) 【V1.2】 优化了约分算法,大数运算速度提升非常明显。 【V1.1】 在逆矩阵计算器中加入了显示特征值功能,其他工具也...
  • 这个是一个自己用前端语言写一个计算器的程序, 过程代码注释, 以及BUG解决, 对你应该非常帮助.
  • 支持iPad,可以作为iPad计算器使用,是iPad计算器的理想选择 支持iPhone X 支持语音播放 支持清屏 调教了最佳手感触摸控制 专门为高分辨率设备优化过 启动快、速度快、永久记录 记录完整计算过程方便...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 976
精华内容 390
关键字:

有过程的计算器