• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

visualstudio2010开发计算器心得

时间:2015年04月02日 15:22:42    来源:魔法猪系统重装大师官网    人气:13279

首先打开Microsoft Visual Studio 2010,把语言配置成C#.net。创建出一个Windows 窗体应用程序。然后再自动生成的Form1面板上面拖拽出一个textbox空间,接着拖拽出相应的按钮控件,不再一一赘述。每一个控件都要添加事件。textbox控件的单击事件可以设置为  textBox1.Text = ""; 即一旦点击输入框,输入框的文本就自动置为“”(没有任何内容),      其中textbox1是 textbox控件的名字,可以在属性框里面设定。

接下来对按钮1,2,3,4,5,6,7,8,9,0,.,*,+,-,/,等符号添加事件。每个按钮都要添加事件,但是可以是同一个事件。比如为button1添加 private void button1_Click(object sender, EventArgs e)事件后,接着对其余的控件添加事件,点开事件的下拉框,选择button1_Click事件,由于好多按钮的单击事件都相似,所以只在一个事件函数里面处理即可。但是下面让我学会了第一点重要的东西,object sender中的sender虽然作为事件源的参数,但是sender是object类型的,所以先要Button buttonsender = (Button)sender;

if (sender != 等)            

{                

textBox1.Text += buttonsender.Text;

  }            

else            

{

}

在else的部分,就要对文本textBox1.Text进行分析。本计算器不带有括号,所以每个运算符两边必定是数字。接下来就要把用户输入的数字部分摘选出来,当然,选择使用Split函数了。但是只知道这个函数能以一种字符进行分割。经过反复百度才了解了这个函数有多种重载,多种用法。其中一种是string string1 = textBox1.Text; char[] A=new char[4]{'+','-','/','*'}; string2=string1 .Split(A);其中string2是一个字符数组,相当于C中指针的指针。字符数组A包含了四种运算符。string2=string1.Split(A)把string1用A中的字符分割出来,函数原型是 string【】 Split(char【】)返回的是一个指向字符串数组的引用。

接下来要做的是运算符,textBox1.Text中含有的是加减乘除和零到九小数点。所以把不是运算符的字符全删除即可。很明显的想到了替换函数 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;
                        }                        
                    }
                   
                }
这个循环处理了所有的乘除运算符。

 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 l = new List();            

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 l = new List();            

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);        

}

visualstudio2010,开发,计算器,心得,首先,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部