日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算器代码2

發布時間:2024/9/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算器代码2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

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 Caculator

{

? ? public partial class Form1 : Form

? ? {

? ? ? ? private ?Boolean clean = false,num1flag=false,simpleflag=true,num2flag=false;

? ? ? ? private simplecal scalculator = new simplecal();

? ? ? ? private char calchar;

? ? ? ? private double num1 = 0, num2 = 0, ans = 0;

? ? ? ? private Stack<char> ?soptr=new Stack<char>();


? ? ? ?

? ? ? ? public Form1()

? ? ? ? {

? ? ? ? ? ? InitializeComponent();

? ? ? ? ? ??

? ? ? ? }


? ? ? ? private void button1_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? if (simpleflag == false)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (textBox1.Text == "0" || textBox1.Text == "-0" || clean == true)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? textBox1.Text = null;

? ? ? ? ? ? ? ? ? ? clean = false;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? textBox1.Text += sender.ToString().Substring(sender.ToString().LastIndexOf(" ") + 1, 1);

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (textBox1.Text == "0" || textBox1.Text == "-0" || clean == true)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? textBox1.Text = null;

? ? ? ? ? ? ? ? ? ? clean = false;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? textBox1.Text += sender.ToString().Substring(sender.ToString().LastIndexOf(" ") + 1, 1);

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? private void button2_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button3_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button4_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button5_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button6_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button7_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button8_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button9_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button10_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ?

? ? ? ? ? ? button1_Click(sender, e);

? ? ? ? }


? ? ? ? private void button11_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? if (textBox1.Text.Substring(0, 1).Equals("-"))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? textBox1.Text = textBox1.Text.Substring(1, textBox1.Text.Length - 1);

? ? ? ? ? ? }

? ? ? ? ? ? else {

? ? ? ? ? ? ? ? textBox1.Text = "-" + textBox1.Text;

? ? ? ? ? ? }

? ? ? ? }// ?+/-


? ? ?


? ? ? ? private void button12_Click(object sender, EventArgs e) //小數點

? ? ? ? {

? ? ? ? ? ? if (textBox1.Text.Contains("."))

? ? ? ? ? ? { }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? textBox1.Text+=".";

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? ? ? ?


? ? ? ? private void Form1_KeyPress(object sender, KeyPressEventArgs e)

? ? ? ? {

? ? ? ? ? ? //this.textBox1.Text = e.KeyChar.ToString();

? ? ? ? ? ? switch ((Keys)e.KeyChar)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? case Keys.D1: button1.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D2: button2.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D3: button3.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D4: button4.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D5: button5.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D6: button6.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D7: button7.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D8: button8.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D9: button9.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.D0: button10.PerformClick(); break;

? ? ? ? ? ? ? ? case (Keys)'.': button12.PerformClick(); break;

? ? ? ? ? ? ? ? case (Keys)'+': button13.PerformClick(); break;

? ? ? ? ? ? ? ? case (Keys)'-': button14.PerformClick(); break;

? ? ? ? ? ? ? ? case (Keys)'*': button15.PerformClick(); break;

? ? ? ? ? ? ? ? case (Keys)'/': button16.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.Escape: button22.PerformClick(); break; ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? case Keys.Back: button21.PerformClick(); break;

? ? ? ? ? ? ? ? case Keys.Enter:button20.PerformClick(); break;

? ? ? ? ? ? ? ? default:break;

? ? ? ? ? ? }

? ? ? ? } //鍵盤事件


? ? ? ? private void button13_Click(object sender, EventArgs e)//+

? ? ? ? {

? ? ? ? ? ? if (simpleflag == false)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? button1_Click(sender, e);?

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? input();

? ? ? ? ? ? ? ? if (num1flag == true && num2flag == true)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? cal();

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? Setzero();

? ? ? ? ? ? ? ? button1_Click(sender, e); ?//顯示+號 ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? calchar = this.textBox1.Text[0];//記錄運算符號

? ? ? ? ? ? ? ? clean = true;//清屏標志為true

? ? ? ? ? ? }


? ? ? ? }


? ? ? ?

? ? ? ? private void button21_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? if (this.textBox1.Text.Length==1)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? this.textBox1.Text = "0";

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? try

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? this.textBox1.Text = this.textBox1.Text.Substring(0, this.textBox1.Text.Length - 1);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? catch(Exception)

? ? ? ? ? ? ? ? {?

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ??

? ? ? ? } // ←

? ? ? ? private void button22_Click(object sender, EventArgs e)// cancel

? ? ? ? {

? ? ? ? ? ? reset();

? ? ? ? ? ? Setzero();

? ? ? ? ? ?

? ? ? ? }

? ? ? ? private void button14_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button13_Click(sender, e);

? ? ? ? }

? ? ? ? private void button15_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button13_Click(sender, e);

? ? ? ? }

? ? ? ? private void button16_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button13_Click(sender, e);

? ? ? ? }

? ? ? ? private void button17_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? input();

? ? ? ? ? ? Setzero();

? ? ? ? ? ? button1_Click(sender, e); ?//顯示運算符號 ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? calchar = this.textBox1.Text[0];//記錄運算符號

? ? ? ? ? ? cal2(); ? ? ? ? ??

? ? ? ? ?

? ? ? ? ? ?

? ? ? ? ? ? this.textBox1.Text = num1.ToString();

? ? ? ? ? ? reset();

? ? ? ? ? ? clean = true;//清屏標志為true


? ? ? ? }

? ? ? ? private void button18_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button17_Click(sender, e);

? ? ? ? }

? ? ? ? private void button19_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button13_Click(sender, e);

? ? ? ? }

? ? ?


? ? ? ? private void button20_Click(object sender, EventArgs e)// =

? ? ? ? {

? ? ? ? ? ? if (simpleflag == false)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? this.textBox1.Text += '#';

? ? ? ? ? ? ? ? num1 = cal3();

? ? ? ? ? ? }


? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? input();

? ? ? ? ? ? ? ? if (num1flag == true && num2flag == true)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? cal();

? ? ? ? ? ? ? ? }//計算并將結果給予num1

? ? ? ? ? ? }

? ? ? ? ? ? this.textBox1.Text = num1.ToString();

? ? ? ? ? ? clean = true;

? ? ? ? ? ? reset();

? ? ? ? }


? ? ? ? private void radioButton2_CheckedChanged(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? simpleflag = true;

? ? ? ? ? ? button23.Visible = false;

? ? ? ? ? ? button24.Visible = false;

? ? ? ? }


? ? ? ? private void radioButton1_CheckedChanged(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? simpleflag = false;

? ? ? ? ? ? button23.Visible = true;

? ? ? ? ? ? button24.Visible = true;

? ? ? ? }


? ? ? ? private void reset()

? ? ? ? { ? ? ? ??

? ? ? ? ? ?num1 = 0;

? ? ? ? ? ? num2 = 0;

? ? ? ? ? ? num1flag = false;

? ? ? ? ? ? num2flag = false;

? ? ? ? }// num1 num2 重置


? ? ? ? private void Setzero()

? ? ? ? {

? ? ? ? ? ? this.textBox1.Text = "0";

? ? ? ? }//顯示0


? ? ? ? private void input()

? ? ? ? {

? ? ? ? ? ? if (num1flag == false)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? try

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? num1 = Convert.ToDouble(this.textBox1.Text);

? ? ? ? ? ? ? ? ? ? num1flag = true;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? catch (Exception) { }


? ? ? ? ? ? }



? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? try

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? num2 = Convert.ToDouble(this.textBox1.Text);

? ? ? ? ? ? ? ? ? ? num2flag=true;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? catch (Exception) { }

? ? ? ? ? ? }

? ? ? ? } //輸入num1或num2;


? ? ? ? private void cal()

? ? ? ? {

? ? ? ? ? ? num1 = scalculator.ans(num1, num2, calchar);

? ? ? ? ? ? num2flag=false;

? ? ? ? ? ?

? ? ? ? }

? ? ? ? private void cal2()

? ? ? ? {

? ? ? ? ? ? num1 = scalculator.ans(num1,calchar);

? ? ? ? ? ? num2flag = false;


? ? ? ? }

? ? ? ? private double cal3()//科學運算

? ? ? ? {

? ? ? ? ?Stack<char> OPTR=new Stack<char>();//運算符

? ? ? ? ?Stack<double> OPND = new Stack<double>();//操作數

? ? ? ? ?OPTR.Push('#');

? ? ? ? ?char calchar,c=this.textBox1.Text[0];

? ? ? ? ?double a = 0, b = 0;

? ? ? ? ?int i = 0, j = 0;

? ? ? ? ?while(c!='#'||OPTR.Peek()!='#')

? ? ? ? ?{

? ? ? ? ? ? ?c = this.textBox1.Text[i];

? ? ? ? ? ? ?if (!In(c))//是數字

? ? ? ? ? ? ?{ ??

? ? ? ? ? ? ? ? ?if(i==0||In(this.textBox1.Text[i-1]))//上一個符號是運算符或i=0;

? ? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ? ? ?j = i;

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?}


? ? ? ? ? ? ? ? ?if (In(this.textBox1.Text[i + 1]))//下一個符號是運算符

? ? ? ? ? ? ? ? ?{


? ? ? ? ? ? ? ? ? ? ?OPND.Push(Convert.ToDouble(this.textBox1.Text.Substring(j, i-j+1)));

? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ?i++;

? ? ? ? ? ? ?}

? ? ? ? ? ? ?else

? ? ? ? ? ? ?{

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ?if(Precede(OPTR.Peek(),c)=='?'){this.textBox1.Text="表達式錯誤";break;}

? ? ? ? ? ? ? ? ?switch (Precede(OPTR.Peek(), this.textBox1.Text[i]))

? ? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ? ? ?case'<':

? ? ? ? ? ? ? ? ? ? ? ? ?OPTR.Push(c);

? ? ? ? ? ? ? ? ? ? ? ? ?i++;

? ? ? ? ? ? ? ? ? ? ? ? ?break;

? ? ? ? ? ? ? ? ? ? ?case'=':

? ? ? ? ? ? ? ? ? ? ? ? ?OPTR.Pop();

? ? ? ? ? ? ? ? ? ? ? ? ?i++;

? ? ? ? ? ? ? ? ? ? ? ? ?break;

? ? ? ? ? ? ? ? ? ? ?case'>':

? ? ? ? ? ? ? ? ? ? ? ? ?calchar = OPTR.Pop();

? ? ? ? ? ? ? ? ? ? ? ? ?b = OPND.Pop();

? ? ? ? ? ? ? ? ? ? ? ? ?a=OPND.Pop();

? ? ? ? ? ? ? ? ? ? ? ? ?OPND.Push(scalculator.ans(a, b, calchar));

? ? ? ? ? ? ? ? ? ? ? ? ?break;

? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ?}

? ? ? ? ??

? ? ? ? ? ??

? ? ? ? ? ? ? ?


? ? ? ? ?}

? ? ? ? ?return OPND.Peek();

? ? ? ? }


? ? ? ? private char Precede(char a, char b)

? ? ? ? {

? ? ? ? ? ? switch (a)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? case '+':

? ? ? ? ? ? ? ? case '-':

? ? ? ? ? ? ? ? ? ? if (b == '+' || b == '-' || b == ')' || b == '#') return '>';

? ? ? ? ? ? ? ? ? ? if (b == '*' || b == '/' || b == '(') return '<';

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case '*':

? ? ? ? ? ? ? ? case '/':

? ? ? ? ? ? ? ? ? ? if (b == '+' || b == '-' || b == '*' || b == '/' || b == ')' || b == '#') return '>';

? ? ? ? ? ? ? ? ? ? if (b == '(') return '<';

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case '(':?

? ? ? ? ? ? ? ? ? ? if (b == '+' || b == '-' || b == '*' || b == '/' || b == '(') return '<';

? ? ? ? ? ? ? ? ? ? if (b == ')') return '=';

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case ')':?

? ? ? ? ? ? ? ? ? ? if (b == '+' || b == '-' || b == '*' || b == '/' || b == ')'||b=='#') return '<';

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case '#':

? ? ? ? ? ? ? ? ? ? if(b == '+' || b == '-' || b == '*' || b == '/' || b == '(') ?return'<';

? ? ? ? ? ? ? ? ? ? if(b=='#')return '=';

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? default: return '?'; break;

? ? ? ? ? ? }

? ? ? ? ? ? return '?';

? ? ? ? }

? ? ? ? private Boolean In(char a)//是運算符返回true

? ? ? ? {

? ? ? ? ? ? if (a.Equals('+') || a.Equals('-') || a.Equals('*') || a.Equals('/') || a.Equals('(') || a.Equals(')') || a.Equals('#')) { return true; }

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? private void textBox1_TextChanged(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button20.Focus(); //text改變,焦點鎖定為“=”

? ? ? ? ? ?

? ? ? ? }


? ? ? ? private void button23_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);?

? ? ? ? }


? ? ? ? private void button24_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? button1_Click(sender, e);?

? ? ? ? }


? ? ? ? private void Form1_Load(object sender, EventArgs e)

? ? ? ? {


? ? ? ? }


? ??


? ? ? ?


? ? ?

? ??

? ? ? ??


? ? ??

? ? ? ?


? ? ? ?

? ? }

}


轉載于:https://my.oschina.net/u/1462795/blog/278833

總結

以上是生活随笔為你收集整理的计算器代码2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。