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

所属分类: 软件编程 / C#教程 阅读数: 66
收藏 0 赞 0 分享

第一次学习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#使用oledb读取excel表格内容到datatable的方法

这篇文章主要介绍了C#使用oledb读取excel表格内容到datatable的方法,涉及C#操作oledb及datatable的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#使用oledb操作excel文件的方法

这篇文章主要介绍了C#使用oledb操作excel文件的方法,涉及C#中oledb操作excel的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#使用IHttpModule接口修改http输出的方法

这篇文章主要介绍了C#使用IHttpModule接口修改http输出的方法,涉及C#操作IHttpModule接口的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#给图片加水印的简单实现方法

这篇文章主要介绍了C#给图片加水印的简单实现方法,涉及C#操作图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#生成随机数的方法小结

这篇文章主要介绍了C#生成随机数的方法,实例总结了C#生成随机数的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#使用jQuery实现无刷新评论提交的方法

这篇文章主要介绍了C#使用jQuery实现无刷新评论提交的方法,涉及C#结合jQuery进行Ajax操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#读取中文文件出现乱码的解决方法

这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#图像对比度调整的方法

这篇文章主要介绍了C#图像对比度调整的方法,涉及C#实现图像对比度操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#图像灰度级拉伸的方法

这篇文章主要介绍了C#图像灰度级拉伸的方法,涉及C#灰度操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#图像线性变换的方法

这篇文章主要介绍了C#图像线性变换的方法,涉及C#操作图像线性变换的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多