求教學VB2008 數字金字塔&紅綠燈[已解決]

Home Home
引用 | 編輯 a0910980869
2009-12-08 16:48
樓主
推文 x2
這兩題我不知該怎麼著手請大大幫幫我!!
題目如下:
一、寫一個程式顯示如下的金字塔圖案:
             
需要的物件有:Label *1
   
二、請用Light01.gif~Light03.gif( 、 、   )
寫一個燈 ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 x09818
2009-12-11 11:08
1樓
  
題目分析:
我把結果分成3段

1.填補空白:因為有15層所以第一行填補15-1=14個.第二行填補15-2=13個...以此類推~
解:程式04-07行以一個迴圈 由1到 (n-i) 來填補空白~
2.產生順向字串:第一行1個.第二行2個....~
解:程式08行~利用行數取個位數~累加形成
3.產生反向字串:第一行0個.第二行1個....~
解:利用順向字串少取1位重複字[Mid(tempstr, 1, Len(Str(tempstr)) - 2)].再作字串反轉[StrReverse]即可.

複製程式
 
01        Dim n As Integer = 15 
02        Dim tempstr As String = "" 
03        Label1.Text = "" 
04        For i As Integer = 1 To n 
05            For j As Integer = 1 To (n - i) 
06                Label1.Text &= "  " 
07            Next 
08            tempstr &= Mid(Str(i), Len(Str(i)), 1) 
09            Label1.Text &= tempstr & StrReverse(Mid(tempstr, 1, Len(Str(tempstr)) - 2)) & vbCrLf 
10        Next 


如果Label1屬性text預設為空白 則第3行可以省略
如果Label1屬性textalign預設為topcenter 則第5~7行可以省略
如果預設只有15層 則第1行可以省略 變數n改為15
反之~要9層..則第1行=15改為=9

ps.大於15層.因為字串長度計算會出問題「字串長度計算因素」~至於為何~請高手詳解吧~
另依照題目分析.程式也可以用陣列下去寫~請各位同學練習吧~
個人解法~請先進指導~

本帖包含附件
檔名: zip 1.rar   (2022-06-09 14:13 / 10 KB)  
執行結果
下載次數:38


獻花 x1
引用 | 編輯 x09818
2009-12-11 11:45
2樓
  
依照你的題目解
直接一步一步驅動timer就好~

程式原碼有點長.不過可以設定到小時.分.秒.毫秒.
而且是倒數~
複製程式
    Dim hour, minisec, sec, min As Integer
    Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        hour = 0
        min = 0
        sec = 5
        minisec = 0
        Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Timer1.Enabled = True
        minisec -= 1
        If minisec < 0 Then
            sec -= 1 : minisec = 60
            If sec < 0 Then
                min -= 1 : sec = 59
                If min < 0 Then
                    hour -= 1 : min = 59
                    If hour < 0 Then hour = 0
                End If
            End If
        End If
        Label1.Text = sec + 1
        PictureBox1.Visible = True
        PictureBox2.Visible = False
        PictureBox3.Visible = False
        If hour = 0 And min = 0 And sec = 0 And minisec = 0 Then
            Timer1.Enabled = False
            sec = 3
            Timer2.Enabled = True
        End If
    End Sub
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        Timer2.Enabled = True
        minisec -= 1
        If minisec < 0 Then
            sec -= 1 : minisec = 60
            If sec < 0 Then
                min -= 1 : sec = 59
                If min < 0 Then
                    hour -= 1 : min = 59
                    If hour < 0 Then hour = 0
                End If
            End If
        End If
        Label1.Text = sec + 1
        PictureBox1.Visible = False
        PictureBox2.Visible = True
        PictureBox3.Visible = False
        If hour = 0 And min = 0 And sec = 0 And minisec = 0 Then
            Timer2.Enabled = False
            sec = 6
            Timer3.Enabled = True
        End If
    End Sub
    Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
        Timer3.Enabled = True
        minisec -= 1
        If minisec < 0 Then
            sec -= 1 : minisec = 60
            If sec < 0 Then
                min -= 1 : sec = 59
                If min < 0 Then
                    hour -= 1 : min = 59
                    If hour < 0 Then hour = 0
                End If
            End If
        End If
        Label1.Text = sec + 1
        PictureBox1.Visible = False
        PictureBox2.Visible = False
        PictureBox3.Visible = True
        If hour = 0 And min = 0 And sec = 0 And minisec = 0 Then
            Timer3.Enabled = False
            sec = 5
            Timer1.Enabled = True
        End If
    End Sub
請同學一起練習~

ps. timer屬性interval設為1「如此才能動作到毫秒」
預設PictureBox1-3分別為紅.黃.綠燈圖片.屬性Visible預設為False

本帖包含附件
檔名: zip 2.rar   (2022-06-09 14:13 / 12 KB)  
執行結果
下載次數:64


獻花 x0
引用 | 編輯 saisai123321
2010-05-04 10:12
3樓
  
有冇console ge 寫

獻花 x0