C#实现简单加减乘除计算器

 更新时间:2020年03月30日 16:21:07   作者:ameyume  
这篇文章主要为大家详细介绍了C#实现简单加减乘除计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

第一次学习C#,做了个简单的加减乘除计算器,只能实现两个因数的运算。

主要是练习下C#编程,和以前用过的VB差不多。与VB6不同的是,C#代码区分大小写。

Windows窗口程序主要也是由一些控件组成,响应响应的事件(event),实现具体的功能。

1.效果图如下所示

2.代码如下所示

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
 
namespace WindowsApplication1 
{ 
 public partial class Main : Form 
 { 
  public Main() 
  { 
   InitializeComponent(); 
  } 
 
  private void Main_Load(object sender, EventArgs e) 
  { 
 
  } 
 
  private void txtInshu1_TextChanged(object sender, EventArgs e) 
  { 
 
  } 
 
  private void txtInshu1_KeyPress(object sender, KeyPressEventArgs e) 
  { 
   OnlyEnterNumber(sender, e); 
  } 
 
  //// <summary> 
  /// 只能输入数字(含负号小数点) 
  /// </summary> 
  /// <param name="sender"></param> 
  /// <param name="e"></param> 
  public static void OnlyEnterNumber(object sender, KeyPressEventArgs e) 
  { 
   if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 45 && e.KeyChar != 46) 
   { 
    e.Handled = true; 
   } 
 
   // 输入为负号时,只能输入一次且只能输入一次 
   if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0)) e.Handled = true; 
   if (e.KeyChar == 46 && ((TextBox)sender).Text.IndexOf(".") >= 0) e.Handled = true; 
  } 
 
 
  /* 
   * 参数:d表示要四舍五入的数;i表示要保留的小数点后位数。 
   * 正负数都四舍五入,适合数据统计的显示 
   */ 
  double Round(double d, int i) 
  { 
   if (d >= 0) 
   { 
    d += 5 * Math.Pow(10, -(i + 1)); 
   } 
   else 
   { 
    d += -5 * Math.Pow(10, -(i + 1)); 
   } 
   string str = d.ToString(); 
   string[] strs = str.Split('.'); 
   int idot = str.IndexOf('.'); 
   string prestr = strs[0]; 
   string poststr = strs[1]; 
   if (poststr.Length > i) 
   { 
    poststr = str.Substring(idot + 1, i); 
   } 
   string strd = prestr + "." + poststr; 
   d = Double.Parse(strd); 
   return d; 
  } 
 
  private void txtInshu2_TextChanged(object sender, EventArgs e) 
  { 
 
  } 
 
  private void txtInshu2_KeyPress_1(object sender, KeyPressEventArgs e) 
  { 
   OnlyEnterNumber(sender, e); 
  } 
 
  private void btnJisuan_Click(object sender, EventArgs e) 
  { 
   if (txtInshu1.Text == "") { 
    MessageBox.Show("因数1不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
    return; 
   } 
   if (txtInshu2.Text == "") 
   { 
    MessageBox.Show("因数2不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
    return; 
   } 
 
   double inshu1 = Convert.ToDouble(txtInshu1.Text); 
   double inshu2 = Convert.ToDouble(txtInshu2.Text); 
   double result = 0.0; 
 
   if (radioBtnJia.Checked) { 
    result = inshu1 + inshu2; 
   } 
 
   if (radioBtnJian.Checked) 
   { 
    result = inshu1 - inshu2; 
   } 
 
   if (radioBtnCheng.Checked) 
   { 
    result = inshu1 * inshu2; 
   } 
 
   if (radioBtnChu.Checked) 
   { 
    if (0 == inshu2) 
    { 
     MessageBox.Show("因数2做除数不能为0!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
     return; 
    } 
    result = inshu1 / inshu2; 
    result = Round(result, 6); 
   } 
 
   txtResult.Text = Convert.ToString(result); 
  } 
 } 
} 

因数输入框只允许输入数字和小数点负号的代码是从网络上引用的。
除法运算时四舍五入的处理也是引用自网络上的文章

更多计算器功能实现,请点击专题: 计算器功能汇总 进行学习

关于Android计算器功能的实现,查看专题:Android计算器 进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于C#模拟实现回合制游戏

    基于C#模拟实现回合制游戏

    这篇文章主要介绍了通过C#模拟实现回合制游戏,文中的示例代码讲解详细,对我们的学习和工作有一定的帮助,感兴趣的可以跟随小编一起学习一下
    2021-12-12
  • C#实现简单的登录界面

    C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。
    2015-11-11
  • C#加解密之AES算法的实现

    C#加解密之AES算法的实现

    一般我们来说呢,对于加密,我们分为可逆和不可逆。可逆加密又可分为对称加密(AES、DES等)和非对称加密(RSA),还有就是一些编码加密等(BASE64);不可逆的呢,大部分又都称为摘要算法(MD5、SHA)。本文将用C#实现AES算法,需要的可以参考一下
    2022-08-08
  • C#实现平衡查找树

    C#实现平衡查找树

    本文详细讲解了C#实现平衡查找树的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 一文掌握C# ListView控件的用法和示例代码

    一文掌握C# ListView控件的用法和示例代码

    ListView控件提供了丰富的属性和事件,可以用于实现各种各样的表格视图,包括带有单元格编辑、排序和分组等功能,本文介绍了一些常见的 ListView 控件的用法和示例代码,感兴趣的朋友一起看看吧
    2024-02-02
  • C#实现JsonString与Object互转

    C#实现JsonString与Object互转

    这篇文章主要为大家介绍了如何使用.NET库System.Web.Extensions.dll和Newtonsoft.Json.dll实现Json字符串之间的转换,感兴趣的小伙伴可以参考下
    2024-12-12
  • C# JWT权限验证的实现

    C# JWT权限验证的实现

    本文主要介绍了C# JWT权限验证的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C#正则表达式分解和转换IP地址实例(C#正则表达式大全 c#正则表达式语法)

    C#正则表达式分解和转换IP地址实例(C#正则表达式大全 c#正则表达式语法)

    这是我发了不少时间整理的C#的正则表达式,新手朋友注意一定要手册一下哦,这样可以节省很多写代码的时间。下面进行了简单总结
    2013-12-12
  • Asp.Net中MVC缓存详解

    Asp.Net中MVC缓存详解

    这篇文章主要介绍了Asp.Net中MVC缓存的种类区别等内容,一下来学习下。
    2017-12-12
  • 运用示例简单讲解C#取消令牌CancellationTokenSource

    运用示例简单讲解C#取消令牌CancellationTokenSource

    这篇文章运用示例简单讲解C#取消令牌CancellationTokenSource,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论