1、按钮布局如下图,顶上是TextBox控件,下面是20个button控件,还有一个链接控件,计划实现加减乘除,平方,开方,log, ln的功能
2、如下图,单击其中一个button按钮,在右下方的属性里找到text并改名。
修改后的Form1编辑框如下图左边所示。
3、双击Form1 窗体后,进入Form1.cs*界面,写入代码:
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 jisuangqi
{
public partial class Form1 : Form
{
double a = 0;
double b = 0;
bool c = false ;
string d;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button9_Click(object sender, EventArgs e) // button9_Click是对应我的1键,如果单纯复制代码,但是跟我的窗体布局不同,一样会报错
{ // 算法没问题,只要单击相应的键,进入填入相应的算法即可
if ( c ==true )
{
textBox1 .Text ="";
c=false ;
}
textBox1.Text+="1";
}
private void button10_Click(object sender, EventArgs e) // button10_Click是对应我的2键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="2";
}
private void button11_Click(object sender, EventArgs e) //对应我的3键
{
if (c==true )
{
textBox1 .Text ="";
c=false ;
}
textBox1 .Text +="3";
}
private void button5_Click(object sender, EventArgs e) //对应我的4键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="4";
}
private void button6_Click(object sender, EventArgs e) //对应我的5键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="5";
}
private void button7_Click(object sender, EventArgs e) //对应我的6键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="6";
}
private void button1_Click(object sender, EventArgs e) //对应我的7键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="7";
}
private void button2_Click(object sender, EventArgs e) //对应我的8键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="8";
}
private void button3_Click(object sender, EventArgs e) //对应我的9键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="9";
}
private void button13_Click(object sender, EventArgs e) //对应我0的键,增加了除数不能为0的判断
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text += "0";
if (d == "/")
{
textBox1.Clear();
MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
}
private void button4_Click(object sender, EventArgs e) //对应我的+键
{
c = true;
b = double.Parse(textBox1.Text);
d = "+";
}
private void button8_Click(object sender, EventArgs e) //对应我的-键
{
c = true;
b = double.Parse(textBox1.Text);
d = "-";
}
private void button12_Click(object sender, EventArgs e) //对应我的*键
{
c = true;
b = double.Parse(textBox1.Text);
d = "*";
}
private void button16_Click(object sender, EventArgs e) //对应我的/键
{
c = true;
b = double.Parse(textBox1.Text);
d = "/";
}
private void button17_Click(object sender, EventArgs e) //对应我的平方键
{
c = true;
b = double.Parse(textBox1.Text);
d = "x2";
}
private void button18_Click(object sender, EventArgs e) //对应我的开方键
{
c = true;
b = double.Parse(textBox1.Text);
d = "sqrt";
}
private void button19_Click(object sender, EventArgs e) //对应我的log键
{
c = true;
b = double.Parse(textBox1.Text);
d = "log";
}
private void button20_Click(object sender, EventArgs e) //对应我的ln键
{
c = true;
b = double.Parse(textBox1.Text);
d = "ln";
}
private void button15_Click(object sender, EventArgs e) //对应我的=键
{
switch (d)
{
case "+": a = b + double.Parse(textBox1.Text); break;
case "-": a = b - double.Parse(textBox1.Text); break;
case "*": a = b * double.Parse(textBox1.Text); break;
case "/": a = b / double.Parse(textBox1.Text); break;
case "x2": a = b * double.Parse(textBox1.Text); break;
case "sqrt": a = Math.Sqrt(b ); break;
case "log": a = Math.Log(double.Parse(textBox1.Text),b ); break;
case "ln": a = Math.Log(b, Math.E); break;
}
textBox1.Text = a + "";
c = true;
}
private void button14_Click(object sender, EventArgs e) //对应我的c键,实现了清零的功能
{
textBox1.Text = "";
}
/* private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("http://home.cnblogs.com/u/linshuangxi/");
}
*/
//我注释掉是因为这是一个连接到我的博客的地址,首先需要在窗体拖进来一个LinkLabel控件。
// 然后把注释去掉就可用了
}
}
4、运行效果图:
实验报告: