|
一、前言 1、作業(yè)目的 本綜合作業(yè)的目的是使學生在已有的信息管理理論、計算機應用技術和高級語言程序設計等知識的基礎上,運用所學的基礎理論、專業(yè)知識和基本技能,解決本專業(yè)技術中的實際問題。它既是培養(yǎng)學生綜合能力和獨立工作能力的教育過程,又是對學生素質的一次全面的檢驗。 2、作業(yè)內容 考生針對實際中的某個問題,或模擬實際應用中的某個問題進行設計開發(fā),所開發(fā)的系統(tǒng)應具備基本的信息管理功能(如VFP、Access), 例如:人事管理信息系統(tǒng)、工資管理信息系統(tǒng)、公文管理信息系統(tǒng)、學生學籍管理信息系統(tǒng)等。  3、作業(yè)要求 (1)、應按照管理信息系統(tǒng)應用項目開發(fā)的基本辦法進行系統(tǒng)的分析、設計和實施,作業(yè)中要求體現(xiàn)出分析、設計過程。 (2)、要求將可重用代碼和模塊化等設計思想用于設計中。 (3)、設計方面的作業(yè),要有良好的結構,良好的人機界面,正確可靠,可讀性好。 二、設計題目 學生成績管理系統(tǒng) 三、開發(fā)運行環(huán)境: 運行環(huán)境:Windows XP 開發(fā)工具:Visual Foxpro 6.0 數(shù)據(jù)庫:SQL server 四、系統(tǒng)設計的一般過程 學生信息管理系統(tǒng)是典型的信息管理系統(tǒng) (MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 本學生成績管理系統(tǒng)基本上能具體化、合理化的管理學生的成績檔案,用結構化的思維方式去了解計算機的基本工作原理和高級程序設計語言。下面簡單介紹下開發(fā)的一般過程。 1、求分析階段:開發(fā)數(shù)據(jù)庫系統(tǒng)首先要明確用戶的各項需求,以確定系統(tǒng)實現(xiàn)的目標和軟件開發(fā)的構思。需求分析一般包括數(shù)據(jù)分析和功能分析。數(shù)據(jù)分析的結果是歸納出系統(tǒng)應該包括的數(shù)據(jù),以便進行數(shù)據(jù)庫設計:功能分析的目的是為應用程序設計提供依據(jù)。 2、設計階段:對系統(tǒng)開發(fā)進行總體規(guī)劃,建立軟件系統(tǒng)的結構。它包括數(shù)據(jù)庫設計和系統(tǒng)功能模塊設計。數(shù)據(jù)庫數(shù)據(jù)就是將需求進行綜合、歸納與抽象,形成一個統(tǒng)一的概念模型,并畫出其E—R模型圖(實體-聯(lián)系圖,表示實體之間的聯(lián)系),然后轉化為某個數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,設計出需要的數(shù)據(jù)結構。系統(tǒng)功能模塊設計就是設計每個模塊的輸入、輸出以能完成的功能。 3、實施階段:用某個數(shù)據(jù)庫管理系統(tǒng)來具體實現(xiàn)所做的設計方案,此階段一般包含以下四部分。 ⑴據(jù)庫設計 操作管理數(shù)據(jù)庫里面的數(shù)據(jù)是系統(tǒng)的核心目標。 ⑵菜單設計 用于組織應用程序的各項功能。 ⑶界面設計 用于控制數(shù)據(jù)的輸入和輸出。這些界面是用戶和數(shù)據(jù)庫系統(tǒng)之間的接口,既要方便用戶使用,還要清晰、直觀地展示數(shù)據(jù)信息,給用戶創(chuàng)造一個良好的工作環(huán)境。 ⑷功能模塊設計 用于完成具體的數(shù)據(jù)處理工作,如數(shù)據(jù)的錄入、修改和編輯,信息的查詢與統(tǒng)計等,一般通過控件的事件代碼來實現(xiàn)。 ⑸調試程序 當一個程序編寫完成后,應該進行調試,找出程序中的各種錯誤。 4、測試階段:此階段的任務有以下幾項。 ⑴證應用程序是否在不同條件下都能得到正確的結果。 ⑵檢查系統(tǒng)是否完全滿足用戶的需求,在功能上是否還有遺漏。 ⑶檢驗在程序運行過程中對可能遇到的問題是否都有相應的解決措施,確保系統(tǒng)正式投入使用進的安全性和可靠性。 5、運行維護階段:系統(tǒng)通過測試后即可投入正式運行,并在運行過程中不斷修改、調整和完善。 五、系統(tǒng)的總體設計 “學生成績管理系統(tǒng)”可以對學生的各種信息進行全面管理,根據(jù)需求分析設計出系統(tǒng)的總體結構如圖1-1所示。第一層為系統(tǒng)層,通常對應主程序。系統(tǒng)功能如下:成績輸入、成績查詢、數(shù)據(jù)維護。數(shù)據(jù)維護又包括:學生信息維護、系別信息維護、課程信息維護。 六、系統(tǒng)數(shù)據(jù)庫設計 系統(tǒng)數(shù)據(jù)庫設計就是確定數(shù)據(jù)庫中所包含的表。根據(jù)系統(tǒng)的使用需求,歸納出4個實體:學生信息表、成績信息表、課程名表、系別表實體,E-R圖如圖1-2所示。然后進行邏輯結構設計,將其轉換為VFP數(shù)據(jù)庫管理系統(tǒng)所支持的關系數(shù)據(jù)庫模型,即轉換為4個二維表:學生信息表、成績信息表、課程名表、系別表、:最后進行物理設計,即確定表的各字段名稱、數(shù)據(jù)類型與寬度、主鍵、索引以能表之間的聯(lián)系等。 七、系統(tǒng)功能模塊設計 本系統(tǒng)將系統(tǒng)功能劃分為:成績輸入、成績查詢、數(shù)據(jù)維護3個模塊。數(shù)據(jù)維護又包括:學生信息維護、系別信息維護、課程信息維護。 1、成績輸入 用于學生考試成績的輸入。 2、成績查詢 用于學生成績的查詢??梢栽O置查詢條件,系統(tǒng)調用相關的條件進行查詢。 3、數(shù)據(jù)維護 用于對學生信息表、系別表、課程名表的數(shù)據(jù)進行增、刪、改操作。 各功能模塊的功能通過表單來實現(xiàn)。表單的設計在后面介紹。 八、系統(tǒng)實施 FoxPro數(shù)據(jù)系統(tǒng)是依附項目而存在的,一個系統(tǒng)至少需要一個項目,Visual FoxPro數(shù)據(jù)庫系統(tǒng)就是用項目管理器組織的管理整個系統(tǒng),找開項目后,會出現(xiàn)一個項目管理器,用項目管理器可以很方便地將文件加入到項目中。 (一)、創(chuàng)建項目 操作步驟: ⑴ 啟動VFP6.0,單擊菜單跌“文件”,選擇菜單“新建”,或單擊工具欄中的“新建”,就會出現(xiàn)如圖1-3所示的“新建”對話框。 ⑵ 選中“項目”,單擊“新建文件”,就可以出現(xiàn)如圖1-4所示用于“創(chuàng)建”項目的對話框。 ⑶ 在“保存在”下拉列表框中選擇文件保存的位置,選定為F:學生成績管理系統(tǒng),在“項目文件”文本框中輸入項目的文字,在此輸入“學生成績”,再單擊“保存”按鈕,此時一個空項目“學生成績”創(chuàng)建成功,如圖1-5。 (二)、創(chuàng)建數(shù)據(jù)庫VFP 數(shù)據(jù)庫系統(tǒng)操作和管理的對象就是數(shù)據(jù)庫,所以一個系統(tǒng)至少需要一個數(shù)據(jù)庫。對于本系統(tǒng)來說就需要創(chuàng)建一個數(shù)據(jù)庫用來存儲學生信息、課程信息、成績信息、系別信創(chuàng)建的驟如下: ⑴項目管器中選“數(shù)據(jù)”項,選中“數(shù)據(jù)單擊“新會出現(xiàn)圖息。步在理擇選庫”建”如所示。 單數(shù)鈕,圖的對話框,在“數(shù)據(jù)庫名”中輸入“成績管理”,單擊“保存”,彈出數(shù)據(jù)庫設計器對話框,如圖1-7,單擊右鍵會出現(xiàn)快捷菜單,其中的功能和工具欄中的功能一樣,關閉數(shù)據(jù)庫設計器后項目管理器中的數(shù)據(jù)選項的“數(shù)據(jù)庫”前多了一個圖標“”,說明有數(shù)據(jù)庫,展開后如圖1-8所示。 (三)、創(chuàng)建數(shù)據(jù)庫中的表 向數(shù)據(jù)庫中加入表的步驟 (1)在如圖1-8項目管理器中的“數(shù)據(jù)”中選中“表”,單擊“新建”出現(xiàn)“新建表”對話框,選擇“新建表”按鈕,出現(xiàn)如圖1-4一樣的對話框,然后輸入“成績信息表”單擊“保存”,彈出“表設計器”。 (2)然后把“成績信息表”的字段與記錄填入表中,結果如圖1-9所示。 ⑶單擊“索引”,設置“學號”、“課程號”字段為普通索引,如圖1-10所示。 ⑷設置“分數(shù)”字段的“字段有效性”的“規(guī)則”在[0,100]的范圍內。選擇“字段”選取項,在“字段有效性”中的“規(guī)則”中輸入表達式“分數(shù) >=0 AND分數(shù) <=100”,如圖1-9所示,也可單擊,在出現(xiàn)的表達式生成器中生成,如圖-11所示,選擇需要的內容就可生成表達式“分數(shù)>=0 AND分數(shù)<=100”,這表示表“成績信息表”的字段“分數(shù)”中填入的值在于或等于0并且要小于或等于100。 ⑸然后,單擊“確定”則完成“成績信息表”的創(chuàng)建。 (6)其它三個表的內容添加也如上面的方法一一完成。 (7)設置“學生信息表”的“學號”為主索引,“系號”為普通索引。 (8)設置“課程名表”的“課程號”為主索引。 (9)設置“系別表”的“系號”為主索引。 (四)、設置數(shù)據(jù)庫中表之間的關系 設置數(shù)據(jù)庫中表之間的關系如下: ⑴在如圖8“項目管理器”的“數(shù)據(jù)”選項卡中選中“成績管理”圖標,單擊“修改”按鈕,出現(xiàn)“數(shù)據(jù)庫設計器”,拖動“學生信息表”的主索引“學號”到“成績信息表”的索引“學號”上。 ⑵拖動“課程名表”的主索引“課程號”到“成績信息表”的索引“課程號”上。 ⑶拖動“系別表”的主索引“系號”到“學生信息表”的索引“系號”上,結果如圖12所示。 九、主要表單及其事件代碼的實施 為了系統(tǒng)的需要本系統(tǒng)設計了如圖13所示的7個表單,作為系統(tǒng)用戶和數(shù)據(jù)表進行數(shù)據(jù)交互的界面。 (一)、使用表單向導創(chuàng)建表單 先以表單“kechenming”的創(chuàng)建為例,操作如下: ⑴在“項目管理器”中選擇“文檔”選項卡,選中表單圖標向導”按鈕,出現(xiàn)“向導選取”對話框,如圖16所示。 所示,單擊“新建”按鈕,彈出“新建表單”對話框,如圖15所示,單擊“表單 ⑵選擇“表單向導”,單擊“確定”按鈕,出現(xiàn)“表單向導”對話框,如圖17所示。 ⑶從圖17中選擇“課程名表”,單擊“話框,如圖18所示。 ⑷選擇樣式為“標準式”,單擊“下一步”按鈕,出現(xiàn)選擇排序字段的表單向導對話框,如圖19所示,選擇索引字段“課程號”字段,單擊“添加”按鈕,單擊“下一步”按鈕,出現(xiàn)輸入表單標題的表單向導對話框,如圖20所示。 按鈕,將“課程名表”中所有字段都加入設計的表單中,單擊“下一步”按鈕,出現(xiàn)選擇表單樣式的表單向導對 ⑸輸入表單標題“課程名信息維護”,選中“保存并運行表單”單選按鈕,單擊“完成”按鈕,出現(xiàn)類似如圖4所示的對話框,鍵入表單名稱“kechengming”,單擊“保存”按鈕,出現(xiàn)“課程名信息維護”表單的界面,如圖21所示。 說明:界面里出現(xiàn)了表“課程名表”中的記錄,還有瀏覽、添加、修改、刪除等命令按鈕。 其中前四個命令按鈕用于瀏覽表中已有的記錄: 命令按鈕“查找”是用于設定條件查詢記錄的命令按鈕; 命令按鈕“打印”用于打印輸出選擇的記錄; 命令按鈕“退出”用于退出表單“kechengming”。 單擊“添加”或“編輯”命令按鈕后,界面中的文本框才可以編輯,編輯好的記錄,單擊“保存”命令按鈕才會使有效的記錄存于相應的表,“保存”命令按鈕在單擊“添加”或“編輯”命令按鈕后才可出現(xiàn)。 通過表單瀏覽、添加、修改、刪除、打印、查找“課程名表”中的記錄。 用同樣的方法創(chuàng)建表單“xuesheng”和“xibie”,它們分別使用的是“學生信息表”和“系別表”,運行表單的結果如圖22和圖23所示。 二、創(chuàng)建自定義的表單 為了便于輸入數(shù)據(jù)和靈活設置條件,數(shù)據(jù)庫系統(tǒng)中往往需要設計自定義的界面,本系統(tǒng)中設計的自定義界面有表單“shuru”和表單“chazhao”。使用“shuru”表單可輸入學生成績記錄,使用“chazhao”表單可設置條件以查詢學生的成績信息。 ⒈創(chuàng)建“shuru”表單 實現(xiàn)學生成績記錄的輸入。此表單中有4個文本框,2個組合框、4個靜態(tài)文本框分別關聯(lián)成績信息表記錄的4個字段“學號”、“課程號”、“分數(shù)”、“學分”;3個命令按鈕,分別是“添加記錄”、“保存記錄”和“退出”按鈕,如圖24所示。 ⑴在“項目管理器”中選擇“文檔”選項卡,選中如圖14所示的“表單”圖標,單擊“新建”按鈕,彈出“新建表單”對話框,如圖15所示,單擊“新建表單”按鈕,出現(xiàn)空表單設計器,同時還出現(xiàn)用于設計的表單控件工具箱和控件屬性窗口,如圖25和圖26所示。 ⑵選擇屬性窗口中的“Caption”標題屬性,輸入“學生信息錄入”為表單的標題。如圖26所示。 ⑶單擊控件工具箱中的標簽控件的圖標“A”,在表單設計器中適當位置用鼠標左鍵拖出一個方框,即畫出一個靜態(tài)文本框,并在它“Caption”屬性中輸入“學號”,并在“FontSize”中設置字號為12。再畫出3個靜態(tài)文本框,其“Caption”屬性中分別輸入“課程號”、“分數(shù)”、“學分”,如圖27所示。 ⑷單擊控件工具箱中的文本框控件的圖標,在表單設計器中“學號”右邊適當位置用鼠標左鍵拖出一個方框,即畫出一個文本框控件,在它的屬性欄中選擇“Nnme”屬性(給文本框命名),并輸入“xuehao”,如圖28所示。用類似的方法可將另3個文本框命名為“kchao”、“fenshu”、“xuefen”,如圖29所示。這些文本框控件中的輸入數(shù)據(jù)還有其他限制,這在代碼中實現(xiàn)。 ⑸單擊控件工具箱中的組合框控件的圖標,在表單設計器中“學號”右邊適當位置用鼠標左鍵再拖出一個方框,即畫出一個組合框控件,在它的屬性欄中選擇“Name”屬性(給組合框命名),并輸入“x_xuehao”,用同樣的方法在“課程號”右邊拖出另1個組合框,并命名為“k_kchao”, ⑹在這兩個組合框控件中載入數(shù)據(jù)。對組合框控件“x_xuehao”加載的方法如下: 選中組合框控件“x_xuehao”,單擊右鍵,在出現(xiàn)的快捷菜單中選擇“生成器”項,如圖30所示,出現(xiàn)“組合框生成器”對話框,如圖31所示。 選擇“列表項”選項卡,在組合框“用此填充列表”中選擇“表或視圖中的字段”,選擇“成績管理器”數(shù)據(jù)庫和“學生信息表”;選擇“可用字段”中的“學號”字段加入“選定字段”中,單擊“確定”按鈕,就完成了組合框控件“cmb_number”中數(shù)據(jù)的載入,如圖31所示。其中載入的是表“學生信息表”中的所有字號。 組合框控件“cmb_textnum”中數(shù)據(jù)的載入方法類似,在如圖31所示“組合框生成器”對話框中選擇表為“課程名表”,選擇字段“課程號”加入“選定字段”,單擊“確定”按鈕,就完成了組合框控件“cmb_textnum”中數(shù)據(jù)的載入,其中載入的是表“課程名表”中的所有課程號。 此表單中設計的組合框控件與表單“scoresearch”中組合框控件有所不同,在選擇填入數(shù)據(jù)時希望它出現(xiàn),而選定后就不希望它們出現(xiàn),所以需要設置這兩個控件的“Visible”屬性,在此先將其設為“假”,即不可見,至于動態(tài)的實現(xiàn)它們的可見性就需要使用代碼支持了,這些在代碼實現(xiàn)部分再敘述。 ⑺在表單中創(chuàng)建幾個命令按鈕,以便執(zhí)行諸如查詢特定記錄、瀏覽所有記錄、退出當前表單等命令,方法如下: 單擊命令按鈕的控件圖標,在表單設計器中適當位置用鼠標左鍵拖現(xiàn)一個方框就可畫出一個命令按鈕控件來,選中這些命令按鈕控件,在其屬性欄的“Caption”中輸入“添加記錄”把該命令命名為“添加記錄”按鈕。用同樣的方法畫出“保存記錄”和“退出”按鈕,如圖32所示。 只有這些命令按鈕控件還不能進行查詢記錄、修改記錄等操作,命令按鈕往往有支持其單擊事件的代碼,這些在代碼實現(xiàn)部分再敘述。 ⑻調整這些控件的位置,使它們看起來美觀,將表單命名為“shujushuru”,保存后就完成了表單“shujushuru”的設計過程,運行結果如圖33所示。 ⒉創(chuàng)建“shujuchaxun”表單 此表單中需要實現(xiàn)用“學號”、“課程號”、“分數(shù)區(qū)間”這三個字段來設置查詢條件,所以就需要有4個能輸入數(shù)據(jù)的控件,前兩者各需一個,其中“分數(shù)區(qū)間”這一個字段需要使用的是兩個文本框,以實現(xiàn)設置一個數(shù)據(jù)數(shù)型為數(shù)值型的分數(shù)區(qū)間,表單如圖34所示。 ⑴在“項目管理器”中選擇“文檔”選項卡,選中如圖14的“表單”圖標,單擊“新建”按鈕,彈出“新建表單”對話框,如圖15所示,單擊“新建表單”按鈕,出現(xiàn)空表單設計器,同時還出現(xiàn)用于設計的表單控件工具箱和控件屬性窗口,如圖25和圖26所示。 ⑵選擇屬性窗口中的“Caption”標題屬性,輸入“學生信息查詢”為表單的標題。 ⑶單擊控件工具箱中的標簽控件的圖標A,在表單設計器中適當位置用鼠標左鍵拖出一個方框,即畫出一個靜態(tài)文本框,并在它“Caption”屬性中輸入“學號”。再畫出3個靜態(tài)文本框,其“Caption”屬性中分別輸入“課程號”、“分數(shù)區(qū)間”、“至”,它們用于設置查詢條件,如圖34所示。 ⑷單擊控件工具箱中的文本框控件的圖標,在表單設計器中“分數(shù)區(qū)間”右邊適當位置用鼠標左鍵拖出一個方框,即畫出一個文本框控件,在它的屬性欄中選擇“Name”屬性(給文本框命名),并輸入“txt_score1”,在“至”的右邊畫出一個文本框控件,并命名為“txt_score2”。文本框“txt_score1”與“txt_score2”是用于輸入兩個數(shù)字,以確定一個區(qū)間,如圖34所示。對這兩個文本框控件中的輸入數(shù)據(jù)還有其它限制,這在代碼中實現(xiàn)。 ⑸單擊控件工具箱中的組合框控件的圖標,在表單設計器中“學號”右邊適當位置用鼠標左鍵拖出一個方框,即畫出一個組合框控件,在它的屬性欄中選擇“Name”屬性(給組合框命名),并輸入“cmb_number”,用同樣的方法在“課程號”右邊拖出另一個組合框,并命名為“cmb_textnum”,如圖34所示。 ⑹在這兩個組合框控件中載入數(shù)據(jù)。對組合框控件“cmb_number”加載的方法如下: 選中組合框控件“cmb_number”,單擊右鍵,在出現(xiàn)的快捷菜單中選擇“生成器”項,出現(xiàn)組合框生成器對話框,如圖31所示。 選擇“列表項”選項卡,在組合框“用此填充列表”中選擇“表或視圖中的字段”,選擇“成績管理”數(shù)據(jù)庫和“學生信息表”;選擇“可用字段”中的“學號”字段加入“選定字段”中,單擊“確定”按鈕,就完成了組合框控件“cmb_number”中數(shù)據(jù)的載入,其中載入的是表“學生信息表”中的所有學號。如圖30和圖31所示。 組合框控件“cmb_textnum”中數(shù)據(jù)的載入方法類似,在如圖31所示的“組合框生成器”對話框中選擇表為“課程名表”,選擇字段“課程號”加入“選定字段”,單擊“確定”按鈕,就完成了組合框控件“cmb_textnum”中數(shù)據(jù)的載入,其中載入的是表“課程名表”中的所有課程號。 ⑺在表單中創(chuàng)建幾個命令按鈕,以便執(zhí)行諸如查詢特定記錄、瀏覽所有記錄、退出當前表單等命令。方法如下: 單擊命令按鈕的控件圖標,在表單設計器中適當位置用鼠標左鍵拖出一個方框就可畫出一個命令按鈕控件來,選中這些命令按鈕控件,在其屬性欄的“Caption”中輸入“查詢”把該命令命名為“查詢”按鈕。用同樣的方法畫出“瀏覽所有記錄”、“退出”按鈕,如圖34所示。 只有這些命令按鈕控件還不能進行查詢記錄、修改記錄等操作,命令按鈕往往有支持其單擊事件的代碼,這些在代碼實現(xiàn)部分再敘述。 ⑻調整這些控件的位置,使它們看起來美觀,將表單命名為“scoresearch”,保存后就完成了表單“scoresearch”的設計過程,運行結果如圖35所示。 三、表單中的代碼 為了實現(xiàn)對數(shù)據(jù)的靈活操作往往需要代碼支持,代碼在自定義表單中使用得最多。下面就說明表單“shujushuru”與“shujuchaxun”中的代碼。 ⒈單“shujushuru”中的代碼 ⒉⑴文本框控件“xuehao”的Click事件代碼是: ⒊thisform.xuehao.visible=.F. .z_xuehao.top=thisform.xuehao.top thisform.z_xuehao.left=thisfrom.xuehao.left thisfrom.z_xuehao.visible=.T. 作用是單擊文本框控件“xuehao”后,隱藏文本框控件“xuehao”,在文本框控件“xuehao”的位置上顯示組合框控件“z_xuehao”。 ⑵組合框控件“z_xuehao”的Click事件代碼是: thisform.z_xuehao.visible=.F. thisform.xuehao.visible=.T. .xuehao.value=thisform.z_xuehao.text 作用是單擊組合框控件“z_xuehao”后,隱藏組合框控件“z_xuehao”,在文本框控件“xuehao”中顯示組合框控件“z_xuehao”選擇的內容。 ⑶組合框控件“z_xuehao”的LostFocus事件代碼是: thisform.z_xuehao.visible=.F. thisform.xuehao.visible=.T.作用是組合框控件“z_xuehao”失去焦點后,隱藏組合框控件“z_xuehao”,顯示文本框控件“xuehao”。 ⑷文本框控件“xuehao”、組合框控件“z_xuehao”與文本框控件“kchao”、組合框控件“kchao1”的代碼雷同,在此不再說明。 ⑸“添加記錄”命令按鈕的Click事件代碼是:xuehao。類似方法可將另3個文本框命名為“kchao”、“fenshu”、“xuefen”。 .xuehao.value="" thisform.kchao.value="" thisform.fenshu.value="" thisfrom.xuefen.value=""其作用是清空表單中所有文本框中的內容,以便輸入新的記錄. ⑹“保存記錄”命令按鈕的Click事件代碼是: thisform.xuehao.value=NULL or thisform.kchao.value= NULL or thisform.fenshu.value=NULL or thisform.xuefen.value =NULL messagebox("所有項內容都不能為空",48,"提示信息") else into 成 績 信 息 表 values(alltrim(thisform.txt_number. Value),alltrim(thisform.kchao.value),val(alltrim(thisform. fenshu.value)),val(alltrim(thifform.xuefen.value))) endif 其作用是判斷表單中所有文本框中的內容是否都不空,是則保存當前記錄,否則顯示“所有項目內容都不能為空”的出錯信息。 ⑺“退出”命令按鈕的Click事件代碼是:thisform.release,用于退出當前表單。 、表單“shujuchaxun”中的代碼 ⑴“瀏覽所有記錄”命令按鈕的Click事件代碼是: seldct * from 成績信息表 其作用是顯示“成績信息表”的所有記錄。 ⑵第一個“查詢”命令按扭的Click事件代碼是: select*from 成績信息表 成績信息表.學號 =alltrim(thisfrom.cmb_number.text) 其作用是顯示“成績信息表”中字段“學生學號”與組合框控件 “cmb_number.text”中內容相同的所有記錄。 ⑶第二個“查詢”命令按鈕的Click事件代碼是: * from 成績信息表 wher 成績信息表.課程名稱=alltrim(thisform.cmb_textname.text) 其作用是顯示“成績信息表”中字段“課程名稱”與組合框控件“cmb_textname.text”中內容相同的所有記錄。 ⑷第三個“查詢”命令按鈕的Click事件代碼是: val(alltrim(thisform.txt_score1.text))<0 or val(alltrim(thisform. txt_scorel.text))>val (alltrim(thisform.txt_score2.text)) then messagebox("此值須大于0并且不能大于后面的值",48,"信息窗口") else val(alltrim(thisform.txt_score2.text))>100 then messagebox("此值須小于100",48,"信息窗口") else thisform.txt_scorel.text=NULL or thisform.txt_score2.text=NULL then messagebox("區(qū)間值不能為空" thisform.txt_scorel.text ":" thisform.txt_score2.text,48, "信息窗口") else * from 成績信息表 where 成績信息表.分數(shù) between val(alltrim (thisform.txt_score1.text))and val(alltrim(thisform.txt_score2.text)) endif endif endif 其作用是先判斷文本框中的內容是否合理,若不合理則顯示相應的出錯信息,合理則顯示“成績信息表”中字段“分數(shù)”的值介于文本框控件“txt_score1”與文本框控件“txt_score2”中值的所有記錄。 ⑸“退出”命令按鈕的Click事件代碼是:thisform.release,用于退出當前表單。 四、創(chuàng)建主界面的表單 主界面表單主要是為用戶提供一個友好界面,方便用戶使用本系統(tǒng)。 系統(tǒng)主界面表單“zjmbd.scx”如圖36所示。 操作步驟: ⑴參見前面自定義界面,創(chuàng)建如圖37所示的表單。 ⑵設置其“Caption”屬性為“學生成績管理系統(tǒng)”。 ⑶設置其“ShowWindow”屬性值為2,使該表單作為頂層表單,如圖38所示。 ⑷在“Picture”屬性中選擇一圖片,在此加入的是圖片的路徑“e:.jpg”,如圖39所示。 ⑸右鍵單擊表單空白位置,出現(xiàn)快捷菜單,如圖37所示,選擇“代碼”命令,出現(xiàn)代碼編輯窗口,選擇過程為“init”事件,其代碼為:do menu1.mpr with this,‘XXX’,如圖40所示。將系統(tǒng)主菜單“sys_menu.mpr”加入該表單。 ⑹選擇過程為“destroy”事件,其代碼為:release menu xxx extended,如圖41所示。 ⑺關閉表單設計器,出現(xiàn)提示保存提示框,單擊“是”按鈕,出現(xiàn)“另存為”對話框,在對話框中,輸入文件名“zjmbd”,單擊“保存”按鈕,生成“zjmdb.scx”文件。 ⑻運行“zjmbd.scx”表單,結果如圖36所示。 五、創(chuàng)建系統(tǒng)的主菜單 菜單在系統(tǒng)中可集中地體現(xiàn)系統(tǒng)的功能,它的主要作用是將系統(tǒng)的功能分類,點擊后鏈接到相應的功能表單中去,如圖42所示。是本系統(tǒng)的主菜單“menu1.mpr”。 ⒈在項目管理器中選擇“其他”項,選中圖標“菜單”,單擊“新建”按鈕,出現(xiàn)“新建菜單”對話框,如圖43所示,單擊“菜單”按鈕,出現(xiàn)如圖44所示的菜單設計器。 ⒉創(chuàng)建菜單 ⑴“成績輸入”菜單鏈接“scoreinput”表單。 ⑵“成績查詢”菜單鏈接“scoreinput”表單。 ⑶“數(shù)據(jù)維護”菜單有一個子菜單,子菜單設置如圖45所示?!皩W生信息維護”子菜單鏈接“studeng”表單;“系別信息維護”子菜單鏈接“depart”表單;“課程信息維護”子菜單鏈接“keming”表單。 ⑷“退出”菜單設為一過程,其代碼如圖46所示。 ⒊設計完菜單后,先不要關閉菜單設計器,而是選擇系統(tǒng)“顯示”菜單下“常規(guī)選項”命令,出現(xiàn)“常規(guī)選項”對話框,選擇“頂層表單”復選框,單擊“確定”按鈕,如圖47所示,這樣就可以把該表單加入到頂層表單中。 ⒋關閉菜單設計器,出現(xiàn)提示保存提示框,單擊“是”按鈕,出現(xiàn)“另存為”對話框,在對話框中,輸入文件名“menu1”,單擊“保存”按鈕,即生成一個菜單文件。 六、創(chuàng)建主程序 主程序是系統(tǒng)的入口點,它應有初始環(huán)境、調用系統(tǒng)主界面表單、控制事件循環(huán)、退出時恢復環(huán)境的功能。創(chuàng)建本系統(tǒng)的主程序“main.prg”,它主要是調用系統(tǒng)的主界面表單“zjmbd.scx”。 ⑴在項目管理器中,選擇“代碼”選項卡,單擊“程序”圖標,如圖48所示。 ⑵單擊“新建”按鈕,出現(xiàn)程序編輯窗口,在窗口中輸入主程序,如圖49所示 ⑶關閉此窗口,出現(xiàn)提示保存提示框,單擊“是”按鈕,出現(xiàn)“另存為”對話框,在對話框中,輸入文件名“main”,單擊“保存”按鈕,即生成一個程序文件。 七、連編編應用程序 完成了上面幾個部分的設計后就可以將這些模塊聯(lián)合調試并編譯,在Visual FoxPro中稱為連編項目。與連編相關的幾個內容如下: ⒈設置文件的“排除”與“包含” 將一個項目編譯成一個應用程序時,所有項目將組合為一個單一的應用程序文件。在項目連編后,那些在項目中標為“包含”的文件將變?yōu)橹蛔x文件。像表這些文件需要錄入數(shù)據(jù),這些文件應標為“排除”,而像表單、報表、查詢和程序文件等文件只能是只讀文件,這些文件需要標為“包含”。 操作:在項目管理器中選中文件單擊右鍵,在出現(xiàn)的快捷菜單中就可出現(xiàn)“排除/包含”項,根據(jù)要求選擇,在這里不作為重點就不出圖了. ⒉設置主文件 主文件是整個應用程序的入口點,主文件的任務是設置應用程序的起始點、初始化環(huán)境、顯示初始的用戶界面、控制事件的循環(huán)。 操作:在項目管理器中選中要設置的主文件。本系統(tǒng)用“main.prg”文件,右鍵單擊該文件,從快捷菜單中選擇“設置主文件”選項,既完成主文件的設置,如圖51所示。將程序文件“main”設置為系統(tǒng)的啟動主文件。 在Visual FoxPro6.0主窗口中,選擇“項目|項目信息”命令,打開了“項目信息”對話框,可設置系統(tǒng)開發(fā)的作者信息、系統(tǒng)桌面圖標及是否加密等項目信息內容,如圖52所示。 ⒊連編項目 連編項目是讓Visual FoxPro系統(tǒng)對系統(tǒng)的整體性能進行測試的方法,此過程的最終結果是將所有在項目中引用的文件,除了那些標記為排除的文件外,合成為一個應用程序文件。最后需要將應用程序文件、數(shù)據(jù)文件以及其他排除的項目文件一起交給最終用戶使用。 連編項目可生成兩種程序文件,即可執(zhí)行文件.EXE(可在Windows中,也可在Visual FoxPro中運行)、APP文件(只能在Visual FoxPro中運行),也可生成.DLL的文件。 在項目管理器中進行項目連編的具體步驟如下: ⑴選中設置為主文件的文件,單擊“連編”按鈕,彈出如圖53所示的“連編選項”對話框,在“連編選項”對話框中,選中“連編可執(zhí)行文件”單選按鈕。 ⑵根據(jù)需要在如圖53所示的“連編選項”對話框中,選擇“顯示錯誤”復選框可立刻查看錯誤文件。 ⑶單擊“確定”按鈕,出現(xiàn)“另存為”對話框,在對話框中,輸入可執(zhí)行文件名為“xff”,單擊“保存”按鈕,即編譯成一個可獨立運行的xff.exe文件。 如果在項目連編過程中發(fā)生錯誤,必須糾正或排除錯誤,并且反復進行“重新連編項目”直至成功。 八、運行應用程序 為項目建立了一個應用程序文件之后,就可運行它了。 操作步驟: ⑴在Visual FoxPro窗口中,選擇“程序”菜單中的“運行”命令,出現(xiàn)“運行”對話框,如圖54所示。選擇要運行的應用程序或可執(zhí)行文件;或在“命令”窗口中,鍵入“do”和應用程序或可執(zhí)行文件名,按回車鍵,如“do cjgl”,出現(xiàn)圖55所示的界面窗口。 另外,在Windows中,也可雙擊cjgl.exe文件,進入如圖55所示的窗口。 ⑵可通過選擇菜單進行操作,如單擊“成績輸入”菜單,可打開“學生信息錄入”窗口,可通過選擇學號和課程號來輸入分數(shù)和學分。 ⑶單擊系統(tǒng)菜單“退出”,可退出“學生成績管理系統(tǒng)”。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|