博客
关于我
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 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>
Mysql 学习总结(89)—— Mysql 库表容量统计
查看>>
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
mysql 将null转代为0
查看>>
mysql 常用
查看>>
MySQL 常用列类型
查看>>
mysql 常用命令
查看>>