第一篇:VB學生成績管理系統任務書
河北聯合大學
《軟件設計基礎-VB》課程設計任務書
學院班級設計人成績
一、題目:學生成績管理系統
二、目的與要求:
1.目的:
培養學生綜合利用VisualBasic6.0語言進行程序設計的能力,主要培養學生使用ACCESS數據庫和ADO控件設計信息管理類軟件。
2.基本要求:
① 要求用ACCESS搭建數據庫。
② 使用ADO控件實現與數據庫的連接。
③ 使用MSChart圖表控件繪制各種類型的圖表;使用MSFlexGrid表格控件顯示數據信息。④ 程序界面美觀,運行無差錯
3.創新要求:
在基本要求達到后,進行創新設計:
(1)允許更改密碼。
(2)增加排名次的功能。
(3)可以按院系、專業和年級計算平均成績并繪制圖表。
(4)用戶可以添加新的院系和專業名稱。
三、設計方法和基本原理:
1.功能要求:
設計一個“學生成績管理系統”程序,實現對學生成績的添加、修改、刪除、查詢和圖表繪制,具體如下:
(1)運行程序先進入“登錄”界面,要求輸入數據庫密碼,如果密碼錯誤,給出提示。
(2)經過密碼檢驗后,顯示主界面,以表格形式顯示數據庫中所有學生的成績信息。
(3)“添加”:其中院系、專業和年級使用組合框進行選擇。
(4)“修改”:只允許修改學生成績,不允許修改姓名、院系、專業和年級。
(5)“刪除”:可以刪除學生信息,刪除前進行確認。
(6)“查詢”:可以根據院系、專業和年級進行查詢。
(7)“圖表繪制”:分別以二維條形圖、二維圓餅圖和三維條形圖的形式顯示學生成績中優、良、中、及格和不及格的分布情況。
2.問題的解決方案:
40-1
根據問題描述,可以將問題解決分為以下幾個方面:
① 進行需求分析確定數據庫的結構,建立相應的數據表。
② 利用ADO控件與數據庫連接。
③ 設計主界面,要求有菜單、工具欄和狀態欄,具體內容按功能要求自行設計。
④ 其他界面自行設計,滿足基本功能要求即可。
四、難點與提示:
(1)本題目中數據庫文件的設計是關鍵,可按如下方法:
創建一個數據庫文件scores.mdb,包含三個數據表:院系、專業和成績。“院系”表中保存院系代號和名稱;“專業”表中保存專業代號和名稱,以及所屬院系的代號;“成績”表中保存學生姓名、院系代號、專業代號、年級和各科成績。
(2)ADO控件和數據庫的連接代碼:
provider = “provider=Microsoft.jet.oledb.4.0”
datasource = “data source=” & App.Path & “scores.mdb”
With Adodc1
.Mode = adModeReadWrite
.ConnectionString = provider & “;” & datasource
.CommandType = adCmdTable
.RecordSource = “yx”
.Refresh
End With
五、課程設計時間:2012年5月10日至2012年7月1日
六、課程設計進行地點:學校機房
七、書寫設計報告的要求:
設計報告中包含以下幾個方面:
1.設計題目
2.設計思路
①劃分功能模塊
②確定各模塊的算法
3.用圖示的方式給出過程或函數之間的調用關系
4.列出程序清單,并加以必要的注釋
5.對該設計題目有何更完善的方案
6.通過本次設計,有何收獲及心得體會
八、課程設計的考核方式及評分方法
40-2
1.考核方式
課程設計結束時,學生要提交課程設計報告(A4紙打印),并將電子文檔和源程序上傳至課程設計服務器中:
ftp://210.31.197.23
找到自已指導教師的文件夾后,進入班級文件夾,再找到自己的文件夾,然后將文檔復制到該文件夾中即可。
2.評分方法
(1)出勤率
(2)課程設計準備工作
(3)課程設計期間紀律
(4)課程設計運行結果
(5)課程設計報告
(6)答辯情況
指導教師: 系主任簽字:日期:40-3 年月日
第二篇:vb學生成績管理系統論文
目 錄
摘要……………………………………………………………………………………….2 第一章 引言...........................................................3 第二章 系統設計的目的與要求...........................................3 1.1系統設計的目的....................................................3 1.2系統設計的實驗環境................................................4 1.3系統設計的預備知識................................................3 1.4系統設計的要求....................................................4
第三章 系統的概述.....................................................3 2.1系統的需求........................................................3 2.2可行性分析........................................................4 第四章 前臺界面分析...................................................4 3.1 登陸界面..........................................................4 3.2信息查詢..........................................................6 第五章 數據庫的分析...................................................6 4.1 YONGHU表...........................................................7 4.2 STUDENT 表.........................................................7 4.3 SCORE表...........................................................7 4.4 COURSE表...........................................................8 第六章 軟件維護.......................................................8 5.1數據維護..........................................................9 5.2代碼維護..........................................................9 結語及致謝............................................................9 參考文獻..............................................................9
VB學生成績管理系統
摘要:隨著科學技術在管理上越來越深入而廣泛的應用,管理信息系統的技術已逐步成熟。學生成績管理系統是一個不斷發展的新型學科,任何一個學校要生存要發展,要高效率地把內部活動有機地組織起來,因為管理這些龐大的體系是非常困難的,要想有機地組織起來,就必須建立與自身特點相適應的成績管理系統。本文對Visual Basic6.0應用程序設計等工具進行了較深入的學習和應用,利用其提供的各種面向對象的開發工具,尤其是數據窗口這一能方便而簡潔操縱數據庫的智能化對象,主要完成了對學生成績管理系統的系統分析部分,界面的設計、數據庫的設計等;系統設計部分主要介紹了系統功能設計和數據庫設計及代碼設計;
關鍵詞:visual basic,學生成績管理系統,數據庫,查詢
Abstract:Along with science technique is on the management more and more thorough but extensive application, manage information system of technique already gradually mature.Student result management the system is a new academics which develops continuously, the whichever school wants to exist to want a development, high-efficiencily internal activity organically the organization get up, because manage these huge systems are very difficult, think organically the organization get up, have to build up is mutually accommodative with oneself characteristics of result management system.This text to Visual Basic6.0 application program design etc.the tool carried on more thorough study and application, making use of what it provide various development tool which face to object, is the intelligence that data window way's this ability is convenient and simple and direct to manipulate a database to turn object particularly, mainly completed to manage the analysis part of the system of system to student's result, the design, database of interface of design etc.;The system design part mainly introduced design and database design of the system function and code design;Keywords: visual basic,Student result management the system,database, enquiries
第一章 引言
在高科技不斷發展的今天,計算機技術己經廣泛應用到社會的各個領域。從六十年代中期爆發了著名的軟件危機開始,計算機界就一直在探索軟件開發理論和方法,以確保計算機技術能夠高效地應用于各領域。隨著計算機技術不斷發展、完善,如何開發、應用高效率計算機軟件、信息系統一直是開發人員在試圖解決的難題。盡管開發人員已經提供了很多解決的方法,但是現在開發、應用管理信息系統軟件的過程中,仍會碰到以下的情形。學生成績管理系統軟件應用的好壞直接影響到學校以及學校今后發展。只有確定出簡單、安全、高效的開發設計方法并應用于學生成績管理系統的開發設計中,才能使先進的計算機工具為個人發展提供高效的服務:才能開發出完整靈活的學生成績管理系統,具有良好的可擴充性、適應性,系統安全性能高,具有友好的用戶界面并且操作簡便,因此,學生成績管理系統開發設計方法的應用研究具有積極的現實意義。第二章 系統設計的目的與要求 2.1 系統設計的目的
本課程設計是計算機科學與技術專業重要的實踐性環節之一,是在學生學習完《程序設計語言(C)》課程后進行的一次全面的綜合練習。本課程設計的目的和任務: 2.2 系統設計的實驗環境
硬件要求能運行Windows 2000/XP操作系統的微機系統。C語言程序設計及相應的開發環境。
2.3 系統設計的預備知識
熟悉C語言及C語言開發工C語言與Access。
第二章 系統的概述
本學生成績管理系統可以說是一個綜合性的學校學生成績管理系統,這它集成了多種功能,因而具有較強的實用性和先進性。2.1系統的需求
通過調查,要求系統需要有以下功能: ⑴ 由于操作人員的計算機知識普遍較差,要求有良好的人機界面;⑵ 由于該系統的使用對象多,要求有較好的權限管理;⑶ 原始數據修改簡單方便,支持多條件修改 ⑷ 方便的數據查詢,支持多條件查詢;⑸ 在相應的權限下,刪除數據方便簡單,數據穩定性好; ⑹ 數據計算自動完成,盡量減少人工干預;2.2可行性分析
由于本系統管理的對象單一,都是在校學生,且每個數據內容具有較強的關聯性,涉及的計算過程不是很復雜。因此,比較適合于采用數據庫管理。且學校用于學生管理的微機都是PIII以上的機器,在存儲量、速度方面都能滿足數據庫運行的要求。在技術難度方面,由于有指導老師的指導和相關參考文獻,特別是網上資料,特別是參考其它程序的功能,因此完全可以實現。本系統的設計是在Windows XP中文版操作系統環境下,使用Visual Basic 6.0中文版開發成功的。第三章 前臺界面分析 3.1 登陸界面
主要代碼
Option Explicit Dim m As Integer
Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private rsmc As ADODB.Recordset Public username As String Private Sub cmdOk_Click()Dim ee As String rs.MoveFirst If m < 3 Then If Trim(txtusername.Text)= “" Or pwd.Text = ”“ Then MsgBox ”用戶名或密碼不能為空!請重新輸入!“, vbInformation, ”登錄信息“ Exit Sub End If Do While Not rs.EOF If rs.Fields(0)= txtusername.Text And rs.Fields(1)= pwd.Text Then MsgBox ”歡迎你進入學生成績管理系統,“ frmmain.Show Unload Me Exit Sub End If rs.MoveNext Loop m = m + 1 ee = MsgBox(”用戶名或密碼錯誤!請重新輸入!“, vbCritical + vbRetryCancel, ”登錄信息“)'重試/取消 txtusername.Text = ”“ If ee = vbNo Then Unload Me Else pwd.Text = ”“ txtusername.SetFocus
End If Else MsgBox ”對不起,您的輸入次數已達到最大限度!請退出!“, vbExclamation, ”提示信息“ '提示信息,確定 End End If End Sub Private Sub Form_Load()Set conn = New ADODB.Connection
conn.Provider = ”Microsoft.Jet.OLEDB.4.0“ conn.ConnectionString = ”Data Source=“ & App.Path & ”aa.mdb“ conn.Open Set rs.ActiveConnection = conn With rs.Open(”select * from yonghu“).MoveFirst End With txtusername.Text = rs.Fields(0)Do While Not rs.EOF txtusername.AddItem(rs.Fields(0))rs.MoveNext Loop txtusername.Text = ”" End Sub 3.2信息查詢
信息查詢主要是對學生的基本信息和學生的成績進行查詢。在查詢的過程你可以利用學號、課程號、專業名等進行查詢。第四章 數據庫的分析
4.1 yonghu表
主要是登陸用戶所用的表。
4.2 student 表
學生的各種信息都來源于這個表。4.3 score表
此表是記錄學生成績信息表。4.4 course表
此表是記錄學生課程的表。第五章 軟件維護
在軟件運行維護階段對軟件產品所進行的修改就是維護。系統維護就是為了保證系統中的各個要素隨著環境的變化始終處于最新的,正確的工作狀態。系統維護的目的是保證管理信息系統正常而可靠地運行,并能使系統不斷地得到改善和提高,以充
分發揮作用。
本系統的維護是面向系統中各種構成要素的,根據維護對象的不同,系統維護的內容可分為以下幾類: 5.1數據維護
本系統對數據的需求是不斷發生變化的,系統中查詢題目中數據要定期正常更新,或隨環境及需要的變化而進行調整。此外,數據的備份與恢復,都是數據維護的工作內容。5.2代碼維護
隨著系統應用范圍的擴大,應用環境的變化,系統中的各種代碼都需要進行一定程度的增加、修改、刪除,以及設置新的代碼。結語及致謝
通過這次的設計,讓我對VB的使用有了進一步的了解。在我做設計的過程遇到了許多的困難。通過老師和同學的幫助, 一一化解了困難,并從中學到了很多編程方面的知識。
在本次畢業設計中,我要向我的指導老師致以深深的謝意,感謝指導老師在這段時間里在學習上和生活上所給予的悉心的教誨和無微不至的幫助,在我感覺到自己知識有所貧乏的時候給了我細心的指導和技術上的支持。使我自身的能力得到了不少的提高,這對于我以后的工作和學習都有一種巨大的幫助。感謝指導老師的耐心輔導。
參考文獻
[1] 宗大華,陳吉人.C語言程序設計教程.人民郵電出版社,2004-6-1 [2] 韓春成.C語言程序設計教程/21世紀高等院校規劃教材.中國水利水電出版社,2007,1,14 [3] 寧正元.數據結構--用C語言描述.中國水利水電出版社,2005-4-27 [4] 李梅.C語言編程入門.化學工業出版社,2002,01,01 [5] 于華,都一兵.優化Visual Basic.NET應用程序的性能[J].計算機系統應用,2004,10 [6] 邵英海.Visual Basic數據庫開發技術的探討.[J].丹東紡專學報,2004,11,4 [7] 金鳳霞.VB中Paint Picture圖形方法的使用 CAJ原文下載[J]., 1999,04 [8] 譚浩強.《C程序設計題解與上機指導(第3版)》.清華大學出版社,2005,7 [9] 聶雪軍,賀軍/譯.[美]Harvey M.Deitel, Paul J.Deitel /著.《C程序設計經典教程(第4版)》,清華大學出版社,2006,3 [10] 李春葆,張植民,肖忠付.《C語言程序設計題典》.清華大學出版社 ,2002,7 [11] 張小潘/譯,[美]科漢/著.《C語言編程(第3版)》.電子工業出版社 ,2006,3
[12] 徐寶文 李志/譯,[美]Brian W.Kernighan, Dennis M.Ritchie /著.《C程序設計語言(第2版·新
版)》.機械工業出版社,2004,1 [13] 魯沐浴.《C語言最新編程技巧200例》.電子工業出版社,1997,1
[14] 梁
翎,李愛齊.《C語言程序設計實用技巧與程序實例》.上海科普出版社,1996,5 [15] 陳國章.《Turbo C程序設計技巧與應用實例》.天津科學技術出版社,1995,5 [16] 王士元.《C高級實用程序設計》.清華大學出版社,1996,6
第三篇:學生成績管理系統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 學生管理
Private Sub cmdStu_Click()frmStu.Show Unload Me End Sub
學生管理
添加
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 = ”學號“ Then
If txtInput.Text = ”“ Then
MsgBox(”學號輸入不能為空!“)
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(”查不到相關信息“)
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(”查不到相關信息“)
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列數據
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綁定數據源 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(”請輸入學號!“)
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控件利用循環讀取課程表中的課程名
lstCourse.AddItem rs(”name“)
rs.MoveNext
Loop End Sub
查詢
確定
Private Sub cmdOK_Click()If txtID = ”“ Then
MsgBox(”學號不能為空!“)
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
修改學生信息
返回
Private Sub cmdReturn_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”學號不能為空!“)
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 Not rs.EOF Then
'判斷學號是否存在 rs(”name“)= txtName.Text
rs(”sex“)= txtSex.Text
rs(”age“)= txtAge.Text
rs(”pro“)= cboPro.Text
rs.Update
MsgBox(”修改成功!“)
Else
MsgBox(”學號不存在!“)
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
添加學生
返回
Private Sub cmdReset_Click()frmStu.Show Unload Me End Sub 提交
Private Sub cmdSubmit_Click()If txtID.Text = ”“ Then
MsgBox(”學號不能為空!“)
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
'判斷學號是否存在 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(”學號已存在!")
End If End If End Sub
第四篇:VB學生成績管理系統課程設計報告
VB程序設計 課程設計報告
班 級:***** 姓 名:***** 序 號:***** 指導老師:*****
目錄
1、課設的目的..............................................................................................................................2
2、界面設計和功能設計............................................................................................................2
3、系統功能實施...................................................................................................................11
4、總結........................................................................................................................................30
一、課設的目的
1.本次課程設計提高了我們的實踐動手能力
5.通過本次課程設計,熟悉用戶界面的設計
2.通過本次課程設計,進一步理解計算機程序設計的思路與方法
3.本次課程設計之后,達到能熟練使用各種常見的VB控件,理解面向對象的思想 4.經過本次課程設計,我們進一步熟練運用VB的語言元素和流程控制語句
6.經過本次課程設計,熟悉數據訪問控件ADO及相關對象的使用,能基于ADO控件實現Access的數據訪問與操縱
二、界面設計和功能設計
1、下面的界面為用戶登陸界面:
用戶名和密碼均已設定,用戶名為zgzy,密碼為11201,只有輸入正確,然后點擊“登陸“按鈕才能進入主界面。如果用戶名或密碼三次輸入錯誤,則系統自動退出。當你點擊“退出“按鈕時,彈出一個對話窗,界面如下:
在對話框上點擊“是”按鈕,則退出系統,如果點擊“否”,則該界面不變。
2、當用戶名和密碼均輸入正確,點擊“登陸”按鈕,進入主界面——“學生成績管理系統”界面,該界面是其他子界面的入口,界面如下:
3、進入主界面后,點擊“學生管理(刪除添加)”,進入學生管理界面,界面如下
該界面上有一個ADO控件,用于連接數據庫,當用戶在六個文本框中輸入數據時,點擊“添加“按鈕,可以將數據錄入到數據庫中,如果此時點擊”刪除“按鈕,則剛才輸入的數據就會被刪除,點擊”保存“按鈕時,輸入的數據就會自動保存在數據庫里,點擊”返回主窗體“按鈕,該窗體消失,主窗體出現。
4、在主界面點擊“各科成績查詢“按鈕,出現如下界面:
該界面有一個ADO控件,用來連接數據庫,還有一個DataGrid控件,用來顯示學生成績的查詢結果,當用戶選擇了要查詢的科目和條件后,點擊“查詢“按鈕,在DataGrid控件上就會顯示出所查詢的結果。下面為輸入條件后查詢的結果——
5、在主界面點擊“姓名查詢“按鈕后,會出現如下界面:
該界面與上一界面相似,在文本框輸入要查詢的姓名后,點擊“查詢“按鈕,就會在DataGrid控件上顯示所要查詢的結果。下面為輸入條件后查詢的結果——
5、在主界面點擊“班級查詢“按鈕后,會出現如下界面:
在文版框中輸入所要查詢的班級,DataGrid控件上就會顯示所要查詢的結果。下面為輸入條件后查詢的結果——
6、在主界面上點擊“各科成績段查詢“按鈕后,會出現如下界面:
點擊“計算分數段統計“按鈕后,就會出現所要查詢的結果。下面為查詢的結果——
7、在主界面點擊“計算總分“按鈕后,出現如下界面:
點擊“清除總分”按鈕后,出現如下界面
8、在主界面點擊“排名“按鈕后,出現如下界面:
在該界面上點擊“排名“按鈕后,在DataGrid控件上會顯示出按成績高低排名的結果,點擊”清除排名“按鈕后,剛才結果消失,顯示原來結果。下面為所現實的結果——
9、在主界面點擊“統計直方圖“按鈕后,出現如下界面:
在該界面點擊各個按鈕后,就會出現與之相關科目的成績統計直方圖,下面為查詢的結果——
10、在主界面點擊“優等生“按鈕后,出現如下界面:
點擊按鈕查詢后,結果就會在界面上顯示出來。下面為所查詢的結果——
三、系統功能實施
以上展示的是系統的所有界面,怎樣才能讓這所有的功能實現呢?數據庫和ADO控件的使用便是其中的關鍵。
1、建立如下數據庫
(學號、姓名、班級、英語、數學、VB、總分、排名)
2、建立如下圖的所有界面:
3、ADO控件和DataGrid控件以及數據庫的連接步驟:(這一步在設計界面的同時完成)
(1)、如何加載ADO控件: 步驟1:
步驟2:
步驟3:
各個界面的ADO控件如何連接數據庫(分兩步):
步驟1:
如下面界面中的5個步驟
步驟2:
選中ADO控件Adodc1,點擊鼠標右鍵選擇屬性,然后界面設置如下:
控件綁定數據庫的字段操作說明:
屬性設置說明:下面以學號為例,姓名、班級等都可參考此。將學號對應的文本框Text1連接Adodc1顯示數據庫中的學號,需要設置DataSource和DataField兩個屬性,首先選中Text1文本框,并進行下面的兩步操作,即可綁定數據庫的學號字段。
設置DataSource:
設置DataField:
(2)、如何加載DataGrid控件 控件DataGrid,可以實現數據的批量處理,該控件在控件庫Microsoft DataGrid Control 6.0中。
說明:DataGrid控件屬性設置
以下為各個界面所對應的代碼——
該界面代碼如下:
Private Sub Command1_Click()If Text1.Text = “zgzy” And Text2.Text = “11201” Then Form1.Show Unload me Else MsgBox “用戶名或密碼錯誤,請重新輸入”, vbMsgBoxSetForeground, “系統提示!” End If
Static t As Integer t = t + 1 If t >= 3 Then End End Sub
Private Sub Command2_Click()a = MsgBox(“確定要退出本系統嗎?”, 3 + 32 + 256, “系統提示!”)
If a = 6 Then Unload Me End If End Sub
該界面代碼如下:
Private Sub Command1_Click()xsglfrm.Show End Sub Private Sub Command10_Click()ydsfrm.Show End Sub Private Sub Command3_Click()jszffrm.Show End Sub Private Sub Command4_Click()
pmfrm.Show End Sub Private Sub Command5_Click()
zftjtfrm.Show End Sub Private Sub Command6_Click()
cjcxfrm.Show End Sub Private Sub Command7_Click()
xmcxfrm.Show End Sub Private Sub Command8_Click()
bjcxfrm.Show End Sub Private Sub Command9_Click()
gkcjfrm.Show End Sub
該界面代碼如下:
Private Sub Command1_Click()Me.Adodc1.Recordset.AddNew End Sub
Private Sub Command2_Click()If Me.Adodc1.Recordset.RecordCount = 0 Or Me.Adodc1.Recordset.EOF Then
Exit Sub End If Me.Adodc1.Recordset.Delete Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.RecordCount = 0 Then
Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End Sub
Private Sub Command4_Click()Me.Adodc1.Recordset.Save End Sub
Private Sub Command5_Click()
Unload Me
mainfrm.Show End Sub
該界面代碼如下: Dim kc_條件 As String Dim kc As String Private Sub Command1_Click()kc_條件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “ ” + kc_條件 Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc_條件 = “>=92” kc = “vb” End Sub
Private Sub Option1_Click()
kc = “VB” End Sub Private Sub Option2_Click()kc = “math” End Sub Private Sub Option3_Click()kc = “English” End Sub
該界面代碼如下:
Dim kc_條件 As String Dim kc As String Private Sub Command1_Click()kc_條件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_條件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “name” End Sub
該界面代碼如下: Dim kc_條件 As String Dim kc As String Private Sub Command1_Click()kc_條件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_條件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “class” End Sub
該界面代碼如下:
Private Sub Command1_Click()
Dim vb_A As Integer
Dim vb_B As Integer
Dim vb_C As Integer
Dim vb_D As Integer
Dim vb_E As Integer
Dim Math_A As Integer
Dim Math_B As Integer
Dim Math_C As Integer
Dim Math_D As Integer
Dim Math_E As Integer
Dim English_A As Integer
Dim English_B As Integer
Dim English_C As Integer
Dim English_D As Integer
Dim English_E As Integer
Me.Adodc1.RecordSource = “select * from stu where vb>=90”
Me.Adodc1.Refresh
vb_A = Me.Adodc1.Recordset.RecordCount
Me.Text1 = vb_A
Me.Adodc1.RecordSource = “select * from stu where vb>=80 and vb<90”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text2 = vb_B
Me.Adodc1.RecordSource = “select * from stu where vb>=70 and vb<80”
Me.Adodc1.Refresh
vb_C = Me.Adodc1.Recordset.RecordCount
Me.Text3 = vb_C
Me.Adodc1.RecordSource = “select * from stu where vb>=60”
Me.Adodc1.Refresh
vb_D = Me.Adodc1.Recordset.RecordCount
Me.Text4 = vb_D
Me.Adodc1.RecordSource = “select * from stu where vb<60”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text5 = vb_E
Me.Adodc1.RecordSource = “select * from stu where math>=90”
Me.Adodc1.Refresh
Math_A = Me.Adodc1.Recordset.RecordCount
Me.Text6 = Math_A
Me.Adodc1.RecordSource = “select * from stu where math>=80 and math<90”
Me.Adodc1.Refresh
Math_B = Me.Adodc1.Recordset.RecordCount
Me.Text7 = Math_B
Me.Adodc1.RecordSource = “select * from stu where math>=70 and math<80”
Me.Adodc1.Refresh
Math_C = Me.Adodc1.Recordset.RecordCount
Me.Text8 = Math_C
Me.Adodc1.RecordSource = “select * from stu where math>=60 ”
Me.Adodc1.Refresh
Math_D = Me.Adodc1.Recordset.RecordCount
Me.Text9 = Math_D
Me.Adodc1.RecordSource = “select * from stu where math<60”
Me.Adodc1.Refresh
Math_E = Me.Adodc1.Recordset.RecordCount
Me.Text10 = Math_E
Me.Adodc1.RecordSource = “select * from stu where english>=90”
Me.Adodc1.Refresh
English_A = Me.Adodc1.Recordset.RecordCount
Me.Text11 = English_A
Me.Adodc1.RecordSource = “select * from stu where english>=80 and english<90”
Me.Adodc1.Refresh
English_B = Me.Adodc1.Recordset.RecordCount
Me.Text12 = English_B
Me.Adodc1.RecordSource = “select * from stu where english>=70 and english<80”
Me.Adodc1.Refresh
English_C = Me.Adodc1.Recordset.RecordCount
Me.Text13 = English_C
Me.Adodc1.RecordSource = “select * from stu where english>=60”
Me.Adodc1.Refresh
English_D = Me.Adodc1.Recordset.RecordCount
Me.Text14 = English_D
Me.Adodc1.RecordSource = “select * from stu where english<60”
Me.Adodc1.Refresh
English_E = Me.Adodc1.Recordset.RecordCount
Me.Text15 = English_E End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text10.Text = ”“
Text11.Text = ”“
Text12.Text = ”“
Text13.Text = ”“
Text14.Text = ”“
Text15.Text = ”“ End Sub
代碼如下
Private Sub Command1_Click()'計算總分 Dim vb As Integer
Dim math As Integer Dim english As Integer Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
vb = Me.Adodc1.Recordset.Fields(”vb“).Value
math = Me.Adodc1.Recordset.Fields(”math“).Value
english = Me.Adodc1.Recordset.Fields(”english“).Value
Me.Adodc1.Recordset.Fields(”total“).Value = vb + math + english
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
Private Sub Command2_Click()'清除總分 Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”total“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
該界面代碼如下:
Private Sub Command1_Click()Me.Adodc1.RecordSource = ”select * from stu order by total desc“ Me.Adodc1.Refresh Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = i
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext
Next i End Sub
Private Sub Command2_Click()Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
該界面代碼如下:
Private Sub Command1_Click()
Me.Adodc1.Refresh
'填充表格數據
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data屬性向MSChart數據網格填充數據
MSChart1.Data = Val(Adodc1.Recordset.Fields(”vb“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”VB成績直方圖“ End Sub
Private Sub Command2_Click()Me.Adodc1.Refresh
'填充表格數據
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data屬性向MSChart數據網格填充數據
MSChart1.Data = Val(Adodc1.Recordset.Fields(”math“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”Math成績直方圖“ End Sub
該界面代碼如下
Private Sub Command1_Click()Dim vb As Integer Dim math As Integer Dim english As Integer
Me.Adodc1.RecordSource = ”select * from stu where((math+english+vb)/3>=90)or((math+english+vb)/3>=85 and(math=100 or english=100 or vb=100))or((vb+english+math)/3>=85 and((vb>=95 and english >=95)or(english>=95 and math>=95)or(math>=95 and vb>=95)))and(mc<=3)and(vb>=60 and english>=60 and math>=60)" Me.Adodc1.Refresh End Sub
四、總結和體會
經過好幾天的努力我的課程設計終于完成了。在沒有做課程設計以前覺得課程設計好難,我可能做不了,但是通過這次做課程設計發現自己錯了。課程設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高,它并不可怕。通過這次課程設計使我明白了自己原來知識還比較欠缺,自己要學習的東西還太多,以前上課沒怎么認真聽,現在知道它重要了,幸好為時不晚,我以后要更加的努力學好vb。在這次課程設計中也使我們的同學關系更進一步了,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學。此外,還得出一個結論:世上無難事,只怕有心人。
在設計過程中,我通過查閱有關資料,與同學交流經驗和自學等方式,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。在整個設計中我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創造過程中探索的艱難和成功時的喜悅。雖然這個設計做的也不太好,但是在設計過程中所學到的東西是這次課程設計的最大收獲和財富,使我終身受益。
第五篇:VB學生成績管理系統課程設計報告
VB程序設計 課程設計報告
班 級:資工10902 班 姓 名:何睦 序 號:05 指導老師:劉少華 邵燕林 王慶
陳君華 朱小龍
目錄
1、課設的目的..............................................................................................................................3
2、界面設計和功能設計............................................................................................................3
3、系統功能實施.......................................................................................................................12
4、系統功能設計...........................................................................................................................19
5、總結和體會...............................................................................................................................28
一、課設的目的
1.通過本次課程設計,提高實踐動手能力;
2.通過本次課程設計,進一步理解計算機程序設計的思路與方法; 3.通過本次課程設計,進一步熟練運用VB的語言元素和流程控制語句;
4.通過本次課程設計,達到能熟練使用各種常見的VB控件,理解面向對象的思想; 5.通過本次課程設計,熟悉用戶界面的設計;
6.通過本次課程設計,熟悉數據訪問控件ADO及相關對象的使用,能基于ADO控件實現Access的數據訪問與操縱;
二、界面設計和功能設計
1、下面的界面為用戶登陸界面:
用戶名和密碼均已設定,用戶名為zg,密碼為10902,只有輸入正確,然后點擊“登陸“按鈕才能進入主界面。如果用戶名或密碼三次輸入錯誤,則系統自動退出。當你點擊“退出“按鈕時,彈出一個對話窗,界面如下:
在對話框上點擊“是”按鈕,則退出系統,如果點擊“否”,則該界面不變。
2、當用戶名和密碼均輸入正確,點擊“登陸”按鈕,進入主界面——“學生成績管理系統”界面,該界面是其他子界面的入口,界面如下:
3、進入主界面后,點擊“學生管理(刪除添加)”,進入學生管理界面,界面如下:
該界面上有一個ADO控件,用于連接數據庫,當用戶在六個文本框中輸入數據時,點擊“添加“按鈕,可以將數據錄入到數據庫中,如果此時點擊”刪除“按鈕,則剛才輸入的數據就會被刪除,點擊”保存“按鈕時,輸入的數據就會自動保存在數據庫里,點擊”返回主窗體“按鈕,該窗體消失,主窗體出現。
4、在主界面點擊“各科成績查詢“按鈕,出現如下界面:
該界面有一個ADO控件,用來連接數據庫,還有一個DataGrid控件,用來顯示學生成績的查詢結果,當用戶選擇了要查詢的科目和條件后,點擊“查詢“按鈕,在DataGrid控件上就會顯示出所查詢的結果。下面為輸入條件后查詢的結果——
5、在主界面點擊“姓名查詢“按鈕后,會出現如下界面:
該界面與上一界面相似,在文本框輸入要查詢的姓名后,點擊“查詢“按鈕,就會在DataGrid控件上顯示所要查詢的結果。下面為輸入條件后查詢的結果——
5、在主界面點擊“班級查詢“按鈕后,會出現如下界面:
在文版框中輸入所要查詢的班級,DataGrid控件上就會顯示所要查詢的結果。下面為輸入條件后查詢的結果——
6、在主界面上點擊“各科成績段查詢“按鈕后,會出現如下界面:
點擊“計算分數段統計“按鈕后,就會出現所要查詢的結果。下面為查詢的結果——
7、在主界面點擊“排名“按鈕后,出現如下界面:
在該界面上點擊“排名“按鈕后,在DataGrid控件上會顯示出按成績高低排名的結果,點擊”清除排名“按鈕后,剛才結果消失,顯示原來結果。下面為所現實的結果——
8、在主界面點擊“統計直方圖“按鈕后,出現如下界面:
在該界面點擊各個按鈕后,就會出現與之相關科目的成績統計直方圖,下面為查詢的結果——
9、在主界面點擊“優等生“按鈕后,出現如下界面:
點擊按鈕查詢后,結果就會在界面上顯示出來。下面為所查詢的結果——
三、系統功能實施
以上展示的是系統的所有界面,怎樣才能讓這所有的功能實現呢?數據庫和ADO控件的使用便是其中的關鍵。
1、建立如下數據庫
(學號、姓名、班級、英語、數學、VB、總分、排名)
2、建立如下圖的所有界面:
3、ADO控件和DataGrid控件以及數據庫的連接步驟:(這一步在設計界面的同時完成)
(1)、如何加載ADO控件: 步驟1:
步驟2:
步驟3:
各個界面的ADO控件如何連接數據庫(分兩步):
步驟1:
如下面界面中的5個步驟
步驟2:
選中ADO控件Adodc1,點擊鼠標右鍵選擇屬性,然后界面設置如下:
控件綁定數據庫的字段操作說明:
屬性設置說明:下面以學號為例,姓名、班級等都可參考此。將學號對應的文本框Text1連接Adodc1顯示數據庫中的學號,需要設置DataSource和DataField兩個屬性,首先選中Text1文本框,并進行下面的兩步操作,即可綁定數據庫的學號字段。
設置DataSource:
設置DataField:
(2)、如何加載DataGrid控件 控件DataGrid,可以實現數據的批量處理,該控件在控件庫Microsoft DataGrid Control 6.0中。
說明:DataGrid控件屬性設置
四、系統功能設計
系統功能的設計,其核心就是程序代碼的編寫過程,如何讓讓系統更加完善、界面更加友好呢,這就得益于代碼的編寫。以下為各個界面所對應的代碼——
該界面代碼如下:
Private Sub Command1_Click()If Text1.Text = “zg” And Text2.Text = “10902” Then mainfrm.Show dlfrm.Hide Else
MsgBox “用戶名或密碼錯誤,請重新輸入”, vbMsgBoxSetForeground, “系統提示!” End If
Static t As Integer t = t + 1 If t >= 3 Then End End Sub
Private Sub Command2_Click()a = MsgBox(“確定要退出本系統嗎?”, 3 + 32 + 256, “系統提示!”)If a = 6 Then Unload Me End If End Sub
該界面代碼如下:
Private Sub Command1_Click()xsglfrm.Show End Sub Private Sub Command10_Click()ydsfrm.Show End Sub Private Sub Command3_Click()jszffrm.Show End Sub Private Sub Command4_Click()
pmfrm.Show End Sub Private Sub Command5_Click()
zftjtfrm.Show End Sub
Private Sub Command6_Click()
cjcxfrm.Show End Sub Private Sub Command7_Click()
xmcxfrm.Show End Sub Private Sub Command8_Click()
bjcxfrm.Show End Sub Private Sub Command9_Click()
gkcjfrm.Show End Sub
該界面代碼如下:
Private Sub Command1_Click()Me.Adodc1.Recordset.AddNew End Sub
Private Sub Command2_Click()If Me.Adodc1.Recordset.RecordCount = 0 Or Me.Adodc1.Recordset.EOF Then
Exit Sub End If Me.Adodc1.Recordset.Delete Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.RecordCount = 0 Then
Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End Sub
Private Sub Command4_Click()Me.Adodc1.Recordset.Save End Sub
Private Sub Command5_Click()
Unload Me
mainfrm.Show End Sub
該界面代碼如下: Dim kc_條件 As String Dim kc As String Private Sub Command1_Click()kc_條件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “ ” + kc_條件 Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc_條件 = “>=92” kc = “vb” End Sub
Private Sub Option1_Click()kc = “VB” End Sub Private Sub Option2_Click()kc = “math” End Sub Private Sub Option3_Click()kc = “English” End Sub
該界面代碼如下:
Dim kc_條件 As String Dim kc As String Private Sub Command1_Click()kc_條件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_條件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()kc = “name” End Sub
該界面代碼如下: Dim kc_條件 As String Dim kc As String Private Sub Command1_Click()kc_條件 = Me.Text1 Me.Adodc1.RecordSource = “select * from stu where ” + kc + “='” + kc_條件 + “'” Me.Adodc1.Refresh End Sub
Private Sub Form_Load()
kc = “class” End Sub
該界面代碼如下:
Private Sub Command1_Click()
Dim vb_A As Integer
Dim vb_B As Integer
Dim vb_C As Integer
Dim vb_D As Integer
Dim vb_E As Integer
Dim Math_A As Integer
Dim Math_B As Integer
Dim Math_C As Integer
Dim Math_D As Integer
Dim Math_E As Integer
Dim English_A As Integer
Dim English_B As Integer
Dim English_C As Integer
Dim English_D As Integer
Dim English_E As Integer
Me.Adodc1.RecordSource = “select * from stu where vb>=90”
Me.Adodc1.Refresh
vb_A = Me.Adodc1.Recordset.RecordCount
Me.Text1 = vb_A
Me.Adodc1.RecordSource = “select * from stu where vb>=80 and vb<90”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text2 = vb_B
Me.Adodc1.RecordSource = “select * from stu where vb>=70 and vb<80”
Me.Adodc1.Refresh
vb_C = Me.Adodc1.Recordset.RecordCount
Me.Text3 = vb_C
Me.Adodc1.RecordSource = “select * from stu where vb>=60”
Me.Adodc1.Refresh
vb_D = Me.Adodc1.Recordset.RecordCount
Me.Text4 = vb_D
Me.Adodc1.RecordSource = “select * from stu where vb<60”
Me.Adodc1.Refresh
vb_B = Me.Adodc1.Recordset.RecordCount
Me.Text5 = vb_E
Me.Adodc1.RecordSource = “select * from stu where math>=90”
Me.Adodc1.Refresh
Math_A = Me.Adodc1.Recordset.RecordCount
Me.Text6 = Math_A
Me.Adodc1.RecordSource = “select * from stu where math>=80 and math<90”
Me.Adodc1.Refresh
Math_B = Me.Adodc1.Recordset.RecordCount
Me.Text7 = Math_B
Me.Adodc1.RecordSource = “select * from stu where math>=70 and math<80”
Me.Adodc1.Refresh
Math_C = Me.Adodc1.Recordset.RecordCount
Me.Text8 = Math_C
Me.Adodc1.RecordSource = “select * from stu where math>=60 ”
Me.Adodc1.Refresh
Math_D = Me.Adodc1.Recordset.RecordCount
Me.Text9 = Math_D
Me.Adodc1.RecordSource = “select * from stu where math<60”
Me.Adodc1.Refresh
Math_E = Me.Adodc1.Recordset.RecordCount
Me.Text10 = Math_E
Me.Adodc1.RecordSource = “select * from stu where english>=90”
Me.Adodc1.Refresh
English_A = Me.Adodc1.Recordset.RecordCount
Me.Text11 = English_A
Me.Adodc1.RecordSource = “select * from stu where english>=80 and english<90”
Me.Adodc1.Refresh
English_B = Me.Adodc1.Recordset.RecordCount
Me.Text12 = English_B
Me.Adodc1.RecordSource = “select * from stu where english>=70 and english<80”
Me.Adodc1.Refresh
English_C = Me.Adodc1.Recordset.RecordCount
Me.Text13 = English_C
Me.Adodc1.RecordSource = “select * from stu where english>=60”
Me.Adodc1.Refresh
English_D = Me.Adodc1.Recordset.RecordCount
Me.Text14 = English_D
Me.Adodc1.RecordSource = “select * from stu where english<60”
Me.Adodc1.Refresh
English_E = Me.Adodc1.Recordset.RecordCount
Me.Text15 = English_E End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text10.Text = ”“
Text11.Text = ”“
Text12.Text = ”“
Text13.Text = ”“
Text14.Text = ”“
Text15.Text = ”“ End Sub
該界面代碼如下:
Private Sub Command1_Click()Me.Adodc1.RecordSource = ”select * from stu order by total desc“ Me.Adodc1.Refresh Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = i
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext
Next i End Sub
Private Sub Command2_Click()Me.Adodc1.Recordset.MoveFirst For i = 1 To Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.Fields(”mc“).Value = Null
Me.Adodc1.Recordset.Update
Me.Adodc1.Recordset.MoveNext Next i End Sub
該界面代碼如下:
Private Sub Command1_Click()
Me.Adodc1.Refresh
'填充表格數據
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data屬性向MSChart數據網格填充數據
MSChart1.Data = Val(Adodc1.Recordset.Fields(”vb“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”VB成績直方圖“ End Sub
Private Sub Command2_Click()Me.Adodc1.Refresh
'填充表格數據
MSChart1.RowCount = 1
MSChart1.ColumnCount = Me.Adodc1.Recordset.RecordCount
Me.Adodc1.Recordset.MoveFirst
For lngI = 1 To Me.Adodc1.Recordset.RecordCount
MSChart1.Column = lngI
'用Data屬性向MSChart數據網格填充數據
MSChart1.Data = Val(Adodc1.Recordset.Fields(”math“).Value)
MSChart1.ColumnLabel = Adodc1.Recordset.Fields(”name“).Value
Adodc1.Recordset.MoveNext
Next lngI
MSChart1.RowLabel = ”Math成績直方圖“ End Sub
該界面代碼如下
Private Sub Command1_Click()Dim vb As Integer Dim math As Integer Dim english As Integer
Me.Adodc1.RecordSource = ”select * from stu where((math+english+vb)/3>=90)or((math+english+vb)/3>=85 and(math=100 or english=100 or vb=100))or((vb+english+math)/3>=85 and((vb>=95 and english >=95)or(english>=95 and math>=95)or(math>=95 and vb>=95)))and(mc<=3)and(vb>=60 and english>=60 and math>=60)" Me.Adodc1.Refresh End Sub
五、總結和體會
想來,當時那會兒聽說要搞vb課程設計的時候,我可是相當激動啊,心想,學的東西終于可以用一用了。并且這次的Vb課程設計要持續兩周的時間,主要是用vb+access相關的知識來實現學生成績和信息的管理。這對于我們這種初次接觸這種東西的人來說,還真是有難度,如果不是老師給了我們足夠的模板和樣例,我想我還真一時半會兒,不知道從哪里下手,好在功夫不負有心人,經過幾天時間的摸索和操作,這個學生成績管理系統的雛形終于是出現了,雖說功能不太完善,但還是能滿足基本要求,這讓我很是欣慰。
兩周的時間并不長,一晃就到了,課程設計也要畫上句號了。在這一段時間里里,不能說
我的vb編程能力有了多么大的提高,多么大的飛躍,但我敢說我對vb和數據庫相關的知識有了更加深刻的了解和體會,總結起來主要有以下幾點:
1、想要用vb做出好的東西來,一定要勤動手,不能光看,因為好多錯誤憑看是看不出來的,只有通過自己不斷的操作和修改,才能對vb的語法結構和流程有自己獨到的理解;
2、在編程和調試的過程中,總會出現一些意想不到的問題。我發現并不是每一個問題都能從資料中得到解決方法,有些問題是無法預料的,這個時候就得靠自己去分析了,你必須得非常的細心,一步一步的進行調試和修改,而且不能急,往往有的錯誤就是在你急躁的時候從你眼皮底下溜過去的,這樣又得重新檢查,到頭來,既費時又費力,實在不行,還可以和同學一起進行討論;
3、在寫代碼的時候,一定要養成良好的語法習慣,對窗體和控件的name屬性和caption屬性,要盡量習慣用相對應的英文單詞的縮寫或簡寫,因為這樣便于自己的查找和修改,還有就是在寫代碼的時候,不要圖簡單,一些語法結構總是不寫全,老是用最簡單的形式,如果你對vb語法結構很熟的話,這沒問題,但對于我們這樣的初學者來說,一定不要這樣,因為時間長了的話,對一些復雜一點的程序理解起來會很吃力的,而且對其的運行過程的了解不能達到透徹;
4、在數據庫的操作部分,一定檢驗一下數據源的連接成功與否,還有就是在控件與數據庫連接的時候,不要忘了每個控件的datasource屬性和datafield屬性,要確保其于數據庫的成功連接。
經過本次的vb課程設計,讓我對vb的軟件開發流程,整體籌劃發面有了一定的了解和提高,雖說我的專業并不是計算機或者軟件工程相關的專業,但我對vb編程的熱情絲毫不弱,我相信有了這次的經歷,對我以后vb的學習有很大的幫助,并祝我在vb或者其他類型的計算機語言的編程道路上走得更遠。