西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)C#.NET → visual studio 2010開發(fā)計算器心得

visual studio 2010開發(fā)計算器心得

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2013/3/22 22:51:19字體大。A-A+

作者:西西點擊:1次評論:0次標簽: 計算器

  • 類型:行業(yè)軟件大小:1.1M語言:中文 評分:5.0
  • 標簽:
立即下載

首先打開Microsoft Visual Studio 2010,把語言配置成C#.net。創(chuàng)建出一個Windows 窗體應用程序。然后再自動生成的Form1面板上面拖拽出一個textbox空間,接著拖拽出相應的按鈕控件,不再一一贅述。每一個控件都要添加事件。textbox控件的單擊事件可以設置為  textBox1.Text = ""; 即一旦點擊輸入框,輸入框的文本就自動置為“”(沒有任何內(nèi)容),      其中textbox1是 textbox控件的名字,可以在屬性框里面設定。

接下來對按鈕1,2,3,4,5,6,7,8,9,0,.,*,+,-,/,等符號添加事件。每個按鈕都要添加事件,但是可以是同一個事件。比如為button1添加 private void button1_Click(object sender, EventArgs e)事件后,接著對其余的控件添加事件,點開事件的下拉框,選擇button1_Click事件,由于好多按鈕的單擊事件都相似,所以只在一個事件函數(shù)里面處理即可。但是下面讓我學會了第一點重要的東西,object sender中的sender雖然作為事件源的參數(shù),但是sender是object類型的,所以先要Button buttonsender = (Button)sender;

if (sender != 等)            

{                

textBox1.Text += buttonsender.Text;

  }            

else            

{

}

在else的部分,就要對文本textBox1.Text進行分析。本計算器不帶有括號,所以每個運算符兩邊必定是數(shù)字。接下來就要把用戶輸入的數(shù)字部分摘選出來,當然,選擇使用Split函數(shù)了。但是只知道這個函數(shù)能以一種字符進行分割。經(jīng)過反復百度才了解了這個函數(shù)有多種重載,多種用法。其中一種是string string1 = textBox1.Text; char[] A=new char[4]{'+','-','/','*'}; string2=string1 .Split(A);其中string2是一個字符數(shù)組,相當于C中指針的指針。字符數(shù)組A包含了四種運算符。string2=string1.Split(A)把string1用A中的字符分割出來,函數(shù)原型是 string【】 Split(char【】)返回的是一個指向字符串數(shù)組的引用。

接下來要做的是運算符,textBox1.Text中含有的是加減乘除和零到九小數(shù)點。所以把不是運算符的字符全刪除即可。很明顯的想到了替換函數(shù) string  replace(char,char)用第二種字符替換前一種字符。               
                fuhao = string1.Replace("1","");
                string fuhao1 = fuhao.Replace("2", "");
                fuhao = fuhao1.Replace("3", "");
                fuhao1 = fuhao.Replace("4", "");
                fuhao = fuhao1.Replace("5", "");
                fuhao1 = fuhao.Replace("6", "");
                fuhao = fuhao1.Replace("7", "");
                fuhao1 = fuhao.Replace("8", "");
                fuhao = fuhao1.Replace("9", "");
                fuhao1 = fuhao.Replace("0", "");
                fuhao = fuhao1.Replace(".", "");
接下來就進行計算。計算的思想是:加減乘除運算分為兩層,第一層是乘除運算,第二層是加減運算。通過mark來標記運算符字符串里面的乘除運算符,加減運算符是否還有。先做所有的乘除計算,在做剩余的加減運算。 int i,mark=1;
                while (mark == 1&&fuhao!="")
                {
                    mark = 0;
                    for (i=0;i < fuhao.Length;i++)
                    {
                        if (fuhao[i] == '*')
                        {
                            chengfa(i);
                            mark = 1;
                            break;
                        }
                        else if (fuhao[i] == '/')
                        {
                            chufa(i);
                            mark = 1;
                            break;
                        }                        
                    }
                   
                }
這個循環(huán)處理了所有的乘除運算符。

 mark = 1;
                while (mark == 1&&fuhao!="")
                {
                    mark = 0;
                    for (i = 0; i < fuhao.Length; i++)
                    {
                        if (fuhao[i] == '+')
                        {
                           jiafa(i);
                            mark = 1;
                            break;
                        }
                        else if (fuhao[i] == '-')
                        {
                            jianfa(i);
                            mark = 1;
                            break;
                        }
                    }
                }

這個處理了所有的加減運算符。

public string[] DeleteString(string[] list, int posation)        

{             List<string> l = new List<string>();            

for (int i = 0; i < list.Length; i++)            

{               

  if (i != posation)                 {                     l.Add(list[i]);                 }           

  }                            

return l.ToArray();        

}        

public string[] AddString(string[] list, string key,int location)        

{            

List<string> l = new List<string>();            

for (int i = 0; i < list.Length; i++)            

{                 if (i == location )                 {                     l.Add(key);                                  }                

  l.Add(list[i]);            

}               

  return l.ToArray();        

}    

public     void chengfa(int i)        

{            

double a = Convert.ToDouble(string2[i]);       

      double b = Convert.ToDouble(string2[i + 1]);            

double c=a*b;           

  string2 = AddString(string2, Convert.ToString(c), i);        

     string2 = DeleteString(string2, i + 1);            

string2 = DeleteString(string2, i + 1);            

fuhao = fuhao.Remove(i, 1);        

}    

public void chufa(int i)        

{            

double a = Convert.ToDouble(string2[i]);            

double b = Convert.ToDouble(string2[i + 1]);            

double c = a / b;            

string2 = AddString(string2, Convert.ToString(c), i);            

string2 = DeleteString(string2, i + 1);            

string2 = DeleteString(string2, i + 1);            

fuhao = fuhao.Remove(i, 1);        

}    

public void jiafa(int i)        

{            

double a = Convert.ToDouble(string2[i]);            

double b = Convert.ToDouble(string2[i + 1]);            

double c = a + b;            

string2 = AddString(string2, Convert.ToString(c), i);            

string2 = DeleteString(string2, i + 1);            

string2 = DeleteString(string2, i + 1);            

fuhao = fuhao.Remove(i, 1);        

}    

public void jianfa(int i)        

{            

double a = Convert.ToDouble(string2[i]);            

double b = Convert.ToDouble(string2[i + 1]);            

double c = a - b;            

string2 = AddString(string2, Convert.ToString(c), i);            

string2 = DeleteString(string2, i + 1);            

string2 = DeleteString(string2, i + 1);            

fuhao = fuhao.Remove(i, 1);        

}

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)