【正文】
保存崗位編號(hào)和崗位名稱等信息崗位的數(shù)據(jù)表如表310所示表310崗位表字段名 數(shù)據(jù)類型 長度 小數(shù)點(diǎn)位 備注 崗位編號(hào) char 20 崗位名稱 char 20 在數(shù)據(jù)庫中建立名為工作人員的數(shù)據(jù)表用來保存工作人員的姓名和崗位等信息工作人員的數(shù)據(jù)表如表311所示表311工作人員表字段名 數(shù)據(jù)類型 長度 小數(shù)點(diǎn)位 備注 姓名 char 20 崗位 char 20 界面設(shè)計(jì)及編碼所謂編碼就是把軟件結(jié)果翻譯成用某種程序設(shè)計(jì)語言書寫的程序作為軟件工程過程的一個(gè)階段編碼是對設(shè)計(jì)的進(jìn)一步具體化因此程序的質(zhì)量主要取決于軟件的質(zhì)量但是所選用的程序設(shè)計(jì)語言的特點(diǎn)及編碼風(fēng)格也將對程序的可靠性可讀性可測性和可維護(hù)性產(chǎn)生深遠(yuǎn)的影響界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分對于交互式系統(tǒng)來說人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)及過程設(shè)計(jì)一樣重要41登陸界面登陸界面作為本軟件的一個(gè)門戶要有鑰匙才能打開這把鑰匙就是帳號(hào)和密碼界面如圖41所示圖41登陸界面 輸入帳號(hào)和密碼只有帳號(hào)和密碼正確才可以進(jìn)入主界面登陸界面中涉及到的核心代碼如下If Text1Text And Text2Text Then strsql select from 用戶信息 where 用戶名 Text1Text and 密碼 Text2Text Set rs nExecute strsql If Not rsEOF Then 輸入的登錄信息正確則進(jìn)入系統(tǒng) 主界面Show Unload 登陸界面 Else MsgBox 您輸入的登錄信息有誤請重新輸入 vbOKOnly vbExclamation 提示 Text1Text Text2Text Text1SetFocus End IfElse MsgBox 您輸入的帳號(hào)或密碼有誤 vbOKOnly vbExclamation 警告 Text1Text Text2Text Text1SetFocusEnd If此登陸界面中涉及到的帳號(hào)和密碼就是用戶信息表中的記錄如果用戶信息中沒有與輸入的帳號(hào)和密碼相匹配的就出現(xiàn)您輸入的帳號(hào)或密碼有誤的提示42主界面主界面是進(jìn)行比賽進(jìn)程的各個(gè)功能的總控制把進(jìn)行田徑運(yùn)動(dòng)員所要有的功能通過菜單全部編輯在一起只要點(diǎn)擊相應(yīng)的菜單項(xiàng)就可以進(jìn)行各種功能操作主界面也就是各種功能的連接點(diǎn)主界面圖42所示 圖42 主界面 主界面左上角就是菜單每一個(gè)菜單中都有多個(gè)菜單項(xiàng)每個(gè)菜單項(xiàng)就是進(jìn)行比賽管理的一個(gè)模塊缺一不可所有的菜單項(xiàng)組成一個(gè)學(xué)校田徑運(yùn)動(dòng)會(huì)管理系統(tǒng)43 前期編排前期編排中的定義比項(xiàng)目設(shè)置工作崗位錄入工作人員運(yùn)動(dòng)員報(bào)名和錄入紀(jì)錄成績都是表中不存在的就插入到表中如果存在就修改這幾個(gè)小模塊的代碼在同小異這里只摘入其中一個(gè)小模塊的代碼這里就以運(yùn)動(dòng)員報(bào)名為例界面如圖43所示圖43 運(yùn)動(dòng)員報(bào)名界面在運(yùn)動(dòng)員報(bào)名界面中輸入要報(bào)名人的信息及所要參加的項(xiàng)目如果此人在運(yùn)動(dòng)員名單中不存在則把此運(yùn)動(dòng)員信息插入到運(yùn)動(dòng)員名單中并且把此人所要報(bào)的項(xiàng)目信息插入到參賽情況表中如果此人存在于運(yùn)動(dòng)員名單中且該項(xiàng)目沒有被此人選擇則把此人參加該項(xiàng)目的信息插入到參賽情況表中否則提示此人已經(jīng)參加了此項(xiàng)目部分代碼如下 strsql select from 運(yùn)動(dòng)員名單 where 姓名 Text1Text or 學(xué)號(hào) Text2Text Set rs nExecute strsql If rsEOF True Then 該運(yùn)動(dòng)員不存在可以入庫 strsql1 insert into 運(yùn)動(dòng)員名單 values Text2Text Text1Text Combo2Text Text4Text strsql3 insert into 運(yùn)動(dòng)員參賽情況 values Text1Text Combo1Text nExecute strsql1 nExecute strsql3 MsgBox 報(bào)名成功 vbOKOnly 提示 Else strsql2 select from 運(yùn)動(dòng)員參賽情況 where 姓名 Text1Text and 項(xiàng)目名稱 Combo1Text Set rs nExecute strsql2 If rsEOF True Then strsql4 insert into 運(yùn)動(dòng)員參賽情況 values Text1Text Combo1Text nExecute strsql4 End If End if44 比賽管理比賽管理模塊中有三個(gè)小模塊分為徑賽成績錄入與輸出田賽成績錄入與輸出和全能成績錄入與輸出這三個(gè)模塊要實(shí)現(xiàn)的功能也一樣所以這三個(gè)模塊的界面也差不多在這里就用其中的一個(gè)模塊來做為例子就以田賽成績錄入與輸出這個(gè)模塊為例界面如圖44所示圖44 田賽成績錄入與輸出界面從項(xiàng)目和姓名中選擇相應(yīng)的項(xiàng)目及姓名輸入成績?nèi)绻巳说拇隧?xiàng)目成績沒有錄入單擊確定就可以把此成績插入到田賽成績表中如果成績已存在則修改此成績代碼如下 strsql select from 田賽成績 where 姓名 Combo2Text and 項(xiàng)目名稱 Combo1Text Set rs nExecute strsql If rsEOF True Then 該項(xiàng)目成績沒有被記錄可以入庫 strsql3 insert into 田賽成績 values Combo2Text Combo1Text Text3Text nExecute strsql3 MsgBox 修改成功 vbOKOnly 提示 Text3Text Else strsql4 update 田賽成績 set 成績 Text3Text where 姓名 Combo2Text and 項(xiàng)目名稱 Combo1Text nExecute strsql4 Text3Text End If單擊圖 4 中的輸出就是得出田賽項(xiàng)目的最終成績即得出田賽項(xiàng)目的名次田賽輸出是把每個(gè)田賽項(xiàng)目中的前幾名的人員成績信息輸出到最終成績表中從田賽成績中的開始查找田賽項(xiàng)目則從田賽成績表中把從項(xiàng)目名單中查找到的項(xiàng)目的前幾名成績信息輸出到最終成績表中然后再從田賽成績中查找下一個(gè)田賽項(xiàng)目再把該項(xiàng)目的前幾名輸出到最終成績表中以此循環(huán)直到田賽成績中的項(xiàng)目全部查完輸出部分的代碼如下strsql6 select 每項(xiàng)目取的名次 from 參數(shù)表Set rs nExecute strsql6 strsql select distinct 項(xiàng)目名稱 from 田賽成績Set rs1 nExecute strsql i 0Do While Not rs1EOF strsql1 select from 田賽成績 where 項(xiàng)目名稱 rs1Fields 0 order by 成績 desc Set rs2 nExecute strsql1 For j 0 To Val rsFields 0 1 strsql3 select from 最終成績 where 姓名 rs2Fields 0 and 項(xiàng)目名稱 rs2Fields 1 Set rs nExecute strsql3 If rsEOF Then strsql0 select 分?jǐn)?shù) from 名次分?jǐn)?shù)表 where 名次 j 1 Set rs5 nExecute strsql0 strsql2 insert into 最終成績 姓名項(xiàng)目名稱成績名次分?jǐn)?shù) values rs2Fields 0 rs2Fields 1 rs2Fields 2 j 1 rs5Fields 0 nExecute strsql2 End If rs2MoveNext Next rs1MoveNext i i 1Loop45 查詢輸出查詢輸出模塊中有七種不同的查詢運(yùn)動(dòng)員成績查詢代表隊(duì)成績查詢項(xiàng)目成績查詢總分表項(xiàng)目名次表成績名次表和成績匯冊這些查詢都是使用SQL語句進(jìn)行查詢不同的就是SQL語句中的條件不同面已因此在代碼方面都差不多如項(xiàng)目成績查詢項(xiàng)目成績查詢界面如圖45所示圖45 查詢界面從圖 5 中的項(xiàng)目名稱中選擇一個(gè)項(xiàng)目然后單擊查詢就會(huì)輸出該項(xiàng)目的所有運(yùn)動(dòng)員的比賽成績部分代碼如下If Combo1Text Then MsgBox 請選擇項(xiàng)目名稱 vbOKOnly 提示Elsestrsql select 項(xiàng)目類型 from 運(yùn)動(dòng)項(xiàng)目名單 where 項(xiàng)目名稱 Combo1Text Set rs nExecute strsqlIf rsFields 0 田賽項(xiàng)目 Then strsql1 select from 田賽成績 where 項(xiàng)目名稱 Combo1Text Set rs1 nExecute strsql1 With MSHFlexGrid1 詳細(xì)查詢的信息顯示 Rows 2 CellAlignment 4 TextMatrix 0 0 姓名 TextMatrix 0 1 項(xiàng)目名稱 TextMatrix 0 2 成績 Do While Not rs1EOF Rows Rows 1 CellAlignment 4 TextMatrix Rows 2 0 rs1Fields 0 TextMatrix Rows 2 1 Trim rs1Fields 1 TextMatrix Rows 2 2 rs1Fields 2 rs1MoveNext Loop Rows Rows 1 End WithEnd IfEnd if上述代碼只是實(shí)現(xiàn)選擇的項(xiàng)目是田賽項(xiàng)目的成績輸出選擇的項(xiàng)目是徑賽項(xiàng)目和全能項(xiàng)目這里就不列出來了實(shí)現(xiàn)項(xiàng)目成績查詢首先選擇項(xiàng)目名稱再查詢先判斷選擇的項(xiàng)目是哪一種類型的項(xiàng)目如果是全能項(xiàng)目或田賽項(xiàng)目則第一行是姓名項(xiàng)目名稱和成績?nèi)绻菑劫愴?xiàng)目第一行就是姓名項(xiàng)目名稱初賽成績預(yù)賽成績和決賽成績從第二行開始就是該項(xiàng)目所有運(yùn)動(dòng)員的成績信息46 系統(tǒng)工具系統(tǒng)工具是為本系統(tǒng)服務(wù)的工具方便本系統(tǒng)的使用如數(shù)據(jù)庫備份與恢復(fù)就是為了防止系統(tǒng)的數(shù)據(jù)庫出現(xiàn)錯(cuò)誤可以通過還原數(shù)據(jù)庫來修正這個(gè)錯(cuò)誤而數(shù)據(jù)表的瀏覽是讓人清楚數(shù)據(jù)庫中有哪些表及表的屬性讓人更清楚明白數(shù)據(jù)庫表的結(jié)構(gòu)這里就以數(shù)據(jù)庫備份與還原為例界面如圖46和47所示圖46備份與還原界面 圖47 備份完成界面只要單擊下圖 6 中備份或恢復(fù)即可完成備份或恢復(fù)操作圖 7 就是完成了數(shù)據(jù)庫備份成功后的界面?zhèn)浞輸?shù)據(jù)庫就是把系統(tǒng)中的數(shù)據(jù)庫壓縮拷貝到另外的路徑文件下面Dim FileName As String Dim FileBack As String Dim Info As String FileName mypath db1mdb FileBack mypath backupdbbak Info 正在備份數(shù)據(jù)庫 FileName BackupDatabase FileName FileBack InfoMsgBox 備份數(shù)據(jù)庫成功 vbInformation 提示結(jié)束語本系統(tǒng)是在Windows XP的環(huán)境下設(shè)計(jì)和調(diào)試的并安裝有Visual Basic開發(fā)工具和Microsoft Office Access數(shù)據(jù)庫經(jīng)過調(diào)試證明1.錄入的報(bào)名和比賽成績數(shù)據(jù)準(zhǔn)確就能保證結(jié)果準(zhǔn)確不需要反復(fù)核對2.軟件處理的速度快保證實(shí)時(shí)的數(shù)據(jù)處理滿足隨時(shí)信息查詢