C#实现四则运算器

时间:2021-12-29 16:56:01
[版权声明:本文为博主原创文章,未经博主允许不得转载。] view plain copy print?C#实现四则运算器C#实现四则运算器
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Threading.Tasks;  
  9. using System.Windows.Forms;  
  10. using System.Text.RegularExpressions;//正则表达式需要用到的  
  11.   
  12. namespace Calculator  
  13. {  
  14.     public partial class Form1 : Form  
  15.     {  
  16.         public Form1()  
  17.         {  
  18.             InitializeComponent();  
  19.         }  
  20.   
  21.         private void button1_Click(object sender, EventArgs e)  
  22.         {  
  23.             Regex reg1;  
  24.             reg1 = new Regex("^[+-]?(([0-9]+[.][0-9]+)|([0-9]+))$");  
  25.             if (reg1.IsMatch(textBox1.Text) && reg1.IsMatch(textBox2.Text))  
  26.             {  
  27.                 double num1 = Convert.ToDouble(textBox1.Text);  
  28.                 double num2 = Convert.ToDouble(textBox2.Text);  
  29.                 int ch = comboBox1.SelectedIndex;  
  30.                 if (ch == 3 && num2 == 0)  
  31.                 {//错误提示:  
  32.                     textBox3.Text = "被除数不能为零哦!!Please try again!!";  
  33.                 }  
  34.                 else  
  35.                 {  
  36.                     double x = 0;  
  37.                     switch(ch) {  
  38.                         case 0: x = num1 + num2; break;  
  39.                         case 1: x = num1 - num2; break;  
  40.                         case 2: x = num1 * num2; break;  
  41.                         case 3: x = num1 / num2; break;  
  42.                         defaultbreak;  
  43.                     }  
  44.                     textBox3.Text = x.ToString();  
  45.                 }  
  46.             }  
  47.             else  
  48.             {//错误提示:  
  49.                 if (!reg1.IsMatch(textBox1.Text) && !reg1.IsMatch(textBox2.Text))  
  50.                 {  
  51.                     textBox3.Text = "上面两个框中都没有输入合法的数哦~~!";  
  52.                 }  
  53.                 else if (!reg1.IsMatch(textBox1.Text))   
  54.                 {  
  55.                     textBox3.Text = "上面左边框中输入的不是合法的数哦~~!";  
  56.                 }  
  57.                 else if (!reg1.IsMatch(textBox2.Text))  
  58.                 {  
  59.                     textBox3.Text = "上面右边框中输入的不是合法的数哦~~!";  
  60.                 }  
  61.             }  
  62.         }  
  63.   
  64.         private void Form1_Load(object sender, EventArgs e)  
  65.         {  
  66.             comboBox1.SelectedIndex = 0;  
  67.             textBox1.Text = "这里输入第一个数";  
  68.             textBox2.Text = "这里输入第二个数";  
  69.             textBox3.Text = "这里显示计算结果";  
  70.         }  
  71.   
  72.         private void textBox1_TextChanged(object sender, EventArgs e)  
  73.         {  
  74.             textBox1.Text = "";  
  75.         }  
  76.   
  77.         private void textBox2_TextChanged(object sender, EventArgs e)  
  78.         {  
  79.             textBox2.Text = "";  
  80.         }  
  81.   
  82.         private void textBox3_TextChanged(object sender, EventArgs e)  
  83.         {  
  84.             Regex ansreg;  
  85.             ansreg = new Regex("^[+-]?(([0-9]+[.][0-9]+)|([0-9]+))$");  
  86.             if (ansreg.IsMatch(textBox3.Text))  
  87.             {  
  88.                 Clipboard.SetDataObject(textBox3.Text);  
  89.                 MessageBox.Show("计算结果已经复制到剪切板了哟~""帮助", MessageBoxButtons.OK);  
  90.             }  
  91.         }  
  92.   
  93.         private void button2_Click(object sender, EventArgs e)  
  94.         {  
  95.             string ss_help = "";  
  96.             ss_help += "使用方法:\n\n";  
  97.             ss_help += "    ①在第一个框中输入第一个操作数\n";  
  98.             ss_help += "    ②在第二个框中输入第二个操作数\n";  
  99.             ss_help += "    ③在下拉列表中选择想要的计算方式\n";  
  100.             ss_help += "    ④点击“=”按钮使结果显示在第三个框中\n";  
  101.             ss_help += "    ⑤输入的数据要求是小数或者整数\n";  
  102.             ss_help += "    ⑥数据计算范围为double类型范围\n";  
  103.             ss_help += "    ⑦得到计算结果后点击第三个框会自动\n       将结果复制到剪切板中哦(~ ̄▽ ̄)~\n\n";  
  104.             ss_help += "    @author:软开142都颜汗";  
  105.             MessageBox.Show(ss_help, "帮助", MessageBoxButtons.OK);  
  106.         }  
  107.   
  108.     }  
  109. }  
  110.   
  111. /*复制粘贴参考代码 
  112.   
  113. //复制:  
  114. private void button1_Click(object sender, System.EventArgs e) {  
  115.   
  116.   if(textBox1.SelectedText != "")  
  117.      Clipboard.SetDataObject(textBox1.SelectedText);  
  118.  
  119.   
  120. //粘贴:  
  121. private void button2_Click(object sender, System.EventArgs e) {  
  122.   IDataObject iData = Clipboard.GetDataObject();  
  123.   if(iData.GetDataPresent(DataFormats.Text)) { 
  124.      textBox2.Text = (String)iData.GetData(DataFormats.Text);  
  125.   }  
  126. } 
  127.  */  


感言:我计算器写过c/c++控制台的,写过java界面的, 写过JSP页面动态的, 这次是C#桌面版本的, 感觉这个是我写过的所有简单计算器中最简约美观便捷的一个,虽然简单,是我最喜欢的一个


可执行程序链接:链接: http://pan.baidu.com/s/1cJnmm6 密码: fp3k

开发环境:VS2012

解决方案链接:链接: http://pan.baidu.com/s/1hsllbyk 密码: 7t71