報告題名:
應用程式設計-影片出租系統
作者:王安
系級:工業工程與系統管理學系 二年級
學號:D9825829
開課老師:陳亭志
課程名稱:應用程式設計
開課系所:工業工程與系統管理學系
中文摘要
傳統出租錄影帶店,都是客人想要租什麼影片,自己靠自己的方法查詢資料,並
到影帶店自行尋找或請店員幫忙尋找,再到櫃檯去結帳,店家向客人傳播影片新
資訊的方法很有限(可能像是店內外貼貼海報之類的),所以在這邊我做了一個可
以與客人互動的影片出租系統,藉由登入首頁的小系統跟客人作互動,也順便用
了隨機系統,向客人介紹了店內的影片,促進客人想要租借的慾望並增加營業
額,同時也做了影片資料登入及分析系統,這樣就不用再以人工記錄的方式逐一
寫下,並可以就登錄的資料作快速的分析,以圖示的方式:像圓餅圖、長條圖等
作分析,讓使用者一目了然,也根據了這個分析系統作了額外的推薦系統,用分
類分析的方式,顯示哪種影片是現在流行的,並讓客人參考看看。有了影片出租
系統,我們可以加快商品的登錄,並可就此作快速的分析,並利用程式分析出來
的資料或是額外小程式,作出推薦系統跟顧客來交流,影片的出租率也會因此而
提升。
關鍵字:
影片資料統計分析、影片資料搜尋、影片推薦與客製化、
應用程式設計
目 次
一、影片出租系統登入……… 3
二、選取影片出租服務(主畫面)……… 4
三、瀏覽影片記錄……… 7
四、新增影片……… 8
五、瀏覽/修改影片……… 10
六、查詢/租借 影片……… 12
七、租借畫面……… 14
八、瀏覽出租記錄……… 15
九、統計影片作業……… 16
十、程式指令……… 23
十一、心得……… 63
十二、參考文獻……… 63
影片出租系統登入
選取影片出租服務
瀏覽影片記錄
這邊可以瀏覽店內所有登錄的影片(多筆式的)
版面背景貼上了店內影片的圖做為宣傳
新增影片
把資料輸入妥當後,便可按 「儲存」新增影片,且會跑出訊息窗出來確認。
版面背景貼上了店內影片的圖做為宣傳
瀏覽/修改影片
這邊可以瀏覽「逐筆」影片
在筆數左方位置可以輸入你想要瀏覽的影片(第幾筆)
輸入並按下 Enter 後便會顯示那筆影片的資料
資料修改完後,可以按上面藍色磁碟片那邊,作「儲存」的動作
或著,按下紅色的叉叉,刪除此筆資料。
查詢/租借 影片
輸入相關資料,並按下開始查詢,便會查到相關影片
版面背景圖片是為了替店內影片作宣傳而放的圖片
租借畫面
在輸入基本客戶資料及押金後,可以按下「儲存」
,這樣就算完成了租借作業
版面背景為店內影片的宣傳圖。
瀏覽出租記錄
這邊是店內所有客戶的出租記錄
背景版面為店內影片圖片,是做宣傳用的。
此畫面會與程式八(租借畫面)共存,打開此程式,程式八並不會關掉
另外要關掉此程式(瀏覽出租記錄),按右上方叉叉便可以關閉
統計影片作業
這項服務是顯示現在店內影片的統計給顧客看的,分成許多分類
有 依格式、依類別、依級別 等…
由「格式」作的統計資料,此資料表中可以發現
「VCD」為三個格式中數量最多的一個,所以在下方的推薦系統
推薦了一個「VCD」格式 的影片
由「類別」作的統計資料,此資料表中可以發現
「校園喜劇」為所有類別中數量最多的一個,所以在下方的推薦系統
推薦了一個「校園喜劇」類別 的影片
由「級別」作的統計資料,此資料表中可以發現
「輔導級」為四個級別中數量最多的一個,所以在下方的推薦系統
推薦了一個「輔導級」級別 的影片
新片統計的資料統計圖
這邊開始是新片統計的資料,在這個程式設定成從第 11 個店內開始登錄的影片
為新片資料
由「格式」作的新片統計資料,此資料表中可以發現
「VCD」為三個格式中數量最多的一個,所以在下方的推薦系統
推薦了一個「VCD」格式 的影片
由新片資料所做的新片統計資料
由「類別」作的新片統計資料,此資料表中可以發現
由新片資料所做的新片統計資料
由「級別」作的新片統計資料,此資料表中可以發現
「輔導級」為四個級別中數量最多的一個,所以在下方的推薦系統
推薦了一個「輔導級」級別 的影片
Public Class Form1
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click '顯示出依個訊系視窗"歡迎再次使用本系統,框框裡會有白色的I圖示,框框名稱欄會顯示系統訊 息 MsgBox("歡迎下次再使用本系統!", MsgBoxStyle.Information, "系統訊息") '讓程式結束,整個關掉 End End Sub '現在設一個子程式叫 消除
End Sub
'設定一個子程式叫登入
Sub 登入()
'定義 一個叫 帳號 跟 密碼 的東西,讓 帳號 = "fake5945",密碼 = "amg1988" Dim 帳號 = "fake5945", 密碼 = "amg1988"
'假如 TextBox1跟2裡面所打的東西等於上面所定義的 之後就會 If TextBox1.Text = 帳號 And TextBox2.Text = 密碼 Then
'顯示一個訊息視窗 "歡迎您使用本系統!" ,視窗內會有白色的I圖示,左上視窗名稱會顯 示 系統訊息 MsgBox("歡迎您使用本系統!", MsgBoxStyle.Information, "系統訊息") '執行「消除」這個子程式,安全機制, 讓你登入後, 帳密上打的東西會消失 消除() '程式二(主畫面)顯示出來 Form2.Show() '自己(登入畫面) 隱藏 起來 Me.Hide() '其他(假如不成立的話) Else '顯示一個訊息視窗,跟你說你答錯了,視窗內會有黃色框驚嘆號表錯誤圖示,左上視窗名稱 會顯示 錯誤訊息 MsgBox("噗噗,答錯了", MsgBoxStyle.Exclamation, "錯誤訊息") '執行「消除」這個子程式,安全機制,讓你打過的東西不要殘留在程式上 消除() End If End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'讓你按下登入後會去執行「登入」這個子程式 登入()
TextBox2.Focus()
End If End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress '函數解釋如上 '現在假設你按下 Enter 然後 If Asc(e.KeyChar) = 13 Then '他就會去執行「登入」這個子程式,讓你打完密碼按下Enter後就可以直接登入了 登入() End If End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'讓 label4.Text 顯示現在時間 Label4.Text = Now
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub End Class
Public Class Form2
Dim 目前的方向 = 1, 目前的方向2 = 1 '寫廣義定域,假設1是向右(方向)跟向下(方向2)
Dim 指標 = 1 '寫廣義定域,假設指標目前是1,搭配下面的程式,指標會 隨時間變動
Private Sub 新增影片ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新增影片ToolStripMenuItem.Click
Form3.Show()
'自己(主畫面)關掉 Me.Close() End Sub
Private Sub 瀏覽修改影片ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 瀏覽修改影片ToolStripMenuItem.Click
Form5.Show() '程式五(瀏覽/修改影片)顯示出來 Me.Close() '自己(主畫面)關掉
End Sub
Private Sub 離開系統ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 離開系統ToolStripMenuItem.Click
'程式一(登入畫面)顯示出來 Form1.Show()
'自己(主畫面)關掉 Me.Close() End Sub
Private Sub 統計作業ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 統計作業ToolStripMenuItem.Click
Form6.Show() '程式六顯示出來 Me.Close() '自己(主畫面)關掉 End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
掉 隨機的數字 = Int(Rnd() * 9) + 1 Select Case 隨機的數字 Case 0 To 3 占卜 = "今天的運勢不錯哦^_^,細心的去注意一下小事務、眼光放遠一點,會有不錯的 收穫。" PictureBox2.Image = Image.FromFile("荒川2.jpg") Case 4 To 6 占卜 = "今天會是刺激的一天O_O,你會與你的心上人有臉紅心跳的遭遇。" PictureBox2.Image = Image.FromFile("占卜2.jpg") Case 7 To 10 占卜 = "今天是有點無法預測的一天,你可能會遇到令人驚訝或很囧的事情,你的表情 就會跟這張圖一樣。" PictureBox2.Image = Image.FromFile("占卜3.jpg") End Select TextBox1.Text = 占卜 g.Dispose() End Sub
Private Sub 查詢影片ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 查詢影片ToolStripMenuItem.Click
Form7.Show() '程式7顯示出來 Me.Close() '自己(主畫面)關掉 End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '這是讓 裝飾 占卜區 的 跑動小圖 移動的程式 '讓他一開始 朝方向(2)=1 的方向移動 , 在碰到底的時候會換方向 If 目前的方向 = 1 Then PictureBox1.Left += 5 End If
If PictureBox1.Left <= 0 Then 目前的方向 = 1 End If If 目前的方向2 = 1 Then PictureBox1.Top += 5 End If If 目前的方向2 = -1 Then PictureBox1.Top -= 5 End If
If PictureBox1.Top + PictureBox1.Height >= Me.Height Then 目前的方向2 = -1 End If If PictureBox1.Top <= 0 Then 目前的方向2 = 1 End If End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
'這邊寫的是主畫面 下方區域的程式 , 可以讓顧客 看到 店內影片 簡短的介紹 跟圖
'在Timer這邊設指標就是為了讓下方的介紹每十秒變動一次,這邊每十秒就從選擇方案中選擇一 個作介紹,隨機的
隨機的數字 = Int(Rnd() * 9) + 1 j.Clear(GroupBox4.BackColor) '介紹區原本是有放背景圖的(不然太單調,放的 背景圖也可以替出租影帶店的影帶打廣告),這邊在要開始介紹前把背景圖洗掉 g.Clear(Label2.BackColor) '這邊是用字體介紹的區域,一樣在每介紹一次 之前,把之前的字洗掉 PictureBox3.Visible = True Select Case 隨機的數字 Case 1
g.DrawString("食靈-零", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 5 PictureBox3.Image = Image.FromFile("食靈1.jpg") Case 6 To 10 PictureBox3.Image = Image.FromFile("食靈2.jpg") End Select Case 2
g.DrawString("K-ON!輕音少女", Label2.Font, Brushes.Black, 0, 0) PictureBox3.Image = Image.FromFile("輕音1.jpg")
Case 3
g.DrawString("化物語-Bakemonogatari-", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("化物語1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("化物語2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("化物語3.jpg") End Select Case 4
g.DrawString("Angel Beat!", Label2.Font, Brushes.Black, 0, 10) PictureBox3.Image = Image.FromFile("AngelBeats1.jpg")
g.DrawString("迷糊餐廳-working!!", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 5 PictureBox3.Image = Image.FromFile("迷糊餐廳1.jpg") Case 6 To 10 PictureBox3.Image = Image.FromFile("迷糊餐廳2.jpg") End Select Case 8
g.DrawString("刀語", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("刀語1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("刀語2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("刀語3.jpg") End Select Case 9
g.DrawString("The Tower of Druaga~the Aegis of URUK~", Label2.Font, Brushes.Black, 0, 0)
PictureBox3.Image = Image.FromFile("迷宮塔1.jpg") Case 10
g.DrawString("荒川爆笑團", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖
Case 0 To 3
PictureBox3.Image = Image.FromFile("荒川1.jpg") Case 4 To 6
j.Clear(GroupBox4.BackColor)
g.Clear(Label2.BackColor)
PictureBox3.Visible = True Select Case 隨機的數字 Case 1
g.DrawString("命運/停駐之夜(UBW劇場版)", Label2.Font, Brushes.Black, 0, 0)
Select Case 選圖 Case 0 To 3
PictureBox3.Image = Image.FromFile("Fate1.jpg") Case 4 To 6
PictureBox3.Image = Image.FromFile("Fate2.jpg") Case 7 To 10
PictureBox3.Image = Image.FromFile("Fate3.jpg") End Select
Case 2
g.DrawString("百花撩亂", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("百花1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("百花2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("百花3.jpg") End Select Case 3
g.DrawString("我的妹妹哪有這麼可愛", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖
Case 0 To 3
PictureBox3.Image = Image.FromFile("泥煤1.jpg") Case 4 To 6
Case 0 To 3 PictureBox3.Image = Image.FromFile("驚爆1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("驚爆2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("驚爆3.jpg") End Select Case 5
g.DrawString("荒川爆笑團 第二期", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("荒川1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("荒川2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("荒川3.jpg") End Select Case 6
g.DrawString("狼與辛香料", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("狼辛1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("狼辛2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("狼辛3.jpg") End Select Case 7
g.DrawString("南家三姊妹", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("南家1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("南家2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("南家3.jpg") End Select Case 9
g.DrawString("CLANNAD", Label2.Font, Brushes.Black, 0, 0) Select Case 選圖 Case 0 To 3 PictureBox3.Image = Image.FromFile("CL1.jpg") Case 4 To 6 PictureBox3.Image = Image.FromFile("CL2.jpg") Case 7 To 10 PictureBox3.Image = Image.FromFile("CL3.jpg") End Select Case 10
g.DrawString("機動戰士 第08 MS小隊", Label2.Font, Brushes.Black, 0, 0) End Select g.Dispose() j.Dispose() End If End Sub End Class
Public Class Form3
PrivateSub 資料表1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 資料表1BindingNavigatorSaveItem.Click
Me.Validate()
Me.資料表1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DvdDataSet)
End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 這行程式碼會將資料載入 'DvdDataSet.資料表1' 資料表。您可以視需要進行移動或移 除。
Public Class Form4
PrivateSub 資料表1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.資料表1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DvdDataSet)
End Sub
Private Sub 資料表1BindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 這行程式碼會將資料載入 'DvdDataSet.資料表1' 資料表。您可以視需要進行移動或移 除。 Me.資料表1TableAdapter.Fill(Me.DvdDataSet.資料表1) End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show() '主畫面顯示(回主選單) Me.Close() '自己(新增影片)關起來 End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '這邊是做一個儲存的程式,會把打在每一格的資料,儲存至應當儲存的地方 Dim 中文片名, 英文片名, 格式, 類別, 級別, 導演, 演員, 劇情簡介 As String Dim 片長 As Integer 中文片名 = "" : 英文片名 = "" : 格式 = "" : 類別 = "" : 級別 = "" : 導演 = "" : 演員 = "" : 劇情簡介 = "" 片長 = 0 中文片名 = TextBox2.Text 英文片名 = TextBox3.Text 格式 = ComboBox2.SelectedItem 類別 = TextBox5.Text 片長 = Val(TextBox6.Text) 級別 = ComboBox1.SelectedItem
Button3.Click '這邊是做一個清除的程式,讓之前打的都清除掉 TextBox2.Text = "" TextBox3.Text = "" ComboBox2.SelectedItem = "(請選擇)" TextBox5.Text = "" TextBox6.Text = "" ComboBox1.SelectedItem = "(請選擇)" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" End Sub End Class
Public Class Form5
PrivateSub 資料表1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.資料表1BindingSource.EndEdit()
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 這行程式碼會將資料載入 'DvdDataSet.資料表1' 資料表。您可以視需要進行移動或移 除。 Me.資料表1TableAdapter.Fill(Me.DvdDataSet.資料表1) End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show() '主畫面顯示(回主選單) Me.Close() '自己(瀏覽/修改影片)關掉 End Sub
'TODO: 這行程式碼會將資料載入 'DvdDataSet.資料表1' 資料表。您可以視需要進行移動或移 除。
Me.資料表1TableAdapter.Fill(Me.DvdDataSet.資料表1) End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '這邊設一個清除的程式,按下去,所以可匯入資料表格都會變成空白 TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" TextBox7.Text = "" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'這邊做一個查詢功能,這邊你在任一 資料輸出格 打上資料 他便會去資料庫搜尋符合資料 '找出資料後便會 執行 「秀資料」 這個子程式
Dim i As Integer
For i = 0 To Me.DvdDataSet.資料表1.Rows.Count - 1
If Me.DvdDataSet.資料表1.Rows(i)(1) = TextBox2.Text Then 秀資料(i) : Exit For
End If
If Me.DvdDataSet.資料表1.Rows(i)(2) = TextBox3.Text Then 秀資料(i) : Exit For
If Me.DvdDataSet.資料表1.Rows(i)(5) <= Val(TextBox6.Text) Then 秀資料(i) : Exit For
End If
If Me.DvdDataSet.資料表1.Rows(i)(6) = TextBox7.Text Then 秀資料(i) : Exit For
End If
If Me.DvdDataSet.資料表1.Rows(i)(7) = TextBox8.Text Then 秀資料(i) : Exit For
End If
If TextBox9.Text <> "" And InStr(Me.DvdDataSet.資料表1.Rows(i)(8), TextBox9.Text) > 0 Then
秀資料(i) : Exit For End If Next End Sub Sub 秀資料(ByVal i) '一個資程式,當上面查詢功能程式找到對應資料時,就把這份符合資料影片的全部資料放出來 TextBox1.Text = Me.DvdDataSet.資料表1.Rows(i)(0) TextBox2.Text = Me.DvdDataSet.資料表1.Rows(i)(1) TextBox3.Text = Me.DvdDataSet.資料表1.Rows(i)(2) TextBox4.Text = Me.DvdDataSet.資料表1.Rows(i)(3) TextBox5.Text = Me.DvdDataSet.資料表1.Rows(i)(4) TextBox6.Text = Me.DvdDataSet.資料表1.Rows(i)(5) TextBox7.Text = Me.DvdDataSet.資料表1.Rows(i)(6) TextBox8.Text = Me.DvdDataSet.資料表1.Rows(i)(7) TextBox9.Text = Me.DvdDataSet.資料表1.Rows(i)(8) TextBox10.Text = Me.DvdDataSet.資料表1.Rows(i)(9)
PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Form8.Show() '當要的影片都加入租借名單後,就可以按下這個鈕,進入程式8(租借畫面),開 始進行租借作業 Form8.TextBox3.Text = 租借名單 '在程式八的textbox3上放上你的租借名單 Me.Close() '程式七(查詢影片)關掉 End Sub End Class
Public Class Form6
'先定義各 格式 的數量為0,在以 For next 迴圈 從資料庫抓資料 '這邊額外做了一個推薦影片區,會以現在資料庫中此分類最多的類別作推薦,例如BD種類最多的 話,就推薦一個BD的影片 Dim VCD, DVD, BD As Integer Dim 格式() = {0, 0, 0} VCD = 0 : DVD = 0 : BD = 0 Dim i, o, 最高數, 選圖 As Integer 選圖 = Int(Rnd() * 9) + 1 '以for next 迴圈 從資料庫抓資料, 以格式來講 是從第三列抓資料 For i = 0 To Me.DvdDataSet.資料表1.Rows.Count - 1 If Me.DvdDataSet.資料表1.Rows(i)(3) = "VCD" Then VCD += 1 If Me.DvdDataSet.資料表1.Rows(i)(3) = "DVD" Then DVD += 1 If Me.DvdDataSet.資料表1.Rows(i)(3) = "BD" Then BD += 1 Next 最高數 = 0 : 格式(0) = VCD : 格式(1) = DVD : 格式(2) = BD For p = 0 To 2 If 格式(p) > 最高數 Then 最高數 = 格式(p) : o = p Next '用g這個繪圖軟體,畫出數量的直條圖 Dim g As Graphics Dim 待推薦 As Image g = Me.CreateGraphics g.Clear(Me.BackColor) g.FillRectangle(Brushes.Green, 100, 50, VCD * 10, 30) g.FillRectangle(Brushes.Orange, 100, 100, DVD * 10, 30) g.FillRectangle(Brushes.Blue, 100, 150, BD * 10, 30)
g.DrawString("VCD", Me.Font, Brushes.Black, 10, 50) g.DrawString("DVD", Me.Font, Brushes.Black, 10, 100) g.DrawString("BD", Me.Font, Brushes.Black, 10, 150) g.DrawString("新片推薦:", Me.Font, Brushes.Black, 80, 220)
待推薦 = Image.FromFile("驚爆1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("驚爆2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("驚爆3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 1
g.DrawString("荒川爆笑團2 DVD", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("荒川1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("荒川2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("荒川3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 2
g.DrawString("天降之物 BD", Me.Font, Brushes.Black, 200, 220) Select Case 選圖
Case 0 To 3
待推薦 = Image.FromFile("天降1.jpg") g.DrawImage(待推薦, 100, 260)
Private Sub 結束ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 結束ToolStripMenuItem.Click
Form2.Show() '主畫面(回主選單)顯示 Me.Close() '自己(統計資料)關掉 End Sub
Private Sub 依類別ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依類別ToolStripMenuItem.Click
'這一區塊是以 類別 作為區分的統計資料 Dim 劇情動作, 校園喜劇, 奇幻冒險, 戰爭, 武打時代 As Integer Dim 類別() = {0, 0, 0, 0, 0, 0} Dim i, o, 最高數, 選圖 As Integer For i = 0 To Me.DvdDataSet.資料表1.Rows.Count - 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "劇情動作" Then 劇情動作 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "校園喜劇" Then 校園喜劇 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "奇幻冒險" Then 奇幻冒險 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "戰爭" Then 戰爭 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "武打時代" Then 武打時代 += 1 Next 最高數 = 0 : 類別(0) = 劇情動作 : 類別(1) = 校園喜劇 : 類別(2) = 奇幻冒險 : 類別(3) = 戰爭 : 類別(4) = 武打時代 For p = 0 To 4 If 類別(p) > 最高數 Then 最高數 = 類別(p) : o = p Next Dim 劇情動作片度數, 校園喜劇片度數, 奇幻冒險片度數, 戰爭片度數, 武打時代片度數 As Integer 選圖 = Int(Rnd() * 9) + 1 '一樣以亂數決定推薦影片的圖 劇情動作片度數 = 0 : 校園喜劇片度數 = 0 : 奇幻冒險片度數 = 0 : 戰爭片度數 = 0 : 武打 時代片度數 = 0 劇情動作片度數 = Int(劇情動作 / (劇情動作 + 校園喜劇 + 奇幻冒險 + 戰爭 + 武打時代) * 360)
360) '以圓餅圖來畫出 以類別 做統計 的影片資料狀況 '作為推薦的影片圖片也是用繪圖軟體從資料庫找出資料後繪出 Dim g As Graphics Dim 待推薦 As Image g = Me.CreateGraphics g.Clear(Me.BackColor) g.FillPie(Brushes.Blue, 50, 50, 100, 100, 0, 劇情動作片度數) g.FillPie(Brushes.Red, 50, 50, 100, 100, 劇情動作片度數, 校園喜劇片度數) g.FillPie(Brushes.Green, 50, 50, 100, 100, 劇情動作片度數 + 校園喜劇片度數, 奇幻冒險 片度數) g.FillPie(Brushes.Orange, 50, 50, 100, 100, 劇情動作片度數 + 校園喜劇片度數 + 奇幻冒 險片度數, 戰爭片度數) g.FillPie(Brushes.Yellow, 50, 50, 100, 100, 劇情動作片度數 + 校園喜劇片度數 + 奇幻冒 險片度數 + 戰爭片度數, 武打時代片度數) g.FillRectangle(Brushes.Blue, 170, 50, 40, 20) g.FillRectangle(Brushes.Red, 170, 80, 40, 20) g.FillRectangle(Brushes.Green, 170, 110, 40, 20) g.FillRectangle(Brushes.Orange, 170, 140, 40, 20) g.FillRectangle(Brushes.Yellow, 170, 170, 40, 20)
g.DrawString("劇情動作", Me.Font, Brushes.Black, 220, 50) g.DrawString("校園喜劇", Me.Font, Brushes.Black, 220, 80) g.DrawString("奇幻冒險", Me.Font, Brushes.Black, 220, 110) g.DrawString("戰爭", Me.Font, Brushes.Black, 220, 140) g.DrawString("武打時代", Me.Font, Brushes.Black, 220, 170) g.DrawString("新片推薦:", Me.Font, Brushes.Black, 80, 220) Select Case o
待推薦 = Image.FromFile("Fate3.jpg") g.DrawImage(待推薦, 100, 260)
End Select Case 1
g.DrawString("CLANNAD 校園喜劇", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("CL1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("CL2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("CL3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 2
g.DrawString("荒川爆笑團 奇幻冒險", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("荒川1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("荒川2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("荒川3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 3
g.DrawString("驚爆危機 戰爭", Me.Font, Brushes.Black, 200, 220) Select Case 選圖
Case 8 To 10
待推薦 = Image.FromFile("驚爆3.jpg") g.DrawImage(待推薦, 100, 260)
End Select Case 4
g.DrawString("百花撩亂 武打時代", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("百花1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("百花2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("百花3.jpg") g.DrawImage(待推薦, 100, 260) End Select End Select g.Dispose() End Sub
Private Sub 依級別ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依級別ToolStripMenuItem.Click
'這邊是以影片 級別 作為統計的資料
Dim 普遍級, 保護級, 輔導級, 限制級 As Integer Dim 級別() = {0, 0, 0, 0}
Dim i, o, 最高數, 選圖 As Integer 選圖 = Int(Rnd() * 9) + 1
If 級別(p) > 最高數 Then 最高數 = 級別(p) : o = p Next Dim 普遍級度數, 保護級度數, 輔導級度數, 限制級度數 As Integer 普遍級度數 = 0 : 保護級度數 = 0 : 輔導級度數 = 0 : 限制級度數 = 0 普遍級度數 = Int(普遍級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) 保護級度數 = Int(保護級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) 輔導級度數 = Int(輔導級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) 限制級度數 = Int(限制級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) Dim g As Graphics Dim 待推薦 As Image g = Me.CreateGraphics g.Clear(BackColor) g.FillPie(Brushes.Green, 50, 50, 100, 100, 0, 普遍級度數) g.FillPie(Brushes.Orange, 50, 50, 100, 100, 普遍級度數, 保護級度數) g.FillPie(Brushes.Blue, 50, 50, 100, 100, 普遍級度數 + 保護級度數, 輔導級度數) g.FillPie(Brushes.Red, 50, 50, 100, 100, 普遍級度數 + 保護級度數 + 輔導級度數, 限制級 度數)
g.DrawString("普遍級", Me.Font, Brushes.Black, 170, 50) g.DrawString("保護級", Me.Font, Brushes.Black, 170, 80) g.DrawString("輔導級", Me.Font, Brushes.Black, 170, 110) g.DrawString("限制級", Me.Font, Brushes.Black, 170, 140) g.FillRectangle(Brushes.Green, 220, 50, 普遍級 * 10, 20)
g.FillRectangle(Brushes.Orange, 220, 80, 保護級 * 10, 20)
g.FillRectangle(Brushes.Blue, 220, 110, 輔導級 * 10, 20)
g.FillRectangle(Brushes.Red, 220, 140, 限制級 * 10, 20)
g.DrawString("新片推薦:", Me.Font, Brushes.Black, 80, 220) Select Case o
Case 0
g.DrawString("荒川爆笑團2 普遍級", Me.Font, Brushes.Black, 200, 220) Select Case 選圖
Case 0 To 3
g.DrawImage(待推薦, 100, 260)
End Select Case 1
g.DrawString("刀語 保護級", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("刀語1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("刀語2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("刀語3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 2
g.DrawString("我的妹妹哪有這麼可愛 輔導級", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("泥煤1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("泥煤2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("泥煤3.jpg") g.DrawImage(待推薦, 100, 260) End Select
待推薦 = Image.FromFile("天降3.jpg") g.DrawImage(待推薦, 100, 260) End Select End Select g.Dispose() End Sub
Private Sub 依格式ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依格式ToolStripMenuItem1.Click
'這邊是作為以 新片 來做的「格式」統計資料 '在這個程式,新片是以後面登陸的資料來作為依據,在這邊我們以10個之後的,也就是從第11 個資料 開始做統計資料 Dim VCD, DVD, BD As Integer Dim 格式() = {0, 0, 0} VCD = 0 : DVD = 0 : BD = 0 Dim i, o, 最高數, 選圖 As Integer 選圖 = Int(Rnd() * 9) + 1 '方式跟前面一樣,以迴圈從資料庫抓資量,只不過是從第11個資料開始抓 For i = 10 To Me.DvdDataSet.資料表1.Rows.Count - 1 If Me.DvdDataSet.資料表1.Rows(i)(3) = "VCD" Then VCD += 1 If Me.DvdDataSet.資料表1.Rows(i)(3) = "DVD" Then DVD += 1 If Me.DvdDataSet.資料表1.Rows(i)(3) = "BD" Then BD += 1 Next 最高數 = 0 : 格式(0) = VCD : 格式(1) = DVD : 格式(2) = BD For p = 0 To 2 If 格式(p) > 最高數 Then 最高數 = 格式(p) : o = p Next Dim g As Graphics Dim 待推薦 As Image g = Me.CreateGraphics g.Clear(Me.BackColor) g.FillRectangle(Brushes.Green, 100, 50, VCD * 10, 30)
'一樣新片統計也有作推薦系統,推薦影片選圖一樣是以亂數做決定 Select Case o
Case 0
g.DrawString("驚爆危機 VCD", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("驚爆1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("驚爆2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("驚爆3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 1
g.DrawString("荒川爆笑團2 DVD", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("荒川1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("荒川2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("荒川3.jpg") g.DrawImage(待推薦, 100, 260) End Select
待推薦 = Image.FromFile("天降3.jpg") g.DrawImage(待推薦, 100, 260) End Select End Select g.Dispose() End Sub
Private Sub 依類別ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依類別ToolStripMenuItem1.Click
'這邊是作為以 新片 來做的「類別」統計資料,其餘都跟前面一樣,只是從第11個影片開始抓資 料 Dim 劇情動作, 校園喜劇, 奇幻冒險, 戰爭, 武打時代 As Integer Dim 類別() = {0, 0, 0, 0, 0, 0} Dim i, o, 最高數, 選圖 As Integer For i = 10 To Me.DvdDataSet.資料表1.Rows.Count - 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "劇情動作" Then 劇情動作 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "校園喜劇" Then 校園喜劇 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "奇幻冒險" Then 奇幻冒險 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "戰爭" Then 戰爭 += 1 If Me.DvdDataSet.資料表1.Rows(i)(4) = "武打時代" Then 武打時代 += 1 Next 最高數 = 0 : 類別(0) = 劇情動作 : 類別(1) = 校園喜劇 : 類別(2) = 奇幻冒險 : 類別(3) = 戰爭 : 類別(4) = 武打時代 For p = 0 To 4 If 類別(p) > 最高數 Then 最高數 = 類別(p) : o = p Next Dim 劇情動作片度數, 校園喜劇片度數, 奇幻冒險片度數, 戰爭片度數, 武打時代片度數 As Integer 選圖 = Int(Rnd() * 9) + 1 劇情動作片度數 = 0 : 校園喜劇片度數 = 0 : 奇幻冒險片度數 = 0 : 戰爭片度數 = 0 : 武打
360) 戰爭片度數 = Int(戰爭 / (劇情動作 + 校園喜劇 + 奇幻冒險 + 戰爭 + 武打時代) * 360) 武打時代片度數 = Int(武打時代 / (劇情動作 + 校園喜劇 + 奇幻冒險 + 戰爭 + 武打時代) * 360) Dim g As Graphics Dim 待推薦 As Image g = Me.CreateGraphics g.Clear(Me.BackColor) g.FillPie(Brushes.Blue, 50, 50, 100, 100, 0, 劇情動作片度數) g.FillPie(Brushes.Red, 50, 50, 100, 100, 劇情動作片度數, 校園喜劇片度數) g.FillPie(Brushes.Green, 50, 50, 100, 100, 劇情動作片度數 + 校園喜劇片度數, 奇幻冒險 片度數) g.FillPie(Brushes.Orange, 50, 50, 100, 100, 劇情動作片度數 + 校園喜劇片度數 + 奇幻冒 險片度數, 戰爭片度數) g.FillPie(Brushes.Yellow, 50, 50, 100, 100, 劇情動作片度數 + 校園喜劇片度數 + 奇幻冒 險片度數 + 戰爭片度數, 武打時代片度數) g.FillRectangle(Brushes.Blue, 170, 50, 40, 20) g.FillRectangle(Brushes.Red, 170, 80, 40, 20) g.FillRectangle(Brushes.Green, 170, 110, 40, 20) g.FillRectangle(Brushes.Orange, 170, 140, 40, 20) g.FillRectangle(Brushes.Yellow, 170, 170, 40, 20)
g.DrawString("劇情動作", Me.Font, Brushes.Black, 220, 50) g.DrawString("校園喜劇", Me.Font, Brushes.Black, 220, 80) g.DrawString("奇幻冒險", Me.Font, Brushes.Black, 220, 110) g.DrawString("戰爭", Me.Font, Brushes.Black, 220, 140) g.DrawString("武打時代", Me.Font, Brushes.Black, 220, 170) g.DrawString("新片推薦:", Me.Font, Brushes.Black, 80, 220) Select Case o
Case 8 To 10
待推薦 = Image.FromFile("Fate3.jpg") g.DrawImage(待推薦, 100, 260)
End Select Case 1
g.DrawString("我的妹妹哪有這麼可愛 校園喜劇", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("泥煤1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("泥煤2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("泥煤3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 2
g.DrawString("荒川爆笑團 奇幻冒險", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("荒川1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("荒川2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("荒川3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 3
待推薦 = Image.FromFile("驚爆2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("驚爆3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 4
g.DrawString("百花撩亂 武打時代", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("百花1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("百花2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("百花3.jpg") g.DrawImage(待推薦, 100, 260) End Select End Select g.Dispose() End Sub
Private Sub 依級別ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依級別ToolStripMenuItem1.Click
'這邊是作為以 新片 來做的「級別」統計資料,其餘都跟前面一樣,只是從第11個影片開始抓資 料
Next 最高數 = 0 : 級別(0) = 普遍級 : 級別(1) = 保護級 : 級別(2) = 輔導級 : 級別(3) = 限制 級 For p = 0 To 3 If 級別(p) > 最高數 Then 最高數 = 級別(p) : o = p Next Dim 普遍級度數, 保護級度數, 輔導級度數, 限制級度數 As Integer 普遍級度數 = 0 : 保護級度數 = 0 : 輔導級度數 = 0 : 限制級度數 = 0 普遍級度數 = Int(普遍級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) 保護級度數 = Int(保護級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) 輔導級度數 = Int(輔導級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) 限制級度數 = Int(限制級 / (普遍級 + 保護級 + 輔導級 + 限制級) * 360) Dim g As Graphics Dim 待推薦 As Image g = Me.CreateGraphics g.Clear(BackColor) g.FillPie(Brushes.Green, 50, 50, 100, 100, 0, 普遍級度數) g.FillPie(Brushes.Orange, 50, 50, 100, 100, 普遍級度數, 保護級度數) g.FillPie(Brushes.Blue, 50, 50, 100, 100, 普遍級度數 + 保護級度數, 輔導級度數) g.FillPie(Brushes.Red, 50, 50, 100, 100, 普遍級度數 + 保護級度數 + 輔導級度數, 限制級 度數)
g.DrawString("普遍級", Me.Font, Brushes.Black, 170, 50) g.DrawString("保護級", Me.Font, Brushes.Black, 170, 80) g.DrawString("輔導級", Me.Font, Brushes.Black, 170, 110) g.DrawString("限制級", Me.Font, Brushes.Black, 170, 140) g.FillRectangle(Brushes.Green, 220, 50, 普遍級 * 10, 20)
g.FillRectangle(Brushes.Orange, 220, 80, 保護級 * 10, 20)
g.FillRectangle(Brushes.Blue, 220, 110, 輔導級 * 10, 20)
g.FillRectangle(Brushes.Red, 220, 140, 限制級 * 10, 20)
g.DrawString("新片推薦:", Me.Font, Brushes.Black, 80, 220) Select Case o
待推薦 = Image.FromFile("荒川2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("荒川3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 1
g.DrawString("刀語 保護級", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("刀語1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("刀語2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("刀語3.jpg") g.DrawImage(待推薦, 100, 260) End Select Case 2
g.DrawString("我的妹妹哪有這麼可愛 輔導級", Me.Font, Brushes.Black, 200, 220) Select Case 選圖 Case 0 To 3 待推薦 = Image.FromFile("泥煤1.jpg") g.DrawImage(待推薦, 100, 260) Case 4 To 7 待推薦 = Image.FromFile("泥煤2.jpg") g.DrawImage(待推薦, 100, 260)
Case 4 To 7 待推薦 = Image.FromFile("天降2.jpg") g.DrawImage(待推薦, 100, 260) Case 8 To 10 待推薦 = Image.FromFile("天降3.jpg") g.DrawImage(待推薦, 100, 260) End Select End Select g.Dispose() End Sub End Class