




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE17目錄1.系統(tǒng)任務(wù)的提出和功能說(shuō)明 11.1 任務(wù)的提出 11.2 系統(tǒng)軟件運(yùn)行的硬件和軟件要求 11.3 系統(tǒng)主要功能說(shuō)明 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ù)的提出和功能說(shuō)明任務(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)品的開(kāi)發(fā)和信息技術(shù)市場(chǎng)的進(jìn)一步的開(kāi)拓。軟件產(chǎn)業(yè)已成為社會(huì)信息化進(jìn)程中的一個(gè)戰(zhàn)略性產(chǎn)業(yè)。在軟件技術(shù)的應(yīng)用中,軟件的開(kāi)發(fā)技術(shù)尤其是應(yīng)用型軟件產(chǎn)品的開(kāi)發(fā)技術(shù)成了重中之重。不斷開(kāi)發(fā)適應(yīng)用戶需求、市場(chǎng)需要的新型軟件產(chǎn)品迫在眉睫。隨著社會(huì)的發(fā)展,軟件也在不斷的更新?lián)Q代。計(jì)算機(jī)領(lǐng)域不斷取得的新研究成果使計(jì)算機(jī)在代替和延伸腦力勞動(dòng)方面發(fā)揮越來(lái)越重要的作用,不僅在工業(yè)方面而且在日常生活中也越來(lái)越離不開(kāi)計(jì)算機(jī)。尤其是在學(xué)校里,要處理大量的學(xué)生數(shù)據(jù)。在數(shù)字化的今天,使用教務(wù)管理信息系統(tǒng)能使學(xué)校對(duì)學(xué)生數(shù)據(jù)的管理更加簡(jiǎn)單、到位,可大大的減輕管理人員的負(fù)擔(dān),實(shí)現(xiàn)高效辦公。系統(tǒng)軟件運(yùn)行的硬件和軟件要求一臺(tái)個(gè)人電腦,安裝了MicrosoftSQLServer數(shù)據(jù)庫(kù)管理軟件系統(tǒng)主要功能說(shuō)明本教務(wù)管理信息系統(tǒng)可實(shí)現(xiàn)學(xué)生基本信息、成績(jī)信息、課程信息、學(xué)院信息、選課信息、學(xué)籍信息等的錄入、修改、查詢、更新和刪除。程序分為以下四個(gè)模塊:用戶注冊(cè)信息管理、學(xué)籍管理、班級(jí)管理、成績(jī)管理功能模塊。系統(tǒng)結(jié)構(gòu)圖登錄模塊登錄模塊系統(tǒng)模塊學(xué)籍管理班級(jí)管理成績(jī)管理幫助修改密碼添加用戶退出系統(tǒng)添加學(xué)籍信息修改學(xué)籍信息查詢學(xué)籍信息……2.軟件系統(tǒng)的設(shè)計(jì)方法及屬性、事件代碼數(shù)據(jù)結(jié)構(gòu)用sqlserver2000建立數(shù)據(jù)庫(kù)教務(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è)整型變量來(lái)存放當(dāng)前行數(shù)PublicsearchsqlAsStringPubliccmdAsSqlCommandBuilder'定義一個(gè)判斷字符串是否為空的函數(shù)PublicFunctiontesttxt(ByValtxtAsString)AsBooleanIfTrim(txt)=""Thentesttxt=FalseElsetesttxt=TrueEndIfEndFunction'定義一個(gè)執(zhí)行sql語(yǔ)句的函數(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事件過(guò)程中寫入代碼:Iftxtuserpassword.Text=""ThenErrorProvider1.SetError(txtuserpassword,"密碼不能為空")ElseErrorProvider1.SetError(txtuserpassword,"")EndIf5、在“確定”命令按鈕的click事件過(guò)程中驗(yàn)證用戶名和密碼,其代碼如下:DimtablenameAsStringtablename="userid"searchsql="select用戶名,密碼fromuseridwhere(用戶名='"&txtusername.Text&"')"Trymodule1.executesql(searchsql,tablename)'比較輸入的密碼和數(shù)據(jù)庫(kù)的密碼Ifmodule1.myrow.Item(1)=txtuserpassword.TextThenDimnewfrmmainAsNewfrmmain()newfrmmain.show()Me.Hide()ElseExitSubEndIfCatchexAsExceptionMsgBox("沒(méi)有該用戶",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、在“成績(jī)管理”菜單中包含的子菜單如圖所示:“系統(tǒng)”各子菜單程序的設(shè)計(jì)1、設(shè)計(jì)“修改密碼”窗體eq\o\ac(○,1)新增加一個(gè)名為frmmodifyuserpassword的窗體,如圖所示:eq\o\ac(○,2)在“確定”按鈕的click事件過(guò)程中寫入代碼: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("沒(méi)有該用戶",vbOKOnly+vbExclamation,"警告")EndTryeq\o\ac(○,3)在“取消“按鈕的click事件中寫入代碼:Me.Dispose()eq\o\ac(○,4)在“修改密碼”子菜單的click事件過(guò)程中寫入代碼:DimnewfrmmodifyuserpasswordAsNewfrmmodifyuserpasswordnewfrmmodifyuserpassword.Show()2、設(shè)計(jì)“添加用戶”窗體eq\o\ac(○,1)新增加一個(gè)名為frmadduser的窗體,如圖所示:eq\o\ac(○,2)在“確定”按鈕的click事件過(guò)程中寫入代碼: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語(yǔ)句module1.adocmd.Update(module1.ds,tablename)'對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新MsgBox("添加用戶成功!",vbOKOnly+vbExclamation,"信息框")eq\o\ac(○,3)在“添加用戶”子菜單的click事件過(guò)程中寫入代碼:DimnewfrmadduserAsNewfrmadduser()'窗體類對(duì)象化newfrmadduser.Show()'顯示窗體eq\o\ac(○,4)在“退出”子菜單的click事件過(guò)程中寫入代碼: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事件過(guò)程中寫入代碼: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事件過(guò)程中寫入代碼:Me.Dispose()eq\o\ac(○,5)在“添加學(xué)籍信息”子菜單的click事件過(guò)程中寫入代碼:DimnewaddstinfoAsNewfrmaddstinfo()newaddstinfo.MdiParent=Me'設(shè)置為主窗體的子窗體newaddstinfo.Show()2、設(shè)計(jì)“修改學(xué)籍信息”窗體eq\o\ac(○,1)新增加一個(gè)名為frmmodifystinfo的窗體,如圖所示:eq\o\ac(○,2)在frmmodifystinfo的load事件過(guò)程中寫入代碼: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事件過(guò)程中寫入代碼:rownumber=0showdata()eq\o\ac(○,5)在“上一條記錄”按鈕的click事件過(guò)程中寫入代碼:btnext.Enabled=Truerownumber=rownumber-1Ifrownumber<0Thenrownumber=0btprev.Enabled=FalseEndIfshowdata()eq\o\ac(○,6)在“下一條記錄”按鈕的click事件過(guò)程中寫入代碼:btprev.Enabled=Truerownumber=rownumber+1Ifrownumber>module1.mytable.Rows.Count-1Thenrownumber=module1.mytable.Rows.Count-1btnext.Enabled=FalseEndIfshowdata()eq\o\ac(○,7)在“最后一條記錄”按鈕的click事件過(guò)程中寫入代碼:rownumber=module1.mytable.Rows.Count-1showdata()eq\o\ac(○,8)在“修改記錄”按鈕的click事件過(guò)程中寫入代碼: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事件過(guò)程中寫入代碼: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事件過(guò)程中寫入代碼: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事件過(guò)程中寫入代碼:module1.mytable.Rows.Item(rownumber).Delete()IfMsgBox
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑智能化樓宇自動(dòng)化方案
- 難點(diǎn)詳解人教版八年級(jí)上冊(cè)物理聲現(xiàn)象《聲音的產(chǎn)生與傳播》定向測(cè)評(píng)練習(xí)題(含答案解析)
- 考點(diǎn)解析-人教版八年級(jí)上冊(cè)物理《聲現(xiàn)象》同步測(cè)評(píng)試卷(附答案詳解)
- 解析卷人教版八年級(jí)上冊(cè)物理物態(tài)變化《熔化和凝固》同步測(cè)評(píng)試題(含答案解析)
- 考點(diǎn)解析-人教版九年級(jí)《電與磁》章節(jié)練習(xí)試卷(解析版含答案)
- 考點(diǎn)攻克人教版八年級(jí)上冊(cè)物理《聲現(xiàn)象》專項(xiàng)測(cè)評(píng)試卷(含答案詳解)
- 脂肪酸介導(dǎo)羽衣甘藍(lán)自交不親和性的機(jī)制研究
- 綜合解析蘇科版八年級(jí)物理下冊(cè)《物質(zhì)的物理屬性》專題測(cè)試練習(xí)題(含答案解析)
- 基于碳基復(fù)合材料的柔性溫度-壓力雙功能傳感器的制備與研究
- 第6單元 冬之旅《 我像雪花天上來(lái)》說(shuō)課稿-2025-2026學(xué)年人教版初中音樂(lè)八年級(jí)上冊(cè)
- 山東省高校教師資格證綜合復(fù)習(xí)試題及答案
- 醫(yī)療環(huán)境表面清潔與消毒管理規(guī)范
- 2025營(yíng)養(yǎng)指導(dǎo)員理論知識(shí)考試題庫(kù)和答案
- 養(yǎng)老照護(hù)機(jī)構(gòu)長(zhǎng)者康復(fù)訓(xùn)練服務(wù)流程1-1-1
- 高中化學(xué)命題分析課件
- 國(guó)家化妝品不良反應(yīng)監(jiān)測(cè)系統(tǒng)用戶操作手冊(cè)
- 《生產(chǎn)安全事故報(bào)告和調(diào)查處理?xiàng)l例》知識(shí)培訓(xùn)
- 如何成為成功的質(zhì)量總監(jiān)
- 河北省邯鄲市武安市2023-2024學(xué)年一年級(jí)(上)期中語(yǔ)文試卷(含答案)
- GB/T 13537-2024電子類家用電器用電動(dòng)機(jī)通用技術(shù)規(guī)范
- 讀者簡(jiǎn)明使用手冊(cè)-大連理工大學(xué)圖書館
評(píng)論
0/150
提交評(píng)論