--- tags: 視窗程式設計 --- # 課堂作業 3-1:請將其他長度單位轉換做出來 學到這裡,要換同學試試看,請同學把其他長度單位計算的轉換做出來,使用者不管在哪一個輸入文字框輸入數字,都能轉換成其他長度單位。以下程式碼是公分轉換成其他長度單位,同學可以先研究看看,再把其他長度單位的轉換程式寫出來。 ![](https://imgur.com/4cCpF7b.png) 以上是輸入100公分後,其他單位轉換的結果 請同學將完成後的程式碼,Commit 後,上傳到 GitHub 上面。 ## 提示 你可能也需要長度單位轉換的公式,可以參考這個[網站](https://www.rapidtables.com/convert/length/index.html)。 ```csharp= private void txtCM_KeyUp(object sender, EventArgs e) { double douCM; //宣告一個double變數,變數名稱叫douCM douCM = Convert.ToDouble(txtCM.Text); //從txtCM輸入文字框取得輸入的文字,並且轉換成double的資料型態 //透過string.Format格式化成小數點後共10位的數字,轉型成文字型態,在txtM顯示結果 txtM.Text = string.Format("{0:0.##########}", douCM / 100); txtKM.Text = string.Format("{0:0.##########}", douCM / 100000); txtIn.Text = string.Format("{0:0.##########}", douCM / 2.54); txtFt.Text = string.Format("{0:0.##########}", douCM / 30.48); txtYard.Text = string.Format("{0:0.##########}", douCM / 91.44); } ``` 請同學將上課練習的基本視窗程式設計,然後使用 Github Desktop 去追蹤。接著,將這個專案上傳到 Github,看看有沒有成功上傳。請不要忘記,一邊製作的過程,一邊使用Commit做紀錄。 之後我們還有作業 3-2,屆時會延續這個專案,所以只要開一個專案就可以了。 ## 課堂作業 3-1:參考答案 :::spoiler 點開可以看到參考答案,不過建議你先試試看,再看參考答案。 ```csharp= using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace LengthCalculator { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void txtCM_KeyUp(object sender, EventArgs e) { double douCM; //宣告一個double變數,變數名稱叫douCM douCM = Convert.ToDouble(txtCM.Text); //從txtCM輸入文字框取得輸入的文字,並且轉換成double的資料型態 //透過string.Format格式化成小數點後共10位的數字,轉型成文字型態,在txtM顯示結果 txtM.Text = string.Format("{0:0.##########}", douCM / 100); txtKM.Text = string.Format("{0:0.##########}", douCM / 100000); txtIn.Text = string.Format("{0:0.##########}", douCM / 2.54); txtFt.Text = string.Format("{0:0.##########}", douCM / 30.48); txtYard.Text = string.Format("{0:0.##########}", douCM / 91.44); } private void txtM_KeyUp(object sender, EventArgs e) { double douM; douM = Convert.ToDouble(txtM.Text); txtCM.Text = string.Format("{0:0.##########}", douM * 100); txtKM.Text = string.Format("{0:0.##########}", douM * 0.001); txtIn.Text = string.Format("{0:0.##########}", douM * 39.37); txtFt.Text = string.Format("{0:0.##########}", douM * 3.28); txtYard.Text = string.Format("{0:0.##########}", douM * 1.09); } private void txtKM_KeyUp(object sender, EventArgs e) { double douKM; douKM = Convert.ToDouble(txtKM.Text); txtCM.Text = string.Format("{0:0.##########}", douKM * 100); txtM.Text = string.Format("{0:0.##########}", douKM * 1000); txtIn.Text = string.Format("{0:0.##########}", douKM * 39370.1); txtFt.Text = string.Format("{0:0.##########}", douKM * 3280.84); txtYard.Text = string.Format("{0:0.##########}", douKM * 1093.61); } private void txtIn_KeyUp(object sender, EventArgs e) { double douIn; douIn = Convert.ToDouble(txtIn.Text); txtCM.Text = string.Format("{0:0.##########}", douIn * 2.54); txtM.Text = string.Format("{0:0.##########}", douIn * 0.0254); txtKM.Text = string.Format("{0:0.##########}", douIn * 0.0000254); txtFt.Text = string.Format("{0:0.##########}", douIn * 0.0833); txtYard.Text = string.Format("{0:0.##########}", douIn * 0.0278); } private void txtFt_KeyUp(object sender, EventArgs e) { double douFt; douFt = Convert.ToDouble(txtFt.Text); txtCM.Text = string.Format("{0:0.##########}", douFt * 30.48); txtM.Text = string.Format("{0:0.##########}", douFt * 0.3048); txtKM.Text = string.Format("{0:0.##########}", douFt * 0.0003048); txtIn.Text = string.Format("{0:0.##########}", douFt * 12); txtYard.Text = string.Format("{0:0.##########}", douFt * 0.3333); } private void txtYard_KeyUp(object sender, EventArgs e) { double douYard; douYard = Convert.ToDouble(txtYard.Text); txtCM.Text = string.Format("{0:0.##########}", douYard * 91.44); txtM.Text = string.Format("{0:0.##########}", douYard * 0.9144); txtKM.Text = string.Format("{0:0.##########}", douYard * 0.0009144); txtIn.Text = string.Format("{0:0.##########}", douYard * 36); txtFt.Text = string.Format("{0:0.##########}", douYard * 3); } } } ``` :::