【实验要求】
(1)新建一个C#桌面项目Calc,实现简易计算器功能,界面如图1所示。
(2)计算方式:通过点击对应的按钮,输入第1个数(可以是整数或实数),输入运算符(+、-、*或/),再输入第2个数,点击“=”按钮,完成计算。
(3)(选做)改进程序的设计,要求输入一个算术表达式,点击“=”按钮完成输入表达式的计算并输出(可以利用数据结构中的表达式计算原理,实现表达式的计算)。
【实验步骤】
红色为每个按钮的方法名
【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.Threading.Tasks; using System.Windows.Forms;namespace Calc {public partial class frmMain : Form{private double num1;//左操作数private double num2;//右操作数private string flag;//flag为当前所操作的运算符private double res;//计算结果private bool isCalc;//判断是否计算public frmMain(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}private void Button1_Click(object sender, EventArgs e){//次方运算num1 = Convert.ToDouble(txtNum.Text);flag = "sqr";txtNum.Text = "";}private void btnC_Click(object sender, EventArgs e){//按钮“C”,清空txtNum.Text = "";}private void btnBack_Click(object sender, EventArgs e){//回退键if(txtNum.Text.Length > 0){txtNum.Text = txtNum.Text.Substring(0, txtNum.Text.Length - 1);}}private void btnDiv_Click(object sender, EventArgs e){//除法按钮num1 = Convert.ToDouble(txtNum.Text);flag = "/";txtNum.Text = "";}private void btn7_Click(object sender, EventArgs e){txtNum.Text += "7";}private void btn8_Click(object sender, EventArgs e){txtNum.Text += "8";}private void btn9_Click(object sender, EventArgs e){txtNum.Text += "9";}private void btnMul_Click(object sender, EventArgs e){//乘法按钮num1 = Convert.ToDouble(txtNum.Text);flag = "*";txtNum.Text = "";}private void btn4_Click(object sender, EventArgs e){txtNum.Text += "4";}private void btn5_Click(object sender, EventArgs e){txtNum.Text += "5";}private void btn6_Click(object sender, EventArgs e){txtNum.Text += "6";}private void btnSub_Click(object sender, EventArgs e){//减法按钮num1 = Convert.ToDouble(txtNum.Text);flag = "-";txtNum.Text = "";}private void btn1_Click(object sender, EventArgs e){txtNum.Text += "1";}private void btn2_Click(object sender, EventArgs e){txtNum.Text += "2";}private void btn3_Click(object sender, EventArgs e){txtNum.Text += "3";}private void btnAdd_Click(object sender, EventArgs e){//加法按钮num1 = Convert.ToDouble(txtNum.Text);flag = "+";txtNum.Text = "";}private void btnOr_Click(object sender, EventArgs e){//正负号按钮if(txtNum.Text == "0"){return;}if (txtNum.Text.Contains("-")){txtNum.Text = txtNum.Text.Substring(1);}else{txtNum.Text = "-" + txtNum.Text;}}private void btn0_Click(object sender, EventArgs e){txtNum.Text += "0";}private void btnPoint_Click(object sender, EventArgs e){txtNum.Text += ".";}private void btnEqual_Click(object sender, EventArgs e){int f = 1;num2 = Convert.ToDouble(txtNum.Text);if(flag == "+")//加法运算{res = num1 + num2;}else if(flag == "-")//减法运算{res = num1 - num2;}else if(flag == "*")//乘法运算{res = num1 * num2;}else if(flag == "/")//除法运算{if(num2 == 0){txtNum.Text = "除数不能为0";f = 0;}else{res = num1 / num2;}}else {//n次方运算res = Math.Pow(num1,num2); }if(f == 1){txtNum.Text = res.ToString();}}} }
【计算器效果演示】
计算器演示
不知道为什么录屏没给我录到头顶,将就看看。