vb教務(wù)管理信息系統(tǒng)_第1頁
vb教務(wù)管理信息系統(tǒng)_第2頁
vb教務(wù)管理信息系統(tǒng)_第3頁
vb教務(wù)管理信息系統(tǒng)_第4頁
vb教務(wù)管理信息系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGEPAGE17目錄1.系統(tǒng)任務(wù)的提出和功能說明 11.1 任務(wù)的提出 11.2 系統(tǒng)軟件運(yùn)行的硬件和軟件要求 11.3 系統(tǒng)主要功能說明 11.4 系統(tǒng)結(jié)構(gòu)圖 22.軟件系統(tǒng)的設(shè)計(jì)方法及屬性、事件代碼 22.1 數(shù)據(jù)結(jié)構(gòu) 22.2 功能模塊 32.2.1 登錄界面的設(shè)計(jì) 32.2.2 主窗體的設(shè)計(jì) 62.2.3 “系統(tǒng)”各子菜單程序的設(shè)計(jì) 82.2.4 “學(xué)籍管理”程序的設(shè)計(jì) 103.程序調(diào)試及故障分析 171.系統(tǒng)任務(wù)的提出和功能說明任務(wù)的提出隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)已被廣泛的用于社會(huì)的各個(gè)領(lǐng)域,成為推動(dòng)社會(huì)發(fā)展的技術(shù)動(dòng)力。而在計(jì)算機(jī)應(yīng)用中,軟件的作用十分突出,軟件已經(jīng)發(fā)展成為信息技術(shù)的核心,主導(dǎo)著信息產(chǎn)品的開發(fā)和信息技術(shù)市場的進(jìn)一步的開拓。軟件產(chǎn)業(yè)已成為社會(huì)信息化進(jìn)程中的一個(gè)戰(zhàn)略性產(chǎn)業(yè)。在軟件技術(shù)的應(yīng)用中,軟件的開發(fā)技術(shù)尤其是應(yīng)用型軟件產(chǎn)品的開發(fā)技術(shù)成了重中之重。不斷開發(fā)適應(yīng)用戶需求、市場需要的新型軟件產(chǎn)品迫在眉睫。隨著社會(huì)的發(fā)展,軟件也在不斷的更新?lián)Q代。計(jì)算機(jī)領(lǐng)域不斷取得的新研究成果使計(jì)算機(jī)在代替和延伸腦力勞動(dòng)方面發(fā)揮越來越重要的作用,不僅在工業(yè)方面而且在日常生活中也越來越離不開計(jì)算機(jī)。尤其是在學(xué)校里,要處理大量的學(xué)生數(shù)據(jù)。在數(shù)字化的今天,使用教務(wù)管理信息系統(tǒng)能使學(xué)校對(duì)學(xué)生數(shù)據(jù)的管理更加簡單、到位,可大大的減輕管理人員的負(fù)擔(dān),實(shí)現(xiàn)高效辦公。系統(tǒng)軟件運(yùn)行的硬件和軟件要求一臺(tái)個(gè)人電腦,安裝了MicrosoftSQLServer數(shù)據(jù)庫管理軟件系統(tǒng)主要功能說明本教務(wù)管理信息系統(tǒng)可實(shí)現(xiàn)學(xué)生基本信息、成績信息、課程信息、學(xué)院信息、選課信息、學(xué)籍信息等的錄入、修改、查詢、更新和刪除。程序分為以下四個(gè)模塊:用戶注冊(cè)信息管理、學(xué)籍管理、班級(jí)管理、成績管理功能模塊。系統(tǒng)結(jié)構(gòu)圖登錄模塊登錄模塊系統(tǒng)模塊學(xué)籍管理班級(jí)管理成績管理幫助修改密碼添加用戶退出系統(tǒng)添加學(xué)籍信息修改學(xué)籍信息查詢學(xué)籍信息……2.軟件系統(tǒng)的設(shè)計(jì)方法及屬性、事件代碼數(shù)據(jù)結(jié)構(gòu)用sqlserver2000建立數(shù)據(jù)庫教務(wù)管理信息系統(tǒng),包含有Userid、Class、Student、Score四個(gè)表,表的結(jié)構(gòu)如下所示:Userid表的結(jié)構(gòu):Class表的結(jié)構(gòu):Student表的結(jié)構(gòu):Score表的結(jié)構(gòu):功能模塊登錄界面的設(shè)計(jì)1、登錄界面的窗體如下:注意:將兩個(gè)textbox控件的name屬性修改為txtusername、txtuserpassword。2、使用“解決方案資源管理器”在當(dāng)前項(xiàng)目中增加一個(gè)模塊,名為module1.vb,模塊中的程序代碼如下:ImportsSystem.Data.SqlClientModulemodule1PublicadocmdAsSqlDataAdapterPublicdsAsDataSet=NewDataSet()'建立dataset對(duì)象PublicmytableAsDataTable'建立表對(duì)象PublicmyrowAsDataRow'建立數(shù)據(jù)行對(duì)象PublicrownumberAsInteger'定義一個(gè)整型變量來存放當(dāng)前行數(shù)PublicsearchsqlAsStringPubliccmdAsSqlCommandBuilder'定義一個(gè)判斷字符串是否為空的函數(shù)PublicFunctiontesttxt(ByValtxtAsString)AsBooleanIfTrim(txt)=""Thentesttxt=FalseElsetesttxt=TrueEndIfEndFunction'定義一個(gè)執(zhí)行sql語句的函數(shù)PublicSubexecutesql(ByValsqlAsString,ByValtableAsString)TryDimconstrAsStringconstr="server=localhost;database=教務(wù)管理信息系統(tǒng);integratedsecurity=true"adocmd=NewSqlDataAdapter(sql,constr)ds.Clear()ds.Tables.Clear()adocmd.Fill(ds,table)mytable=ds.Tables.Item(0)'取得名為table的表rownumber=0'設(shè)置為第一行myrow=mytable.Rows.Item(rownumber)'取得第一行數(shù)據(jù)CatchexAsExceptionMsgBox(Err.Description)EndTryEndSubEndModule3、在txtusername的validating事件中寫入代碼:Iftxtusername.Text=""ThenErrorProvider1.SetError(txtusername,"用戶名不能為空")ElseErrorProvider1.SetError(txtusername,"")EndIf4、在txtuserpassword的passwordchar屬性改為*,在其validating事件過程中寫入代碼:Iftxtuserpassword.Text=""ThenErrorProvider1.SetError(txtuserpassword,"密碼不能為空")ElseErrorProvider1.SetError(txtuserpassword,"")EndIf5、在“確定”命令按鈕的click事件過程中驗(yàn)證用戶名和密碼,其代碼如下:DimtablenameAsStringtablename="userid"searchsql="select用戶名,密碼fromuseridwhere(用戶名='"&txtusername.Text&"')"Trymodule1.executesql(searchsql,tablename)'比較輸入的密碼和數(shù)據(jù)庫的密碼Ifmodule1.myrow.Item(1)=txtuserpassword.TextThenDimnewfrmmainAsNewfrmmain()newfrmmain.show()Me.Hide()ElseExitSubEndIfCatchexAsExceptionMsgBox("沒有該用戶",vbOKOnly+vbExclamation,"警告")EndTry6、在“取消“按鈕的click事件中寫入代碼:Me.Dispose()主窗體的設(shè)計(jì)1、在當(dāng)前項(xiàng)目中增加一個(gè)窗體frmmain,作為主窗體,界面如下:注意:將frmmain的ismdicontainer屬性改為true。2、在“系統(tǒng)”菜單中包含的子菜單如圖所示:3、在“學(xué)籍管理”菜單中包含的子菜單如圖所示:4、在“班級(jí)管理”菜單中包含的子菜單如圖所示:5、在“成績管理”菜單中包含的子菜單如圖所示:“系統(tǒng)”各子菜單程序的設(shè)計(jì)1、設(shè)計(jì)“修改密碼”窗體eq\o\ac(○,1)新增加一個(gè)名為frmmodifyuserpassword的窗體,如圖所示:eq\o\ac(○,2)在“確定”按鈕的click事件過程中寫入代碼:DimtablenameAsStringtablename="userid"searchsql="select用戶名,密碼fromuseridwhere(用戶名='"&txtusername.Text&"')"Trymodule1.executesql(searchsql,tablename)Ifmodule1.myrow.Item(1)=txtuserpassword.TextThenmodule1.myrow.Item(1)=txtnewpassword.Textmodule1.mytable.GetChanges()module1.cmd=NewSqlCommandBuilder(module1.adocmd)module1.adocmd.Update(module1.ds,tablename)MsgBox("密碼修改成功!",vbOKOnly+vbExclamation,"警告")Me.Hide()ElseExitSubEndIfCatchexAsExceptionMsgBox("沒有該用戶",vbOKOnly+vbExclamation,"警告")EndTryeq\o\ac(○,3)在“取消“按鈕的click事件中寫入代碼:Me.Dispose()eq\o\ac(○,4)在“修改密碼”子菜單的click事件過程中寫入代碼:DimnewfrmmodifyuserpasswordAsNewfrmmodifyuserpasswordnewfrmmodifyuserpassword.Show()2、設(shè)計(jì)“添加用戶”窗體eq\o\ac(○,1)新增加一個(gè)名為frmadduser的窗體,如圖所示:eq\o\ac(○,2)在“確定”按鈕的click事件過程中寫入代碼:DimtablenameAsString="userid"Iftxtuserpassword.Text<>txtcomfirmpassword.TextThenMsgBox("前后兩次輸入的密碼不一致"+Chr(10)+"請(qǐng)重試",vbOKOnly+-vbExclamation,"警告")ExitSubEndIfsearchsql="select*fromuserid"module1.executesql(searchsql,tablename)DimnewrowAsDataRownewrow=module1.mytable.NewRownewrow.Item(0)=Trim(txtusername.Text)'給第一個(gè)字段賦值newrow.Item(1)=Trim(txtuserpassword.Text)'給第二個(gè)字段賦值mytable.Rows.Add(newrow)'添加新用戶module1.cmd=NewSqlCommandBuilder(module1.adocmd)'使用自動(dòng)生成的sql語句module1.adocmd.Update(module1.ds,tablename)'對(duì)數(shù)據(jù)庫進(jìn)行更新MsgBox("添加用戶成功!",vbOKOnly+vbExclamation,"信息框")eq\o\ac(○,3)在“添加用戶”子菜單的click事件過程中寫入代碼:DimnewfrmadduserAsNewfrmadduser()'窗體類對(duì)象化newfrmadduser.Show()'顯示窗體eq\o\ac(○,4)在“退出”子菜單的click事件過程中寫入代碼:Endeq\o\ac(○,5)在“取消“按鈕的click事件中寫入代碼:Me.Dispose()“學(xué)籍管理”程序的設(shè)計(jì)1、設(shè)計(jì)“添加學(xué)籍信息”窗體eq\o\ac(○,1)新增加一個(gè)名為frmaddstinfo的窗體,如圖所示:eq\o\ac(○,2)設(shè)置“性別”選擇框的item屬性為“男”、“女”,“班級(jí)”選擇框的item屬性為“初一”、“初二”、“初三”、“高一”、“高二”、“高三”。eq\o\ac(○,3)在“確認(rèn)添加”命令按鈕的click事件過程中寫入代碼:IfNotIsNumeric(Trim(txtsid.Text))ThenMsgBox("請(qǐng)輸入數(shù)字!",vbOKOnly+vbExclamation,"警告")txtsid.Focus()'學(xué)號(hào)必須為數(shù)字ExitSubEndIfIfNotIsNumeric(txttel.Text)ThenMsgBox("請(qǐng)輸入聯(lián)系電話",vbOKOnly+vbExclamation,"警告")txttel.Focus()'電話不能為空ExitSubEndIfIfNotIsDate(txtrudate.Text)ThenMsgBox("入校時(shí)間應(yīng)輸入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtrudate.Focus()'入校日期不能為空ExitSubEndIfDimtablenameAsString="student"searchsql="select*fromstudent"module1.executesql(searchsql,tablename)DimnewrowAsDataRownewrow=module1.mytable.NewRownewrow.Item(0)=Trim(txtsid.Text)newrow.Item(1)=Trim(txtname.Text)newrow.Item(2)=Trim(combosex.Text)newrow.Item(3)=Trim(txtborndate.Text)newrow.Item(4)=Trim(comboclassno.Text)newrow.Item(5)=Trim(txttel.Text)newrow.Item(6)=Trim(txtrudate.Text)newrow.Item(7)=Trim(txtaddress.Text)newrow.Item(8)=Trim(txtcomment.Text)mytable.Rows.Add(newrow)module1.cmd=NewSqlCommandBuilder(module1.adocmd)Trymodule1.adocmd.Update(module1.ds,"student")MsgBox("添加學(xué)籍信息成功!",vbOKOnly+vbExclamation,"警告")CatchexAsExceptionMsgBox(Err.Description)EndTryeq\o\ac(○,4)在“取消添加”命令按鈕的click事件過程中寫入代碼:Me.Dispose()eq\o\ac(○,5)在“添加學(xué)籍信息”子菜單的click事件過程中寫入代碼:DimnewaddstinfoAsNewfrmaddstinfo()newaddstinfo.MdiParent=Me'設(shè)置為主窗體的子窗體newaddstinfo.Show()2、設(shè)計(jì)“修改學(xué)籍信息”窗體eq\o\ac(○,1)新增加一個(gè)名為frmmodifystinfo的窗體,如圖所示:eq\o\ac(○,2)在frmmodifystinfo的load事件過程中寫入代碼:txtsid.Enabled=Falsetxtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'設(shè)置信息為只讀DimtablenameAsString="student"searchsql="select*fromstudent"module1.executesql(searchsql,tablename)showdata()eq\o\ac(○,3)在窗口代碼區(qū)中定義顯示數(shù)據(jù)的函數(shù)showdata():PrivateSubshowdata()module1.myrow=module1.mytable.Rows.Item(rownumber)txtsid.Text=module1.myrow.Item(0).ToStringtxtname.Text=module1.myrow.Item(1).ToStringcombosex.Text=module1.myrow.Item(2).ToStringtxtborndate.Text=module1.myrow.Item(3).ToStringtxtclassno.Text=module1.myrow.Item(4).ToStringtxttel.Text=module1.myrow.Item(5).ToStringtxtrudate.Text=module1.myrow.Item(6).ToStringtxtaddress.Text=module1.myrow.Item(7).ToStringtxtcomment.Text=module1.myrow.Item(8).ToStringEndSubeq\o\ac(○,4)在“第一條記錄”按鈕的click事件過程中寫入代碼:rownumber=0showdata()eq\o\ac(○,5)在“上一條記錄”按鈕的click事件過程中寫入代碼:btnext.Enabled=Truerownumber=rownumber-1Ifrownumber<0Thenrownumber=0btprev.Enabled=FalseEndIfshowdata()eq\o\ac(○,6)在“下一條記錄”按鈕的click事件過程中寫入代碼:btprev.Enabled=Truerownumber=rownumber+1Ifrownumber>module1.mytable.Rows.Count-1Thenrownumber=module1.mytable.Rows.Count-1btnext.Enabled=FalseEndIfshowdata()eq\o\ac(○,7)在“最后一條記錄”按鈕的click事件過程中寫入代碼:rownumber=module1.mytable.Rows.Count-1showdata()eq\o\ac(○,8)在“修改記錄”按鈕的click事件過程中寫入代碼:txtsid.Enabled=False'關(guān)鍵字段只讀txtname.Enabled=Truecombosex.Enabled=Truetxtborndate.Enabled=Truetxtclassno.Enabled=Truetxtrudate.Enabled=Truetxttel.Enabled=Truetxtaddress.Enabled=Truetxtcomment.Enabled=Trueeq\o\ac(○,9)在“更新記錄”按鈕的click事件過程中寫入代碼:IfNottesttxt(txtname.Text)ThenMsgBox("請(qǐng)輸入姓名!",vbOKOnly+vbExclamation,"警告")txtname.Focus()ExitSubEndIfIfNottesttxt(combosex.Text)ThenMsgBox("請(qǐng)輸入性別!",vbOKOnly+vbExclamation,"警告")combosex.Focus()ExitSubEndIfIfNottesttxt(txtclassno.Text)ThenMsgBox("請(qǐng)輸入班號(hào)!",vbOKOnly+vbExclamation,"警告")txtclassno.Focus()ExitSubEndIfIfNottesttxt(txttel.Text)ThenMsgBox("請(qǐng)輸入聯(lián)系電話!",vbOKOnly+vbExclamation,"警告")txttel.Focus()ExitSubEndIfIfNottesttxt(txtaddress.Text)ThenMsgBox("請(qǐng)輸入家庭住址!",vbOKOnly+vbExclamation,"警告")txtaddress.Focus()ExitSubEndIfIfNotIsNumeric(Trim(txtsid.Text))ThenMsgBox("請(qǐng)輸入數(shù)字學(xué)號(hào)!",vbOKOnly+vbExclamation,"警告")txtsid.Focus()ExitSubEndIfIfNotIsDate(txtborndate.Text)ThenMsgBox("出生時(shí)間應(yīng)輸入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtborndate.Focus()ExitSubEndIfIfNotIsDate(txtrudate.Text)ThenMsgBox("入校時(shí)間應(yīng)輸入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtrudate.Focus()'入校日期不能為空ExitSubEndIfmodule1.myrow.Item(0)=Trim(txtsid.Text)module1.myrow.Item(1)=Trim(txtname.Text)module1.myrow.Item(2)=Trim(combosex.Text)module1.myrow.Item(3)=Trim(txtborndate.Text)module1.myrow.Item(4)=Trim(txtclassno.Text)module1.myrow.Item(5)=Trim(txttel.Text)module1.myrow.Item(6)=Trim(txtrudate.Text)module1.myrow.Item(7)=Trim(txtaddress.Text)module1.myrow.Item(8)=Trim(txtcomment.Text)module1.mytable.GetChanges()module1.cmd=NewSqlCommandBuilder(module1.adocmd)module1.adocmd.Update(module1.ds,"student")MsgBox("修改學(xué)籍信息成功!",vbOKOnly+vbExclamation,"警告")txtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'重新設(shè)置信息為只讀eq\o\ac(○,10)在“取消記錄”按鈕的click事件過程中寫入代碼:txtsid.Enabled=Falsetxtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'設(shè)置信息為只讀eq\o\ac(○,11)在“刪除記錄”按鈕的click事件過程中寫入代碼:module1.mytable.Rows.Item(rownumber).Delete()IfMsgBox

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論