C#计算器程序设计1)创建项目①单击文件-》新建-》项目,弹出如下对话框②模板中选择“windows窗体应用程序”-》名称中输入“jsq”-》位置单击“留了”-》选择“J:\新建文件夹”-》单击确定按钮2)计算器界面设计①向Form1中添加1个TextBox控件,1个Label控件和27个Button控件,控件布局如图所示②修改27个Button控件的Text属性,结果如图③Label控件的BorderStyle属性选择“Fixed3D”-》Text属性设置为“”-》Form1的Text属性设置为“计算器”-》Backspace控件、CE控件等的ForeColor属性选择“Red”,结果如图:3)显示窗口数据对齐方式设置TextBox控件的TextAlign属性选择“Right”;4)数字键程序设计①双击”0”按钮控件-》编写代码如下:if (textBox1.Text != "0")//不能连续多个0出现{textBox1.Text += "0";//添加“0”数字 }②双击”1”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0 {textBox1.Text = "1";}else{textBox1.Text += "1";//添加“1”数字 }③双击”2”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "2";}else{textBox1.Text += "2";//添加“2”数字 }④双击”3”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "3";}else{textBox1.Text += "3";//添加“3”数字 }⑤双击”4”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "4";}else{textBox1.Text += "4";//添加“4”数字 }⑥双击”5”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "5";}else{textBox1.Text += "5";//添加“5”数字 }⑦双击”6”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "6";}else{textBox1.Text += "6";//添加“6”数字 }⑧双击”7”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "7";}else{textBox1.Text += "7";//添加“7”数字 }⑨双击”8”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "8";}else{textBox1.Text += "8";//添加“8”数字}⑩双击”9”按钮控件-》编写代码如下:if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "9";}else{textBox1.Text += "9";//添加“9”数字}5)数据窗口数字的输入数据窗口用的是TextBox控件,要求只能输入数字,不能输入其他字符,也不能粘贴其他字符等。
①屏蔽非数字键选中TextBox1控件-》属性窗口中选中事件标签-》双击“keypress”事件,添加如下代码:if ((int)e.KeyChar <= 32) // 特殊键(含空格), 不处理{return;}if (!char.IsDigit(e.KeyChar)) // 非数字键, 放弃该输入{e.Handled = true;return;}如图:②快捷键Ctrl+V 粘贴操作该功能大家自己在网上去查找以后再补充6)+/-号功能实现双击” +/-”按钮控件-》编写代码如下:if (Convert.ToDouble(textBox1.Text) > 0)//如果数据窗口中的数据大于0则添加负号{textBox1.Text = "-" + textBox1.Text;//添加负号}else if (Convert.ToDouble(textBox1.Text) < 0)//如果数据窗口中的数据小于0则去掉负号{textBox1.Text=textBox1.Text.Substring(1);//取子串}//如果数据窗口中的数据等于0则不处理如图所示:7)“.”号功能实现小数点的输入只能输入一次,不能输入两次,故要用一个标记“xiaoshudian”判读是否已经输入过了小数点,如果输入过了就不再输入了。
①在前面的“private void button12_Click(object sender, EventArgs e)”函数后面编写代码如下:bool xiaoshudian = true;//设置小数点是否能用的标记,等于true为可以用,false为不能用如图所示:②双击” .”按钮控件-》编写代码如下:if (xiaoshudian)//小数点可以,则添加小数点{if (textBox1.Text != "")//如果数据窗口不为空{textBox1.Text += ".";}else//如果数据窗口为空{textBox1.Text = "0.";}xiaoshudian = false;//设置小数点不可用}如图所示:8)“+”号功能实现当第一次单击“+”号时,只有一个操作数,不能进行运算,而当第二次或第三次….单击“+”号时,前面已经保存了一个操作数,故此时可以把保存的操作数与当前操作数相加在保存做为第一个操作数,故要用一个标记“diyici”判读是否是第一次单击操作数,如果输入过了就不再输入了。
同时,还要用一个“caozuosh1”来保存第一个操作数。
①在前面的“private void button16_Click(object sender, EventArgs e)”函数后面编写代码如下:bool diyici = true;//判断是否第一次单击运算符号,是则为true,否则为falsedouble caozuoshu1 = 0;//定义并初始化第一个操作数。
如图所示:②双击” +”按钮控件-》编写代码如下:if (diyici){caozuoshu1 = Convert.ToDouble(textBox1.Text);//置操作数1diyici = false;//置运算符为非第一次单击}else{caozuoshu1 += Convert.ToDouble(textBox1.Text);//执行加功能textBox1.Text = caozuoshu1.ToString();//显示结果}9)修改数字键功能编译运行以上程序,当我们单击“+”号后,重新输入数据时,并不能清除数据窗口中保存的数据,而是接着显示我们数据的数据,为此,必须设置一个标记“qingkong”,用于表示当前点击了运算符或等号,下次输入数据时是新数据。
双击“0”键,在函数“private void button8_Click(object sender, EventArgs e)”上面添加一句:bool qingkong = false;//定义并初始化是否清空数据窗口,true表示要清空,false表示不清空如图所示:①双击“0”键,修改函数中的语句为:if(qingkong){ textBox1.Text = "0"; }else{if (textBox1.Text != "0")//不能连续多个0出现{textBox1.Text += "0";//添加“0”数字}}②双击“1”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "1";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "1";}else{textBox1.Text += "1";//添加“1”数字}}③双击“2”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "2";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "2";}else{textBox1.Text += "2";//添加“2”数字}}④双击“3”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "3";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "3";}else{textBox1.Text += "3";//添加“3”数字}}⑤双击“4”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "4";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "4";}else{textBox1.Text += "4";//添加“4”数字}}⑥双击“5”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "5";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "5";}else{textBox1.Text += "5";//添加“5”数字}}⑦双击“6”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "6";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "6";}else{textBox1.Text += "6";//添加“6”数字}}⑧双击“7”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "7";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "7";}else{textBox1.Text += "7";//添加“7”数字}}⑨双击“8”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "8";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "8";}else{textBox1.Text += "8";//添加“8”数字}}⑩双击“9”键,修改函数中的语句为:if (qingkong){qingkong = false;//置不能清空textBox1.Text = "9";}else{if (textBox1.Text == "0")//数字前面不能出现多个0{textBox1.Text = "9";}else{textBox1.Text += "9";//添加“9”数字}}10)修改“+”号功能键双击“+”键,修改函数中的语句为:if (diyici){caozuoshu1 = Convert.ToDouble(textBox1.Text);//置操作数1diyici = false;//置运算符为非第一次单击}else{caozuoshu1 += Convert.ToDouble(textBox1.Text);//执行加功能textBox1.Text = caozuoshu1.ToString();//显示结果}qingkong = true;//下次输入数据时要先清空数据窗口11)“-”号功能键实现双击“-”键,添加函数中的语句为:if (diyici){caozuoshu1 = Convert.ToDouble(textBox1.Text);//置操作数1diyici = false;//置运算符为非第一次单击}else{caozuoshu1 -= Convert.ToDouble(textBox1.Text);//执行减功能textBox1.Text = caozuoshu1.ToString();//显示结果}qingkong = true;//下次输入数据时要先清空数据窗口12)“*”号功能键实现双击“*”键,添加函数中的语句为:if (diyici){caozuoshu1 = Convert.ToDouble(textBox1.Text);//置操作数1diyici = false;//置运算符为非第一次单击}else{caozuoshu1 *= Convert.ToDouble(textBox1.Text);//执行乘功能textBox1.Text = caozuoshu1.ToString();//显示结果}qingkong = true;//下次输入数据时要先清空数据窗口13)“/”号功能键实现除号要考虑当除数为零时出错问题,此时应该能显示“除数不能为零。