博客
关于我
C# —— 使用WPF搭建小型计算器
阅读量:298 次
发布时间:2019-03-03

本文共 4845 字,大约阅读时间需要 16 分钟。

C# —— 使用WPF搭建小型计算器

  • 使用try catch语句捕获(除数为0,参数为空,参数不是数字,数据溢出)这四个异常类。捕获异常后再textblock输出文本框中显示。
  • 定义“数学”类,实现加减乘除四个函数。
  • 界面用两个输入文本框,加减乘除四个按钮,一个textblock输出文本框。

参数为空报错:

在这里插入图片描述
参数不是数字:
在这里插入图片描述
数据溢出:
在这里插入图片描述除数为0:
在这里插入图片描述

XAML文件:

CS文件:

using System;using System.Collections.Generic;using System.Data.SqlTypes;using System.Linq;using System.Runtime.CompilerServices;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace WpfApp3{       public partial class MainWindow : Window    {           public MainWindow()        {               InitializeComponent();        }        private void Button_Click(object sender, RoutedEventArgs e)        {               double x, y;            MyMath M = new MyMath();            textbox3.Clear();            if (textbox1.Text == "" || textbox2.Text == "")            {                   try                {                       x = double.Parse(textbox1.Text);                    y = double.Parse(textbox2.Text);                }                catch (Exception)                {                       textbox3.Text += "错误:参数为空";                }            }            else            {                   try                {                       x = double.Parse(textbox1.Text);                    y = double.Parse(textbox2.Text);                    if (jiafa.IsChecked == true)                    {                           textbox3.Text = M.GetHe(x, y).ToString();                    }                    else if (jianfa.IsChecked == true)                    {                           textbox3.Text = M.GetCha(x, y).ToString();                    }                    else if (chengfa.IsChecked == true)                    {                           textbox3.Text = M.GetJi(x, y).ToString();                    }                    else if (chufa.IsChecked == true)                    {                           try                        {                               textbox3.Text = M.GetShang(x, y).ToString();                        }                        catch (DivideByZeroException err)                        {                               textbox3.Text += err;                        }                    }                }                catch (FormatException err)                {                       textbox3.Text += err;                }                catch (OverflowException err)                {                       textbox3.Text += err;                }            }        }        private void jiafa_Click(object sender, RoutedEventArgs e)        {               if (jiafa.IsChecked == true)            {                   label1.Content = "+";                groupbox.Header = "加法";            }            textbox1.Text = "";            textbox2.Text = "";            textbox3.Text = "";        }        private void jianfa_Click(object sender, RoutedEventArgs e)        {               if (jianfa.IsChecked == true)            {                   label1.Content = "-";                groupbox.Header = "减法";            }            textbox1.Text = "";            textbox2.Text = "";            textbox3.Text = "";        }        private void chengfa_Click(object sender, RoutedEventArgs e)        {               if (chengfa.IsChecked == true)            {                   label1.Content = "*";                groupbox.Header = "乘法";            }            textbox1.Text = "";            textbox2.Text = "";            textbox3.Text = "";        }        private void chufa_Click(object sender, RoutedEventArgs e)        {               if (chufa.IsChecked == true)            {                   label1.Content = "/";                groupbox.Header = "除法";            }            textbox1.Text = "";            textbox2.Text = "";            textbox3.Text = "";        }            }    class MyMath    {           public double GetHe(double numA, double numB)        {               return numA + numB;        }        public double GetCha(double numA, double numB)        {               return numA - numB;        }        public double GetShang(double numA, double numB)        {               if (numB == 0) throw new DivideByZeroException();            return numA / numB;        }        public double GetJi(double numA, double numB)        {               return numA * numB;        }    }}

转载地址:http://fpil.baihongyu.com/

你可能感兴趣的文章
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>