博客
关于我
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 sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
mysql union orderby 无效
查看>>
mysql v$session_Oracle 进程查看v$session
查看>>
mysql where中如何判断不为空
查看>>
MySQL Workbench 使用手册:从入门到精通
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>
mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
查看>>
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>
MySQL —— 视图
查看>>
mysql 不区分大小写
查看>>
mysql 两列互转
查看>>
MySQL 中开启二进制日志(Binlog)
查看>>
MySQL 中文问题
查看>>
MySQL 中日志的面试题总结
查看>>