#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
#endregion
namespace MathsOperators
{
partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void calculate_Click(object sender, System.EventArgs e)
{
try//用户输入要 进行检查
{
int leftHandSide = Int32.Parse(leftHandSideOperand.Text);
int rightHandSide = Int32.Parse(rightHandSideOperand.Text);
int answer = doCalculation(leftHandSide, rightHandSide);
result.Text = answer.ToString();
}
catch (FormatException fEx)
{
result.Text = fEx.Message;
}
catch (OverflowException oEx)
{
result.Text = oEx.Message;
}
catch (InvalidOperationException ioEx)
{
result.Text = ioEx.Message;
}
catch (Exception ex)
{
result.Text = ex.Message;
}
}
private int doCalculation(int leftHandSide, int rightHandSide)
{
int res = 0;
// 处理用户没有选择opeatro时候的异常
if (addition.Checked)
res = addValues(leftHandSide, rightHandSide);
else if (subtraction.Checked)
res = subtractValues(leftHandSide, rightHandSide);
else if (multiplication.Checked)
res = multiplyValues(leftHandSide, rightHandSide);
else if (division.Checked)
res = divideValues(leftHandSide, rightHandSide);
else if (remainder.Checked)
res = remainderValues(leftHandSide, rightHandSide);
else
throw new InvalidOperationException("no operator selected");
return res;
}
private int addValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " + " + rightHandSide.ToString();
return leftHandSide + rightHandSide;
}
private int subtractValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " - " + rightHandSide.ToString();
return leftHandSide - rightHandSide;
}
private int multiplyValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " * " + rightHandSide.ToString();
return checked(leftHandSide * rightHandSide);//使用checked表达式checked 发生溢出时候将会抛出overflowexception
}
private int divideValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " / " + rightHandSide.ToString();
return leftHandSide / rightHandSide;
}
private int remainderValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " % " + rightHandSide.ToString();
return leftHandSide % rightHandSide;
}
private void quit_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
}
}