C#實現(xiàn)簡單加減乘除計算器
第一次學習C#,做了個簡單的加減乘除計算器,只能實現(xiàn)兩個因數(shù)的運算。
主要是練習下C#編程,和以前用過的VB差不多。與VB6不同的是,C#代碼區(qū)分大小寫。
Windows窗口程序主要也是由一些控件組成,響應響應的事件(event),實現(xiàn)具體的功能。
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>
/// 只能輸入數(shù)字(含負號小數(shù)點)
/// </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;
}
/*
* 參數(shù):d表示要四舍五入的數(shù);i表示要保留的小數(shù)點后位數(shù)。
* 正負數(shù)都四舍五入,適合數(shù)據統(tǒng)計的顯示
*/
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("因數(shù)1不能為空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (txtInshu2.Text == "")
{
MessageBox.Show("因數(shù)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("因數(shù)2做除數(shù)不能為0!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
result = inshu1 / inshu2;
result = Round(result, 6);
}
txtResult.Text = Convert.ToString(result);
}
}
}
因數(shù)輸入框只允許輸入數(shù)字和小數(shù)點負號的代碼是從網絡上引用的。
除法運算時四舍五入的處理也是引用自網絡上的文章。
更多計算器功能實現(xiàn),請點擊專題: 計算器功能匯總 進行學習
關于Android計算器功能的實現(xiàn),查看專題:Android計算器 進行學習。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C#正則表達式分解和轉換IP地址實例(C#正則表達式大全 c#正則表達式語法)
這是我發(fā)了不少時間整理的C#的正則表達式,新手朋友注意一定要手冊一下哦,這樣可以節(jié)省很多寫代碼的時間。下面進行了簡單總結2013-12-12
運用示例簡單講解C#取消令牌CancellationTokenSource
這篇文章運用示例簡單講解C#取消令牌CancellationTokenSource,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08

