iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现单位换算器
  • 718
分享到

C#实现单位换算器

2024-04-02 19:04:59 718人浏览 安东尼
摘要

本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下 一、阐述 进制间转换:十六进制、十进制、八进制、二进制。长度间转换:毫米、厘米、米、公里、英寸、英尺、码。

本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下

一、阐述

进制间转换:十六进制、十进制、八进制、二进制。
长度间转换:毫米、厘米、米、公里、英寸、英尺、码。
面积间转换:平方毫米、平方厘米、平方米、平方公里、平方英寸、平方英尺、平方码。
体积间转换:立方毫米、毫升、升、立方米、立方英寸、立方英尺、立方码。

二、效果

1. 进制转换

通过输入即可转换为另一个进制值。

2. 长度转换

用户输入进行单位换算,可从目标中选择需求单位。

选中需求后,输入框解除只读,输入即可进行换算。

3. 面积转换

同样,使用正则匹配对正数小数和正整数,而进制转换另外规则匹配。

4. 体积转换

当重选单位类型时会清空输入框。

代码

using System;
using System.Text.RegularExpressions;
using System.windows.FORMs;

namespace UnitConversion
{
  public partial class Form1 : Form
  {
    // 默认选项
    private string unitItem = "进制";
    // 用户选择单位度量 的 转换基数
    private double customConversionBase = 0;
    public Form1()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      unitComboBox.Items.Add("进制");
      unitComboBox.Items.Add("长度");
      unitComboBox.Items.Add("面积");
      unitComboBox.Items.Add("体积");
    }
    
    private void BaseConversion(TextBox text, string val)
    {
      if (text == textBox1 && Regex.IsMatch(val, @"[0-1]+$"))                //二进制转换
      {
        long oct = Convert.ToInt64(val, 2);
        textBox2.Text = Convert.ToString(oct, 8);
        textBox3.Text = oct.ToString();
        textBox4.Text = Convert.ToString(oct, 16);
      }
      else if (text == textBox2 && Regex.IsMatch(val, @"[0-7]+$"))          //八进制转换
      {
        long oct = Convert.ToInt64(val, 8);
        textBox1.Text = Convert.ToString(oct, 2);
        textBox3.Text = oct.ToString();
        textBox4.Text = Convert.ToString(oct, 16);
      }
      else if (text == textBox3 && Regex.IsMatch(val, @"[0-9]+$"))         //十进制转换
      {
        long oct = Convert.ToInt64(val);
        textBox1.Text = Convert.ToString(oct, 2);
        textBox2.Text = Convert.ToString(oct, 8);
        textBox4.Text = Convert.ToString(oct, 16);
      }
      else if (text == textBox4 && Regex.IsMatch(val, @"[A-Fa-f0-9]+$"))  //十六机制转换
      {
        long oct = Convert.ToInt64(val, 16);
        textBox1.Text = Convert.ToString(oct, 2);
        textBox2.Text = Convert.ToString(oct, 8);
        textBox3.Text = oct.ToString();
      }
    }
    
    private void lengthConversion(TextBox text, string val)
    {
      if (text == textBox1)
      {
        double mm = Convert.ToDouble(val);
        textBox2.Text = Convert.ToString(mm * 0.1);
        textBox3.Text = Convert.ToString(mm * 0.001);
        textBox4.Text = Convert.ToString(mm * 0.000_001);
        textBox5.Text = Convert.ToString(mm * customConversionBase);
      }
      else if (text == textBox2)
      {
        double cm = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(cm * 10);
        textBox3.Text = Convert.ToString(cm * 0.01);
        textBox4.Text = Convert.ToString(cm * 0.000_01);
        textBox5.Text = Convert.ToString(cm * customConversionBase * 10);
      }
      else if (text == textBox3)
      {
        double m = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(m * 1000);
        textBox2.Text = Convert.ToString(m * 100);
        textBox4.Text = Convert.ToString(m * 0.001);
        textBox5.Text = Convert.ToString(m * customConversionBase * 1000);
      }
      else if (text == textBox4)
      {
        double km = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(km * 1000_000);
        textBox2.Text = Convert.ToString(km * 100_000);
        textBox3.Text = Convert.ToString(km * 1000);
        textBox5.Text = Convert.ToString(km * customConversionBase * 1000_000);
      }
      else if (text == textBox5)
      {
        double en = Convert.ToDouble(val);
        textBox1.Text = (en / customConversionBase).ToString();
      }
    }
    
    private void areaConversion(TextBox text, string val)
    {
      if (text == textBox1)
      {
        double mm = Convert.ToDouble(val);
        textBox2.Text = Convert.ToString(mm * 0.01);
        textBox3.Text = Convert.ToString(mm * 0.000_001);
        textBox4.Text = Convert.ToString(mm * 0.000_000_000_001);
        textBox5.Text = Convert.ToString(mm * customConversionBase);
      }
      else if (text == textBox2)
      {
        double cm = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(cm * 100);
        textBox3.Text = Convert.ToString(cm * 0.000_1);
        textBox4.Text = Convert.ToString(cm * 0.000_000_000_1);
        textBox5.Text = Convert.ToString(cm * customConversionBase * 100);
      }
      else if (text == textBox3)
      {
        double m = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(m * 1_000_000);
        textBox2.Text = Convert.ToString(m * 10_000);
        textBox4.Text = Convert.ToString(m * 0.000_001);
        textBox5.Text = Convert.ToString(m * customConversionBase * 1_000_000);
      }
      else if (text == textBox4)
      {
        double km = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(km * 1000_000_000_000);
        textBox2.Text = Convert.ToString(km * 10_000_000_000);
        textBox3.Text = Convert.ToString(km * 1000_000);
        textBox5.Text = Convert.ToString(km * customConversionBase * 1000_000_000_000);
      }
      else if (text == textBox5)
      {
        double en = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(en / customConversionBase);
      }
    }
    
    private void volumeConversion(TextBox text, string val)
    {
      if (text == textBox1)
      {
        double cm = Convert.ToDouble(val);
        textBox2.Text = Convert.ToString(cm);
        textBox3.Text = Convert.ToString(cm * 0.001);
        textBox4.Text = Convert.ToString(cm * 0.000_001);
        textBox5.Text = Convert.ToString(cm * customConversionBase);
      }
      else if (text == textBox2)
      {
        double mL = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(mL);
        textBox3.Text = Convert.ToString(mL * 0.001);
        textBox4.Text = Convert.ToString(mL * 0.000_001);
        textBox5.Text = Convert.ToString(mL * customConversionBase);
      }
      else if (text == textBox3)
      {
        double L = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(L * 1000);
        textBox2.Text = Convert.ToString(L * 1000);
        textBox4.Text = Convert.ToString(L * 0.001);
        textBox5.Text = Convert.ToString(L * customConversionBase * 1000);

      }
      else if (text == textBox4)
      {
        double m = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(m * 1000_000);
        textBox2.Text = Convert.ToString(m * 1000_000);
        textBox3.Text = Convert.ToString(m * 1000);
        textBox5.Text = Convert.ToString(m * customConversionBase * 1000_000);
      }
      else if (text == textBox5)
      {
        double en = Convert.ToDouble(val);
        textBox1.Text = Convert.ToString(en / customConversionBase);

      }
    }
    
    private void textBox_TextChanged(object sender, EventArgs e)
    {
      try
      {
        TextBox text = (TextBox) sender;
        string val = text.Text;
        // 不为空 及 正整数或正小数  (进制另外进一步匹配)
        if (text.Text == "")
        {
          return;
        }
        if (unitItem == "进制")
        {
          BaseConversion(text, val);
        }
        else if (Regex.IsMatch(val, @"(^[0-9]{1,}$)|(^[0-9]+(.[0-9]{1,})$)"))
        {
          switch (unitItem)
          {
            case "长度":
              lengthConversion(text, val);
              break;
            case "面积":
              areaConversion(text, val);
              break;
            case "体积":
              volumeConversion(text, val);
              break;
          }
        }
      }
      catch (Exception exception) {}
    }
    
    private void unitComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
      // 清空 及 复位
      textBox1.Text = "";
      textBox2.Text = "";
      textBox3.Text = "";
      textBox4.Text = "";
      textBox5.Text = "";
      textBox5.ReadOnly = true;
      label5.Text = "";
      customConversionBase = 0;
      unitListBox.Items.Clear();
      
      unitItem = unitComboBox.SelectedItem.ToString();
      switch (unitItem)
      {
        case "进制": 
          label1.Text = "Bin";
          label2.Text = "Oct";
          label3.Text = "Dec";
          label4.Text = "Hex";
          break;
        case "长度":
          label1.Text = "mm";
          label2.Text = "cm";
          label3.Text = "m";
          label4.Text = "km";
          unitListBox.Items.Add("inch");
          unitListBox.Items.Add("foot");
          unitListBox.Items.Add("yard");
          break;
        case "面积":
          label1.Text = "m²";
          label2.Text = "cm²";
          label3.Text = "m²";
          label4.Text = "km²";
          unitListBox.Items.Add("inch²");
          unitListBox.Items.Add("foot²");
          unitListBox.Items.Add("yard²");
          break;
        case "体积":
          label1.Text = "cm³";
          label2.Text = "mL";
          label3.Text = "L";
          label4.Text = "m³";
          unitListBox.Items.Add("inch³");
          unitListBox.Items.Add("foot³");
          unitListBox.Items.Add("yard³");
          break;
      }
    }
    
    private void unitListBox_SelectedIndexChanged_1(object sender, EventArgs e)
    {
      textBox5.ReadOnly = false;
      
      if (unitListBox.SelectedItem != null)
      {
        label5.Text = unitListBox.SelectedItem.ToString();
        switch (label5.Text)
        {
          case "inch":
            customConversionBase = 0.039_37;
            break;
          case "foot":
            customConversionBase = 0.003_281;
            break;
          case "yard":
            customConversionBase = 0.001_094;
            break;
          case "inch²":
            customConversionBase = 0.001_55;
            break;
          case "foot²":
            customConversionBase = 0.000_011;
            break;
          case "yard²":
            customConversionBase = 0.000_001;
            break;
          case "inch³":
            customConversionBase = 0.061_024;
            break;
          case "foot³":
            customConversionBase = 0.000_035;
            break;
          case "yard³":
            customConversionBase = 0.000_001;
            break;
        }
      }
    }
  }
}

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

--结束END--

本文标题: C#实现单位换算器

本文链接: https://www.lsjlt.com/news/162894.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#实现单位换算器
    本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下 一、阐述 进制间转换:十六进制、十进制、八进制、二进制。长度间转换:毫米、厘米、米、公里、英寸、英尺、码。...
    99+
    2024-04-02
  • Java实现单位换算功能
    本文实例为大家分享了Java实现单位换算功能的具体代码,供大家参考,具体内容如下 使用枚举进行简单计算 只加入了一些简单常用的单位,如有需要自行添加,以标准单位为基准 packag...
    99+
    2024-04-02
  • Golang实现的度量单位转换器
    标题:使用Golang编写的单位转换工具示例 在日常生活中,我们经常需要进行单位之间的转换,比如将温度从摄氏度转换为华氏度,或者将长度从米转换为英尺。为了方便大家进行单位转换,我们可以...
    99+
    2024-02-24
    工具 golang 单位转换
  • 工作中借助win7系统自带计算器实现单位换算教程
    在平常时工作中,有时候需要进行单位换算,而单位换算是一件有点让人头疼的事情,不过要是你使用win7系统的话就方便多了,win7系统中有自带计算器,我们可以利用计算器来实现单位换算的功能,现在就跟大家分享一下巧妙利用win...
    99+
    2023-06-06
    win7 计算器 单位换算 实现 自带 系统 单位
  • 单位转换应用的Golang实现
    标题:Golang实现的度量单位转换应用 在现代社会中,度量单位的转换是一个常见且重要的操作。无论是在日常生活中还是在工程领域,我们经常需要将不同的度量单位进行转换,以便更好地理解和应...
    99+
    2024-02-25
    golang 度量单位 转换应用
  • C语言实现简单计算器
    本文实例为大家分享了C语言实现简单计算器的具体代码,供大家参考,具体内容如下 实现效果如图: 实现代码如下: #include<stdio.h> #include...
    99+
    2024-04-02
  • C++实现简单的计算器功能
    用C++编写简单计算器,供大家参考,具体内容如下 限制: 1、只能使用分支语句与循环语句;2、不能使用数组和自定义函数;(即把自己当作只学到分支语句和循环语句的初学者) 计算器要求:...
    99+
    2024-04-02
  • C#实现简单的计算器功能
    本文实例为大家分享了C#实现简单的计算器功能的具体代码,供大家参考,具体内容如下 环境:VS2010及以上版本 1、建立个Window窗体应用 2、在工具箱里拖出两个TextBox...
    99+
    2024-04-02
  • C++实现LeetCode(648.替换单词)
    [LeetCode] 648.Replace Words 替换单词 In English, we have a concept called root, which can...
    99+
    2024-04-02
  • 详解Python中位运算的简单实现
    目录简介应用场景案例源码简介 程序中的数在计算机内存中都是以二进制的形式存在的,位运算就是直接对整数在内存中对应的二进制位进行操作,一般是将数字化为二进制数后进行操作。 应用场景 在...
    99+
    2024-04-02
  • C++实现简单的计算器小功能
    用C++编写简单计算器,供大家参考,具体内容如下 限制: 1、只能使用分支语句与循环语句;2、不能使用数组和自定义函数;(即把自己当作只学到分支语句和循环语句的初学者) 计算器要求:...
    99+
    2024-04-02
  • C#实现简单的计算器小功能
    本文实例为大家分享了C#实现简单的计算器小功能的具体代码,供大家参考,具体内容如下 先来张效果图吧(5分钟写好,莫怪) 代码: 数字按钮绑定的是button_Clickd()方法 ...
    99+
    2024-04-02
  • C#实现简单的计算器小程序
    作为一个程序员,如何从浅入深的训练自己的技术,可以通过一些小程序来训练下面简单介绍一下如何制作一个简单的计算器小程序 如下为制作之后的小程序截图 代码段 其中计算用了dataTab...
    99+
    2024-04-02
  • 使用Golang快速实现单位转换功能
    在当今社会,单位转换是我们生活中不可或缺的一部分。无论是在科学领域、工程领域还是日常生活中,经常会遇到需要将不同单位进行转换的情况。为了解决这个问题,我们可以利用Golang编程语言快...
    99+
    2024-02-25
    golang 实现 单位转换
  • C++矩阵运算的实现简单
    利用C++实现矩阵的构造,通过运算符的重载实现矩阵的乘法、加法等。并且实现矩阵形状的打印,矩阵的打印。 #include<iostream> #include<...
    99+
    2024-04-02
  • C#怎么实现简单的计算器功能
    这篇“C#怎么实现简单的计算器功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#怎么实现简单的计算器功能”文章吧。1.界...
    99+
    2023-06-29
  • C++怎样实现简单的计算器功能
    C++怎样实现简单的计算器功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。限制:只能使用分支语句与循环语句;2、不能使用数组和自定义函数;(即把自己当作只学到...
    99+
    2023-06-29
  • C#实现简单的计算器功能(窗体)
    本文实例为大家分享了C#实现简单的计算器功能的具体代码,供大家参考,具体内容如下 1.界面设计 2.代码 using System; using System.Collection...
    99+
    2024-04-02
  • C#算法中怎么实现各位相加
    本文小编为大家详细介绍“C#算法中怎么实现各位相加”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#算法中怎么实现各位相加”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。各位相加给定一个非负整数 num...
    99+
    2023-06-26
  • 用C语言实现简单的计算器功能
    本文实例为大家分享了C语言实现简单的计算器功能的具体代码,供大家参考,具体内容如下 简单计算器,实现简单的加减乘除功能,选择对应的运算符输出运算符对应的编号,然后输入我们要计算的两个...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作