博客
关于我
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/

你可能感兴趣的文章
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
msbuild发布web应用程序
查看>>
MSCRM调用外部JS文件
查看>>