所謂的計畫趕不上變化,變化趕不上老闆的一句話

當初在面試的時候雖然已經很定位的跟面試主管說致力想學跟寫Android這一塊

但最近微軟的新7.5芒果機一推出來,由於客戶需求,主管派我去聽微軟開的msdn程式開發講座

課程目前還再進行,講座是免費的,有興趣的朋友趕快報名

我還很帥氣的上了鏡頭,照片連結(其實那個角度我覺得拍得很醜 = =”)

所以既然都已經聽完課了,當然就要先來個hello mango了

不過微軟的開發工具跟往常一樣,都是安裝完後compiler就可以有hello word的介面

所以我就寫一個Hello 計算機來測試看看囉!!! 我主要是仿微軟內建的計算計算方式,而且把功能更簡化(反正只是測試用的)

我特別把註解寫得很清楚,讓剛程式入門的新手,能更明確的了解程式是怎麼一回事。由於這是我第一次寫C#這種語言,若有錯的地方請不另請指教。

[c]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

namespace Calc
{
public partial class MainPage : PhoneApplicationPage
{
public string number = "";      //用來顯示輸入的數字
public long temp = 0;           //存放暫時的運算元
public double equal = 0;        //存放等於的結果
public char oper = ‘ ‘;         //存放運算元
public bool operClick = false;  //用來判別是否有重複按壓運算子做運算子更換

// Constructor
public MainPage()
{
InitializeComponent();
}

private void btn0_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = ""; //預防一開始的0可以無限點擊變成00000….
number += 0;                    //輸入的數字
temp = int.Parse(number);       //字串轉成整數的數字
PageTitle.Text = number;        //顯示在顯示器上
operClick = false;              //無重複按壓運算子
}

private void btn1_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 1;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn2_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 2;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn3_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 3;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn4_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 4;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn5_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 5;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn6_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 6;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn7_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 7;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn8_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 8;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btn9_Click(object sender, RoutedEventArgs e)
{
if (number == "0") number = "";
number += 9;
temp = int.Parse(number);
PageTitle.Text = number;
operClick = false;
}

private void btnClear_Click(object sender, RoutedEventArgs e)
{
number = "";
temp = 0;
equal = 0;
oper = ‘ ‘;
operClick = false;
PageTitle.Text = "0";
}

private void btnAdd_Click(object sender, RoutedEventArgs e)
{
if (operClick)  //重複按壓運算子
{
oper = ‘+’; //更換運算子
}
else
{
switch (oper)   //先前按壓的運算子進行運算
{
case ‘+’:
equal = equal + temp;
break;
case ‘-‘:
equal = equal – temp;
break;
case ‘*’:
equal = equal * temp;
break;
case ‘/’:
if (temp == 0) break;   //處理分母為零的例外
equal = equal / temp;
break;
case ‘=’:   //之前按壓等於時不須做任何動作
break;
default:    //一開始沒有先前運算子
equal = temp;
break;
}

number = equal.ToString();  //將等於的結果轉成字串
PageTitle.Text = number;    //顯示在顯示器上
oper = ‘+’;                 //儲存這次按壓的運算元
number = "";
}

operClick = true;//已按壓運算子並做完運算
}

private void btnSub_Click(object sender, RoutedEventArgs e)
{
if (operClick)
{
oper = ‘-‘;
}
else
{
switch (oper)
{
case ‘+’:
equal = equal + temp;
break;
case ‘-‘:
equal = equal – temp;
break;
case ‘*’:
equal = equal * temp;
break;
case ‘/’:
if (temp == 0) break;
equal = equal / temp;
break;
case ‘=’:
break;
default:
equal = temp;
break;
}

number = equal.ToString();
PageTitle.Text = number;
oper = ‘-‘;
number = "";
}

operClick = true;
}

private void btnMulti_Click(object sender, RoutedEventArgs e)
{
if (operClick)
{
oper = ‘*’;
}
else
{
switch (oper)
{
case ‘+’:
equal = equal + temp;
break;
case ‘-‘:
equal = equal – temp;
break;
case ‘*’:
equal = equal * temp;
break;
case ‘/’:
if (temp == 0) break;
equal = equal / temp;
break;
case ‘=’:
break;
default:
equal = temp;
break;
}

number = equal.ToString();
PageTitle.Text = number;
oper = ‘*’;
number = "";
}

operClick = true;
}

private void btnDiv_Click(object sender, RoutedEventArgs e)
{
if (operClick)
{
oper = ‘/’;
}
else
{
switch (oper)
{
case ‘+’:
equal = equal + temp;
break;
case ‘-‘:
equal = equal – temp;
break;
case ‘*’:
equal = equal * temp;
break;
case ‘/’:
if (temp == 0) break;
equal = equal / temp;
break;
case ‘=’:
break;
default:
equal = temp;
break;
}

number = equal.ToString();
PageTitle.Text = number;
oper = ‘/’;
number = "";
}

operClick = true;
}

private void btnEqual_Click(object sender, RoutedEventArgs e)
{
switch (oper)
{
case ‘+’:
equal = equal + temp;
break;
case ‘-‘:
equal = equal – temp;
break;
case ‘*’:
equal = equal * temp;
break;
case ‘/’:
if (temp == 0) break;
equal = equal / temp;
break;
default:
equal = temp;
break;
}

number = equal.ToString();
PageTitle.Text = number;
oper = ‘=’;
number = "";
}
}
}

[/c]

顯示結果就類似這樣,至於介面玩的人就自己拉一拉吧!!!

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *