久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Vb課程設計-職工信息系統.(合集)

時間:2019-05-12 04:24:56下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《Vb課程設計-職工信息系統.》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Vb課程設計-職工信息系統.》。

第一篇:Vb課程設計-職工信息系統.

職工信息系統設計報告

一、設計思路 1.要達到的目的

培養學生綜合利用VB語言進行程序設計的能力,主要是培養學生綜合使用基本控件的、文件讀寫、數組操作和菜單設計等能力。

2.關鍵問題的解決 ①設置屬性

設計時要注意一些功能需要在其它功能之后才能使用,如“平均工資”、“高于平均”等按鈕需要在讀入數據后才能使用,設計界面時需要將相應的按鈕的Enable屬性為false,在讀入數據后才設置Enable屬性為True。

②編寫代碼

需要對每一個窗體編寫事件處理過程。最主要的工作包含在主窗體中,代碼包括事件處理過程和必要的聲明。變量聲明部分聲明本程序所需要的變量和數組,由于單擊按鈕時,都要對姓名、職稱、工資進行操作,因此相應的數組和變量應定義為模塊級的。在編寫事件處理過程代碼時注意以下幾點:(1定義動態數組分別用于存放姓名、職稱、工資數據。

(2單擊“讀取數據”按鈕,利用通用對話框所提供的打開標準對話框來選擇要打開的數據文件,并利

用文件的基本操作將該文件中的的數據依次讀入到相應數組中。注意為保留動態數組中存放的內容,在使用ReDim語句中要加上Preserve關鍵字。

(3計算職工的平均工資,并存放在平均工資變量,此變量應定位模塊級的。

(4利用InputBox 函數來輸入要追加的學生的信息。(5利用InputBox 函數來輸入要刪除的職工的姓名。

利用MsgBox 函數或另一個窗體來顯示高于及等于(或低于平均工資和分類匯總的結果。。

二、部分程序關鍵源代碼及注釋 Dim i As Integer, aver As Single Dim a(As String, b(As String, c(As String Private Sub Command1_Click(Dim str As String CommonDialog1.Filter = “txt(*.txt|*.txt|all file(*.*|*.*” CommonDialog1.FilterIndex = 1 On Error GoTo usercancle CommonDialog1.ShowOpen usercancle: Text1 = “姓名職稱工資” fileno = FreeFile Open CommonDialog1.FileName For Input As #fileno i = 1 Do While Not EOF(fileno

ReDim Preserve a(i, b(i, c(i Input #fileno, a(i, b(i, c(i str = a(i & “ ” & b(i & “ ” & c(i Text1 = Text1 + vbNewLine + str i = i + 1 Loop Close #fileno i = i1 Print i aver = sum / i s1 = “職工的平均工資為:” & aver s2 = “職工總人數:” & i MsgBox s1 & vbCrLf & s2, , “zh1” Command3.Enabled = True Command4.Enabled = True End Sub Private Sub Command3_Click(Dim x As Integer, l1 As String, m1 As String Form2.Text1 = “姓名職稱工資” Form2.Text1 = Form2.Text1 & vbNewLine & “--------------------------” x = 0 Print i For i = 1 To i If c(i >= aver Then x = x + 1

l1 = a(i & “ ” & b(i & “ ” & c(i Form2.Text1 = Form2.Text1 & vbNewLine & l1 End If Next i i = i1 Print i Form2.Text1 = Form2.Text1 & vbNewLine & “--------------------------” m2 = “工資小于平均工資的人數” & y Form2.Text1 = Form2.Text1 & vbNewLine & m2 Form2.Caption = “工資小于平均工資的人數” Load Form2 Form2.Show End Sub Private Sub Command5_Click(Dim n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer Dim str1 As String, str2 As String, str3 As String, str4 As String For i = 1 To i

If a(i = “教授” Then n1 = n1 + 1 ElseIf b(i = “副教授” Then n2 = n2 + 1 ElseIf c(i = “講師” Then n3 = n3 + 1 Else n4 = n4 + 1 End If Next i i = i1 a(i = a(i + 1 b(i = b(i + 1 c(i = c(i + 1 Next i i = i1 Print i End Sub Private Sub manu1_Click(Dim m1 As Integer, m2 As Integer m1 = InputBox(“請輸入工資下限” m2 = InputBox(“請輸入工資上限” Form2.Text1 = “姓名職稱工資” r = 1 For i = 1 To i If c(i >= m1 And c(i <= m2 Then r = r + 1 str5 = a(i & “ ” & b(i & “ ” & c(i Form2.Text1 = Form2.Text1 & vbCrLf & str5 End If Next i i = i1 For j = i + 1 To g If Val(c(i > Val(c(j Then t = c(i c(i = c(j c(j = t t = a(i a(i = a(j a(j = t t = b(i b(i = b(j

b(j = t End If Next j Next i i = i1 For j = i + 1 To g If Val(c(i < Val(c(j Then

t = c(i c(i = c(j c(j = t t = a(i a(i = a(j a(j = t t = b(i b(i = b(j b(j = t End If Next j Next i i = i-1 Form2.Text1 = “姓名職稱工資” For i = 1 To i str7 = a(i & “ ” & b(i & “ ” & c(i Form2.Text1 = Form2.Text1 & vbNewLine & str7 Next i Form2.Caption = “降序排序” Load Form2

Form2.Show End Sub Private Sub manu5_Click(End End Sub

三、設計方案的完善及目前存在的問題 1.設計方案要完善的地方 ①對編程語言的進一步完善 ②對程序的調用 ③程序不夠人性化 2.目前存在的問題 ①編程語言不夠流暢。

四、本次設計的收獲及心得體會

對VB理解不深刻,知識匱乏,但這是頗有實際用處的,認真學習vb,不斷認識自己的不足,并不斷改進。認真學習科學知識,在學習中充分實踐。把運用與學習結合在一起。

五、對該題目和VB設計的意見和建議 1.對該題目的意見和建議 該程序應該充分與現實結合。

讓程序更容易讓顧客進行操作。更加人性化。

2.對本次設計的意見和建議

設計課程比較實用,但頗有難度,希望以后能給我們較多時間進行設計,并請老師多幫助解決疑難問題,謝謝。

第二篇:VB 課程設計

學生成績管理系統一、功能描述

首先簡單地闡述本人所要實現系統的目的,然后應較詳細的敘述本系統所要實現的功能。

************ *******

二、概要設計

1、系統功能模塊框圖設計

根據功能描述,建立系統的體系結構,即將整個系統分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關系,并簡要說明各模塊的功能。

程序流程框圖如圖所示:(僅供參考)

圖1 程序流程圖

2、數據庫設計

包括數據庫的組成說明,數據庫中各表的結構說明(包括字段名、字段類型等),可以包含圖片例如下表:

表1 學生信息表

三、詳細設計

詳細說明主要窗體的實現過程,包括窗體的設計圖片及其上所包含的控件名和屬性設置;

詳細說明主要操作的代碼實現過程,包括過程間的調用關系(注:在此給出不完全代碼)。如下所示:

1、賬號登錄

帳號登錄模塊中登錄與注冊兩按鈕,單擊注冊會進入注冊模塊中,單擊登錄會進入系統進行下一步的操作,帳號文本框與數據庫相連接,當在帳號文本框輸入帳號后點擊登錄按鈕后,會在數據庫中進行查詢看數據庫中是否會有該帳號,且該帳號的密碼是否與密碼框中輸入的相同,如果相同會進入系統,如果不存在該賬號或密碼與帳號不相匹配,則會提示“帳號或密碼錯誤”,帳號文本框會得到焦點,讓重新輸入。

(1)窗體截圖(如圖2)

圖2 注冊窗體

(2)功能實現

2、學生信息查詢窗體

圖3 查詢窗體

四、調試中存在的問題及解決方法

包括調試過程中遇到的主要問題及采取的解決方法。例如:

1、注冊賬號出現的錯誤

數據庫中帳號被設為主鍵,當注冊時的帳號與數局庫中的帳號有相同時就會出錯。

2、解決方法:在寫入數據庫前先進行查詢數據庫

五、心得體會

本人在本次實習中取得的收獲、遇到的困難、如何面對和克服各種困難、本系統的不足之處,將要改進的思想等。

六、參考文獻

[1] 羅朝盛.Visual Basic 6.0程序設計教程(第3版).人民郵電出版社,2009年2月

[2] [3]

七、附錄

包括全部源程序清單(程序中應有足夠的注釋)。

第三篇:VB課程設計

課程設計

學 院 班 級

指導老師

姓 名 學 號 成 績

2013年 月 10

一.課程設計題目

學生管理系統

二.功能描述

按設定的用戶名密碼進行登錄后,可按需求進行對數據庫中已有的學生信息及成績進行查詢,添加,刪除,修改等操作。

三.概要設計

登錄界面功能:讓用戶進行登錄。主界面功能:讓用戶選擇進行哪項操作。

查詢學生信息菜單功能:輸入學生學號,對該學生的個人信息以

及成績進行查詢,若直接點擊查詢按鈕,則顯示全部學生個人信息及成績。

編輯學生信息菜單功能:可對數據庫中已有的學生信息進行查

詢,添加,刪除,修改等操作。

學生信息維護菜單功能:可對數據庫中已有的學生成績進行查

詢,添加,刪除,修改等操作。

四.詳細設計

五.效果以及存在問題

說明系統的運行效果(附上運行界面圖片)、存在哪些不足以及預期的解決辦法。

登錄界面

登錄學生管理系統

按查詢條件查詢

打開修改學生信息子窗口

學生成績維護子窗口

垂直窗口排列

關于窗口

不足:1.沒有實現用戶登錄界面中的注冊功能

2.沒有實現主界面中文件下的新建和保存功能。

六.心得體會

經過幾天的苦戰,終于把課程設計粗略的做完了。剛開始做的時候,毫無頭緒,一片茫然。好在書本上有類似的實驗,可以供參考。盡管如此,真正做起項目來,還是有著這樣那樣的困難,有時一個空格少打都會出錯,導致我檢查了半天才發現問題所在。由于VB語法還運用不熟練,很多代碼都是模仿書本上的敲的,許多代碼往往能編譯通過,但很多都會拋出各種異常,讓人頭疼。有時系統就給出個有個參數沒有被指定值,就可以讓人搞的焦頭爛額。因此,寫程序真的也很需要強大的耐心,只要熬下去了,當你做出程序時,也會倍有成就感。目前,程序是基本寫完了,平常學的理論都得到了運用,感覺自己的能力也增強了。一句話,實踐才是硬道理。

七.附錄代碼

(附上各模塊代碼)

1.登錄界面

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click

Static n As Integer

If txtName.Text = “abc” And txtPassWord.Text = “123” Then

Dim form2 As New Form2()

form2.Show()

Me.Close()

Else

n = n + 1

If n < 5 Then

MsgBox(“請輸入正確的用戶名和密碼!”, MsgBoxStyle.Critical)

Else

MsgBox(“請輸入正確的用戶名和密碼!”, MsgBoxStyle.Critical)

Button1.Enabled = False

End If

End If

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click

Me.Close()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button3.Click

Dim form3 As New Form3()

form3.Show()

Me.Close()

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load

End Sub End Class

2.查詢學生菜單代碼

Public Class Form6

Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS_KC As New OleDb.OleDbDataAdapter

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS_KC As New OleDb.OleDbCommand

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS_KC As New DataSet

Dim objDsXS As New DataSet

objConn.ConnectionString = “Provider = Microsoft.jet.OLEDB.4.0;data source = 'D:XSCJ.mdb'”

objCommXS.CommandText = “ Select * From XS ”

objCommXS_KC.CommandText = “ Select * From XS_KC ”

objCommXS_KC.Connection = objConn

objDaXS_KC.SelectCommand = objCommXS_KC

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS_KC.Fill(objDsXS_KC, “XS_KC”)

objDaXS.Fill(objDsXS, “XS”)

objConn.Close()

DataGridView1.DataSource = objDsXS_KC.Tables(“XS_KC”)

DataGridView2.DataSource = objDsXS.Tables(“XS”)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS_KC As New OleDb.OleDbDataAdapter

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS_KC As New OleDb.OleDbCommand

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS_KC As New DataSet

Dim objDsXS As New DataSet

Dim WhereStr As String

WhereStr = “"

If Trim(TxtXH.Text)<> ”“ Then

WhereStr = ” 學號like “ + Trim(TxtXH.Text)

End If

objConn.ConnectionString = ”Provider = Microsoft.jet.OLEDB.4.0;data source = 'D:XSCJ.mdb'“

objCommXS.CommandText = ” Select * From XS “

objCommXS_KC.CommandText = ” Select * From XS_KC “

If WhereStr <> ”“ Then

objCommXS.CommandText = objCommXS.CommandText & ”where“ & WhereStr

objCommXS_KC.CommandText = objCommXS_KC.CommandText & ”where“ & WhereStr

End If

objCommXS_KC.Connection = objConn

objDaXS_KC.SelectCommand = objCommXS_KC

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS_KC.Fill(objDsXS_KC, ”XS_KC“)

objDaXS.Fill(objDsXS, ”XS“)

objConn.Close()

DataGridView1.DataSource = objDsXS_KC.Tables(”XS_KC“)

DataGridView2.DataSource = objDsXS.Tables(”XS“)

End Sub End Class

3編輯學生信息菜單

Public Class Form7

Dim objDs As New DataSet

Dim objxstable As DataTable

Dim objda As New OleDb.OleDbDataAdapter

Dim wherestr As String

Public Sub refreshdata()

objda.Update(objDs, ”XS“)

objxstable.Clear()

bindgridview(wherestr)

End Sub

Public Sub bindgridview(ByVal strXH As String)

Dim objConn As New OleDb.OleDbConnection

Dim objComm As New OleDb.OleDbCommand

WhereStr = ”“

If Trim(TxtXH.Text)<> ”“ Then

wherestr = ” 學號like“ + Trim(TxtXH.Text)

End If

objConn.ConnectionString = ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:XSCJ.mdb'“

objComm.CommandText = ” Select * From XS “

If WhereStr <> ”“ Then

objComm.CommandText = objComm.CommandText & ”where“ & WhereStr

End If

'把objConn設置為objConn的數據連接

objComm.Connection = objConn

objda.SelectCommand = objComm

'創建INSERT Command

Dim InsCommand As New OleDb.OleDbCommand(”INSERT INTO XS(學號,姓名,專業名,性別,出生日期,總學分,備注)VALUES(?,?,?,?,?,?,?)“, objConn)

InsCommand.Parameters.Add(”學號“, OleDb.OleDbType.VarChar, 6, ”學號“)

InsCommand.Parameters.Add(”姓名“, OleDb.OleDbType.VarChar, 8, ”姓名“)

InsCommand.Parameters.Add(”專業名“, OleDb.OleDbType.VarChar, 10, ”專業名“)

InsCommand.Parameters.Add(”性別“, OleDb.OleDbType.VarChar, 2, ”性別“)

InsCommand.Parameters.Add(”出生日期“, OleDb.OleDbType.Date, Nothing, ”出生日期“)

InsCommand.Parameters.Add(”總學分“, OleDb.OleDbType.Integer, Nothing, ”總學分“)

InsCommand.Parameters.Add(”備注“, OleDb.OleDbType.VarChar, Nothing, ”備注“)

objda.InsertCommand = InsCommand

'創建Delte Command

Dim delcommand As New OleDb.OleDbCommand(”DELETE * from XS where 學號=?“, objConn)

delcommand.Parameters.Add(”學號“, OleDb.OleDbType.Char, 6, ”學號“)

objda.DeleteCommand = delcommand

'創建Update Command

Dim updCommand As New OleDb.OleDbCommand(”UPDATE XS SET 學號=?,姓名=?,專業名=?,性別=?,出生日期=?,總學分=?,備注=? WHERE 學號=?“, objConn)

updCommand.Parameters.Add(”學號“, OleDb.OleDbType.VarChar, 6, ”學號“)

updCommand.Parameters.Add(”姓名“, OleDb.OleDbType.VarChar, 8, ”姓名“)

updCommand.Parameters.Add(”專業名“, OleDb.OleDbType.VarChar, 10, ”專業名“)

updCommand.Parameters.Add(”性別“, OleDb.OleDbType.VarChar, 2, ”性別“)

updCommand.Parameters.Add(”出生日期“, OleDb.OleDbType.Date, Nothing, ”出生日期“)

updCommand.Parameters.Add(”總學分“, OleDb.OleDbType.Integer, Nothing, ”總學分“)

updCommand.Parameters.Add(”備注“, OleDb.OleDbType.VarChar, Nothing, ”備注“)

updCommand.Parameters.Add(”學號“, OleDb.OleDbType.VarChar, 6, ”學號“)

objda.UpdateCommand = updCommand

objConn.Open()

'打開數據庫連接

objda.Fill(objDs, ”XS“)'填充數據

objxstable = objDs.Tables(”XS“)

objConn.Close()

'關閉數據集

'把DataGrid1的DataSource屬性設置為剛剛取到的數據表,這樣就可以顯示數據了

DataGridView1.DataSource = objDs.Tables(”XS“)

End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DataGridView1.CellContentClick

TxtStuXH.Text = DataGridView1.CurrentRow.Cells.Item(0).Value.ToString '顯示學號

TxtStuXM.Text = DataGridView1.CurrentRow.Cells.Item(1).Value.ToString '顯示姓名

TxtZY.Text = DataGridView1.CurrentRow.Cells.Item(2).Value.ToString '顯示專業

TxtXB.Text = DataGridView1.CurrentRow.Cells.Item(3).Value.ToString '顯示性別

TxtCSRQ.Text = DataGridView1.CurrentRow.Cells.Item(4).Value.ToString '顯示出生日期

TxtStuZXF.Text = DataGridView1.CurrentRow.Cells.Item(5).Value.ToString '顯示總學分

TxtBZ.Text = DataGridView1.CurrentRow.Cells.Item(6).Value.ToString '顯示備注

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS As New DataSet

Dim WhereStr As String

WhereStr = ”“

If Trim(TxtXH.Text)<> ”“ Then

WhereStr = ” 學號like “ + Trim(TxtXH.Text)

End If

objConn.ConnectionString = ”Provider = Microsoft.jet.OLEDB.4.0;data source = 'D:XSCJ.mdb'“

objCommXS.CommandText = ” Select * From XS “

If WhereStr <> ”“ Then

objCommXS.CommandText = objCommXS.CommandText & ”where“ & WhereStr

End If

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS.Fill(objDsXS, ”XS“)

objConn.Close()

DataGridView1.DataSource = objDsXS.Tables(”XS“)

End Sub

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load

wherestr = ”“

bindgridview(wherestr)

End Sub

Private Sub butAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles butAdd.Click

Dim response As MsgBoxResult

response = MsgBox(”確定要添加記錄嗎?“, vbOKCancel + vbQuestion, ”系統提示“)

If response = MsgBoxResult.Ok Then

Dim myRow As DataRow = objxstable.NewRow()

myRow(”學號“)= TxtStuXH.Text

myRow(”姓名“)= TxtStuXM.Text

myRow(”專業名“)= TxtZY.Text

myRow(”性別“)= TxtXB.Text

myRow(”出生日期“)= TxtCSRQ.Text

myRow(”總學分“)= TxtStuZXF.Text

myRow(”備注“)= TxtBZ.Text

objxstable.Rows.Add(myRow)

refreshdata()

End If

End Sub

Private Sub butEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles butEdit.Click

Dim response As MsgBoxResult

response = MsgBox(”確定要修改記錄嗎?“, vbOKCancel + vbQuestion, ”系統提示“)

If response = MsgBoxResult.Ok Then '用戶選擇“確定”

'修改學號

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(0)= TxtStuXH.Text

'修改姓名

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(1)= TxtStuXM.Text

'修改專業

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(2)= TxtZY.Text

'修改性別

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(3)= TxtXB.Text

'修改出生日期

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(4)= TxtCSRQ.Text

'修改總學分

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(5)= TxtStuZXF.Text

'修改備注

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Item(6)= TxtBZ.Text

refreshdata()'更新并刷新顯示

End If

End Sub

Private Sub butDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles butDelete.Click

Dim response As MsgBoxResult

response = MsgBox(”確定要刪除記錄嗎?“, vbOKCancel + vbQuestion, ”系統提示“)

If response = MsgBoxResult.Ok Then '用戶選擇“確定”

'除學生成績表當前記錄

objxstable.Rows.Item(DataGridView1.CurrentRow.Index).Delete()

refreshdata()'更新并刷新顯示

End If

End Sub End Class

4.學生成績維護菜單

Public Class Form4

Dim objDs As New DataSet

Dim objXSTable As DataTable

Dim objDa As New OleDb.OleDbDataAdapter

Dim WhereStr As String

Public Sub refreshdata()

objDa.Update(objDs, ”XS_KC“)

objXSTable.Clear()

bindgridview(WhereStr)

End Sub

Public Sub bindgridview(ByVal strXH As String)

Dim objConn As New OleDb.OleDbConnection

Dim objComm As New OleDb.OleDbCommand

WhereStr = ”“

If Trim(TxtXH.Text)<> ”“ Then

WhereStr = ” 學號like“ + Trim(TxtXH.Text)

End If

objConn.ConnectionString = ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:XSCJ.mdb'“

objComm.CommandText = ” Select * From XS_KC “

If WhereStr <> ”“ Then

objComm.CommandText = objComm.CommandText & ”where“ & WhereStr

End If

'把objConn設置為objConn的數據連接

objComm.Connection = objConn

objDa.SelectCommand = objComm

'創建INSERT Command

Dim InsCommand As New OleDb.OleDbCommand(”INSERT INTO XS_KC(學號,課程號,成績,學分)VALUES(?,?,?,?)“, objConn)

InsCommand.Parameters.Add(”學號“, OleDb.OleDbType.VarChar, 6, ”學號“)

InsCommand.Parameters.Add(”課程號“, OleDb.OleDbType.VarChar, 4, ”課程號“)

InsCommand.Parameters.Add(”成績“, OleDb.OleDbType.Integer, Nothing, ”成績“)

InsCommand.Parameters.Add(”學分“, OleDb.OleDbType.Integer, Nothing, ”學分“)

objDa.InsertCommand = InsCommand

'創建Delte Command

Dim delcommand As New OleDb.OleDbCommand(”DELETE * from XS_KC where 序號=?“, objConn)

delcommand.Parameters.Add(”序號“, OleDb.OleDbType.Char, 6, ”序號“)

objDa.DeleteCommand = delcommand

'創建Update Command

Dim updCommand As New OleDb.OleDbCommand(”UPDATE XS_KC set 學號=?,課程號=?,成績=?,學分=? where 序號=?“, objConn)

updCommand.Parameters.Add(”學號“, OleDb.OleDbType.VarChar, 6, ”學號“)

updCommand.Parameters.Add(”課程號“, OleDb.OleDbType.VarChar, 4, ”課程號“)

updCommand.Parameters.Add(”成績“, OleDb.OleDbType.Integer, Nothing, ”成績“)

updCommand.Parameters.Add(”學分“, OleDb.OleDbType.Integer, Nothing, ”學分“)

updCommand.Parameters.Add(”序號“, OleDb.OleDbType.Integer, Nothing, ”序號“)

objDa.UpdateCommand = updCommand

objConn.Open()

'打開數據庫連接

objDa.Fill(objDs, ”XS_KC“)'填充數據

objXSTable = objDs.Tables(”XS_KC“)

objConn.Close()

'關閉數據集

'把DataGrid1的DataSource屬性設置為剛剛取到的數據表,這樣就可以顯示數據了

DataGridView1.DataSource = objDs.Tables(”XS_KC“)

End Sub

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DataGridView1.CellContentClick

txtStuXKID.Text = DataGridView1.CurrentRow.Cells.Item(0).Value.ToString '顯示ID

txtStuXH.Text = DataGridView1.CurrentRow.Cells.Item(1).Value.ToString '顯示學號

txtStuKCH.Text = DataGridView1.CurrentRow.Cells.Item(2).Value.ToString '顯示課程號

txtStuCJ.Text = DataGridView1.CurrentRow.Cells.Item(3).Value.ToString '顯示成績

txtStuXF.Text = DataGridView1.CurrentRow.Cells.Item(4).Value.ToString '顯示學分

End Sub

Private Sub btnDdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles butAdd.Click

Dim response As MsgBoxResult

response = MsgBox(”確定要添加記錄嗎?“, vbOKCancel + vbQuestion, ”系統提示“)

If response = MsgBoxResult.Ok Then

Dim myRow As DataRow = objXSTable.NewRow()

myRow(”學號“)= txtStuXH.Text

myRow(”課程號“)= txtStuKCH.Text

myRow(”成績“)= txtStuCJ.Text

myRow(”學分“)= txtStuXF.Text

objXSTable.Rows.Add(myRow)

refreshdata()

End If

End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles butEdit.Click

Dim response As MsgBoxResult

response = MsgBox(”確定要修改記錄嗎?“, vbOKCancel + vbQuestion, ”系統提示“)

If response = MsgBoxResult.Ok Then '用戶選擇“確定”

'修改學號

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(1)= txtStuXH.Text

'修改課程號

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(2)= txtStuKCH.Text

' 修改成績

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(3)= txtStuCJ.Text

'修改學分

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Item(4)= txtStuXF.Text

refreshdata()'更新并刷新顯示

End If

End Sub

Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles butDelete.Click

Dim response As MsgBoxResult

response = MsgBox(”確定要刪除記錄嗎?“, vbOKCancel + vbQuestion, ”系統提示“)

If response = MsgBoxResult.Ok Then '用戶選擇“確定”

'除學生成績表當前記錄

objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Delete()

refreshdata()'更新并刷新顯示

End If

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click

Dim objConn As New OleDb.OleDbConnection

Dim objDaXS As New OleDb.OleDbDataAdapter

Dim objCommXS As New OleDb.OleDbCommand

Dim objDsXS As New DataSet

Dim WhereStr As String

WhereStr = ”“

If Trim(TxtXH.Text)<> ”“ Then

WhereStr = ” 學號like “ + Trim(TxtXH.Text)

End If

objConn.ConnectionString = ”Provider = Microsoft.jet.OLEDB.4.0;data source = 'D:XSCJ.mdb'“

objCommXS.CommandText = ” Select * From XS_KC “

If WhereStr <> ”“ Then

objCommXS.CommandText = objCommXS.CommandText & ”where“ & WhereStr

End If

objCommXS.Connection = objConn

objDaXS.SelectCommand = objCommXS

objConn.Open()

objDaXS.Fill(objDsXS, ”XS_KC“)

objConn.Close()

DataGridView1.DataSource = objDsXS.Tables(”XS_KC“)

End Sub

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load

WhereStr = ”"

bindgridview(WhereStr)

End Sub End Class

5.主菜單界面代碼

Public Class Form2

Private Sub quitMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles quitMenuItem.Click

Me.Close()

End Sub

Private Sub importscoreMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles importscoreMenuItem.Click

Dim form4 As New Form4

form4.MdiParent = Me

form4.WindowState = FormWindowState.Normal

form4.Show()

End Sub

Private Sub updateinfoMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles updateinfoMenuItem.Click

Dim form7 As New Form7

form7.MdiParent = Me

form7.WindowState = FormWindowState.Normal

form7.Show()

End Sub

Private Sub selectinfoMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles selectinfoMenuItem.Click

Dim form6 As New Form6

Form6.MdiParent = Me

form6.WindowState = FormWindowState.Normal

form6.Show()

End Sub

Private Sub cascadeMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles cascadeMenuItem.Click

Me.LayoutMdi(MdiLayout.Cascade)

End Sub

Private Sub horizonMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles horizonMenuItem.Click

Me.LayoutMdi(MdiLayout.TileHorizontal)

End Sub

Private Sub verticalMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles verticalMenuItem.Click

Me.LayoutMdi(MdiLayout.TileVertical)

End Sub

Private Sub aboutMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles aboutMenuItem.Click

Dim form5 As New Form5

form5.MdiParent = Me

form5.WindowState = FormWindowState.Normal

form5.Show()

End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripButton1.Click

selectinfoMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripButton2.Click

updateinfoMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripButton3.Click

importscoreMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripButton4.Click

cascadeMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripButton5.Click

aboutMenuItem.PerformClick()

End Sub

Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripButton6.Click

quitMenuItem.PerformClick()

End Sub

Private Sub ToolStripStatusLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles ToolStripStatusLabel1.Click

aboutMenuItem.PerformClick()

End Sub End Class

八.參考文庫

百度文庫,百度知道

第四篇:vb課程設計

Visual Basic課程設計報告

題目1: 貪吃蛇 難度:**** 題目2: 難度: 指導教師:

姓 名: 學 號: 專 業: 班 級: 學 院:

日 期:

目錄

1、題目簡介...................................................................................................錯誤!未定義書簽。

2、設計思路與總體方案.................................................................................................................3

2.1 窗體Form1.vb【設計】...................................................................................................3 2.2窗體Form2.vb【設計】..................................................................................................11 2.3窗體Form3.vb【設計】..................................................................................................14 2.4 窗體Form4.vb【設計】.................................................................................................14 2.5窗體Form5.vb【設計】....................................................................................................2.6窗體Form6.vb【設計】..................................................................錯誤!未定義書簽。2.6 標準模塊..........................................................................................................................14

3、設計過程遇到的主要問題及解決方法...................................................................................16

4、設計中尚存的不足分析...........................................................................................................16

5、心得體會...................................................................................................................................17

6、參考文獻...................................................................................................................................17

1.題目簡介

貪吃蛇是一種很流行的電子游戲。如圖1所示,一條蛇在棋盤狀的格子平面上爬行,由鍵盤控制其轉彎;格子上隨機出現五個數字(1~5),當蛇的頭部碰到數字時會將數字“吃掉”,蛇的身體會變長。當蛇的頭撞到障礙物時或碰到自己身體時,游戲結束。游戲結束時,蛇身體越長的分越高。

圖1 程序啟動時界面如圖1所示,游戲平面有20*20個方格構成。使用回車鍵可以暫

停(如圖2所示),蛇爬到邊界時,如果未遇到障礙物,會從一側爬出再從另一側爬入。如果運動過程中,其頭部碰到障礙物或自己,則被撞死,游戲結束。

圖2 如果該用戶的成績超過記錄成績,則會顯示圖3所示的對話框提示輸入用戶名,以供記錄成績,排行榜界面如圖4所示。

圖3

圖4

選擇“設置”菜單命令,打開圖5所示的“設置”對話框。在該對話框中可以選

擇不同的障礙物形狀,也可指定背景和障礙物顏色。

圖5 為了使效果更好,我加了背景音樂和速度控制。

2、設計思路與總體方案

(說明用到哪些控件并進行難點分析,說明所使用到的模塊、過程、變量、數組、自定義數據類型及其相互關系,必要時給出系統結構圖等圖表。

對如下事項逐步進行必要的分析、說明:

? 程序設計的主要思想,程序功能是如何實現的?

? 設計了幾個程序模塊(有幾個窗體模塊、幾個標準模塊),各個功能模塊的作者及想到之間的關系(模塊間是如何傳遞信息和數據的,采用什么方式,為什么?)?

? 程序中定義了哪些主要的變量(分別定義了哪些過程級變量?模塊級變量和全局變量),這些變量起什么作用?是否全局變量? 這里不需要給出大段的源程序,只需要給出關鍵的實現代碼即可。)2.1 窗體Form1.vb【設計】

這是主界面,但也是最難的環節,之后要用到的控件與顯示都要在其基礎上發展。首先我們要將背景網格和蛇身畫出來,由于受到了動態添加控件的啟發,我用了powerpacks中的ovalshape來構造蛇身,lineshape來構造線,為了滿足蛇的身體長長,用到了數組。由于代碼之間有許多調配,在此我所舉的代碼皆主要起說明作用,實際情況可看源代碼。代碼如下:

Public num As Integer = 4 ‘記錄蛇的長度,即ovalshape的個數

Public j As String‘記錄Inputstring的字符串

Public p As Integer = 1‘記錄MsgBox所產生的值

Dim w As Integer

Dim d As Integer ‘為鍵盤方向確定一固定值

Dim recordname As String‘記錄玩家名字

Dim bnum As Integer = 1‘記錄障礙物的個數

Public recordlist(7)As String ‘記錄成績

Public recordscore(7)As Integer

Public gametime As Integer ‘記錄游戲進行所用時間

Public gameinterval As Integer = 200 ‘記錄游戲Timer控件interval值

Public score As Integer ‘記錄得分

Public direction As Integer

Public line(41)As LineShape

Public food(4)As RectangleShape

Public eye(2)As OvalShape '蛇的眼睛

Public a(num)As OvalShape '蛇的身體

Public word(4)As Label

Imports Microsoft.VisualBasic.PowerPacks Public a(num)As OvalShape ‘a()為定義蛇身的數組,變量num用來記錄蛇身個數

Public line(41)As LineShape Dim canvas = New Microsoft.VisualBasic.PowerPacks.ShapeContainer

For i = 4 To 0 Step-1 a(i)= New OvalShape

a(i).Size = New Size(20, 20)a(i).Top = 360 a(i).Left = 120 + 20 * i a(i).FillStyle = FillStyle.Solid a(i).FillColor = Color.Yellow a(i).Parent = canvas Next

a(0).FillColor = Color.Red ‘給蛇上色 a(0).BackColor = Color.Red Dim i As Integer

canvas.parent = Me.Panel1 For i = 0 To 20 '形成網格,以兩點坐標來確定線的位置

line(i)= New LineShape line(i).X1 = 0 line(i).X2 = 400 line(i).Y1 = 20 * i

line(i).Y2 = 20 * i line(i).Parent = canvas Next

For i = 21 To 41 line(i)= New LineShape line(i).X1 = 20 *(i21)line(i).Y1 = 0 line(i).Y2 = 400 line(i).Parent = canvas 蛇已經做好,那么我們可以進行下一步:讓蛇隨鍵盤的上下左右運動起來。這一步曾經困擾我很久,但通過上網我發現每一個鍵盤都對應著一個代碼,如:左37,上38,右39,下40。首先得讓控件響應鍵盤事件,其次讓蛇動,而蛇的運動可看作蛇頭移動,蛇身跟隨前一個身體。由此可以用以下代碼解決:

Private Sub form_keydown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)Handles Me.KeyDown Select Case e.KeyCode Case 37 If d <> 2 Then d = 0 ‘這樣能讓蛇不往回走

Case 38 If d <> 1 Then d = 3 Case 39 If d <> 0 Then d = 2 Case 40 If d <> 3 Then d = 1 End Select

End Sub Select Case d Case 2 For i = num To 1 Step-1 a(i).Left = a(i1).Top Next

a(0).Left += 20 Case 1 For i = num To 1 Step-1 a(i).Left = a(i1).Top Next

a(0).Top += 20 Case 0 For i = num To 1 Step-1

a(i).Left = a(i1).Top Next

a(0).Left-= 20 Case 3 For i = num To 1 Step-1 a(i).Left = a(i1).Top Next

a(0).Top-= 20 End Select 然后我們可以來設置食物來讓蛇吃,我用rectangleshape控件來制造食物,就像和畫出蛇身一樣寫,但是每當被吃后它有出現,而且不能出現在蛇身上。首先,它是隨機出現的,我們可用隨機函數,然后可通過判斷讓它不出現在蛇身上。對于數字1,2,3,4,5;我用lebal控件,然后讓其和食物坐標同步,這樣看起來就像數字在食物上一樣。代碼如下:

For i = 0 To 4 If a(0).Top = food(i).Top And a(0).Left = food(i).Left Then ‘判斷是否吃到

score += i + 1 ‘分數增加 num += i + 1 ‘蛇身的個數增加 food(i).Visible = False word(i).Visible = False

ReDim Preserve food(4)ReDim Preserve word(4)food(i)= New RectangleShape food(i).Size = New Size(20, 20)Randomize()food(i).Left = Int(Rnd()* 20)* 20 ‘隨機確定新坐標

food(i).Top = Int(Rnd()* 20)* 20 L2: For g = 0 To num1 If food(i).Left = a(g).Left And food(i).Top = a(g).Top Then

Call setloction(i)GoTo L2 End If

Next

food(i).FillStyle = FillStyle.Solid food(i).Parent = canvas word(i)= New Label word(i).Text = i + 1 word(i).Size = New Size(10, 10)

word(i).Top = food(i).Top + 5 word(i).Left = food(i).Left + 5 word(i).Parent = canvas ReDim Preserve a(num)‘蛇長長,重新定義動態數組

For k = numii1 If a(0).Top = barrier(k).Top And a(0).Left = barrier(k).Left Then

Timer1.Enabled = False a(0).FillColor = Color.Red lifetime-= 1 If score < 3 Then

If lifetime < 1 Then

MsgBox(“GAME OVER!”, 64, “貪吃蛇”)recordname = InputBox(“GAME OVER!” & Chr(13)& “你的成績為” & Int(score)& “分用時” & _ Int(gameinterval * gametime / 1000)& ”秒。“ & Chr(13)& ”請留下大名“, ”貪吃蛇“, ”無名氏“)Else

p = MsgBox(”Do you want to continue?“, vbYesNo, ”生命值“ & lifetime)If p = 6 Then

Exit For

End If

End If

Else

If lifetime < 1 Then

recordname = InputBox(”GAME OVER!“ & Chr(13)& ”你的成績為“ & Int(score)& ”分用時” & _ Int(gameinterval * gametime / 1000)& “秒。” & Chr(13)& “請留下大名?”, “貪吃蛇”, “無名氏”)Else

p = MsgBox(“Do you want to continue?”, vbYesNo, “生命值” & lifetime)If p = 6 Then

Exit For

End If

End If

End If

Call record()Call initialize()Exit For

End If

Next 想要形成障礙物,在此我們需要用到文件的讀操作。主要代碼如下:

FileOpen(1, filelacation, OpenMode.Input)' 讀取墻壁,形成迷宮 bnum = 1 Dim L As Integer

Dim T As Integer

For i = 1 To 419 j = InputString(1, 2)If Val(j)= 1 Then

barrier(bnum)= New RectangleShape barrier(bnum).Left = 20 * L barrier(bnum).Top = 20 * T barrier(bnum).Size = New Size(20, 20)barrier(bnum).FillColor = barriercolor barrier(bnum).FillStyle = FillStyle.Solid barrier(bnum).Parent = canvas bnum += 1 End If

If Val(j)= 0 Then ‘用此方法使讀出的內容與坐標對應

End If

If j = vbCrLf Then L-= 1 End If L += 1

If L = 20 Then L = 0 : T += 1 End If

Next

FileClose(1)在此基礎上便可調用其它的過程,比較簡單。代碼如下:

Private Sub 開始ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 開始ToolStripMenuItem.Click If Timer1.Enabled = False Then Timer1.Enabled = True

Exit Sub

End If

If Timer1.Enabled = True Then Timer1.Enabled = False

End If

End Sub

Private Sub 新開局ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 新開局ToolStripMenuItem.Click Call initialize()End Sub

Private Sub 關于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 關于ToolStripMenuItem.Click MsgBox(“貪吃蛇vb2010.2016.3.20”, 64, “版本說明”)End Sub

Private Sub 幫助ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 幫助ToolStripMenuItem1.Click Form3.Show()End Sub

Private Sub 設置ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 設置ToolStripMenuItem.Click Form2.Show()End Sub

Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 退出ToolStripMenuItem.Click

End

End Sub

Private Sub 排行榜ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 排行榜ToolStripMenuItem.Click Form6.Show()End Sub

2.2窗體Form2.vb【設計】

這個界面是第二重要的,當然它的設計也較麻煩。設計的障礙物的類型用到了listbox控件,也用到了菜單欄與pictureBox控件。而調用的過程shapeview所用到的內容與Form1.vb中的類似,因此方便好多。

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load ListBox1.Items.Add(“方盒形”)ListBox1.Items.Add(“隧道形”)ListBox1.Items.Add(“螺旋形”)ListBox1.Items.Add(“路障形”)ListBox1.Items.Add(“彎曲形”)ListBox1.Items.Add(“怪異形”)ListBox1.Items.Add(“無障礙形”)PictureBox2.BackColor = Color.DarkGray PictureBox1.BackColor = Color.Aqua TextBox1.Text = lifetime Call shapeview()End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)Handles ListBox1.SelectedIndexChanged

If ListBox1.SelectedIndex = 0 Then filelacation = “maze1方盒形.txt” filename = “方盒形” mazenum = 1 End If

If ListBox1.SelectedIndex = 1 Then filelacation = “maze1隧道形.txt” filename = “隧道形” mazenum = 2 End If

If ListBox1.SelectedIndex = 2 Then filelacation = “maze1螺旋形.txt” filename = “螺旋形”

mazenum = 3 End If

If ListBox1.SelectedIndex = 3 Then filelacation = “maze1路障形.txt” filename = “路障形” mazenum = 4 End If

If ListBox1.SelectedIndex = 4 Then filelacation = “maze1彎曲形.txt” filename = “彎曲形” mazenum = 5 End If

If ListBox1.SelectedIndex = 5 Then filelacation = “maze1怪異形.txt” filename = “怪異形” mazenum = 6 End If

If ListBox1.SelectedIndex = 6 Then

filelacation = “maze1無障礙形.txt” filename = “無障礙形” mazenum = 7 End If

For k = 1 To oldnum121)line1(i).X2 = 10 *(i單車.wav“

'musicname = ”MUSIC陳奕迅-單車.wav“

My.Computer.Audio.Play(My.Application.Info.DirectoryPath & ”MUSIC陳奕迅-單車.wav“)End If

End Sub

Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles RadioButton6.CheckedChanged If RadioButton6.Checked = True Then

'Form1.AxWindowsMediaPlayer1.Ctlcontrols.stop()

My.Computer.Audio.Stop()End If

End Sub End Class

2.6窗體Form5.vb[設計】

此窗體用來調節蛇運動的快慢程度。

Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles TrackBar1.Scroll

Dim v As Integer v = TrackBar1.Value timeinterval = 500 /(2 ^ v)Label3.Text = TrackBar1.Value End Sub

2.7窗體Form6.vb[設計】

此窗體用來顯示玩家的成績,用到了listBox控件來顯示成績,點擊清除所有記錄可還原,recordlist()用來記錄文件中的每一行。Public Class Form6

Public Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load For i = 1 To 7 ListBox1.Items.Add(Form1.recordlist(i))Next

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click ListBox1.Items.Clear()FileOpen(1, My.Application.Info.DirectoryPath & ”clear.txt“, OpenMode.Input)For i = 1 To 7 Form1.recordlist(i)= LineInput(1)ListBox1.Items.Add(Form1.recordlist(i))Next

FileClose(1)End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click Me.Close()End Sub End Class

2.8標準模塊

定義各種變量

Imports Microsoft.VisualBasic.PowerPacks Module Module1

Public barriercolor As System.Drawing.Color = Color.DarkGray

‘記錄障礙物的顏色

Public panalcolor As System.Drawing.Color = Color.Aqua ‘記錄面板的顏色

Public oldnum As Integer

Public oldnum1 As Integer

Public bnum1 As Integer

Public filelacation As String = ”maze1螺旋形.txt“

Public filename As String = ”螺旋形"

Public timeinterval As Integer = 1000 Public mazenum As Integer = 2 ‘為每一個障礙物類型做標記

Public lifetime As Integer = 1 ‘生命次數

Public barrier(400)As RectangleShape End Module

3、設計過程遇到的主要問題及解決方法

3.1剛開始時對于畫出后面的線條時我是添加了41個Lineshape控件,一個個確定等距的坐標將其畫下,廢了我好大的氣力,但后來受到了動態添加控件的觸動用數組將其解決。

3.2如何引發鍵盤事件曾一度困擾我,了解了鍵盤下所代表的代碼意義,之前一直使用的是select case keycode代碼,怎么也無法使其響應。后來看看課本上關于鍵盤的代碼,隨便使用了select case e.keycode代碼,令我欣慰的是竟然成功了。

3.3下一個是如何在界面上顯示出障礙物。根據所提供的文件夾,了解起大概用法,為了讓我編程更容易,我對其文件做了一定的修改。

3.4最難的是過程之間的調用與聯系,解決的辦法就是不斷的進行調試,修改。比如在我編寫重新開局的菜單代碼時總是會出現兩只蛇;又如在編寫排行榜時便不是很方便的能使用listbox.Items.remove這行代碼,因此我得另辟蹊徑。

4、設計中尚存的不足分析

4.1由于我采用的編寫方法是將完成這個貪吃蛇游戲所需滿足的要求分開,一個一個的進行攻破,我會發現越往后編寫越要考慮到之前的內容,在解決程序之間的關系會越麻煩,調試的次數更多。而且編完后縱觀全局會發現代碼的結構較混亂,重復性高,他人難以看的明白。

4.2 在定義變量時我盡量定義其為全局變量和模塊級變量。部分變量為了簡單或難以翻譯為英文的僅僅使用了字母代替,對讀代碼有一定困難。

4.3 我所犯下的最大錯誤就是使用控件來顯示蛇,因為在運行程序時蛇身會隨著長度的增加閃爍的愈發厲害。可能是控件太多,程序運行不流暢,效率不高。

4.4 我想在游戲中添加一些音樂,并且用到了循環播放的代碼,但是至今我還是沒有想到如何能將播放中的音樂暫停。還有的就是怎樣才能同時播放兩種聲音。

4.5 對于排行榜的編寫存在一些問題,比如:怎樣才能使顯示的行間距更開;如何才能使所顯示的各項指標在其對應的列下,在這一點上有很大的缺陷。可能程序要用到dictionary方法。

4.6 當我運行程序時,如果我點了界面上的某條線的話,蛇就不再響應鍵盤事件了,必須使用ctrl+方向鍵才能使其響應鍵盤事件。應該是我點擊時失去了焦點導致無法正常運行。

5、心得體會

這個程序從難度上講足足有四顆星,因此我想說我確實摸索了很久,從界面的制作排版到代碼的編寫。由于計算機編程知識當初只學了些皮毛,很多次我在編程時不斷調試卻依然出現這樣那樣的毛病,可能是無意中拼寫錯誤,但有些確實是因為不了解vb的某些較為冷僻的用法所致。這段時間,常會向同學請教,也自覺地去借了些書看看,基本上完成了要求,但是功能、界面都還不是很完善,我會借助以后的時間繼續去加工的,我需要的是學以致用。

我體會到了編寫程序是個有條理的邏輯過程,首先必須有個大致的思路,整體的規劃出來。然后再是分步地去具體完成,尤為重要的是需要投入相當一部分精力去精益求精,這樣你的成果才不會是毛糙的。思維調動是件另人愉快的事情,而我們應該去學會享受腦力勞動的過程,哪怕是一次次地失利。這就是2個月的課程設計所教會我的。

6、參考文獻

[2].王棟,visual basic程序設計實用教程,北京,清華大學出版社

第五篇:vb課程設計 職工工資管理系統代碼

Form1: Dim errorCount As Integer Private Sub Command1_Click()If Text1.Text = “system” And Text2.Text = “1234” Then

Load Form2

Form2.Show

Me.Hide

MsgBox “登陸成功,歡迎您進入職工工資管理系統”, vbInformation, “登陸成功”

Else

errorCount = errorCount + 1

If errorCount < 3 Then

MsgBox “用戶名或密碼錯誤(第” & errorCount & “次)!”, vbOKOnly + vbExclamation, “登陸失敗”

Text1.SetFocus

End If

If errorCount >= 3 Then

Text1.Enabled = False

Text2.Enabled = False

Command1.Enabled = False

MsgBox “三次輸入用戶名或密碼錯誤,程序將自動退出!”, vbOKOnly + vbExclamation, “登陸失敗”

End

End If End If

End Sub

Private Sub Command2_Click()Unload Me End Sub

Private Sub Form_Load()errorCount = 0 End Sub

Private Sub Form_Unload(Cancel As Integer)If MsgBox(“是否要退出程序?”, vbYesNo, “退出提示”)= vbNo Then

Cancel = 1 End If End Sub

For i = 1 To jlNum

ygList(i).shifagongzi =(CSng(ygList(i).jibengz)+ ygList(i).gerensui

CSng(ygList(i).jingtie)

ygList(y).shifagongzi = ygList(zuishao).shifagongzi ygList(zuishao).shifagongzi = linShi.shifagongzi End If Next loadData End Sub

Private Sub Command5_Click()Dim linShi As YuanGong

linShi.ygnamg = InputBox(“請輸入要添加的姓名”, “添加員工-姓名錄入”)If Len(Trim(linShi.ygnamg))> 0 Then

linShi.jibengz = InputBox(“請輸入添加員工的基本工資”, “添加員工-基本工資錄入”)

If Len(Trim(linShi.jibengz))> 0 Then

linShi.jingtie = InputBox(“請輸入添加員工的津貼”, “添加員工-津貼錄入”)

If Len(Trim(linShi.jingtie))> 0 Then

linShi.gerensui = InputBox(“請輸入添加員工的個人所得稅”, “添加員工-個稅錄入”)

If Len(Trim(linShi.gerensui))> 0 Then

linShi.suidianfei = InputBox(“請輸入添加員工的水電費”, “添加員工-水電費錄入”)

If Len(Trim(linShi.suidianfei))> 0 Then

Open filedir For Append As #1

Write #1, linShi.ygnamg;linShi.jibengz;linShi.jingtie;linShi.gerensui;linShi.suidianfei

Close #1

MsgBox “添加員工成功!”, vbOKOnly + vbInformation, “成功”

jlNum = 0 If Len(Trim(filedir))> 0 Then

Open filedir For Input As #1

Do While Not EOF(1)

Line Input #1, a

If Len(Trim(a))> 0 Then

jlNum = jlNum + 1

End If

Loop

Close #1

ReDim Preserve ygList(jlNum)As YuanGong

jlNum = 0

Open filedir For Input As #1

Do While Not EOF(1)

jlNum = jlNum + 1

Input #1, ygList(jlNum).ygnamg

Input #1, ygList(jlNum).jibengz

Input #1, ygList(jlNum).jingtie

Next

Close #1

MsgBox “刪除員工成功!”, vbOKOnly + vbInformation, “成功”

jlNum = 0 If Len(Trim(filedir))> 0 Then

Open filedir For Input As #1

Do While Not EOF(1)

Line Input #1, a

If Len(Trim(a))> 0 Then

jlNum = jlNum + 1

End If

Loop

Close #1

ReDim ygList(jlNum)As YuanGong

jlNum = 0

Open filedir For Input As #1

Do While Not EOF(1)

jlNum = jlNum + 1

Input #1, ygList(jlNum).ygnamg

Input #1, ygList(jlNum).jibengz

Input #1, ygList(jlNum).jingtie

Input #1, ygList(jlNum).gerensui

Input #1, ygList(jlNum).suidianfei

Loop

Close #1

loadData

Command2.Enabled = True

Command3.Enabled = False

Command4.Enabled = False

Command5.Enabled = True

Command6.Enabled = True End If

Text1.Text = “姓名” & vbTab & “工資” & vbTab & “津貼” & vbTab & “所得稅” & vbTab & “水電費” & vbCrLf

For i = 1 To jlNum

Text1.Text = Text1.Text & ygList(i).ygnamg & vbTab & ygList(i).jibengz & vbTab & ygList(i).jingtie & vbTab & ygList(i).gerensui & vbTab & ygList(i).suidianfei & vbCrLf

Next Else

MsgBox “刪除員工失敗!”, vbOKOnly + vbExclamation, “失敗” End If End Sub

Private Sub Command7_Click()

下載Vb課程設計-職工信息系統.(合集)word格式文檔
下載Vb課程設計-職工信息系統.(合集).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    vb課程設計心得體會

    2023vb課程設計心得體會 2023vb課程設計心得體會1 在課程設計過程中,雖然我對程序設計不是很熟悉,但是通過老師詳細的講解,我按照步驟去做,遇到問題的時候先自己想方法解決,解決......

    VB程序設計課程設計

    VB程序設計課程設計 1、目的 VB程序設計課程設計是考察學生對VB程序設計課程相關知識點掌握情況的重要環節,也是激勵學生進一步學習VB、提高運用VB開發實際計算機程序的能力......

    VB課程設計報告

    Visual Basic課程設計報告 題目1: 難度: *** 題目2: 難度: 指導教師: 姓 名:學 號:專 業:班 級:學 院:日 期: 目錄 1、題目簡介 ......................................................

    VB課程設計報告

    Visual Basic課程設計報告 題目1: 列車時刻查詢系統 難度: ** 題目2: 記憶力測試軟件 難度: ** 指導教師: 袁紅兵 姓 名:鄭聰 學 號:9151010F0535 專 業:兵器類班 級:9151010F......

    2014 vb課程設計報告

    Visual Basic 課 程 設 計 報 告所屬課程名稱:Visual Basic程序設計 課程設計題號: 課程設計題目: 課程設計難度:?星 課程設計時間:2014.2.23 ~ 4.9 學號: 姓名: 自評成績:二〇一四年......

    VB課程設計-文本編輯器

    學院名稱學生姓名專業名稱班級VB課程設計報告 ——文本編輯器 : : : :一、課程設計題目 用Visual Basic程序設計語言編寫一個簡易的文本編輯器 要求:有最基本的文本編輯功能,包括......

    VB課程設計總結

    通過幾周對VB的學習,使我增加了對VB課程的了解. 首先了解到VB的特點,VB是在原來的Basic語言基礎上發展而來的.Visual指的是可視的圖形用戶界面開發方法.不需編寫大量代碼去描述界面元素的......

    VB 課程設計報告 (推薦)

    長江大學工程技術學院 機械設計基礎課程設計 (2012-2013學年 第二學期) 系 (部) 專業班級 學生姓名 學號/序號 完成時間 機械系 機電專61102班 李航 201162335/14 2013年7月10......

主站蜘蛛池模板: 少妇愉情理伦片丰满丰满午夜| 成人片黄网站色大片免费观看cn| 精品一区二区三区免费毛片爱| 97色伦综合在线欧美视频| 国产精品夜夜春夜夜爽久久| 2018年秋霞无码片| 69做爰视频在线观看| 果冻传媒mv免费播放在线观看| 免费国产黄线在线播放| 欧美老熟妇乱人伦人妻| 成人精品视频| 成人区人妻精品一区二区不卡视频| 天堂va欧美va亚洲va好看va| 亚洲老妈激情一区二区三区| 久久久人妻| 午夜羞羞影院男女爽爽爽| 欧美牲交a欧美牲交aⅴ免费| 欧美特大特白屁股ass| 在线观看片免费人成视频播放| 国产aⅴ激情无码久久久无码| 天干天干天啪啪夜爽爽av| 国产成人情侣激情视频| 久久精品国产免费观看| 大色综合色综合网站| 人妻丰满被色诱中文字幕| 亚洲精品久久中文字幕| 无码一区二区三区av在线播放| 69久久| 成人无码a片一区二区三区免| 文中字幕一区二区三区视频播放| 亚洲欧洲国产码专区在线观看| 中文字幕一区在线观看视频| 老子影院午夜伦不卡无码| 国产精品黑色丝袜高跟鞋| 香蕉伊蕉伊中文视频在线| 久热中文字幕在线精品观| 国产乡下三级全黄三级bd| 色欲综合久久中文字幕网| 婷婷五月综合激情| 久久精品亚洲精品无码| 国产亚洲日韩在线一区二区三区|