總結是指對某一階段的工作、學習或思想中的經驗或情況加以總結和概括的書面材料,它可以明確下一步的工作方向,少走彎路,少犯錯誤,提高工作效益,因此,讓我們寫一份總結吧。總結怎么寫才能發揮它最大的作用呢?下面是我給大家整理的總結范文,歡迎大家閱讀分享借鑒,希望對大家能夠有所幫助。
vb程序設計期末考試知識點總結篇一
學 院 班 級
指導老師
姓 名 學 號 成 績
2013年 月 10
日
一.課程設計題目
學生管理系統
二.功能描述
按設定的用戶名密碼進行登錄后,可按需求進行對數據庫中已有的學生信息及成績進行查詢,添加,刪除,修改等操作。
三.概要設計
登錄界面功能:讓用戶進行登錄。主界面功能:讓用戶選擇進行哪項操作。
查詢學生信息菜單功能:輸入學生學號,對該學生的個人信息以
及成績進行查詢,若直接點擊查詢按鈕,則顯示全部學生個人信息及成績。
編輯學生信息菜單功能:可對數據庫中已有的學生信息進行查
詢,添加,刪除,修改等操作。
學生信息維護菜單功能:可對數據庫中已有的學生成績進行查
詢,添加,刪除,修改等操作。
四.詳細設計
五.效果以及存在問題
說明系統的運行效果(附上運行界面圖片)、存在哪些不足以及預期的解決辦法。
登錄界面
登錄學生管理系統
按查詢條件查詢
打開修改學生信息子窗口
學生成績維護子窗口
垂直窗口排列
關于窗口
不足:1.沒有實現用戶登錄界面中的注冊功能
2.沒有實現主界面中文件下的新建和保存功能。
六.心得體會
經過幾天的苦戰,終于把課程設計粗略的做完了。剛開始做的時候,毫無頭緒,一片茫然。好在書本上有類似的實驗,可以供參考。盡管如此,真正做起項目來,還是有著這樣那樣的困難,有時一個空格少打都會出錯,導致我檢查了半天才發現問題所在。由于vb語法還運用不熟練,很多代碼都是模仿書本上的敲的,許多代碼往往能編譯通過,但很多都會拋出各種異常,讓人頭疼。有時系統就給出個有個參數沒有被指定值,就可以讓人搞的焦頭爛額。因此,寫程序真的也很需要強大的耐心,只要熬下去了,當你做出程序時,也會倍有成就感。目前,程序是基本寫完了,平常學的理論都得到了運用,感覺自己的能力也增強了。一句話,實踐才是硬道理。
七.附錄代碼
(附上各模塊代碼)
1.登錄界面
public class form1
private sub button1_click(byval sender as , byval e as rgs)handles
static n as integer
if = “abc” and = “123” then
dim form2 as new form2()
()
()
else
n = n + 1
if n < 5 then
msgbox(“請輸入正確的用戶名和密碼!”, al)
else
msgbox(“請輸入正確的用戶名和密碼!”, al)
d = false
end if
end if
end sub
private sub button2_click(byval sender as , byval e as rgs)handles
()
end sub
private sub button3_click(byval sender as , byval e as rgs)handles
dim form3 as new form3()
()
()
end sub
private sub form1_load(byval sender as , byval e as rgs)handles
end sub end class
2.查詢學生菜單代碼
public class form6
private sub form6_load(byval sender as , byval e as rgs)handles
dim objconn as new onnection
dim objdaxs_kc as new ataadapter
dim objdaxs as new ataadapter
dim objcommxs_kc as new ommand
dim objcommxs as new ommand
dim objdsxs_kc as new dataset
dim objdsxs as new dataset
tionstring = “provider = .4.0;data source = 'd:'”
dtext = “ select * from xs ”
dtext = “ select * from xs_kc ”
tion = objconn
command = objcommxs_kc
tion = objconn
command = objcommxs
()
(objdsxs_kc, “xs_kc”)
(objdsxs, “xs”)
()
urce = (“xs_kc”)
urce = (“xs”)
end sub
private sub button1_click(byval sender as , byval e as rgs)handles
dim objconn as new onnection
dim objdaxs_kc as new ataadapter
dim objdaxs as new ataadapter
dim objcommxs_kc as new ommand
dim objcommxs as new ommand
dim objdsxs_kc as new dataset
dim objdsxs as new dataset
dim wherestr as string
wherestr = “"
if trim()<> ”“ then
wherestr = ” 學號like “ + trim()
end if
tionstring = ”provider = .4.0;data source = 'd:'“
dtext = ” select * from xs “
dtext = ” select * from xs_kc “
if wherestr <> ”“ then
dtext = dtext & ”where“ & wherestr
dtext = dtext & ”where“ & wherestr
end if
tion = objconn
command = objcommxs_kc
tion = objconn
command = objcommxs
()
(objdsxs_kc, ”xs_kc“)
(objdsxs, ”xs“)
()
urce = (”xs_kc“)
urce = (”xs“)
end sub end class
3編輯學生信息菜單
public class form7
dim objds as new dataset
dim objxstable as datatable
dim objda as new ataadapter
dim wherestr as string
public sub refreshdata()
(objds, ”xs“)
()
bindgridview(wherestr)
end sub
public sub bindgridview(byval strxh as string)
dim objconn as new onnection
dim objcomm as new ommand
wherestr = ”“
if trim()<> ”“ then
wherestr = ” 學號like“ + trim()
end if
tionstring = ”provider=.4.0;data source='d:'“
dtext = ” select * from xs “
if wherestr <> ”“ then
dtext = dtext & ”where“ & wherestr
end if
'把objconn設置為objconn的數據連接
tion = objconn
command = objcomm
'創建insert command
dim inscommand as new ommand(”insert into xs(學號,姓名,專業名,性別,出生日期,總學分,備注)values(?,?,?,?,?,?,?)“, objconn)
(”學號“, r, 6, ”學號“)
(”姓名“, r, 8, ”姓名“)
(”專業名“, r, 10, ”專業名“)
(”性別“, r, 2, ”性別“)
(”出生日期“, , nothing, ”出生日期“)
(”總學分“, r, nothing, ”總學分“)
(”備注“, r, nothing, ”備注“)
command = inscommand
'創建delte command
dim delcommand as new ommand(”delete * from xs where 學號=?“, objconn)
(”學號“, , 6, ”學號“)
command = delcommand
'創建update command
dim updcommand as new ommand(”update xs set 學號=?,姓名=?,專業名=?,性別=?,出生日期=?,總學分=?,備注=? where 學號=?“, objconn)
(”學號“, r, 6, ”學號“)
(”姓名“, r, 8, ”姓名“)
(”專業名“, r, 10, ”專業名“)
(”性別“, r, 2, ”性別“)
(”出生日期“, , nothing, ”出生日期“)
(”總學分“, r, nothing, ”總學分“)
(”備注“, r, nothing, ”備注“)
(”學號“, r, 6, ”學號“)
command = updcommand
()
'打開數據庫連接
(objds, ”xs“)'填充數據
objxstable = (”xs“)
()
'關閉數據集
'把datagrid1的datasource屬性設置為剛剛取到的數據表,這樣就可以顯示數據了
urce = (”xs“)
end sub
private sub datagridview1_cellcontentclick(byval sender as , byval e as idviewcelleventargs)handles ntentclick
= (0).ng '顯示學號
= (1).ng '顯示姓名
= (2).ng '顯示專業
= (3).ng '顯示性別
= (4).ng '顯示出生日期
= (5).ng '顯示總學分
= (6).ng '顯示備注
end sub
private sub button1_click(byval sender as , byval e as rgs)handles
dim objconn as new onnection
dim objdaxs as new ataadapter
dim objcommxs as new ommand
dim objdsxs as new dataset
dim wherestr as string
wherestr = ”“
if trim()<> ”“ then
wherestr = ” 學號like “ + trim()
end if
tionstring = ”provider = .4.0;data source = 'd:'“
dtext = ” select * from xs “
if wherestr <> ”“ then
dtext = dtext & ”where“ & wherestr
end if
tion = objconn
command = objcommxs
()
(objdsxs, ”xs“)
()
urce = (”xs“)
end sub
private sub form7_load(byval sender as , byval e as rgs)handles
wherestr = ”“
bindgridview(wherestr)
end sub
private sub butadd_click(byval sender as , byval e as rgs)handles
dim response as msgboxresult
response = msgbox(”確定要添加記錄嗎?“, vbokcancel + vbquestion, ”系統提示“)
if response = then
dim myrow as datarow = ()
myrow(”學號“)=
myrow(”姓名“)=
myrow(”專業名“)=
myrow(”性別“)=
myrow(”出生日期“)=
myrow(”總學分“)=
myrow(”備注“)=
(myrow)
refreshdata()
end if
end sub
private sub butedit_click(byval sender as , byval e as rgs)handles
dim response as msgboxresult
response = msgbox(”確定要修改記錄嗎?“, vbokcancel + vbquestion, ”系統提示“)
if response = then '用戶選擇“確定”
'修改學號
().item(0)=
'修改姓名
().item(1)=
'修改專業
().item(2)=
'修改性別
().item(3)=
'修改出生日期
().item(4)=
'修改總學分
().item(5)=
'修改備注
().item(6)=
refreshdata()'更新并刷新顯示
end if
end sub
private sub butdelete_click(byval sender as , byval e as rgs)handles
dim response as msgboxresult
response = msgbox(”確定要刪除記錄嗎?“, vbokcancel + vbquestion, ”系統提示“)
if response = then '用戶選擇“確定”
'除學生成績表當前記錄
().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 ataadapter
dim wherestr as string
public sub refreshdata()
(objds, ”xs_kc“)
()
bindgridview(wherestr)
end sub
public sub bindgridview(byval strxh as string)
dim objconn as new onnection
dim objcomm as new ommand
wherestr = ”“
if trim()<> ”“ then
wherestr = ” 學號like“ + trim()
end if
tionstring = ”provider=.4.0;data source='d:'“
dtext = ” select * from xs_kc “
if wherestr <> ”“ then
dtext = dtext & ”where“ & wherestr
end if
'把objconn設置為objconn的數據連接
tion = objconn
command = objcomm
'創建insert command
dim inscommand as new ommand(”insert into xs_kc(學號,課程號,成績,學分)values(?,?,?,?)“, objconn)
(”學號“, r, 6, ”學號“)
(”課程號“, r, 4, ”課程號“)
(”成績“, r, nothing, ”成績“)
(”學分“, r, nothing, ”學分“)
command = inscommand
'創建delte command
dim delcommand as new ommand(”delete * from xs_kc where 序號=?“, objconn)
(”序號“, , 6, ”序號“)
command = delcommand
'創建update command
dim updcommand as new ommand(”update xs_kc set 學號=?,課程號=?,成績=?,學分=? where 序號=?“, objconn)
(”學號“, r, 6, ”學號“)
(”課程號“, r, 4, ”課程號“)
(”成績“, r, nothing, ”成績“)
(”學分“, r, nothing, ”學分“)
(”序號“, r, nothing, ”序號“)
command = updcommand
()
'打開數據庫連接
(objds, ”xs_kc“)'填充數據
objxstable = (”xs_kc“)
()
'關閉數據集
'把datagrid1的datasource屬性設置為剛剛取到的數據表,這樣就可以顯示數據了
urce = (”xs_kc“)
end sub
private sub datagridview1_cellcontentclick(byval sender as , byval e as idviewcelleventargs)handles ntentclick
= (0).ng '顯示id
= (1).ng '顯示學號
= (2).ng '顯示課程號
= (3).ng '顯示成績
= (4).ng '顯示學分
end sub
private sub btnddd_click(byval sender as , byval e as rgs)handles
dim response as msgboxresult
response = msgbox(”確定要添加記錄嗎?“, vbokcancel + vbquestion, ”系統提示“)
if response = then
dim myrow as datarow = ()
myrow(”學號“)=
myrow(”課程號“)=
myrow(”成績“)=
myrow(”學分“)=
(myrow)
refreshdata()
end if
end sub
private sub btnedit_click(byval sender as , byval e as rgs)handles
dim response as msgboxresult
response = msgbox(”確定要修改記錄嗎?“, vbokcancel + vbquestion, ”系統提示“)
if response = then '用戶選擇“確定”
'修改學號
().item(1)=
'修改課程號
().item(2)=
' 修改成績
().item(3)=
'修改學分
().item(4)=
refreshdata()'更新并刷新顯示
end if
end sub
private sub btndelete_click(byval sender as , byval e as rgs)handles
dim response as msgboxresult
response = msgbox(”確定要刪除記錄嗎?“, vbokcancel + vbquestion, ”系統提示“)
if response = then '用戶選擇“確定”
'除學生成績表當前記錄
().delete()
refreshdata()'更新并刷新顯示
end if
end sub
private sub button1_click(byval sender as , byval e as rgs)handles
dim objconn as new onnection
dim objdaxs as new ataadapter
dim objcommxs as new ommand
dim objdsxs as new dataset
dim wherestr as string
wherestr = ”“
if trim()<> ”“ then
wherestr = ” 學號like “ + trim()
end if
tionstring = ”provider = .4.0;data source = 'd:'“
dtext = ” select * from xs_kc “
if wherestr <> ”“ then
dtext = dtext & ”where“ & wherestr
end if
tion = objconn
command = objcommxs
()
(objdsxs, ”xs_kc“)
()
urce = (”xs_kc“)
end sub
private sub form4_load(byval sender as , byval e as rgs)handles
wherestr = ”"
bindgridview(wherestr)
end sub end class
5.主菜單界面代碼
public class form2
private sub quitmenuitem_click(byval sender as , byval e as rgs)handles
()
end sub
private sub importscoremenuitem_click(byval sender as , byval e as rgs)handles
dim form4 as new form4
ent = me
state =
()
end sub
private sub updateinfomenuitem_click(byval sender as , byval e as rgs)handles
dim form7 as new form7
ent = me
state =
()
end sub
private sub selectinfomenuitem_click(byval sender as , byval e as rgs)handles
dim form6 as new form6
ent = me
state =
()
end sub
private sub cascademenuitem_click(byval sender as , byval e as rgs)handles
mdi(e)
end sub
private sub horizonmenuitem_click(byval sender as , byval e as rgs)handles
mdi(rizontal)
end sub
private sub verticalmenuitem_click(byval sender as , byval e as rgs)handles
mdi(rtical)
end sub
private sub aboutmenuitem_click(byval sender as , byval e as rgs)handles
dim form5 as new form5
ent = me
state =
()
end sub
private sub toolstripbutton1_click(byval sender as , byval e as rgs)handles
mclick()
end sub
private sub toolstripbutton2_click(byval sender as , byval e as rgs)handles toolstrip
mclick()
end sub
private sub toolstripbutton3_click(byval sender as , byval e as rgs)handles
mclick()
end sub
private sub toolstripbutton4_click(byval sender as , byval e as rgs)handles
mclick()
end sub
private sub toolstripbutton5_click(byval sender as , byval e as rgs)handles
mclick()
end sub
private sub toolstripbutton6_click(byval sender as , byval e as rgs)handles
mclick()
end sub
private sub toolstripstatuslabel1_click(byval sender as , byval e as rgs)handles
mclick()
end sub end class
八.參考文庫
百度文庫,百度知道
vb程序設計期末考試知識點總結篇二
期末成績處理課程設計報告(vb)編號:28
期末成績處理設計報告
一、設計思路
1.要達到的目的
①培養學生綜合利用vb語言進行程序設計的能力,主要是通過使用vb的標準控件,加深對控件的多個屬性的認識及如何使用屬性進行程序設計
2.關鍵問題的解決
① 設計一個具有兩個窗口的期末成績統計的小程序 ②其中第一個窗口完成:
學生人數和4門課成績的錄入,4門課的名稱及學生人數由用戶輸入。每錄入完一個學生成績后,將各門課成績寫入excel表格中。
打開excel表格查看寫入的數據是否
② 第二個窗口用來繪制描述各科目平均成績的柱形圖,界面中還應包含坐標系、圖表名稱、各科成績的平均分值、課程名稱及色塊
③ 對窗口1的4個文本框要求:在輸入成績之前,焦點要在第一個文本框中,且文本為可編輯狀態;當第一個文本框中輸入2位數據后,焦點自動移入下一個文本框中,且文本狀態和第一個相同 文本框中只允許輸入數字0、1、2、3、4、5、6、7、8、9及小數點“.”;文本框中文本的位數最大為2位 輸入學生成績時窗口上要提示輸入的是第幾個學生成績,并要求輸入最后一個學生成績后“寫入數組”控件隱藏
④ 全部學生成績輸入完成后,單擊“寫入excel文件”控件,把學生成績全部放在excel表格中,要求有字段名內容。
⑤ 單擊“打開excel文件”控件,將打開剛剛生成的excel表。
⑥ 單擊“繪制柱形圖”控件,打開第二個窗口,并顯示以課程平均分為依據的柱狀圖。
⑦ 要想結束程序,應單擊“退出”按鈕。
三、部分程序關鍵源代碼及注釋
private sub command2_click()'★創建excel對象
set xlapp = createobject(“ation”)'★打開已經存在的excel工件簿文件
set xlbook = ( & “”)'★設置excel對象可見(或不可見)'e = true '★設置活動工作表, sheet1表示表名,可以使用字符型變量代替。set xlsheet = eets(“sheet1”)(“a1:iv65536”).clear '★給excel對象中的表的單元格附值? '★保存 excel 文件 '★另存為
'(“文件名”)
期末成績處理課程設計報告(vb)編號:28
'★關閉工作簿
(true)'★結束 excel 對象 ' '★釋放xlapp對象 set xlapp = nothing msgbox “寫入excle成功” end sub private sub command3_click()'★創建excel對象
set xlapp = createobject(“ation”)'★打開已經存在的excel工件簿文件
set xlbook = ( & “”)'★設置excel對象可見(或不可見)e = true end sub
四、設計方案的完善及目前存在的問題
1.設計方案要完善的地方 ① 操作有點繁瑣 2.目前存在的問題
① 開始時出現錯誤,但不影響使用
五、本次設計的收獲及心得體會
加強了對vb的理解,讓我更加明白vb的實際作用。
六、對該題目和vb設計的意見和建議
1.對該題目的意見和建議
不要單個輸入,應該直接輸入多個同學的成績。2.對本次設計的意見和建議 難度應該降低點。
vb程序設計期末考試知識點總結篇三
學生成績管理系統一、功能描述
首先簡單地闡述本人所要實現系統的目的,然后應較詳細的敘述本系統所要實現的功能。
************ *******
二、概要設計
1、系統功能模塊框圖設計
根據功能描述,建立系統的體系結構,即將整個系統分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關系,并簡要說明各模塊的功能。
程序流程框圖如圖所示:(僅供參考)
圖1 程序流程圖
2、數據庫設計
包括數據庫的組成說明,數據庫中各表的結構說明(包括字段名、字段類型等),可以包含圖片例如下表:
表1 學生信息表
三、詳細設計
詳細說明主要窗體的實現過程,包括窗體的設計圖片及其上所包含的控件名和屬性設置;
詳細說明主要操作的代碼實現過程,包括過程間的調用關系(注:在此給出不完全代碼)。如下所示:
1、賬號登錄
帳號登錄模塊中登錄與注冊兩按鈕,單擊注冊會進入注冊模塊中,單擊登錄會進入系統進行下一步的操作,帳號文本框與數據庫相連接,當在帳號文本框輸入帳號后點擊登錄按鈕后,會在數據庫中進行查詢看數據庫中是否會有該帳號,且該帳號的密碼是否與密碼框中輸入的相同,如果相同會進入系統,如果不存在該賬號或密碼與帳號不相匹配,則會提示“帳號或密碼錯誤”,帳號文本框會得到焦點,讓重新輸入。
(1)窗體截圖(如圖2)
圖2 注冊窗體
(2)功能實現
2、學生信息查詢窗體
圖3 查詢窗體
四、調試中存在的問題及解決方法
包括調試過程中遇到的主要問題及采取的解決方法。例如:
1、注冊賬號出現的錯誤
數據庫中帳號被設為主鍵,當注冊時的帳號與數局庫中的帳號有相同時就會出錯。
2、解決方法:在寫入數據庫前先進行查詢數據庫
五、心得體會
本人在本次實習中取得的收獲、遇到的困難、如何面對和克服各種困難、本系統的不足之處,將要改進的思想等。
六、參考文獻
[1] basic 6.0程序設計教程(第3版).人民郵電出版社,2009年2月
[2] [3]
七、附錄
包括全部源程序清單(程序中應有足夠的注釋)。
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 = “zgzy” and = “11201” then 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() end sub private sub command10_click() end sub private sub command3_click() end sub private sub command4_click()
end sub private sub command5_click()
end sub private sub command6_click()
end sub private sub command7_click()
end sub private sub command8_click()
end sub private sub command9_click()
end sub
該界面代碼如下:
private sub command1_click() end sub
private sub command2_click()if count = 0 or then
exit sub end if xt if count = 0 then
exit sub end if if then st end sub
private sub command4_click() end sub
private sub command5_click()
unload me
end sub
該界面代碼如下: dim kc_條件 as string dim kc as string private sub command1_click()kc_條件 = 1 source = “select * from stu where ” + kc + “ ” + kc_條件 h 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_條件 = 1 source = “select * from stu where ” + kc + “='” + kc_條件 + “'” h end sub
private sub form_load()kc = “name” end sub
該界面代碼如下: dim kc_條件 as string dim kc as string private sub command1_click()kc_條件 = 1 source = “select * from stu where ” + kc + “='” + kc_條件 + “'” h 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
source = “select * from stu where vb>=90”
h
vb_a = count
1 = vb_a
source = “select * from stu where vb>=80 and vb<90”
h
vb_b = count
2 = vb_b
source = “select * from stu where vb>=70 and vb<80”
h
vb_c = count
3 = vb_c
source = “select * from stu where vb>=60”
h
vb_d = count
4 = vb_d
source = “select * from stu where vb<60”
h
vb_b = count
5 = vb_e
source = “select * from stu where math>=90”
h
math_a = count
6 = math_a
source = “select * from stu where math>=80 and math<90”
h
math_b = count
7 = math_b
source = “select * from stu where math>=70 and math<80”
h
math_c = count
8 = math_c
source = “select * from stu where math>=60 ”
h
math_d = count
9 = math_d
source = “select * from stu where math<60”
h
math_e = count
10 = math_e
source = “select * from stu where english>=90”
h
english_a = count
11 = english_a
source = “select * from stu where english>=80 and english<90”
h
english_b = count
12 = english_b
source = “select * from stu where english>=70 and english<80”
h
english_c = count
13 = english_c
source = “select * from stu where english>=60”
h
english_d = count
14 = english_d
source = “select * from stu where english<60”
h
english_e = count
15 = english_e end sub
private sub form_load()
= “"
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“
= ”“ end sub
代碼如下
private sub command1_click()'計算總分 dim vb as integer
dim math as integer dim english as integer rst for i = 1 to count
vb = me.(”vb“).value
math = me.(”math“).value
english = me.(”english“).value
me.(”total“).value = vb + math + english
xt next i end sub
private sub command2_click()'清除總分 rst for i = 1 to count
me.(”total“).value = null
xt next i end sub
該界面代碼如下:
private sub command1_click()source = ”select * from stu order by total desc“ h rst for i = 1 to count
me.(”mc“).value = i
xt
next i end sub
private sub command2_click()rst for i = 1 to count
me.(”mc“).value = null
xt next i end sub
該界面代碼如下:
private sub command1_click()
h
'填充表格數據
nt = 1
count = count
rst
for lngi = 1 to count
= lngi
'用data屬性向mschart數據網格填充數據
= val((”vb“).value)
label = (”name“).value
xt
next lngi
el = ”vb成績直方圖“ end sub
private sub command2_click()h
'填充表格數據
nt = 1
count = count
rst
for lngi = 1 to count
= lngi
'用data屬性向mschart數據網格填充數據
= val((”math“).value)
label = (”name“).value
xt
next lngi
el = ”math成績直方圖“ end sub
該界面代碼如下
private sub command1_click()dim vb as integer dim math as integer dim english as integer
source = ”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)" h end sub
四、總結和體會
經過好幾天的努力我的課程設計終于完成了。在沒有做課程設計以前覺得課程設計好難,我可能做不了,但是通過這次做課程設計發現自己錯了。課程設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高,它并不可怕。通過這次課程設計使我明白了自己原來知識還比較欠缺,自己要學習的東西還太多,以前上課沒怎么認真聽,現在知道它重要了,幸好為時不晚,我以后要更加的努力學好vb。在這次課程設計中也使我們的同學關系更進一步了,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學。此外,還得出一個結論:世上無難事,只怕有心人。
在設計過程中,我通過查閱有關資料,與同學交流經驗和自學等方式,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。在整個設計中我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創造過程中探索的艱難和成功時的喜悅。雖然這個設計做的也不太好,但是在設計過程中所學到的東西是這次課程設計的最大收獲和財富,使我終身受益。
vb程序設計期末考試知識點總結篇五
visual basic課程設計報告
題目1: 貪吃蛇 難度:**** 題目2: 難度: 指導教師:
姓 名: 學 號: 專 業: 班 級: 學 院:
日 期:
目錄
1、題目簡介...................................................................................................錯誤!未定義書簽。
2、設計思路與總體方案.................................................................................................................3
2.1 【設計】...................................................................................................3 【設計】..................................................................................................11 【設計】..................................................................................................14 2.4 【設計】.................................................................................................14 【設計】....................................................................................................【設計】..................................................................錯誤!未定義書簽。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 【設計】
這是主界面,但也是最難的環節,之后要用到的控件與顯示都要在其基礎上發展。首先我們要將背景網格和蛇身畫出來,由于受到了動態添加控件的啟發,我用了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 acks public a(num)as ovalshape ‘a()為定義蛇身的數組,變量num用來記錄蛇身個數
public line(41)as lineshape dim canvas = new ontainer
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 = a(i).fillcolor = a(i).parent = canvas next
a(0).fillcolor = ‘給蛇上色 a(0).backcolor = dim i as integer
= 1 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 ntargs)handles n select case e 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 = 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
d = false a(0).fillcolor = 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, )' 讀取墻壁,形成迷宮 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 = 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 , byval e as rgs)handles if d = false then d = true
exit sub
end if
if d = true then d = false
end if
end sub
private sub 新開局toolstripmenuitem_click(byval sender as , byval e as rgs)handles call initialize()end sub
private sub 關于toolstripmenuitem_click(byval sender as , byval e as rgs)handles msgbox(“貪吃蛇vb2010.2016.3.20”, 64, “版本說明”)end sub
private sub 幫助toolstripmenuitem1_click(byval sender as , byval e as rgs)handles ()end sub
private sub 設置toolstripmenuitem_click(byval sender as , byval e as rgs)handles ()end sub
private sub 退出toolstripmenuitem_click(byval sender as , byval e as rgs)handles
end
end sub
private sub 排行榜toolstripmenuitem_click(byval sender as , byval e as rgs)handles ()end sub
【設計】
這個界面是第二重要的,當然它的設計也較麻煩。設計的障礙物的類型用到了listbox控件,也用到了菜單欄與picturebox控件。中的類似,因此方便好多。
private sub form2_load(byval sender as , byval e as rgs)handles (“方盒形”)(“隧道形”)(“螺旋形”)(“路障形”)(“彎曲形”)(“怪異形”)(“無障礙形”)lor = ay lor = = lifetime call shapeview()end sub private sub listbox1_selectedindexchanged(byval sender as object, byval e as rgs)handles edindexchanged
if edindex = 0 then filelacation = “” filename = “方盒形” mazenum = 1 end if
if edindex = 1 then filelacation = “” filename = “隧道形” mazenum = 2 end if
if edindex = 2 then filelacation = “” filename = “螺旋形”
mazenum = 3 end if
if edindex = 3 then filelacation = “” filename = “路障形” mazenum = 4 end if
if edindex = 4 then filelacation = “” filename = “彎曲形” mazenum = 5 end if
if edindex = 5 then filelacation = “” filename = “怪異形” mazenum = 6 end if
if edindex = 6 then
filelacation = “” filename = “無障礙形” mazenum = 7 end if
for k = 1 to oldnum121)line1(i).x2 = 10 *(“
'musicname = ”“
(orypath & ”“)end if
end sub
private sub radiobutton6_checkedchanged(byval sender as , byval e as rgs)handles dchanged if d = true then
'()
()end if
end sub end class
[設計】
此窗體用來調節蛇運動的快慢程度。
private sub trackbar1_scroll(byval sender as , byval e as rgs)handles
dim v as integer v = timeinterval = 500 /(2 ^ v) = end sub
[設計】
此窗體用來顯示玩家的成績,用到了listbox控件來顯示成績,點擊清除所有記錄可還原,recordlist()用來記錄文件中的每一行。public class form6
public sub form6_load(byval sender as , byval e as rgs)handles for i = 1 to 7 (list(i))next
end sub
private sub button1_click(byval sender as , byval e as rgs)handles ()fileopen(1, orypath & ”“, )for i = 1 to 7 list(i)= lineinput(1)(list(i))next
fileclose(1)end sub
private sub button2_click(byval sender as , byval e as rgs)handles ()end sub end class
2.8標準模塊
定義各種變量
imports acks module module1
public barriercolor as = ay
‘記錄障礙物的顏色
public panalcolor as = ‘記錄面板的顏色
public oldnum as integer
public oldnum1 as integer
public bnum1 as integer
public filelacation as string = ”“
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代碼,令我欣慰的是竟然成功了。
3.3下一個是如何在界面上顯示出障礙物。根據所提供的文件夾,了解起大概用法,為了讓我編程更容易,我對其文件做了一定的修改。
3.4最難的是過程之間的調用與聯系,解決的辦法就是不斷的進行調試,修改。比如在我編寫重新開局的菜單代碼時總是會出現兩只蛇;這行代碼,因此我得另辟蹊徑。
4、設計中尚存的不足分析
4.1由于我采用的編寫方法是將完成這個貪吃蛇游戲所需滿足的要求分開,一個一個的進行攻破,我會發現越往后編寫越要考慮到之前的內容,在解決程序之間的關系會越麻煩,調試的次數更多。而且編完后縱觀全局會發現代碼的結構較混亂,重復性高,他人難以看的明白。
4.2 在定義變量時我盡量定義其為全局變量和模塊級變量。部分變量為了簡單或難以翻譯為英文的僅僅使用了字母代替,對讀代碼有一定困難。
4.3 我所犯下的最大錯誤就是使用控件來顯示蛇,因為在運行程序時蛇身會隨著長度的增加閃爍的愈發厲害。可能是控件太多,程序運行不流暢,效率不高。
4.4 我想在游戲中添加一些音樂,并且用到了循環播放的代碼,但是至今我還是沒有想到如何能將播放中的音樂暫停。還有的就是怎樣才能同時播放兩種聲音。
4.5 對于排行榜的編寫存在一些問題,比如:怎樣才能使顯示的行間距更開;如何才能使所顯示的各項指標在其對應的列下,在這一點上有很大的缺陷。可能程序要用到dictionary方法。
4.6 當我運行程序時,如果我點了界面上的某條線的話,蛇就不再響應鍵盤事件了,必須使用ctrl+方向鍵才能使其響應鍵盤事件。應該是我點擊時失去了焦點導致無法正常運行。
5、心得體會
這個程序從難度上講足足有四顆星,因此我想說我確實摸索了很久,從界面的制作排版到代碼的編寫。由于計算機編程知識當初只學了些皮毛,很多次我在編程時不斷調試卻依然出現這樣那樣的毛病,可能是無意中拼寫錯誤,但有些確實是因為不了解vb的某些較為冷僻的用法所致。這段時間,常會向同學請教,也自覺地去借了些書看看,基本上完成了要求,但是功能、界面都還不是很完善,我會借助以后的時間繼續去加工的,我需要的是學以致用。
我體會到了編寫程序是個有條理的邏輯過程,首先必須有個大致的思路,整體的規劃出來。然后再是分步地去具體完成,尤為重要的是需要投入相當一部分精力去精益求精,這樣你的成果才不會是毛糙的。思維調動是件另人愉快的事情,而我們應該去學會享受腦力勞動的過程,哪怕是一次次地失利。這就是2個月的課程設計所教會我的。
6、參考文獻
[2].王棟,visual basic程序設計實用教程,北京,清華大學出版社
【本文地址:http://www.zsatt.com/zuowen/2621459.html】