統計資訊
  • 文章數 - 24
  • 回應數 - 16
  • 引用數 - 0

 

簡易型計算機 vb and c#

如果你不是第一次到這個頁面來,會發現本來除了程式碼什麼也沒有,現在多了這些文字敘述。

這個範例的主要目的不是要做一個計算機,
本來只是想用最簡單的方法教朋友程式入門,
順便把程式碼放在這裡簡單分享,也是備忘,
沒想到貼上來後發現有不少人找VB程式找到這裡來,
那就再補上這一段文字說明了。

這一段是寫給沒學過任何程式語言的朋友看的:
寫程式有的時候只是因為不知道從何下手,所以入門比較難,
但事實上因為開發環境漸趨成熟,輔助工具齊全,絕對比一般人想像的簡單。
一般電腦書籍大都是先介紹開發環境、解說控制項、指令...等等,
這樣循序漸進雖然比較完整,但也因為較枯燥,造成入門障礙。
我試了一下,在VB2005的環境下,完全不用到任何專業基礎,
10分鐘內就可以寫好一個簡易型的計算機的程式

 

以下是建立本程式的步驟:

先開啟一個Windows應用程式專案。

把Button從工具列拉過來Form1裡面,這個就是Button1,把Button1的屬性Text改為"1"。
把這個Button1複製9個新的出來並稍做排列,依次把Text屬性改為"2","3","4"..."9","0"。
選取這10個Button,在屬性視窗Click這個事件後面的空白點兩下。

再把Button從工具列拉過來Form1裡面,這個就是Button11,把Button11的屬性Text改為"+"。
把這個Button11複製3個新的出來並稍做排列,依次把Text屬性改為"-","*","/"。
選取這4個Button,在屬性視窗Click這個事件後面的空白點兩下。

再把Button從工具列拉過來Form1裡面,這個就是Button15,把屬性Text改為"="。
選取這個Button,在屬性視窗Click這個事件後面的空白點兩下。

再把Button從工具列拉過來Form1裡面,這個就是Button16,把屬性Text改為"AC"。
選取這個Button,在屬性視窗Click這個事件後面的空白點兩下。

m 是用來放 + - * / 的,
aa是用來記住按下+ -  * / 之前使用者輸入的內容,應該很容易懂,
比較一下你的程式碼跟下面的程式,
把程式碼放進去,好了,就這樣,你會寫程式了。

VB:

Public Class Form1

    Dim m As String
    Dim aa As String

    Private Sub ButtonNumber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click, Button9.Click, Button8.Click, Button7.Click, Button6.Click, Button5.Click, Button4.Click, Button3.Click, Button10.Click, Button1.Click
        Dim b As Button = sender
        TextBox1.Text = TextBox1.Text + b.Text
    End Sub

    Private Sub ButtonM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click, Button14.Click, Button13.Click, Button12.Click
        Dim mb As Button = sender
        m = mb.Text
        aa = TextBox1.Text
        TextBox1.Text = ""
    End Sub

    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        Dim a As Single = Val(aa)
        Dim b As Single = Val(TextBox1.Text)
        Dim c As Single

        Select Case m
            Case "+"
                c = a + b
            Case "-"
                c = a - b
            Case "*"
                c = a * b
            Case "/"
                c = a / b
        End Select
        TextBox1.Text = c

    End Sub

    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
        TextBox1.Text = ""
    End Sub
End Class

 

C#:

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 Form1 : Form
    {
        String aa;
        String m;

        public Form1()
        {
            InitializeComponent();
        }

        private void buttonNumber_Click(object sender, EventArgs e)
        {
            Button b = sender as Button;
            textBox1.Text += b.Text;
        }

        private void buttonM_Click(object sender, EventArgs e)
        {
            Button mb = sender as Button;
            m = mb.Text;
            aa = textBox1.Text;
            textBox1.Text = "";
        }

        private void button15_Click(object sender, EventArgs e)
        {
            Double a = Double.Parse(aa);
            Double b = Int32.Parse(textBox1.Text);
            Double c = 0;

            switch (m)
            {
                case "+":
                    c = a + b;
                    break;
                case "-":
                    c = a - b;
                    break;
                case "*":
                    c = a * b;
                    break;
                case "/":
                    c = a / b;
                    break;

            }
            textBox1.Text = c.ToString();
        }

        private void button16_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }
    }
}

 



關連文章


回應

# re: 簡易型計算機 vb and c#

buttonNumber 後面的 Numbe 就是0~9後面的數字嗎?

buttonM這又是什麼??裡面的可以麻煩您解釋一下嗎?

mb這又是什麼...

private void button15_Click(object sender, EventArgs e) 這一段裡面的是寫什麼.... 2011/6/3 下午 03:38 | 最近才碰C#的學生 回覆

# re: 簡易型計算機 vb and c#

我用的是Microsoft Visual Studio 2008:Visual C# 2011/6/3 下午 03:44 | 最近才碰C#的學生 回覆

# re: 簡易型計算機 vb and c#

to 最近才碰C#的學生 :
ButtonNumber_Click()就是10個數字鍵發生click事件時要做的事
ButtonM_Click()就是+-*/四個鍵發生click事件時要做的事
Button mb = sender as Button;這是為了要從事件處理常式中將object轉為Button,後面的m = mb.Text;才能取出按鍵的Text屬性


Double a = Double.Parse(aa); //取出第一個運算元的數值
Double b = Int32.Parse(textBox1.Text); //取出第二個運算元的數值
Double c = 0;
switch (m) //m是+-*/其中一個
{
case "+":
c = a + b;
break;
case "-":
c = a - b;
break;
case "*":
c = a * b;
break;
case "/":
c = a / b;
break;
}
textBox1.Text = c.ToString(); //顯示結果



2011/6/7 下午 03:19 | Darrent 回覆

# re: 簡易型計算機 vb and c#

+-*/無反應 在按下=後
這行顯示
Double a = Double.Parse(aa);
Double b = Int32.Parse(textBox1.Text);
Double c = 0;
值不能為 null。
參數名稱: String
請問該如何處理

2011/12/27 上午 10:03 | 最近才碰C#的學生 回覆

# re: 簡易型計算機 vb and c#

 

那就是沒有依正常程序輸入數值就按等於,可以不要計算,方法是在前面先加上判斷:

if(aa == null) 
return;

 

2012/3/27 上午 09:15 | darrent 回覆

# re: 簡易型計算機 vb and c#

to Darrent :
必須是類別、委派、列舉、介面或結構   

全都標示在+-*/符號上的void

要怎麼解決呢??

2012/5/20 下午 02:23 | Joshua 回覆

# re: 簡易型計算機 vb and c#

to Joshua :
不是很懂 :[
全都標示在+-*/符號上的void] 的意思

 

2012/7/20 上午 10:27 | darrent 回覆

# re: 簡易型計算機 vb and c#

您好,

我照著您的方法做可是無法正常跑耶

我是用VISUAL C#2010EXPRESS

請問還有哪裡需要改或加的嗎??

2013/9/3 下午 10:54 | j 回覆

# re: 簡易型計算機 vb and c#

你說:[無法正常跑],請問錯誤訊息是甚麼?

2013/9/17 上午 09:18 | darrent 回覆

# re: 簡易型計算機 vb and c#

你好

這無法執行連加

1+2=3

再按一次等於會出現"4"而不是"5"

請問該怎麼處理

2014/4/8 下午 10:16 | 123 回覆

# re: 簡易型計算機 vb and c#

     m = mb.Text;

 switch (m)

 

M已經被取代掉 無法判斷

2014/6/11 上午 05:38 | 學生 回覆

# re: 簡易型計算機 vb and c#

請問Form 該怎麼拉??
我都找不到在哪裡?

2014/6/14 上午 12:29 | ing 回覆

回應




 


登入後使用進階評論

Please add 6 and 2 and type the answer here:

 

 

Copyright © darrent