第一篇:VB程序設(shè)計說明(寫寫幫整理)
選題介紹及意義,程序模塊及功能,程序流程圖,程序源碼及注釋,程序的后續(xù)完善及存在問題,設(shè)計程序的心得體會 一.選題說明及意義
用VB實現(xiàn)備忘錄的基本功能,包括記事本,屏幕抓圖,數(shù)字時鐘和日歷等功能,利用VB中的諸多控件,例如PictureBox,Label,CommendButton,Timer,CommendDialog,RichTextBox等,完成VB程序的諸多功能的實現(xiàn),創(chuàng)建功能較為完善的記事本,并具有一定輔助功能,對于利用此軟件的人能夠具有一定的便利。二.程序模塊及功能實現(xiàn)流程圖
三.部分程序代碼 1.屏幕截圖部分
Private Declare Function GetDC Lib “user32”(ByVal hwnd As Long)As Long Private Declare Function StretchBlt Lib “gdi32”(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long)As Long
Private Sub Command1_Click()Dim wScreen As Long Dim hScreen As Long Dim w As Long Dim h As Long Picture1.Cls wScreen = Screen.Width Screen.TwipsPerPixelX hScreen = Screen.Height Screen.TwipsPerPixelY ‘定義截屏的長度和寬度等于屏幕實際長寬 Picture1.ScaleMode = vbPixels w = Picture1.ScaleWidth h = Picture1.ScaleHeight hdcScreen = GetDC(0)r = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)‘StretchBlt,函數(shù)名。該函數(shù)從源矩形中復(fù)制一個位圖到目標(biāo)矩形,必要時按目標(biāo)設(shè)備設(shè)置的模式進行圖像的拉伸或壓縮。
End Sub
Private Sub Command2_Click()‘另存為按鍵代碼 Me.Picture = Me.Image CommonDialog1.Filter = “BMP文件(*.bmp)|*.bmp|JPG文件(*.jpg)|*.jpg” CommonDialog1.ShowSave CommonDialog1.Flags = &H2 + &H4 + &H8 ‘&H2使用長文件名 &H4 隱藏只讀復(fù)選框。
&H8強制對話框?qū)υ捒虼蜷_時的目錄置成當(dāng)前目錄
If CommonDialog1.FileName <> “" Then SavePicture Me.Picture, CommonDialog1.FileName End If End Sub
Private Sub Command3_Click()‘退出按鍵代碼 Form3.Hide form6.Show End Sub 2.登陸部分
Option Explicit Dim Npass As Integer
Private Sub Command1_Click()If username.Text = ”111“ And password.Text = ”111“ And Npass < 3 Then Form5.Hide Form2.Show Else Npass = Npass + 1 If Npass = 3 Then MsgBox ”你沒有機會了“ End Else MsgBox ”密碼第“ & Npass & ”錯誤!請再試一次.“, 0, ”密碼輸入錯誤“ password.Text = ”“ ' password.SetFocus End If End If End Sub
Private Sub Command2_Click()username.Text = ”“ password.Text = ”“ End Sub 3.日記本部分代碼
Dim sfind As String Dim FileType, FiType As String Private Sub copy_Click()‘復(fù)制按鍵 Clipboard.Clear On Error Resume Next Clipboard.SetText TxtDemo.SelText End Sub
Private Sub date_Click()‘日期按鍵 Text1.SelText = Now End Sub
Private Sub delete_Click()‘刪除按鍵 RichTextBox1.SelText = ”“ End Sub
Private Sub edits_Click()‘編輯按鍵 RichTextBox1.SetFocus End Sub
Private Sub exit_Click()‘退出按鍵 Form2.Hide Form1.Show End Sub
Private Sub find_Click()‘查找按鍵 Dim sfind As Integer sfind = InputBox(”請輸入要查找的詞:“, ”查找內(nèi)容“, sfind)RichTextBox1.find sfind If RichTextBox1.SelText <> sfind Then MsgBox ”找不到要查詢的內(nèi)容“, , ”查詢結(jié)果報告“ End If End Sub Private Sub Form_Load()Me.Height = 6000 Me.Width = 9000
On Error Resume Next '出錯處理 RichTextBox1.Top = 20 RichTextBox1.Left = 20 RichTextBox1.Height = ScaleHeight40 End Sub
Private Sub new_Click(Index As Integer)‘新建按鍵 RichTextBox1.Text = ”“ '清空文本框 FileName = ”未命名“ Me.Caption = FileName End Sub
Private Sub open_Click()‘打開部分
CommonDialog1.Filter = ”文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*“ CommonDialog1.ShowOpen RichTextBox1.Text = ”“ '清空文本框 FileName = CommonDialog1.FileName RichTextBox1.LoadFile FileName Me.Caption = ”記事本:“ & FileName End Sub
Private Sub paste_Click()Clipboard.Clear On Error Resume Next Clipboard.SetText RichTextBox1.SelText RichTextBox1.SelText = ”“ End Sub
Private Sub riji_Click()‘幫助日記部分 MsgBox ”日記Ver1.0版權(quán)所有(C)網(wǎng)絡(luò)“, vbOKOnly, ”關(guān)于“
End Sub
Private Sub save_Click()‘保存文件部分 CommonDialog1.Filter = ”文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*“ CommonDialog1.ShowSave FileType = CommonDialog1.FileTitle FiType = LCase(Right(FileType, 3))FileName = CommonDialog1.FileName Select Case FiType Case ”txt“ RichTextBox1.SaveFile FileName, rtfText Case ”rtf“ RichTextBox1.SaveFile FileName, rtfRTF Case ”*.*“ RichTextBox1.SaveFile FileName End Select Me.Caption = ”記事本:“ & FileName End Sub
Private Sub selectall_Click()‘全選部分 RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text)End Sub
Private Sub tie_Click()‘剪切部分 On Error Resume Next RichTextBox1.SelText = Clipboard.GetText RichTextBox1.SelText = ”" End Sub 4.數(shù)字時鐘部分代碼
Private LastMinute As Integer Private LastHour As Integer Private Lastx As Integer Private Lasty As Integer
Private Sub Form_Load()Lastx = 999 End Sub
Private Sub Timer1_Timer()Const pi = 3.141592653 ‘定義圓周率 Dim T Dim X As Integer Dim Y As Integer T = Now SEC = Second(T)Min = Minute(T)HR = Hour(T)frmClock.Scale(-16, 16)-(16,-16)If Min <> lastMin Or HR <> LastHour Then LastMinute = Min LastHour = HR frmClock.Cls Lastx = 999 frmClock.DrawWidth = 2 frmClock.DrawMode = 13 h = HR + pi / 60 X = 5 * Sin(h * pi / 6)Y = 5 * Cos(h * pi / 6)frmClock.Line(0, 0)-(X, Y)X = 8 * Sin(Min * pi / 30)Y = 8 * Cos(Min * pi / 30)frmClock.Line(0, 0)-(X, Y)frmClock.DrawWidth = 1 End If frmClock.DrawMode = 10 RED = RGB(255, 0, 0)X = 10 * Sin(SEC * pi / 30)Y = 10 * Cos(SEC * pi / 30)If Lastx <> 999 Then frmClock.Line(0, 0)-(Lastx, Lasty), RED End If frmClock.Line(0, 0)-(X, Y), RED Lastx = X Lasty = Y End Sub
Private Sub NoUse_Click()Unload Me End Sub 四.程序后續(xù)完善及存在問題
目前程序功能較為簡單,對于備忘錄部分只能實現(xiàn)簡單的文字輸入和截屏,日歷,數(shù)字時鐘的功能,在以后陸續(xù)的開發(fā)中會實現(xiàn)更多更復(fù)雜的功能,例如定時提醒,連接數(shù)據(jù)庫,Excel表格等功能,程序在設(shè)計之初與最后成品稍有 不同,對于程序設(shè)計中部分功能未能實現(xiàn),十分遺憾,在以后的學(xué)習(xí)中會加強程序設(shè)計部分知識,逐漸完善程序功能。五.設(shè)計程序的心得體會
通過此次程序設(shè)計,我對于VB程序語言和VB各類控件有了更深入的了解,對于綜合VB各項函數(shù)等也有了更深入的學(xué)習(xí),完成一個綜合的作品對于學(xué)習(xí)編程語言來說是進階必不可少的一部分,通過完成自己的作品也激發(fā)了我的創(chuàng)造思維和創(chuàng)作能力。在以后的學(xué)習(xí)中,我也會繼續(xù)學(xué)習(xí)和深入了解編程語言,為更好的做學(xué)術(shù)研究打基礎(chǔ)。
第二篇:論文VB程序
《教務(wù)信息管理系統(tǒng)VB程序設(shè)計》的教學(xué)思路(2010年高職單招計算機專業(yè)技能測試題)
福安市民族職業(yè)中學(xué)———馮建鋒
摘要:針對2010年高職單招計算機專業(yè)技能測試題,結(jié)合我省高職單招VB程序設(shè)計教學(xué)考綱要求進行分析。針對我校學(xué)生實際情況寫出《教務(wù)信息管理系統(tǒng)VB程序設(shè)計》的教學(xué)思路(要求)
關(guān)鍵詞:信息管理系統(tǒng),VB程序設(shè)計,教學(xué)思路 程序思路,需要完成一個教務(wù)信息管理系統(tǒng)。
1:完成頁面的設(shè)計。首先創(chuàng)建一個工程,工程中自動生成一個Form,也就是我們常說的頁面,并給這個頁面的名稱設(shè)置成Form1,用以區(qū)分系統(tǒng)中其他的頁面。通過編輯欄中的,Label工具,在頁面中間插入一段文字,為“教務(wù)管理系統(tǒng)”。因為完成一個教務(wù)管理系統(tǒng),需要完成的內(nèi)容有學(xué)生信息的錄入,學(xué)生信息的修改,學(xué)生信息刪除以及學(xué)生信息的查詢。于是在該頁面使用Button工具,放置四個按鈕并將四個按鈕的Caption分別設(shè)置成“學(xué)生錄入”,“學(xué)生修改”,“學(xué)生刪除”和“信息統(tǒng)計”。且名稱分別設(shè)置成Command1,Command2,Command3,Command4。依據(jù)程序要求我們可以知道,需要完成學(xué)生錄入,學(xué)生修改,學(xué)生刪除,和信息統(tǒng)計的各個功能,就必須存在有四個排版各不相同的頁面,來滿足各個功能的需求,于是在工程的樹形菜單下選擇窗體,再選擇新建窗體。重復(fù)操作四次,成功建立了四個Form。分別命名為Form2,Form3,Form4,Form5用來區(qū)分和其他的Form。上面提到過的設(shè)置了四個按鈕,作為按鈕則是拿來點擊的,而按照我們的思路,四個按鈕分別代表了要完成的四項功能,那么可以得出每點擊一個按鈕,就應(yīng)該要彈出相對應(yīng)的頁面來提供給用戶恰當(dāng)?shù)姆?wù)。于是雙擊按鈕,將自動生成代碼如下: Private Sub Command1_Click()····· End Sub 其中Command1是代表按鈕的名稱整個函數(shù)就是代表了某一個按鈕被點擊之后應(yīng)該執(zhí)行的內(nèi)容。End表示此函數(shù)結(jié)束。那么就應(yīng)該寫入對應(yīng)的內(nèi)容。完成之后的代碼如下: Private Sub Command1_Click()
Form2.Show End Sub Private Sub Command2_Click()
Form4.Show End Sub Private Sub Command3_Click()
Form3.Show End Sub Private Sub Command4_Click()Form5.Show End Sub 分別代表了不同的按鈕點擊之后不同的執(zhí)行的位置。其中Form.Show則代表對于某一個頁面進行顯示的功能。以上第一段表示了點擊按鈕1顯示頁面2。其他意思同上就不贅述。這樣就完成了主頁面:
我們可以知道的是還需要完成四個功能,學(xué)生錄入,學(xué)生修改,學(xué)生刪除和信息統(tǒng)計。完成學(xué)生錄入的設(shè)計:使用工具欄中的Label,Text,和button以及Adodc進行頁面的設(shè)計。即可。完成頁面如下:。
其中Adodc原本工具欄中并沒有,需要添加控件。按ctrl+T或者在菜單“工程”-“組件”里選擇
Microsoft ADO Data Control 6.0(SP6)(OLEDB)選中之后,就可以在工具欄中選擇該控件進行拖拽。其中Adodc中基本連接方法: Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=” + App.Path + “hkmdckdb1.mdb”//字符串的連接。Adodc直接雙擊,可以在欄目中選定數(shù)據(jù)庫的路徑也就是Access文件的路徑。就會自動生成ConnectionString。本頁面的程序代碼如下:
Private Sub Command1_Click()//點擊按鈕觸發(fā)函數(shù)。
If Trim(Text1.Text)<> “" And Trim(Text2.Text)<> ”“ And Trim(Text3.Text)<> ”“ And Trim(Text4.Text)<> ”“ And Trim(Text5.Text)<> ”“ And Trim(Text6.Text)<> ”“ Then
Adodc1.RecordSource = ”select * from stuInfo“
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(”stuNo“)= Trim(Text1.Text)
Adodc1.Recordset.Fields(”stuName“)= Trim(Text2.Text)
Adodc1.Recordset.Fields(”sex“)= Trim(Text6.Text)
Adodc1.Recordset.Fields(”age“)= Trim(Text3.Text)
Adodc1.Recordset.Fields(”tel“)= Trim(Text4.Text)
Adodc1.Recordset.Fields(”score“)= Val(Trim(Text5.Text))
Adodc1.Recordset.Update
Adodc1.Recordset.Requery
Adodc1.Refresh
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
MsgBox ”添加成功“, vbOKOnly, ”系統(tǒng)提示“ Else: MsgBox ”信息未填寫完整“, vbOKOnly, ”系統(tǒng)提示“ End If End Sub
對于以上解析如下:對于這個頁面在業(yè)務(wù)上我們可以知道,需要點擊錄入按鈕,那么就將各個Text中的內(nèi)容寫入數(shù)據(jù)庫中,那么在數(shù)據(jù)庫中就會生成一條記錄,也就是某一個學(xué)生的信息情況,那么就完成了學(xué)生信息的錄入。首先文件進行了一個IF判斷:
If Trim(Text1.Text)<> ”“ And Trim(Text2.Text)<> ”“ And Trim(Text3.Text)<> ”“ And Trim(Text4.Text)<> ”“ And Trim(Text5.Text)<> ”“ And Trim(Text6.Text)<> ”“ Then “中間內(nèi)容先省略”
Else: MsgBox ”信息未填寫完整“, vbOKOnly, ”系統(tǒng)提示“ End If End Sub
如果Text1至Text6的內(nèi)容不等于(<>代表不等于)空字符串。也就是各個內(nèi)容都輸入了的。就執(zhí)行省略的了中間內(nèi)容。如果有一個為空,也就是信息未填寫全。就執(zhí)行Else:中的內(nèi)容 也就是MsgBox ”信息未填寫完整“, vbOKOnly, ”系統(tǒng)提示“。這個代表了彈出一個對話框,其中文字寫了“信息未填寫完整”,按鈕上面顯示 vbOKOnly。之后結(jié)束IF語句,并退出函數(shù)。現(xiàn)在對于省略部分的函數(shù)進行解析: Adodc1.RecordSource = ”select * from stuInfo“//從stuInfo表格中做一個查詢
Adodc1.Refresh
Adodc1.Recordset.AddNew//新增信息
//表格也就是提供的Access的數(shù)據(jù)庫中提供給了stuNo,stuName等字段名,以下就是在記錄集中將Text1中的字段寫入到stuNo的記錄集里,并以此類推,完成該記錄集的填充。
Adodc1.Recordset.Fields(”stuNo“)= Trim(Text1.Text)
Adodc1.Recordset.Fields(”stuName“)= Trim(Text2.Text)
Adodc1.Recordset.Fields(”sex“)= Trim(Text6.Text)
Adodc1.Recordset.Fields(”age“)= Trim(Text3.Text)
Adodc1.Recordset.Fields(”tel“)= Trim(Text4.Text)
Adodc1.Recordset.Fields(”score“)= Val(Trim(Text5.Text))
//到這里就成功的完成了記錄集的填寫
Adodc1.Recordset.Update//將字段更新到數(shù)據(jù)庫中
Adodc1.Recordset.Requery Adodc1.Refresh //將頁面中的Text的內(nèi)容填寫為空
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“ MsgBox ”添加成功“, vbOKOnly, ”系統(tǒng)提示“ //彈出方框,表示數(shù)據(jù)填寫成功。
到此數(shù)據(jù)全部填寫完成。并寫入數(shù)據(jù)庫。也完成了這個頁面的功能。之后的幾個頁面的內(nèi)容類似。其中重點在于DataGrid和Adodc的綁定。對于DataGrid和Adodc的綁定在這里舉一個小小的例子如下: 1.ADODC1是數(shù)據(jù)庫連接部件
2.Datagrid1是顯示數(shù)據(jù)表中內(nèi)容的表格
ADODC1需要設(shè)置它連接的是哪個數(shù)據(jù)表.(Adodc1.RecordSource = ”select * from 表名“)Datagrid1需要設(shè)置的是它的數(shù)據(jù)源來自ADODC1.(Set DataGrid1.DataSource = Adodc1)然后2個部件都要刷新!Refresh
Adodc1.ConnectionString = ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ & App.Path & ”1.mdb;Persist Security Info=False“ Adodc1.CommandType = adCmdText Adodc1.RecordSource = ”select * from table“ Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh
這個之后,Datagrid1就可以顯示1.mdb中table表的內(nèi)容。
以下是本程序中修改頁面的代碼如下: Private Sub Command2_Click()
Dim str As String//定義str
Dim stuNo As String
Dim sql As String
stuNo = Text1.Text//獲得學(xué)號
If stuNo <> ”“ Then
Adodc1.Recordset.Filter = ”stuNo = '“ + stuNo + ”'“//通過學(xué)號機型查詢
str = Adodc1.Recordset.Fields(”sex“)
If str <> ”男“ Then//如果查詢出來的sex不等于男
Adodc1.Recordset.Fields(”sex“)= ”男“
Adodc1.Recordset.Update//將sex字段設(shè)置為男,并進行更新
Else
Adodc1.Recordset.Fields(”sex“)= ”女“
Adodc1.Recordset.Update//否則就將字段設(shè)置為女,并進行更新
End If
Else:
MsgBox ”學(xué)號未輸入“, vbOKOnly, ”系統(tǒng)信息“
End If
Adodc1.Recordset.Update//結(jié)束IF之后,更新一下Adodc
DataGrid1.Refresh//因為Adodc更新了,而DataGrid和Adodc進行了一次綁定,所以也需要對其進行更新。
End Sub
Private Sub Form_Load()//這個函數(shù)是頁面載入的時候執(zhí)行的函數(shù),因為頁面載入的時候本身就需要對表格的內(nèi)容進行填充,將表格的內(nèi)容填充為數(shù)據(jù)庫中的內(nèi)容。所以進行頁面載入的時候,首先對DataGrid進行更新。
DataGrid1.Refresh End Sub
刪除的代碼和修改的代碼類似,其中的區(qū)別在于邏輯判斷的區(qū)別了最終執(zhí)行的區(qū)別,一個是update一個則是delete。代碼如下: Private Sub Command2_Click()
Dim str As String
Dim stuNo As String
Dim sql As String
stuNo = Text1.Text
If stuNo <> ”“ Then//如果學(xué)號不為空,也就是該學(xué)生信息存在,也只有存在才可以刪除
Adodc1.Recordset.Filter = ”stuNo = '“ + stuNo + ”'“
Adodc1.Recordset.Delete//刪除操作
Else:
MsgBox ”學(xué)號未輸入“, vbOKOnly, ”系統(tǒng)信息“
End If
Adodc1.Recordset.Update//同更新類似不做贅述
DataGrid1.Refresh End Sub Private Sub Form_Load()DataGrid1.Refresh End Sub
最后是查詢的頁面,這個頁面稍稍有一點麻煩,因為對于其他頁面邏輯較為復(fù)雜。代碼如下: Private Sub Command1_Click()//點擊按鈕,執(zhí)行一下函數(shù)
//對字符串進行定義
Dim stuNo As String
Dim StuName As String
Dim ScoreLow As Double
Dim ScoreHigh As Double
Dim sql As String
stuNo = Text1.Text
StuName = Text2.Text //因為查詢信息,是根據(jù)多個條件進行查詢的,在這里進行了一個定義,查詢條件主要有一下幾項,既是學(xué)生學(xué)號,學(xué)生姓名,學(xué)生成績,學(xué)生年齡,以及學(xué)生性別。
If stuNo <> ”“ Then//如果學(xué)號不為空,就將SQL語句變成之下的語句,用于查詢學(xué)生學(xué)號。
sql = ”select * from stuInfo where stuNo = '“ + Trim(stuNo)+ ”'“
End If
If StuName <> ”“ Then//如果姓名不為空,就將SQL語句變成之下的語句,用于查詢學(xué)生姓名。
sql = ”select * from stuInfo where stuName = '“ + Trim(StuName)+ ”'“
Text1.Text = ”“
End If
If Text3.Text <> ”“ And Text4.Text <> ”“ Then//這里是分數(shù)
ScoreLow = Text3.Text
ScoreHigh = Text4.Text
sql = ”select * from stuInfo where score >= “ + Trim$(ScoreLow)+ ” and score <= “ + Trim$(ScoreHigh)
Text1.Text = ”“
Text2.Text = ”“
End If
If Text5.Text <> ”“ And Text6.Text <> ”“ Then//年齡
sql = ”select * from stuInfo where age >= “ + Trim$(Text5.Text)+ ” and age <= “ + Trim$(Text6.Text)
End If
If Text7.Text <> ”“ Then//性別
sql = ”select * from stuInfo where sex = '“ + Trim$(Text7.Text)+ ”'“
End If
Adodc1.RecordSource = sql
Adodc1.Refresh//更新數(shù)據(jù)集
Label7.Caption = ”滿足條件的一共有 “ + Trim$(Adodc1.Recordset.RecordCount)+ ” 人"
DataGrid1.Refresh//更新顯示信息
End Sub
典型案例:2010屆我校計算機專業(yè)36名考生參加高職單招,80分以上達27人。其中羅幼鳳同學(xué)得滿分100分。被福建師大本科計算機網(wǎng)絡(luò)專業(yè)錄取。
心得體會:
請按以上要求補充審改。而后發(fā)表。
第三篇:vb成績判斷程序
Private Sub Form_Click()
score = Val(InputBox(“請輸入成績:”))If score >= 60 Then
If score >= 90 Then
Level = “優(yōu)”
Else
If score >= 80 Then
Level = “良”
Else
If score >= 70 Then
Level = “中”
Else
Level = “及格”
End If
End If
End If
Else
Level = “不及格”
End If
Print Level
End Sub
第四篇:學(xué)生成績管理系統(tǒng)VB程序
登陸
登陸
Private Sub cmdLogin_Click()If txtUser.Text = “" Then
MsgBox(”請輸入用戶名!“)
txtUser.SetFocus Else Call openconn sql = ”select * from login where username='“ & Trim(txtUser.Text)& ”' and password='“ & Trim(txtPwd.Text)& ”'“ rs.Open sql, conn, adOpenDynamic, adLockOptimistic If rs.EOF Then
MsgBox ”用戶不存在!“
Else
Unload Me
frmMain.Show End If End If End Sub
退出
Private Sub cmdRegister_Click()Unload Me End Sub
功能選擇
選課管理
Private Sub cmdChoice_Click()frmChoice.Show Unload Me End Sub 退出
Private Sub cmdExit_Click()End End Sub 查詢
Private Sub cmdFind_Click()frmFind.Show Unload Me End Sub 成績管理
Private Sub cmdGrade_Click()frmGrade.Show Unload Me End Sub 學(xué)生管理
Private Sub cmdStu_Click()frmStu.Show Unload Me End Sub
學(xué)生管理
添加
Private Sub cmdAdd_Click()frmAddStu.Show Unload Me End Sub 刪除
Private Sub cmdDel_Click()rs.Delete MsgBox(”刪除成功!“)End Sub 編輯
Private Sub cmdEdit_Click()frmEditStu.Show Unload Me End Sub 查找
Private Sub cmdFind_Click()'查詢功能 If cboFind.Text = ”學(xué)號“ Then
If txtInput.Text = ”“ Then
MsgBox(”學(xué)號輸入不能為空!“)
txtInput.SetFocus
Else
Dim sql1 As String
Set rs1 = New ADODB.Recordset
sql1 = ”select * from stuInfo where ID='“ & txtInput.Text & ”'“
rs1.CursorLocation = adUseClient
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
MsgBox(”查不到相關(guān)信息“)
txtInput.SetFocus
Else
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End If
End If Else
If txtInput.Text = ”“ Then
MsgBox(”姓名輸入不能為空!“)
txtInput.SetFocus
Else
Dim sql2 As String
Set rs2 = New ADODB.Recordset
sql2 = ”select * from stuInfo where name='“ & txtInput.Text & ”'“
rs2.CursorLocation = adUseClient
rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
MsgBox(”查不到相關(guān)信息“)
txtInput.SetFocus
Else
Set DataGrid1.DataSource = rs2
DataGrid1.Refresh
End If
End If End If End Sub 返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 輸出窗口
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' txtInput.Text = DataGrid1.Columns.Item(4)''獲取選中行的第5列數(shù)據(jù)
End Sub 窗體
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo“
rs.CursorLocation = adUseClient
rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs 'datagrid綁定數(shù)據(jù)源 End Sub
成績查詢
返回 Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 確定
Private Sub Command1_Click()
lblGrade.Caption = Trim(cboCourse.Text)+ ”課程成績“
Dim sql1 As String
Set rs1 = New ADODB.Recordset
sql1 = ”select score.ID,score.Num,score.score from score, course where name='“ & cboCourse.Text & ”' and score.Num=course.Num“
'sql1 = ”select * from course“
rs1.CursorLocation = adUseClient
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs1 End Sub 窗體
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from course“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF
cboCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
選課管理
返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID = ”“ Then
MsgBox(”請輸入學(xué)號!“)
txtID.SetFocus ElseIf lstCourse.Text = ”“ Then
MsgBox(”請選擇課程!“)Else
Dim sql1 As String
Dim sql2, name As String
Set rs2 = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
sql1 = ”select score.ID, score.Num from score , course where ID='“ & txtID.Text & ”' and name='“ & lstCourse.Text & ”' and score.Num=course.Num“
name = lstCourse.Text
sql2 = ”select Num from course where name='“ & name & ” '“
rs1.Open sql1, conn, adOpenDynamic, adLockOptimistic
rs2.Open sql2, conn, adOpenDynamic, adLockOptimistic
If rs1.EOF Then
rs1.AddNew
rs1(”ID“)= txtID.Text
rs1(”Num“)= rs2(”Num“)
rs1.Update
MsgBox(”選課成功!“)
rs1.Close
Else
MsgBox(”已選過該課!“)
End If End If End Sub 窗體
Private Sub Form_Load()
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
sql = ”select * from course“
Call openconn
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF 'listbox控件利用循環(huán)讀取課程表中的課程名
lstCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
查詢
確定
Private Sub cmdOK_Click()If txtID = ”“ Then
MsgBox(”學(xué)號不能為空!“)
txtID.SetFocus Else
Dim sql As String
Dim sum1, sum2 As Single
Dim n As Integer
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select course.name , score.score , course.credit from score , course where score.ID='“ & txtID.Text & ”' and score.Num=course.Num“
rs.CursorLocation = adUseClient
rs.Open sql, conn, adOpenDynamic, adLockOptimistic, adCmdText
Set DataGrid1.DataSource = rs
sum1 = 0
sum2 = 0
n = 0
Do While Not rs.EOF
sum1 = sum1 + Val(rs(”score“))
sum2 = sum2 + Val(rs(”credit“))
n = n + 1
rs.MoveNext
Loop
lblAvg.Caption = Format(sum1 / n, ”0.0“)
lblCredit.Caption = sum2 End If End Sub 返回
Private Sub cmdReturn_Click()frmMain.Show Unload Me End Sub
修改學(xué)生信息
返回
Private Sub cmdReturn_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”學(xué)號不能為空!“)
txtID.SetFocus ElseIf txtName.Text = ”“ Then
MsgBox(”姓名不能為空!“)
txtName.SetFocus ElseIf txtSex.Text = ”“ Then
MsgBox(”學(xué)分不能為空!“)
txtSex.SetFocus ElseIf txtAge.Text = ”“ Then
MsgBox(”年齡不能為空!“)
txtAge.SetFocus Else
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo where ID='“ & txtID.Text & ”'“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
If Not rs.EOF Then
'判斷學(xué)號是否存在 rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”修改成功!“)
Else
MsgBox(”學(xué)號不存在!“)
End If End If End Sub 窗體
Private Sub Form_Load()txtID = rs(”ID“)txtName = rs(”name“)txtSex = rs(”sex“)txtAge = rs(”age“)cboPro.Text = rs(”pro“)End Sub
添加學(xué)生
返回
Private Sub cmdReset_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”學(xué)號不能為空!“)
txtID.SetFocus ElseIf txtName.Text = ”“ Then
MsgBox(”請輸入姓名!“)
txtName.SetFocus ElseIf txtSex.Text = ”“ Then
MsgBox(”請輸入性別!“)
txtSex.SetFocus ElseIf txtAge.Text = ”“ Then
MsgBox(”年齡不能為空!“)
txtAge.SetFocus Else
Dim sql As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Call openconn
sql = ”select * from stuInfo where ID='“ & txtID.Text & ”'“
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
If rs.EOF Then
'判斷學(xué)號是否存在 rs.AddNew
rs(”ID“)= txtID.Text
rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”添加成功!“)
frmStu.Show
Unload Me
Else
MsgBox(”學(xué)號已存在!")
End If End If End Sub
第五篇:八年級下冊VB程序教學(xué)設(shè)計
第四課學(xué)學(xué)程序設(shè)計——初步認識編程軟件VB 教學(xué)目標(biāo)及要求:
知識目標(biāo):了解什么是程序設(shè)計語言和計算機程序以及語言的分類; 能力目標(biāo):培養(yǎng)學(xué)生的閱讀總結(jié)和自主探索能力;
情感態(tài)度與價值觀:通過學(xué)生利用所學(xué)的知識解決實際問題,激發(fā)學(xué)生的學(xué)習(xí)興趣。教學(xué)重難點:
1.了解什么是程序設(shè)計語言。2.啟發(fā)學(xué)生創(chuàng)新思維要求:
3.以任務(wù)為驅(qū)動,激發(fā)學(xué)生創(chuàng)新思維
教法及學(xué)法:講授法談話法討論法、任務(wù)驅(qū)動和分組合作相結(jié)合 教學(xué)過程:
創(chuàng)設(shè)情境,導(dǎo)入新課:
教師運行游戲小程序,引起學(xué)生的興趣,并打開程序的源代碼說明編程并不很神秘。
試運行游戲小程序,激發(fā)學(xué)生的學(xué)習(xí)興趣。教師講授: 程序設(shè)計語言
教師活動:語言是人類交流思想、溝通感情最重要的工具。那么語言不通的人如何交流呢? 學(xué)生活動:請一個語言翻譯或自己學(xué)會他人的語言 教師活動:計算機所做的事情均為人向機器下達的命令,那么操作者又是通過什么語言同計算機進行溝通的呢?
程序設(shè)計語言的分類及特點(1)、機器語言
教師活動:①計算機能聽懂的語言(機器語言)②機器語言的實質(zhì)(二進制語言)③二進制語言的特點。強調(diào)計算機內(nèi)部只認識二進制 學(xué)生活動:談對二進制語言的感受
教師小結(jié):機器語言的特點(二進制、計算機直接能懂、難以理解,與人類語言差距較大)(2)匯編語言:用助記符表示面向機器的程序設(shè)計語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序?qū)R編語言翻譯成機器語言。適合編寫直接控制機器操作的程序,不容易使用。(3)、高級語言
高級語言最接近人的自然語言,即簡單易學(xué),它所編制的程序計算機執(zhí)行時需要“翻譯”,執(zhí)行速度比二進制程序慢。計算機程序
教師提出問題一:什么是程序?
日常所說的“程序”是指事情的先后順序。問題二:什么是計算機程序?
教師展示游戲程序部分的源代碼語句,學(xué)生觀察游戲程序的源代碼。思考什么是計算機程序?
計算機程序是用程序設(shè)計語言編寫好的一組指令,用來指示計算機的每一步動作。VB程序設(shè)計語言:
1、VB簡介:
vb是Visual Basic的簡稱,是由美國微軟公司于1991年開發(fā)的一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言,可用于開發(fā) Windows 環(huán)境下的各類應(yīng)用程序。它簡單易學(xué)、效率高,且功能強大。
2、認識VB窗口:
教師活動:打開準備好的VB程序----世博口號.exe 學(xué)生活動:新建標(biāo)準工程進入VB環(huán)境
教師活動:指認VB環(huán)境中菜單欄、工具欄、工具箱、屬性窗口、窗體、控件等的位置。工具箱:許多用于程序設(shè)計的控件 窗體編輯器:設(shè)計應(yīng)用程序界面
工程資源管理器:幫助用戶管理工程中的每一個文件 屬性窗口:設(shè)置對象的特征
3、相關(guān)概念: ①對象的概念 教師活動:講解所謂“對象”就是個可操作實體如窗體、窗體中命令按鈕、標(biāo)簽、文本框等。② 控件的概念
教師活動:講解控件的概念。(窗體界面中可供用戶操作的元素)學(xué)生活動:認識范例窗體中有哪些是控件 教師活動:在工具欄中指認相應(yīng)控件 學(xué)生活動:向窗體中添加相應(yīng)控件 ③ 屬性的概念
教師活動:講解屬性的概念。(控件的內(nèi)部和外部特征)學(xué)生活動:嘗試在屬性窗口中找到某控件的相應(yīng)屬性 ④ 事件和代碼的概念
師生活動:運行程序---點擊按鈕---請學(xué)生觀察窗體變化
師生活動:結(jié)束運行狀態(tài)---雙擊按鈕進入代碼窗口:觀察點擊按鈕程序發(fā)生變化的原因(代碼)---學(xué)生觀察、教師講解(代碼改變控件屬性方法:控件名.屬性名=屬性值)---學(xué)生嘗試用此方式改變窗體中其他控件的屬性(如Label1.Caption=”better city,better life”)教師演示:
1、教師演示設(shè)計運行程序“奔跑的小汽車”,學(xué)生認真觀察。
2、教師將素材發(fā)送到學(xué)生機,布置任務(wù): 依照教師演示編寫程序“奔跑的小汽車”。學(xué)生體驗:
1、學(xué)生編寫程序“奔跑的小汽車”,教師巡回指導(dǎo)。
2、試修改程序,讓汽車倒車、速度變慢。
五、教學(xué)評價:
1、教師點評 教師通過巡視,把部分學(xué)生修改的結(jié)果進行點評,指出典型的錯誤。
2、學(xué)生進行自評: 評價內(nèi)容描述
對我的學(xué)習(xí)
滿意 還可以
還需 努力
了解程序設(shè)計語言和計算機程序
初步認識VB窗口的組成和工作環(huán)境
對程序設(shè)計學(xué)習(xí)的興趣
六、課后小結(jié):
這節(jié)課,我們體驗了用VB設(shè)計程序,了解程序有關(guān)知識。(回顧本節(jié)知識)希望同學(xué)們繼續(xù)努力。