版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE17目錄1.系統(tǒng)任務的提出和功能說明 11.1 任務的提出 11.2 系統(tǒng)軟件運行的硬件和軟件要求 11.3 系統(tǒng)主要功能說明 11.4 系統(tǒng)結構圖 22.軟件系統(tǒng)的設計方法及屬性、事件代碼 22.1 數(shù)據(jù)結構 22.2 功能模塊 32.2.1 登錄界面的設計 32.2.2 主窗體的設計 62.2.3 “系統(tǒng)”各子菜單程序的設計 82.2.4 “學籍管理”程序的設計 103.程序調試及故障分析 171.系統(tǒng)任務的提出和功能說明任務的提出隨著科學技術的發(fā)展,計算機已被廣泛的用于社會的各個領域,成為推動社會發(fā)展的技術動力。而在計算機應用中,軟件的作用十分突出,軟件已經發(fā)展成為信息技術的核心,主導著信息產品的開發(fā)和信息技術市場的進一步的開拓。軟件產業(yè)已成為社會信息化進程中的一個戰(zhàn)略性產業(yè)。在軟件技術的應用中,軟件的開發(fā)技術尤其是應用型軟件產品的開發(fā)技術成了重中之重。不斷開發(fā)適應用戶需求、市場需要的新型軟件產品迫在眉睫。隨著社會的發(fā)展,軟件也在不斷的更新?lián)Q代。計算機領域不斷取得的新研究成果使計算機在代替和延伸腦力勞動方面發(fā)揮越來越重要的作用,不僅在工業(yè)方面而且在日常生活中也越來越離不開計算機。尤其是在學校里,要處理大量的學生數(shù)據(jù)。在數(shù)字化的今天,使用教務管理信息系統(tǒng)能使學校對學生數(shù)據(jù)的管理更加簡單、到位,可大大的減輕管理人員的負擔,實現(xiàn)高效辦公。系統(tǒng)軟件運行的硬件和軟件要求一臺個人電腦,安裝了MicrosoftSQLServer數(shù)據(jù)庫管理軟件系統(tǒng)主要功能說明本教務管理信息系統(tǒng)可實現(xiàn)學生基本信息、成績信息、課程信息、學院信息、選課信息、學籍信息等的錄入、修改、查詢、更新和刪除。程序分為以下四個模塊:用戶注冊信息管理、學籍管理、班級管理、成績管理功能模塊。系統(tǒng)結構圖登錄模塊登錄模塊系統(tǒng)模塊學籍管理班級管理成績管理幫助修改密碼添加用戶退出系統(tǒng)添加學籍信息修改學籍信息查詢學籍信息……2.軟件系統(tǒng)的設計方法及屬性、事件代碼數(shù)據(jù)結構用sqlserver2000建立數(shù)據(jù)庫教務管理信息系統(tǒng),包含有Userid、Class、Student、Score四個表,表的結構如下所示:Userid表的結構:Class表的結構:Student表的結構:Score表的結構:功能模塊登錄界面的設計1、登錄界面的窗體如下:注意:將兩個textbox控件的name屬性修改為txtusername、txtuserpassword。2、使用“解決方案資源管理器”在當前項目中增加一個模塊,名為module1.vb,模塊中的程序代碼如下:ImportsSystem.Data.SqlClientModulemodule1PublicadocmdAsSqlDataAdapterPublicdsAsDataSet=NewDataSet()'建立dataset對象PublicmytableAsDataTable'建立表對象PublicmyrowAsDataRow'建立數(shù)據(jù)行對象PublicrownumberAsInteger'定義一個整型變量來存放當前行數(shù)PublicsearchsqlAsStringPubliccmdAsSqlCommandBuilder'定義一個判斷字符串是否為空的函數(shù)PublicFunctiontesttxt(ByValtxtAsString)AsBooleanIfTrim(txt)=""Thentesttxt=FalseElsetesttxt=TrueEndIfEndFunction'定義一個執(zhí)行sql語句的函數(shù)PublicSubexecutesql(ByValsqlAsString,ByValtableAsString)TryDimconstrAsStringconstr="server=localhost;database=教務管理信息系統(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'設置為第一行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事件過程中驗證用戶名和密碼,其代碼如下: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()主窗體的設計1、在當前項目中增加一個窗體frmmain,作為主窗體,界面如下:注意:將frmmain的ismdicontainer屬性改為true。2、在“系統(tǒng)”菜單中包含的子菜單如圖所示:3、在“學籍管理”菜單中包含的子菜單如圖所示:4、在“班級管理”菜單中包含的子菜單如圖所示:5、在“成績管理”菜單中包含的子菜單如圖所示:“系統(tǒng)”各子菜單程序的設計1、設計“修改密碼”窗體eq\o\ac(○,1)新增加一個名為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、設計“添加用戶”窗體eq\o\ac(○,1)新增加一個名為frmadduser的窗體,如圖所示:eq\o\ac(○,2)在“確定”按鈕的click事件過程中寫入代碼:DimtablenameAsString="userid"Iftxtuserpassword.Text<>txtcomfirmpassword.TextThenMsgBox("前后兩次輸入的密碼不一致"+Chr(10)+"請重試",vbOKOnly+-vbExclamation,"警告")ExitSubEndIfsearchsql="select*fromuserid"module1.executesql(searchsql,tablename)DimnewrowAsDataRownewrow=module1.mytable.NewRownewrow.Item(0)=Trim(txtusername.Text)'給第一個字段賦值newrow.Item(1)=Trim(txtuserpassword.Text)'給第二個字段賦值mytable.Rows.Add(newrow)'添加新用戶module1.cmd=NewSqlCommandBuilder(module1.adocmd)'使用自動生成的sql語句module1.adocmd.Update(module1.ds,tablename)'對數(shù)據(jù)庫進行更新MsgBox("添加用戶成功!",vbOKOnly+vbExclamation,"信息框")eq\o\ac(○,3)在“添加用戶”子菜單的click事件過程中寫入代碼:DimnewfrmadduserAsNewfrmadduser()'窗體類對象化newfrmadduser.Show()'顯示窗體eq\o\ac(○,4)在“退出”子菜單的click事件過程中寫入代碼:Endeq\o\ac(○,5)在“取消“按鈕的click事件中寫入代碼:Me.Dispose()“學籍管理”程序的設計1、設計“添加學籍信息”窗體eq\o\ac(○,1)新增加一個名為frmaddstinfo的窗體,如圖所示:eq\o\ac(○,2)設置“性別”選擇框的item屬性為“男”、“女”,“班級”選擇框的item屬性為“初一”、“初二”、“初三”、“高一”、“高二”、“高三”。eq\o\ac(○,3)在“確認添加”命令按鈕的click事件過程中寫入代碼:IfNotIsNumeric(Trim(txtsid.Text))ThenMsgBox("請輸入數(shù)字!",vbOKOnly+vbExclamation,"警告")txtsid.Focus()'學號必須為數(shù)字ExitSubEndIfIfNotIsNumeric(txttel.Text)ThenMsgBox("請輸入聯(lián)系電話",vbOKOnly+vbExclamation,"警告")txttel.Focus()'電話不能為空ExitSubEndIfIfNotIsDate(txtrudate.Text)ThenMsgBox("入校時間應輸入日期格式(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("添加學籍信息成功!",vbOKOnly+vbExclamation,"警告")CatchexAsExceptionMsgBox(Err.Description)EndTryeq\o\ac(○,4)在“取消添加”命令按鈕的click事件過程中寫入代碼:Me.Dispose()eq\o\ac(○,5)在“添加學籍信息”子菜單的click事件過程中寫入代碼:DimnewaddstinfoAsNewfrmaddstinfo()newaddstinfo.MdiParent=Me'設置為主窗體的子窗體newaddstinfo.Show()2、設計“修改學籍信息”窗體eq\o\ac(○,1)新增加一個名為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'設置信息為只讀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'關鍵字段只讀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("請輸入姓名!",vbOKOnly+vbExclamation,"警告")txtname.Focus()ExitSubEndIfIfNottesttxt(combosex.Text)ThenMsgBox("請輸入性別!",vbOKOnly+vbExclamation,"警告")combosex.Focus()ExitSubEndIfIfNottesttxt(txtclassno.Text)ThenMsgBox("請輸入班號!",vbOKOnly+vbExclamation,"警告")txtclassno.Focus()ExitSubEndIfIfNottesttxt(txttel.Text)ThenMsgBox("請輸入聯(lián)系電話!",vbOKOnly+vbExclamation,"警告")txttel.Focus()ExitSubEndIfIfNottesttxt(txtaddress.Text)ThenMsgBox("請輸入家庭住址!",vbOKOnly+vbExclamation,"警告")txtaddress.Focus()ExitSubEndIfIfNotIsNumeric(Trim(txtsid.Text))ThenMsgBox("請輸入數(shù)字學號!",vbOKOnly+vbExclamation,"警告")txtsid.Focus()ExitSubEndIfIfNotIsDate(txtborndate.Text)ThenMsgBox("出生時間應輸入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtborndate.Focus()ExitSubEndIfIfNotIsDate(txtrudate.Text)ThenMsgBox("入校時間應輸入日期格式(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("修改學籍信息成功!",vbOKOnly+vbExclamation,"警告")txtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'重新設置信息為只讀eq\o\ac(○,10)在“取消記錄”按鈕的click事件過程中寫入代碼:txtsid.Enabled=Falsetxtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'設置信息為只讀eq\o\ac(○,11)在“刪除記錄”按鈕的click事件過程中寫入代碼:module1.mytable.Rows.Item(rownumber).Delete()IfMsgBox
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標志物指導EGJ腺癌免疫聯(lián)合治療策略
- 生物標志物在藥物臨床試驗中的多學科協(xié)作
- 生物材料導管與再生修復的協(xié)同策略
- 生物打印技術在心臟組織工程中的挑戰(zhàn)
- 生物化學虛擬實驗與科研方法培養(yǎng)
- 生物制品穩(wěn)定性試驗生物傳感器應用
- 生物制劑失應答的炎癥性腸病精準醫(yī)療實踐
- 游戲體驗與娛樂項目管理要點及面試題目參考
- 工業(yè)制造領域的數(shù)據(jù)分析師招聘題目
- 深度解析(2026)《GBT 19529-2004技術信息與文件的構成》
- 《J監(jiān)獄突發(fā)事件應急管理現(xiàn)狀及完善對策研究》24000字(論文)
- 中藥山藥課件
- 國開電大操作系統(tǒng)實驗2:進程管理實驗報告
- 建筑材料采購投標方案(技術標)
- 小步舞詳解(教師版)
- 光伏支架安裝技術交底
- 節(jié)能基本情況表(打印)
- 創(chuàng)新思維與創(chuàng)業(yè)實驗-東南大學中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 電動車轉讓合同協(xié)議書電子版
- YS/T 1019-2015氯化銣
- GB/T 39081-2020電阻點焊及凸焊接頭的十字拉伸試驗方法
評論
0/150
提交評論