C#實現(xiàn)單位換算器_第1頁
C#實現(xiàn)單位換算器_第2頁
C#實現(xiàn)單位換算器_第3頁
C#實現(xiàn)單位換算器_第4頁
C#實現(xiàn)單位換算器_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第C#實現(xiàn)單位換算器本文實例為大家分享了C#實現(xiàn)單位換算器的具體代碼,供大家參考,具體內(nèi)容如下

進制間轉(zhuǎn)換:十六進制、十進制、八進制、二進制。

長度間轉(zhuǎn)換:毫米、厘米、米、公里、英寸、英尺、碼。

面積間轉(zhuǎn)換:平方毫米、平方厘米、平方米、平方公里、平方英寸、平方英尺、平方碼。

體積間轉(zhuǎn)換:立方毫米、毫升、升、立方米、立方英寸、立方英尺、立方碼。

1.進制轉(zhuǎn)換

通過輸入即可轉(zhuǎn)換為另一個進制值。

2.長度轉(zhuǎn)換

用戶輸入進行單位換算,可從目標中選擇需求單位。

選中需求后,輸入框解除只讀,輸入即可進行換算。

3.面積轉(zhuǎn)換

同樣,使用正則匹配對正數(shù)小數(shù)和正整數(shù),而進制轉(zhuǎn)換另外規(guī)則匹配。

4.體積轉(zhuǎn)換

當重選單位類型時會清空輸入框。

usingSystem;

usingSystem.Text.RegularExpressions;

usingSystem.Windows.Forms;

namespaceUnitConversion

publicpartialclassForm1:Form

//默認選項

privatestringunitItem="進制";

//用戶選擇單位度量的轉(zhuǎn)換基數(shù)

privatedoublecustomConversionBase=0;

publicForm1()

{

InitializeComponent();

}

privatevoidForm1_Load(objectsender,EventArgse)

{

unitComboBox.Items.Add("進制");

unitComboBox.Items.Add("長度");

unitComboBox.Items.Add("面積");

unitComboBox.Items.Add("體積");

}

/*

*進制轉(zhuǎn)換

*/

privatevoidBaseConversion(TextBoxtext,stringval)

{

if(text==textBox1Regex.IsMatch(val,@"[0-1]+$"))

//二進制轉(zhuǎn)換

{

longoct=Convert.ToInt64(val,2);

textBox2.Text=Convert.ToString(oct,8);

textBox3.Text=oct.ToString();

textBox4.Text=Convert.ToString(oct,16);

}

elseif(text==textBox2Regex.IsMatch(val,@"[0-7]+$"))

//八進制轉(zhuǎn)換

{

longoct=Convert.ToInt64(val,8);

textBox1.Text=Convert.ToString(oct,2);

textBox3.Text=oct.ToString();

textBox4.Text=Convert.ToString(oct,16);

}

elseif(text==textBox3Regex.IsMatch(val,@"[0-9]+$"))

//十進制轉(zhuǎn)換

{

longoct=Convert.ToInt64(val);

textBox1.Text=Convert.ToString(oct,2);

textBox2.Text=Convert.ToString(oct,8);

textBox4.Text=Convert.ToString(oct,16);

}

elseif(text==textBox4Regex.IsMatch(val,@"[A-Fa-f0-9]+$"))

//十六機制轉(zhuǎn)換

{

longoct=Convert.ToInt64(val,16);

textBox1.Text=Convert.ToString(oct,2);

textBox2.Text=Convert.ToString(oct,8);

textBox3.Text=oct.ToString();

}

}

/*

*長度

*/

privatevoidlengthConversion(TextBoxtext,stringval)

{

if(text==textBox1)

{

doublemm=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);

}

elseif(text==textBox2)

{

doublecm=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);

}

elseif(text==textBox3)

{

doublem=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);

}

elseif(text==textBox4)

{

doublekm=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);

}

elseif(text==textBox5)

{

doubleen=Convert.ToDouble(val);

textBox1.Text=(en/customConversionBase).ToString();

}

}

/*

*面積

*/

privatevoidareaConversion(TextBoxtext,stringval)

{

if(text==textBox1)

{

doublemm=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);

}

elseif(text==textBox2)

{

doublecm=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);

}

elseif(text==textBox3)

{

doublem=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);

}

elseif(text==textBox4)

{

doublekm=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);

}

elseif(text==textBox5)

{

doubleen=Convert.ToDouble(val);

textBox1.Text=Convert.ToString(en/customConversionBase);

}

}

/*

*體積

*/

privatevoidvolumeConversion(TextBoxtext,stringval)

{

if(text==textBox1)

{

doublecm=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);

}

elseif(text==textBox2)

{

doublemL=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);

}

elseif(text==textBox3)

{

doubleL=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);

}

elseif(text==textBox4)

{

doublem=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);

}

elseif(text==textBox5)

{

doubleen=Convert.ToDouble(val);

textBox1.Text=Convert.ToString(en/customConversionBase);

}

}

/*

*輸入換算

*/

privatevoidtextBox_TextChanged(objectsender,EventArgse)

{

try

{

TextBoxtext=(TextBox)sender;

stringval=text.Text;

//不為空及正整數(shù)或正小數(shù)

(進制另外進一步匹配)

if(text.Text=="")

{

return;

}

if(unitItem=="進制")

{

BaseConversion(text,val);

}

elseif(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(Exceptionexception){}

}

/*

*單位類型選擇

*/

privatevoidunitComboBox_SelectedIndexChanged(objectsender,EventArgse)

{

//清空及復(fù)位

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="m2";

label2.Text="cm2";

label3.Text="m2";

label4.Text="km2";

unitListBox.Items.Add("inch2");

unitListBox.Items.Add("foot2");

unitListBox.Items.Add("yard2");

break;

case"體積":

label1.Text="cm3";

label2.Text="mL";

label3.Text="L";

label4.Text="m3";

unitListBox.Items.Add("inch3");

unitListBox.Items.Add("foot3");

unitListBox.Items.Add("yard3");

break;

}

}

/*

*單位度量選擇

*/

privatevoidunitListBox_SelectedIndexChanged_1(objectsender,EventArgse)

{

te

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論