一、請先設計你的小算盤外觀,表單配置如下:

說明:
A.顯示數字的應該是 Label 物件(不是文字盒),因為它應該不能讓使用者直接更改,但是外觀可以變得與文字盒相似。
B.按鍵製作應該先做好一個,調整字型與鍵盤大小到喜歡的樣式,再使用複製產生。
C.各鍵盤的排列可以使用功能表的格式功能中的對齊與間距作調整。
D.請參考小算盤的標準模式操作介面。
|
二、數字鍵的輸入
A.按照小算盤的慣例,顯示板總有一個"0"在那邊,按新數字時應該加在數字的最後面,程式應該是:
Label1.Text += 新數字,此時可以使用事件副程式中的一個變數
sender 來簡化程式,sender 是指產生此事件的物件。
請雙擊任何一個你的數字鍵,輸入如下程式:

說明:此時試試看輸入數字,sender.Text 就是按鍵上的數字,可是前面的 0
不會自動消失,修改如下再試一次。

此時程式會先檢查如果顯示板只有一個"0"當然是開始的狀況,必須先清除0再加入數字,看起來就正常了!
B.讓所有數字一起使用相同的程式碼
如果上述程式必須為數字 0~9 各寫一次,程式碼會多到很討厭,在此可以使用多事件驅動同一副程式的方式處理。
請注意事件副程式標題後面的 Handles 關鍵字!它後面指出可以驅動這段程式的事件。預設就是我們之前指定的數字鍵,
打一個逗點,會出現如下畫面,我們可以繼續指定任何物件的任何事件也可以驅動這段程式(個數不限)。

在此例中我們可以一一將各個數字按鍵加入,於是每個按鍵按下時都可以將其數字(sender.Text)加入顯示板。
請注意:由於複製產生鍵盤的順序不同,每個人的數字鍵對應到 Button? 不會完全相同!
C.小數點的輸入
小數點是數字的一部份,但是處理方式有點不同,它不能重複!一個數字中不可能有兩個小數點(但是數字可以重複)。
所以必須獨立設計其輸入程式如下:

說明:Instr是搜尋字串的函數,上面程式會先在Label中搜尋小數點,如果搜到了會傳回一個大於0的數字(第幾個字);=0表示沒有這個字。搜到了就不必理會小數點的輸入,沒搜到就加入小數點。 |
三、清除與倒退鍵
A.清除鍵就是將顯示板歸零
B.倒退鍵是將最後一個數字字元刪掉。需注意的是如果刪到變成空字串時必須補回一個"0"!

說明:刪除最後一字的程式是:原字串的子字串(從第一個字元開始,取整個字串長度減一個字) |
四、單一數字的計算
小算盤版面上的開根號(Sqrt)與倒數(1/x)功能,只需單一數字就可以運算。我們可以直接使用數學函數算出答案並顯示:

說明:Math開頭的數學函式庫是我們做複雜計算的基礎,請記得這是C#與VB共用的。
|
五、四則運算(兩個數字的計算)
A.四則運算必須有兩個輸入數字,但是小算盤只有一個顯示板,所以必須有個中斷點,告訴程式『我要輸入第二個數字了,請結束第一個數字』。這個中斷點就是四則運算的加減乘除符號,程式還必須在此記住待會數字二輸入完必須做哪種運算。
B.所以請先在公共區域(Form1內,Sub外)宣告兩個變數,一個是數字一(M);一個是運算元(+-*/)。然後寫加法程式如下:

說明:
1.按加號鍵時先取得(記住)數字一(M=val(Label1.Text))以及加號鍵上面的字("+"),將數字顯示歸零,提醒現在將輸入數字二。
2.在執行運算(等號鍵)時,先將目前的數字二取出放到變數N,宣告T是答案,接著用選項:如果運算元(Opp)是加號則作加法。
3.至於其他的"三則"運算請同學發揮一下想像力,使用之前用過的多事件驅動單一程式的方式加到上述程式中,四則運算就是不同Opp的四個"Case"。
4.如果你使用『全形』字寫在按鍵上,程式裡面的Case後面也必須使用全形字,全形與半形對電腦來說是兩個不同的字。
5.百分比運算(%)公式是 M/N*100也可以加入上述程式成為一個"Case"
|
這次你還不加註解就太誇張了! |