學生信息管理系統(tǒng)分析與設計文檔_第1頁
學生信息管理系統(tǒng)分析與設計文檔_第2頁
學生信息管理系統(tǒng)分析與設計文檔_第3頁
學生信息管理系統(tǒng)分析與設計文檔_第4頁
學生信息管理系統(tǒng)分析與設計文檔_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

目錄摘要…………………………1Summary……………………2引言…………………….3學生信息管理系統(tǒng)需求分析………….42.1功能需求…………..42.2性能需求…………..4總體設計……………….5…………………...53.2模塊定義…………..6………73.4數(shù)據(jù)字典…………...7…………8……………9………10以查詢?yōu)槔?.10詳細設計………………..104.1主界面的設計………………………114.2登陸模塊〔Login窗體的建立〕…………………..124.3注冊模塊設計〔Register窗體的建立〕…………..134.4權限管理模塊設計〔Manage窗體的建立〕……..144.5查詢模塊的設計〔frmSearch窗體的建立〕……..15小結…………………………..16致謝…………………………..16附錄…………………………..17附錄1數(shù)據(jù)庫表格…………18附錄2系統(tǒng)源代碼……………………..19學生信息管理系統(tǒng)分析與設計周仲實〔重慶三峽學院數(shù)學與計算機科學學院信息與計算科學專業(yè)2001級重慶萬洲404000〕摘要:學生信息管理系統(tǒng)是學校管理系統(tǒng)的主要構件之一,在某種程度上表達了一個學校的教學現(xiàn)代化水平,系統(tǒng)的先進性將引領學校教學質量向前飛速開展。傳統(tǒng)的學生管理系統(tǒng)大多由人工操作,不僅效率低,且可靠性不高。本系統(tǒng)采用計算機程序實現(xiàn),根本流程按照原系統(tǒng)進行,系統(tǒng)的強大功能主要表達在對學生根本信息的查找和學生考試成績的查詢。本學生信息管理系統(tǒng)是建立在MicrosoftAccess2000根底上的應用系統(tǒng),用VisualBasic語言編寫。詳盡討論了系統(tǒng)相關數(shù)據(jù)庫文件的建立,登陸界面的設計,身份權限的識別,查找的過程設計,修改的過程設計等,并將源程序寫在附頁中。關鍵詞:信息管理系統(tǒng)、MicrosoftAccess2000、B/S模式、系統(tǒng)檢索StudenttheinformationmanagementsystemanalysisanddesignZhouzhongshi(Grade2001,InformationandComputingScience,CollegeofMathematicsandComputerScience,ChongqingThreeGorgesUniversity,Wanzhou,Chongqing404000)Summary:Studenttheinformationmanagementsystemisoneofthemainpiecesoftheschoolmanagementsystem,bodyonacertaindegreenowateachingofschoolmodernizationlevel,theforerunnerofthesystemwillguidetheteachingquantityoftheschooltoflyforwardtodevelopsoon.Traditionalstudentthemanagementsystemisoperatebytheartificialmostly,notonlytheefficiencyislow,andthecredibilityisnothigh.Thissystemadoptioncalculatorprocedurerealization,thebasicprocesscarriesonaccordingtotheoriginalsystem,themainbodyofthestrongfunctionofthesystemcheckstoseektothebasicinformationofstudenttoexaminethesearchofresultwithstudentnow.Thisstudenttheinformationmanagementsystemisanappliedsystemin2000foundationsoftheMicrosoftAccessofestablishment,usingtheVisualBasiclanguagetheplaitwrite.Discussedthesystemestablishmentoftherelateddatabasedocumentindetails,thedesignofthedebarkationinterface,alegalpowerofbodyidentify,checkingtheprocessdesignforseek,theprocessdesignofthemodificationetc.,andwritethesourceprocedureinattachpage.Keyword:Theinformationmanagementsystem,theMicrosoftAccess2000,modeofB/S,thesystemindex引言:教育是科學之本,隨著我國九年義務教育的普及和當前全球范圍的知識經(jīng)濟的突飛猛進,一套高質量高效率的學生信息管理系統(tǒng)更是必不可少,當前不僅是我國還是海外其他國家,均把學校教育放在戰(zhàn)略地位,投入巨大的人力物力研制各種教育模式,其中,學生信息管理系統(tǒng)的開發(fā)是首當其沖。一套好的管理系統(tǒng)是良好學習環(huán)境的組織者。由于信息系統(tǒng)數(shù)據(jù)量大,傳統(tǒng)的人工操作不僅效率低,準確性不高,而且其完整性,保密性均得不到保證。管理信息系統(tǒng),即MIS〔managementinformationsystem〕,是一個利用計算機軟硬件資源以及數(shù)據(jù)庫的人機系統(tǒng)。本學生信息管理系統(tǒng)是建立在MicrosoftAccess2000根底上的應用系統(tǒng),用VisualBasic語言編寫,此信息管理系統(tǒng)可以單機操作,也可在局域網(wǎng)中聯(lián)機操作,可以實現(xiàn)學生信息的高效查詢,修改,刪除等操作,比以前使用卡片的方法有很大的進步,使學生信息關系系統(tǒng)化,標準化和自動化。學生管理系統(tǒng)需求分析對于本系統(tǒng),我們需要實現(xiàn)以下一些根本功能:登錄權限管理:設置不同的管理權限,分為一般用戶和管理級用戶。數(shù)據(jù)庫的鏈接:構造數(shù)據(jù)庫根本表,以供管理系統(tǒng)調用,如本系統(tǒng)主要構造3個表:StudentTable,、UserTable、ScoreTable。實現(xiàn)根本查詢,修改,刪除等操作:其中,面向一般用戶的只有瀏覽查詢功能,管理級用戶擁有所有權限,可進行新增,刪除,修改,同時也可查詢?yōu)g覽。本系統(tǒng)還設置的多種匹配查詢路徑。系統(tǒng)的運行對運行環(huán)境有如下要求:硬件環(huán)境處理器:InterPentium166MX或更高內(nèi)存:32MB硬盤空間:1GB顯卡:SVGA顯示適配器軟件環(huán)境操作系統(tǒng):Windows98/ME/2000/XP數(shù)據(jù)庫:MicrosoftAccess20003.總體設計“學生信息管理系統(tǒng)可分為七個模塊:用戶登陸模塊、注冊模塊、權限管理模塊、查詢模塊、添加模塊、修改模塊、刪除模塊。如下列圖所示。3.2模塊定義〔1〕用戶登陸模塊:填寫用戶名稱,密碼,進入主控制平臺?!?〕注冊模塊:新用戶注冊?!?〕權限管理模塊:增加新的操作人員,賦予權限,同時可以編輯和刪除已有的操作人員。注冊登陸注冊登陸權限管理權限管理學生信息管理系統(tǒng)學生信息管理系統(tǒng)查詢查詢添加添加修改修改刪除刪除〔4〕查詢模塊:可查看瀏覽學生根本信息,成績冊,提供多種匹配查詢方式。〔5〕添加模塊:檢測原數(shù)據(jù)表是否已有新增數(shù)據(jù)項,沒有那么添加,有那么返回?!?〕修改模塊:系統(tǒng)管理員利用其權限對數(shù)據(jù)表進行修改,更新以保持數(shù)據(jù)庫完整性?!?〕刪除模塊:檢測原數(shù)據(jù)表中是否有待刪項,有那么刪除,無那么返回。根據(jù)系統(tǒng)功能設計的要求以及功能模塊的劃分,對于系統(tǒng)用戶信息,學生成績表,學生根本信息表,可以作出以下E-R圖,并列出以下數(shù)據(jù)項和數(shù)據(jù)結構:宿舍性別姓名宿舍性別姓名籍貫學號籍貫學號年齡班級年齡班級學生學生地址用戶信息表授權計算機中心授權地址教務處成績表根本信息統(tǒng)計地址用戶信息表授權計算機中心授權地址教務處成績表根本信息統(tǒng)計部門編號部門編號部門編號部門編號部門名稱部門名稱用戶信息表部門名稱用戶信息表部門名稱相關機構ER圖課程號課程名稱學號籍貫入學時間性別姓名課程號課程名稱學號籍貫入學時間性別姓名班級班級分數(shù)姓名分數(shù)姓名宿舍學號宿舍學號成績表根本信息表成績表根本信息表成績表E-R圖根本信息表E-R圖等級密碼等級密碼注冊時間用戶名注冊時間用戶名用戶信息表用戶信息表用戶信息表E-R圖3.4數(shù)據(jù)字典名稱:學生根本信息表。表名稱標識:StudentTable。數(shù)據(jù)來源:權限管理模塊進行錄入〔教務處〕。學生根本信息名稱字段名稱類型主鍵說明學生姓名Studentname文本NoNo學號Studentid自動編號YesYes班級Studentclass文本NoNo入學時間Acceptancetime數(shù)字NoNo性別Gender文本NoNo籍貫Hometown文本NoNo宿舍Dormitory數(shù)字NoNo 數(shù)據(jù)項名:學生學號說明:標志每個學生類型:char(8)長度:8別名:無取值范圍:0000001-9999999名稱:學生成績冊表名稱標識:ScoreTable數(shù)據(jù)來源:權限管理模塊進行錄入〔教務處〕學生成績表名稱字段名稱類型主鍵非空課程編號Lectrueid數(shù)字YesYes課程名稱Lectruname文本YesNo學生學號StudentID數(shù)字NoNo學生姓名Studentname數(shù)字NoNo分數(shù)Score數(shù)字NoNo數(shù)據(jù)項名:學生成績說明:是學生與課程的關系 類型:char(8)別名:無數(shù)據(jù)描述:語文數(shù)學英語政治物理化學取值范圍:0000001-9999999 名稱:用戶信息表表名稱標識:UserTable數(shù)據(jù)來源:權限管理模塊錄入〔系統(tǒng)管理員〕。用戶信息表名稱字段名稱類型主鍵非空標識UserID自動編號YesNo用戶名Username文本NoYes密碼Password數(shù)字NoNo真實姓名Realname文本NoNo年齡Userage數(shù)字NoNo用戶類型usertype數(shù)字YesYes單位State文本NoNo注冊時間Registtime數(shù)字NoYes 數(shù)據(jù)項名:用戶名說明:說明用戶的身份,在系統(tǒng)內(nèi)是唯一的類型:Char(8)別名:無數(shù)據(jù)描述:由字母,數(shù)字或者“—〞組成的字符串數(shù)據(jù)項名:用戶類型別名:無說明:在登陸用戶的根底上進一步刻畫其身份,不同的用戶類型可賦予不同的操作權.類型:Char(8)數(shù)據(jù)描述:如:2管理級用戶查詢,修改,刪除等所有權限1普通用戶查詢3.5系統(tǒng)流程圖事務業(yè)務務事務業(yè)務務數(shù)據(jù)庫數(shù)據(jù)庫登陸程序操作請求操作請求操作執(zhí)行程序操作執(zhí)行程序執(zhí)行結果報表執(zhí)行結果報表〔1〕用戶啟動學生管理系統(tǒng)后,即進入登陸模塊,提示輸入用戶名和密碼?!?〕用戶輸入用戶名和密碼,系統(tǒng)自動查詢數(shù)據(jù)庫中用戶信息表,如果用戶名和密碼〔3〕均正確,那么登陸成功,進入主操作界面;如果用戶名和密碼錯誤,那么系統(tǒng)提示重〔4〕新輸入;如果用戶信息表中無此用戶的用戶名,那么此用戶為新用戶,系統(tǒng)提示新〔5〕用戶注冊,注冊后自動更新數(shù)據(jù)庫中用戶信息表?!?〕用戶在主操作界面進行操作請求?!?〕系統(tǒng)接受到請求,查詢用戶信息表驗證用戶操作權限。在這里,系統(tǒng)自動隱藏用?!?〕戶不具有的效勞工程?!?〕系統(tǒng)響應用戶操作申請,鏈接數(shù)據(jù)庫,并反應操作結果3.6數(shù)據(jù)流圖輸入:用戶名、密碼、操作請求輸出:查詢結果、修改結果、刪除結果、打印相關報表。輸出打印各類報表查詢刪除添加修改統(tǒng)計查詢根本信息學生成績事務務輸入信息管理系統(tǒng)用戶信息輸出打印各類報表查詢刪除添加修改統(tǒng)計查詢根本信息學生成績事務務輸入信息管理系統(tǒng)用戶信息顯示顯示7學生管理系統(tǒng)的活動圖標準化輸出刪除添加修改查看管理級用戶一般用戶用戶類型登陸成功驗證身份輸入用戶名,密碼開始標準化輸出刪除添加修改查看管理級用戶一般用戶用戶類型登陸成功驗證身份輸入用戶名,密碼開始密碼錯誤注冊密碼錯誤注冊查看瀏覽查看瀏覽3.8事件跟蹤圖〔查詢〕輸入用戶名 要求密碼 輸入密碼 查詢 提示密碼錯誤 不存在 重新輸入 查詢 登陸成功 確認 查詢請求 驗證權限 查詢條件 有此權限 查詢條件 查詢信息數(shù)據(jù)庫 反應給用戶〔顯示〕 反應信息 用戶 學生信息管理系統(tǒng) 數(shù)據(jù)庫 4.1主界面的設計〔mdiFrm主窗體的建立〕建立一個新的工程,添加MDI窗體,保存為mdiFrm,并將在工程屬性對話框中的“通用〞選項卡中的“啟動對象〞設為“mdiFrm〞,使mdiFrm成為啟動窗體。在此程序中,mdiFrm是主窗體,所以要在mdiFrm上的菜單和工具欄中提供各個窗體間的切換。界面設計好后,進行代碼編寫。當用戶輸入用戶名和密碼后,單擊“確定〞按鈕,那么程序要和數(shù)據(jù)庫進行交互,查詢用戶是否存在。如果有,那么允許用戶進行下一步操作,即進入系統(tǒng);如果沒有這個用戶,那么請求用戶注冊為新用戶。要查詢數(shù)據(jù)庫中是否存在該用戶,程序中使用IsExistUser函數(shù)來實現(xiàn)。IsExistUser函數(shù)在公共模塊mdlVar中,它返回一個Boolean值。如果返回值為True,那么數(shù)據(jù)庫存在該用戶,反之不存在。IsExistUser函數(shù)要和數(shù)據(jù)庫鏈接。本程序使用DataEnviroument工具來訪問數(shù)據(jù)庫。DataEnvironment中的conLibraryl連接對象,使用command對象的Execute方法可以實現(xiàn)數(shù)據(jù)庫的查詢工作,但首先要設置command對象的ActiveConnection屬性和CommandText屬性。PrivateSubMDIForm_Load()F_CurUserID=0g_bLogin=Falseg_bAdmin=Falsef_bstudent=FalsemnuFileLog_click Endsub 4.2登陸模塊〔Login窗體的建立〕 Login窗體實現(xiàn)了用戶登陸到系統(tǒng)的功能。它的形式為,一個是填寫“用戶名〞的文本框,一個是填寫“密碼〞的文本框,然后是“確認〞按鈕和“取消〞按鈕。如下列圖其中管理員的用戶名為admin,口令為1,均已在初始化時設定。各主要控件屬性如下表所示 :對象屬性設置值類型名稱FormLoginCaption登陸學生管理信息系統(tǒng)TextBoxTxtUserNameCaotionAdminTextBoxTxtPasswordCaption1PasswordChar*Label1Label1Caption用戶名Label2Label2Caption密碼CommandButtonCmdOKCaption登陸CommandButtonCmdCancelCapion取消ConmmandButtonCmdRegisterCation注冊新用戶 PublicFunctionIsExistUser(stuUseNameAsstring,strpwdAsstring)AsBooleanDimcmdAscommandDimrsAsRecordsetSetcmd=Newcommand‘翻開連接ry.state=adstateclosedThenEndIf’注冊CmdmandText=〞select*fromUsertablewhereUsername=’〞&strUserName&〞’〞Ifstrpwd<>〞“Then‘登陸cmdmandText=cmdmandText+〞andpwd=’〞&strpwd&〞’〞EndIf‘有無重復Ifrs.Recordcount<>0thenIsExistUser=TrueIfg_bLoginTheng_CurUserID=rs!userid‘為管理員Ifrs!Usertype=ManagerTheng_bAdmin=TrueEndIfEndIfIsExistUser=FalseEndIfEndFunction單擊“確定〞按鈕后,將激發(fā)以下程序:privatesubcmdok_click()IftxtUserName.Text=〞“ThenMsgBox〞請?zhí)顚懹脩裘?!?vbokonly+vbInformation,〞注意〞ExitsubElseIftxtpassword.Text=〞“ThenMsgBox〞請?zhí)顚懨艽a!〞,vbokonly+vbInformation,〞注意〞etFocusExitsubEndIf‘設置登陸變量g_bLogin=TrueIfIsExistUser(txtUserName,〞“)=TrueThenMsgBox〞密碼不正確!請重新登陸。〞,vbokonly+vbInformation,〞錯誤〞ElseMsgBox“無此用戶!請先注冊。〞,vbokonly+vbInformation,〞錯誤〞EndIfEndIfEndsub 4.3注冊模塊設計〔Register窗體的建立〕 Register窗體實現(xiàn)了注冊新用戶的功能。用戶在此界面中填寫各種個人信息。如果用戶注冊的注冊名已經(jīng)存在,系統(tǒng)那么要求用其他的用戶名重新注冊。在代碼中不但要保存用戶的信息,還要將信息存放UserTable表中,用SQL語言描述。 其中,對應于“用戶名:“的控件的MaxLength屬性要設為20,這樣做是為了與數(shù)據(jù)庫中的UserName字段的長度匹配,否那么當用戶名的長度大于20時,會出現(xiàn)錯誤。檢測用戶名輸入的具體代碼如下: IftxtPassword.Text<>txtPwAgain.TextThenMsgBox“兩次密碼不相同,請重新填寫!〞,vbOKOnly+vbInformation,〞注意〞TxtPassword.Text=〞〞TxtPwAgain.Text=〞〞ExitsubEndIfOnErrorGoToexit1IfNotIsExistUser(txtUserName,〞〞)Then‘添加用戶DataEdAddtxtUserName,txtPassword,txtRealname,txtUnit,Now,udAge,Usertype,StateMsgBox“注冊成功!〞,vbOKOnly+vbInformation,“注意〞UnloadMeElseMsgBox“用戶已經(jīng)存在!請重新注冊一個新的用戶名〞,vbOKOnly+vbInformation,〞注意〞TxtUserName.Text=〞“TxtPassword.Text=““TxtPwAgain.Text=〞“EndIfExitsub 4.4權限管理模塊設計〔Manage窗體的建立〕 Manage窗體是管理員才有的權限進入的窗體,在Manage窗體中可以對各個表進行增加、修改、刪除等操作,即可以查看和修改數(shù)據(jù)庫中所有的內(nèi)容。在Manage窗體中,使用了TabStrip控件,創(chuàng)立了兩個選項卡,還必須添加兩個Frame控件與TabStrip控件配合使用,在TabStrip控件的Click事件中,根據(jù)用戶所選擇的選項卡來顯示相應的Frame控件。具體代碼見附錄。PrivateSubtsUser_Click()Frame1(tsUser.SelectedItem.Index–1).Zorder0EndSub4.5詢模塊的設計〔frmSearch窗體的建立〕frmSearch窗體實現(xiàn)了查詢表的功能。該模塊鏈接數(shù)據(jù)庫中StudentTable、ScorTable兩個表。初始化和載窗體的代碼如下:PrivateSubForm_Load()tsBorrow.Top=200tsBorrow.Left=(mdiFrm.ScaleWidth-tsBorrow.Width)/2Frameborrow(0).Height=tsFrameborrow(0).Zorder0cmbIrem.AddItem“無“,0cmbItem.AddItem“學號〞,1cmbItem.AddItem“姓名〞,2cmbItem.AddItem“班級〞,3cmbItem.AddItem“性別〞,4cmbItem.ListIndex=1ry.State=adstateOpenThenEndIfoptnIDand.Value=TrueoptnNameand.Value=TrueoptnClassand.Value=TrueoptnGenderand.Value=TrueoptnTimeand.Value=TrueoptnKeyFore.Value=TrueframeBack.Visible=FalseframeDetail.Visible=FalsecallcmdSearch_ClickmdiFrm.mnuBorrow.Enabled=FalseEndSub小結:本學生信息管理系統(tǒng)程序可實現(xiàn)的功能很多,但還不夠全面。例如,沒有管理員就無法修改學生成績;系統(tǒng)用戶和學生不一致〔學生用學號作為用戶名〕;學生能夠看到其他人的成績等。參考文獻〔1〕《VisualBasic》根底教程中國水利水電出版社張勇2004年1月第一版〔2〕《信息系統(tǒng)設計與開發(fā)》機械工業(yè)出版社黃明梁旭2004年3月第1版5.附錄附錄1數(shù)據(jù)庫表格運行MicrosoftAccess2000,建立一個新的數(shù)據(jù)庫,然后分別設計StudentTable、UserTable和ScoreTable三個表。ScoreTable:Studentidstudentname語文數(shù)學英語物理化學1李莉85717862672文章92838684793鐘麗君76687676724楊洋86828581835周仲實100100100100100UserTable:UsernamePasswordRealnameAgeUsertypeStateregistetimeLili0李莉181學校Wenzhang0文章151學校Zhonglijun0鐘麗君151學校Yangyang0楊洋151學校admin1周仲實152學校StudentTableStudentidStudentnameClassGenderHometownacceptancetimedormitory1李莉高三三班女重慶22文章初三三班女重慶23鐘麗君初三一班女重慶24楊洋初三八班女重慶25周仲實初三一班男重慶1附錄2系統(tǒng)源代碼學生信息管理系統(tǒng)的數(shù)據(jù)庫局部是使用MicrosoftAccess2000來實現(xiàn)的。首先是數(shù)據(jù)庫的建立,運行MicrosoftAccess2000,建立一個新的數(shù)據(jù)庫,然后分別設計StudentTable、UserTable和ScoreTable三個表。其中StudentTable表保存學生的信息,ScoreTable表保存學生的成績,UserTable表保存用戶的信息。程序的設計按照一個標準的exe的界面來設計的。它一共有5個窗體〔Frmsearch、Login、mdiFrm、Register〕,兩個類模塊〔mdlMain、mdlVar〕和一個Data控件〔DataE.Dsr〕。mdiFrm主窗體的建立建立一個新的工程,添加MDI窗體,保存為mdiFrm,并將在工程屬性對話框中的“通用〞選項卡中的“啟動對象〞設為“mdiFrm〞,使mdiFrm成為啟動窗體。在此程序中,mdiFrm是主窗體,所以要在mdiFrm上的菜單和工具欄中提供各個窗體間的切換。界面設計好后,進行代碼編寫。當用戶輸入用戶名和密碼后,單擊“確定〞按鈕,那么程序要和數(shù)據(jù)庫進行交互,查詢用戶是否存在。如果有,那么允許用戶進行下一步操作,即進入系統(tǒng);如果沒有這個用戶,那么請求用戶注冊為新用戶。要查詢數(shù)據(jù)庫中是否存在該用戶,程序中使用IsExistUser函數(shù)來實現(xiàn)。IsExistUser函數(shù)在公共模塊mdlVar中,它返回一個Boolean值。如果返回值為True,那么數(shù)據(jù)庫存在該用戶,反之不存在。IsExistUser函數(shù)要和數(shù)據(jù)庫鏈接。本程序使用DataEnviroument工具來訪問數(shù)據(jù)庫。DataEnvironment中的conLibraryl連接對象,使用command對象的Execute方法可以實現(xiàn)數(shù)據(jù)庫的查詢工作,但首先要設置command對象的ActiveConnection屬性和CommandText屬性。PrivateSubMDIForm_Load()F_CurUserID=0g_bLogin=Falseg_bAdmin=Falsef_bstudent=FalsemnuFileLog_click EndsubprivateSubmnuAboutit_click()MsgBox〞畢業(yè)設計:〞+chr$(13)+chr$(10)+〞學生信息管理系統(tǒng)〞+chr$(13)+chr$(10)+〞〞,0,〞學生信息管理系統(tǒng)〞Endsub PrivateSubmunExit_click()IfMsgBox(“是否退出此系統(tǒng)?〞,vbYesNo+vbcritical,〞系統(tǒng)〞)=vbYesThenEndEndIf EndsubPrivateSubmnuFileLog_click()ClosewinLogin.Height=3600Login.width=4000Login.Left=5000Login.Top=2000Login.show EndSubPrivateSubmnuLogout_click()IfMsgBox(“是否真的注銷當前用戶?〞,vbcritical+vbYesNo,〞注銷〞)=vbYesTheng_bLogin=Falseg_bAdmin=Falseg_bstudent=Falseg_CurUserID=0closewinEndIfEndSubPrivateSubmnuMng_click()Ifg_bAdmin=TrueThenClosewinElseMsgBox〞請以管理員身份登陸系統(tǒng)!〞,vbInformation,〞登陸〞EndIfEndsubPrivatesubmnuBorrow_click()Ifg_bstudent=TrueThenClosewinElseMsgBox〞請先登陸系統(tǒng)!〞,vbInformation,〞登陸〞EndIfClosewinEndsubPrivateSubmnuReg_click()ClosewinEndsubPribateSubToolbar1_Buttonclick(ByvalButtonAsMscmctllib.Button)case〞logout〞MnuLogout_clickCase〞reg〞MnuTeg_clickCase〞Mng〞MnuMng_clickCase〞borrow〞MnuBorrow_clickEndselectEndsubPrivateSubmnuMng_click()‘單擊“系統(tǒng)員管理〞Ifg_bAdmin=TrueThen’如果是管理員,那么顯示管理界面ClosewinElseMsgBox〞請以管理員身份登陸系統(tǒng)!〞,vbInformation,〞登陸〞EndIfEndSubPrivateSubmnuBorrow_click()‘單擊“用戶出查詢〞Ifg_bStudent=TrueThenClosewinElseMsgBox〞請先登陸系統(tǒng)!〞,vbInformation,〞登陸

“EndIfClosewinEndsubPrivatesubmnuReg_click()‘單擊“注冊〞closewinEndsubPrivatesubToolbar1_Buttonclick(ByvalButtonAsMscomctllib.Button)case〞login〞mnuFilelog_clickcase〞logout〞mnuLogout_clickcase〞reg〞mnuMng_clickcase〞mng〞mnuMng_clickcase〞borrow〞mnuBorrow_clickEndselectEndsubLogin窗體的建立Login窗體實現(xiàn)了用戶登陸到系統(tǒng)的功能。它的形式為,一個是填寫“用戶名〞的文本框,一個是填寫“密碼〞的文本框,然后是“確認〞按鈕和“取消〞按鈕。如下列圖其中管理員的用戶名為admin,口令為1,均已在初始化時設定。各主要控件屬性如下表所示下面是IsExistUser函數(shù)的源程序:PublicFunctionIsExistUser(stuUseNameAsstring,strpwdAsstring)AsBooleanDimcmdAscommandDimrsAsRecordsetSetcmd=Newcommand‘翻開連接IfDataE.conLibrary.state=adstateclosedThenEndIf’注冊CmdmandText=〞select*fromUsertablewhereUsername=’〞&strUserName&〞’〞Ifstrpwd<>〞“Then‘登陸cmdmandText=cmdmandText+〞andpwd=’〞&strpwd&〞’〞EndIf‘有無重復Ifrs.Recordcount<>0thenIsExistUser=TrueIfg_bLoginTheng_CurUserID=rs!userid‘為管理員Ifrs!Usertype=ManagerTheng_bAdmin=TrueEndIfEndIfIsExistUser=FalseEndIfEndFunction單擊“確定〞按鈕后,將激發(fā)以下程序:privatesubcmdok_click()IftxtUserName.Text=〞“ThenMsgBox〞請?zhí)顚懹脩裘〃?vbokonly+vbInformation,〞注意〞ExitsubElseIftxtpassword.Text=〞“ThenMsgBox〞請?zhí)顚懨艽a!〞,vbokonly+vbInformation,〞注意〞ExitsubEndIf‘設置登陸變量g_bLogin=TrueIfIsExistUser(txtUserName,〞“)=TrueThenMsgBox〞密碼不正確!請重新登陸。〞,vbokonly+vbInformation,〞錯誤〞ElseMsgBox“無此用戶!請先注冊。〞,vbokonly+vbInformation,〞錯誤〞EndIfEndIfEndsubRegister窗體的建立Register窗體實現(xiàn)了注冊新用戶的功能。用戶在此界面中填寫各種個人信息。如果用戶注冊的注冊名已經(jīng)存在,系統(tǒng)那么要求用其他的用戶名重新注冊。在代碼中不但要保存用戶的信息,還要將信息存放UserTable表中,用SQL語言描述,其界面如下“其中,對應于“用戶名:“的控件的MaxLength屬性要設為20,這樣做是為了與數(shù)據(jù)庫中的UserName字段的長度匹配,否那么當用戶名的長度大于20時,會出現(xiàn)錯誤。檢測用戶名輸入的具體代碼如下:privatesubcmdReg_click()‘DimcmdAscommandUsertype=GeneralState=1Setcmd=NewcommandDataE.connections(“conLibrary〞).opencmd.ActiveConnection=DataE.Connections(“conLibrary〞)cmdmandText=〞insertintoUserTable(UserName,RealName,Unit,pwd,RegisterTime,age,state,usertype)values(‘〞&txtUserName.Text&〞’,’〞&txtRealname.Text&〞’,’〞&txtUnit.Text&〞’,’〞&txtpassword.Text&〞’,’〞&Now&〞’,’〞&〞’,’〞&State&“’,’〞&Usertype&〞’)〞cmdmandText=〞select*fromusertablewhereusername=’〞&txtUserName&“’〞‘子段不使用關鍵字“password〞‘驗證重要信息已經(jīng)填寫IftxtUserName.Text=““ThenMsgBox〞請?zhí)顚懹脩裘?!?vbOKOnly+vbInformation,〞注意〞ExitsubElselftxtPassword.Text=〞“ThenMsgBox“請?zhí)顚懨艽a!〞,vbOKOnly+vbInformation,〞注意〞TxtPwAgaExitsubEndIfIftxtPassword.Text<>txtPwAgain.TextThenMsgBox“兩次密碼不相同,請重新填寫!〞,vbOKOnly+vbInformation,〞注意〞TxtPassword.Text=〞〞TxtPwAgain.Text=〞〞ExitsubEndIfOnErrorGoToexit1IfNotIsExistUser(txtUserName,〞〞)Then‘添加用戶DataEdAddtxtUserName,txtPassword,txtRealname,txtUnit,Now,udAge,Usertype,StateMsgBox“注冊成功!〞,vbOKOnly+vbInformation,“注意〞UnloadMeElseMsgBox“用戶已經(jīng)存在!請重新注冊一個新的用戶名〞,vbOKOnly+vbInformation,〞注意〞TxtUserName.Text=〞“TxtPassword.Text=““TxtPwAgain.Text=〞“EndIfExitsubExit1:MsgBox〞數(shù)據(jù)未成功寫入數(shù)據(jù)庫!〞,vbOKOnly+vbInformation,〞錯誤〞ExitsubEndsubManage窗體的建立Manage窗體是管理員才有的權限進入的窗體,在Manage窗體中可以對各個表進行增加、修改、刪除等操作,即可以查看和修改數(shù)據(jù)庫中所有的內(nèi)容。在Manage窗體中,使用了TabStrip控件,創(chuàng)立了兩個選項卡,如下圖:還必須添加兩個Frame控件與TabStrip控件配合使用,在TabStrip控件的Click事件中,根據(jù)用戶所選擇的選項卡來顯示相應的Frame控件。PrivateSubtsUser_Click()Frame1(tsUser.SelectedItem.Index–1).Zorder0EndSub接下來是Frame控件的大小位置確實定。PrivateSubForm_Resize()tsUser.Left=200tsUser.Top=100tsUser.Height=manage.ScaleHeight–200tsUser.Width=manage.ScaleWidth–400DimIForI=0To1NextFrame1(0).Zorder0dgrdUser.Left=2000dgrdUser.Top=200dgrdUser.Width=FrameReg.Width+Frame2.Width+300FrameReg.Left=2000FrameReg.Top=dgrdUser.Height+400Frame2.Left=FrameReg.Left+FrameReg.Width+100dgrdStudent.Left=2000dgrdStudent.Top=200dgrdStudent.Width=Frame4.Width+Frame3.Width+300Frame4.Left=2000Frame4.Top=dgrdStudent.Height+400Frame3.Left=Frame4.Left+Frame4.Width+100EndSub單擊“用戶管理“選項卡,出現(xiàn)如下界面。下面是用SQL語言實現(xiàn)查詢功能的“查找“按鈕激發(fā)的Click事件。PrivateSubcmdFind_Click()‘查找用戶DimsqlstrAsStringDimwherestrAsString‘判斷有無Where語句DimbwhereAsBooleansqlstr=〞selectusername,realname,age,unit,usertype,state,registertimefromusertable“wherestr=〞“bwhere=FalseIftxtUserName<>““ThenWherestr=wherestr+“username=’%〞&txtUserName.Text&〞%’〞EndIfIfchkName.Value=1AndtxtName.Text<>〞“ThenIfbwhereThenwherestr=wherestr+〞or“wherestr=wherestr+〞usernamelike‘%〞&txtName.Text&〞%’〞bwhere=TrueEndIfIfchkName.Value=1AndtxtName.Text<>〞“ThenIfbwhereThenwherestr=wherestr+〞or“wherestr=wherestr+〞usernamelike‘%〞&txtName.Text&〞%’〞bwhere=TrueEndIfIfchkReal.Value=1AndtxtReal.Text<>〞〞ThenIfbwhereThenwherestr=wherestr+〞and〞wherestr=wherestr+“realnamelike‘%〞&txtReal.Text&〞%’〞bwhere=TrueEndIfIfchkUnit.Value=1AndtxtFUnit.Text<>〞“ThenIfbwhereThenwherestr=wherestr+〞and〞wherestr=wherestr+〞unitlike‘%〞&txtFUnit.Text&〞%’〞bwhere=TrueEndIfIfchkType.Value=1ThenIfbwhereThenwherestr=wherestr+〞and〞Case0Wherestr=wherestr+〞usertype=2〞Case1Wherestr=wherestr+〞usertype=4〞EndSelectbwhere=TrueEndIfIfchkAge.Value=1ThenIfbwhereThenwherestr=wherestr+〞and〞wherestr=wherestr+〞age=〞bwhere=TrueEndIfIfchkAge.Value=1ThenIfbwhereThenwherestr=wherestr+“and〞Wherestr=wherestr+〞registertimelike‘%〞&dtFRT.Value&〞%’〞Bwhere=TrueEndIfIfbwhereThensqlstr=sqlstr+〞where〞+wherestrDataEmands(“cmdFindUser〞)mandText=sqlstr+〞orderbyuseridasc〞‘刷新GridDgrdUser.DataMember=DataEmands(“cmdFindUser〞).NameEndSub下面是用SQL語言實現(xiàn)查詢功能的“修改〞按鈕激發(fā)的Click事件?!薷挠脩舻馁Y料PrivateSubcmdMod_Click()DimsqlstrAsString‘修改的標志DimbSetAsBooleanIfchkMod.Value=0ThenMsgBox〞請先選擇“選擇修改功能〞選項!〞,vbOKOnly+vbInformation,“修改〞ExitSubEndIfBSet=FalseIftxtFindName.Text=〞“ThenMsgBox〞請鍵入要修改的用戶名或者在表中選擇要修改的用戶名。〞,vbOKOnly+vbInformation,〞修改〞ExitSubEndIf‘要修改的用戶名存在IfIsExistUser(txtFindName,〞“)ThenSqlstr=〞updateusertableset〞IfchkReal.Value=1AndtxtReal.Text<>““ThenSqlstr=sqlstr+〞realname=’〞&txtReal.Text&“’〞BSet=TrueEndIfIfchkUnit.Value=1AndtxtFUnit.Text<>““ThenIfbSetThensqlstr=sqlstr+〞,〞sqlstr=sqlstr+〞unit=’〞&txtFunit&〞‘〞bset=TrueEndIfIfchkType.Value=1ThenIfbSetThensqlstr=sqlstr+〞,“Case0Sqlstr=sqlstr+〞usertype=2〞Case1Sqlstr=sqlstr+〞usertype=4〞EndSelectbSet=TrueEndIfIfchkAge.Value=1ThenIfbSetThensqlstr=sqlstr+〞,〞sqlstr=sqlstr+〞age=〞bSet=TrueEndIf‘修改IfbSetThenSqlstr=sqlstr+〞whereusername=’“&txtFindName&“‘“DataEmands(“cmdFindUser〞)mandText=sqlstr‘顯示修改結果DataEmands(“cmdFindUser〞)mandText=〞selectusername,realname,age,unit,usertype,state,registertimefromusertablewhereusername=’“&txtFindName&“‘“DtrdUser.ClearFields DgrdUser.DataMember=DataEmands(“cmdFindUser〞).NameElseMsgBox〞請?zhí)顚懸薷牡馁Y料!〞,vbInformation,〞修改〞EndIfEndSub]下面是用SQL語言實現(xiàn)查詢功能的“修改〞按鈕激發(fā)的Click事件。PrivateSubcmdDel_Click()DimdelUserNameAsStringDelUserName=txtFindNameIftxtFindName.Text<>““ThenIfIsExistUser(txtFindName,〞“)ThenIfMsgBox(“缺點要刪除此用戶嗎?〞,vbYesNo+vbCritical,〞刪除

“)=vbYesDataEmands(“cmdFindUser〞)mandText=〞deletefromusertablewhereusername=’“&txtFindName&“‘“‘刪除‘刷新Grid,顯示結果dgrdUser.DataMember=DataEmands(“cmdUser〞).NametxtFindName.Text=dgrdUser.Columns(0),TextMsgBox〞成功刪除用戶?。?!〞+delUserName,vbOKOnly+vbInformation,〞刪除用戶成功〞EndIfElseMsgBox〞無此用戶?。?!〞,vbOKOnly+vbInformation,〞刪除用戶失敗〞EndIfEndIfEndSub下面是窗體裝載和卸載時的事件。PrivateSubForm_Load()‘在最前面Frame1(0).zorder0txtAge.Text=CStr(udAge.Value)txtFAge.Text=CStr(udFAge.Value)‘用戶類型〞一般用戶〞〞管理員〞cmbType.AddItem“Guest〞cmbType.ListIndex=0cmbFType.AddItem“一般用戶〞cmbFType.AddItem“管理員〞cmbFType.AddItem“Guest“cmbFType.ListIndex=0cmbRegStuGender.AddItem“男〞,0cmbRegStuGender.AddItem“女〞,1cmbRegStuGender.ListIndex=0cmbFStuGender.AddItem“男〞,0cmbFStuGender.AddItem“女〞,1cmbFStuGender.ListIndex=0OptnFore.Value=TruetxtRegYear.Text=CStr(Year(Now))txtRegMon.Text=CStr(Month(Now))txtFYear.Text=txtYeartxtFMon.Text=txtMon‘綁定數(shù)據(jù)源,刷新GriddgrdUser.DataMember=DataEmands(“cmdUser〞).NameMdiFrm.mnuMng.Enabled=FalseEndSubPrivateSubForm_Unload(CancelAsInteger)‘刷新GriddfrdUser.DataMember=DataEmands(“cmdUser〞).NamedgrdStudent.DataMember=DataEmands(“cmdStudent〞).NamemdiFrm.mnuMng.Enabled=TrueEndSub單擊“學生管理〞選項卡后,同樣出現(xiàn)如下圖的界面。這局部實現(xiàn)各種操作的原理與上一局部差不多。下面是用SQL語言實現(xiàn)查詢功能的“查找〞按鈕激發(fā)的Click事件。PrivateSubcmdFStudent_click()‘查找學生DimsqlstrAsStringDimwherestrAsString‘判斷有無where語句DimbwhereAsBooleansqlstr=〞select*fromstudenttable〞wherestr=〞“bwhere=FalseIftxtStudentName.Text<>““Thenwherestr=wherestr+〞Studentname=’“&txtStudentName&“‘“bwhere=TrueEndIfIfchkFStudentID.Value=1AndtxtFStudentID.Text<>““ThenIfbwhereThenwherestr=wherestr+〞and“wherestr=wherestr+〞Studentidlike‘%’&txtFStudentID&“%’〞bwhere=TrueEndIfIfchkFStudentName.Value=1AndtxtFStudentName.Text<>““ThenIfbwhereThenwherestr=wherestr+〞and〞wherestr=wherestr+〞studentnamelike‘%“&txtFStudentName&“%‘〞bwhere=TrueEndIfIfchkFStudentClass.Value=1AndtxtFStudentCLass.Text<>““ThenIfbwhereThenwherestr=wherestr+“and“wherestr=wherestr+〞classlike‘%〞&txtFStudentCLass&“%’〞bwhere=TrueEndIfIfchkFStudentGender.Value=1ThenIfbwhereThenwherestr=wherestr+“and“IfcmbFStuGender.ListIndex=0Thenwherestr=wherestr+〞genderlike‘%“&〞男〞&“%’“ElseIfcmbFStuGender.ListIndex=1Thenwherestr=wherestr+〞genderlike‘%〞&“女〞&〞%’“EndIfbwhere=TrueEndIfIfchkFAcceptanceTime.Value=1AndtxtFYear.Text<>““ThenIftxtFMon.Text=〞“ThentxtFMon.Text=〞00〞IfbwhereThenwherestr=wherestr+“and“IfoptnFore.ValueThenLwherestr=wherestr+〞acceptancetime<’“&txtFYear+〞-“+txtFMon&“‘“ElseWherestr=wherestr+〞acceptancetime>’“&txtFYear+“-“+txtFMon&“‘“EndIfbwhere=TrueEndIfIfchkFHometown.Value=1AndtxtFHometown.Text<>““ThenIfbwhereThenwherestr=wherestr+“and“wherestr=wherestr+〞hometownlike‘%〞&txtFHometown&“%‘“bwhere=TrueEndIfIfbwhereThensqlstr=sqlstr+“where“+wherestrSqlstr=sqlstr+〞orderbyStudentidasc“DataEmands(“cmdFindStudent〞)mandText=sqlstr‘刷新GriddgrdStudent.DataMember=DataEmands(“cmdFindStudent〞).NameIfDataE.rscmdFindStudent.RecordCount=0ThenMsgBox〞在數(shù)據(jù)庫中沒找到要查詢的對象〞,vbOKOnly+vbInformation,〞查詢失敗〞EndIfEndSub下面是用SQL語言實現(xiàn)查詢功能的“修改〞按鈕激發(fā)的Click事件。‘修改用戶的資料PrivateSubcmdMod_Click()DimsqlstrAsString‘修改的標志DimbSetAsBooleanIfchkMod.Value=0ThenMsgBox“請先選擇“選擇修改功能〞選項!〞,vbOKOnly+vbInformation,〞修改〞ExitSubEndIfbSet=FalseIfbxtFindName.Text=〞“ThenMsgBox“請鍵如要修改的用戶名或者在表中選擇要修改的用戶名。〞,vbOKOnly+vbInformation,〞修改〞ExitSubEndIf‘要修改的用戶名存在IfIsExistUser(txtFindName,““)Thensqlstr=“updateusertableset“IfchkReal.Value=1SndtxtReal.Text<>““Thensqlstr=sqlstr+“realname=‘“&txtReal.Text&“‘“bSet=TrueEndIfIfchkUnit.Value=1AndtxtFUnit.Text<>““ThenIfbSetThensqlstr=sqlstr+“,“sqlstr=sqlstr+“unit=’“&txtFUnit&“‘“bSet=TrueEndIfIfchkType.Value=1ThenIfbSetThensqlstr=sqlstr+〞,“Case0sqlstr=sqlstr+〞usertype=2〞Case1Sqlstr=sqlstr+〞usertype=4〞EndSelectbSet=TrueEndIfIfchkAge.Value=1ThenIfbSetThensqlstr=sqlstr+“,“sqlstr=sqlstr+〞age=〞bSet=TrueEndIf‘修改IfbSetThenSqlstr=sqlstr+〞whereusername=’“&txtFindName&“‘“DataEmands(“cmdFindUser〞)mandText=sqlstr‘刷新Grid‘顯示修改結果DataEmands(“cmdFindUser〞)mandText=“selectusername,realname,age,unit,usertyp-E,state,registertimefromusertablewhereusername=’“&txtFindName&“‘“dgrdUser.DataMember=DataEmands(“cmdFindUser〞).NameElseMsgBox〞請?zhí)顚懸薷牡馁Y料!〞,vbOKOnly+vbInformation,〞修改〞ExitSubEndIfElseMsgBox“無此用戶!〞,vbOKOnly+vbInformation,〞修改〞EndIfEndSub下面是用SQL語言實現(xiàn)查詢功能的“刪除“按鈕激發(fā)的Click事件。PrivateSubcmdFDel_Click()‘刪除學生DimsqlstrAsStringDimwherestrAsString‘判斷有無Where語句DimbwhereAsBooleansqlstr=〞deletefromstudenttable〞wherestr=’“bwhere=FalseIfchkFStudentID.Value=1AndtxtFStudentID>text<>““ThenIfbwhereThenwherestr=wherestr+〞and“wherestr=wherestr+〞Studentidlike‘%“&txtFStudentID&“%‘“bwhere=TrueEndIfIfchkFStudentName.Value=1AndtxtFStudentName.Text<>““ThenIfbwhereThenwherestr=wherestr+“and“wherestr=wherestr+〞studentnamelike‘%〞&txtFStudentName&“%’“bwhere=TrueEndIfIfchkFStudentClass.Value=1AndtxtFStudentClass.Text<>““ThenIfbwhereThenwherestr=wherestr+“and“wherestr=wherestr+〞classlike‘%〞&txtFStudentClass&“%’“bwhere=TrueEndIfIfchkFStudentGender.Value=1ThenIfbwherThenwherestr=wherestr+“and“IfcmbFStuGender.ListIndex=0Thenwherestr=wherestr+〞genderlike‘%〞&“男〞&“%’“ElseIfcmbFStuGender.ListIndex=1Thenwherestr=wherestr+“genderlike‘%“&〞女〞&“%’“EndIfbwhere=TrueEndIfIfchkFAcceptanceTime.Value=1AndtxtFYear.Text<>““ThenIftxtFMon.Text=〞“ThentxtFmon.Text=〞00〞IfbwhereThenwherestr=wherestr+〞and“IfoptnFore.ValueThenwherestr=whrerstr+〞acceptancetime<‘“&txtFYear+〞-“+txtFMon&“‘“Elsewherestr=wherestr+〞acceptancetime>’“&txtFYear+“-“+txtFMon&“‘“EndIfbwhere=TrueEndIfIfchkFHometown.Value=1AndtxtFHometown.Text<>““ThenIfbwhereThenwherestr=wherestr+“and“wherestr=wherestr+〞hometownlike‘%〞&txtFHometown&“%’“bwhere=TrueEndIfIfbwhereThensqlstr=sqlstr+“where“+wherestrD

溫馨提示

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

評論

0/150

提交評論