數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例課件_第1頁
數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例課件_第2頁
數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例課件_第3頁
數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例課件_第4頁
數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例課件_第5頁
已閱讀5頁,還剩165頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章數(shù)據(jù)庫應用系統(tǒng)開發(fā)

9.1軟件工程9.2數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程9.3數(shù)據(jù)庫應用程序開發(fā)實例第9章數(shù)據(jù)庫應用系統(tǒng)開發(fā)9.1軟件工程9.1軟件工程9.1.1概述 軟件工程的概念起源于20世紀60年代末期出現(xiàn)的“軟件危機”。1.軟件 軟件是程序的完善和發(fā)展,是經(jīng)過嚴格的正確性檢驗和實際試用,并具有相對穩(wěn)定的文本和完整的文檔資料的程序。9.1軟件工程9.1.1概述2.軟件開發(fā)經(jīng)歷的3個階段(1)程序設計時期(1946年~20世紀60年代中期)(2)軟件時期(20世紀60年代中期~20世紀70年代中期)(3)軟件工程時期(1970年至今)3.軟件危機2.軟件開發(fā)經(jīng)歷的3個階段軟件危機主要有以下幾方面的表現(xiàn)。軟件的復雜性越來越高,“手工作坊”式的軟件開發(fā)方式已無法滿足要求。對軟件成本和進度統(tǒng)計不準,實際費用超出預算。開發(fā)周期成本。軟件質量難以保證,常被懷疑。缺乏良好的軟件文檔?,F(xiàn)有的軟件極難維護。軟件開發(fā)效率遠跟不上計算機發(fā)展的需求。用戶往往對軟件不滿意。軟件危機主要有以下幾方面的表現(xiàn)。4.軟件工程學概述(1)軟件工程學的研究對象(2)軟件工程學的基本目標(3)軟件工程學的3個要素(4)軟件生命周期(SoftwareLifeCycle)4.軟件工程學概述9.1.2軟件生存周期 一個軟件從用戶提出開發(fā)、使用要求到廢棄不用為止的全過程,稱為軟件生存周期,又稱軟件生命周期。 軟件生命周期由軟件定義、軟件開發(fā)和軟件維護3個時期組成。每個時期又分為若干個階段。 軟件生存周期的模型主要有以下兩個。1.瀑布模型(1976年由B.W.Boehm提出)9.1.2軟件生存周期按瀑布模型,一個完整的軟件開發(fā)過程分為如下幾個階段。(1)計劃階段:(2)開發(fā)階段:(3)運行階段:2.快速原型按瀑布模型,一個完整的軟件開發(fā)過程分為如下幾個階段。9.1.3軟件定義 軟件定義,又稱為系統(tǒng)分析。這個時期的任務,是確定軟件開發(fā)的總目標,確定軟件開發(fā)工程的可行性,確定實現(xiàn)工程目標應該采用的策略和必須完成的功能,估計完成該項工程需要的資源和成本,制定出工程進度表。 軟件定義,可進一步劃分為3個階段,即問題定義階段、可行性研究階段和需求分析階段。1.問題定義階段2.可行性研究階段9.1.3軟件定義可行性的內(nèi)容包括:技術可行性;經(jīng)濟可行性;操作可行性。軟件計劃任務書,包括:軟件項目目標;主要功能、性能;系統(tǒng)的高層邏輯模型(數(shù)據(jù)流圖);系統(tǒng)界面;可供使用的資源;進度安排和成本預算??尚行缘膬?nèi)容包括:3.需求分析 需求分析即系統(tǒng)分析,通常采用系統(tǒng)模型定義系統(tǒng)。在可行性分析的基礎上,需求分析的主要任務是:明確用戶要求軟件系統(tǒng)必須滿足的所有功能、性能和限制,也就是解決軟件“做什么的問題”。 系統(tǒng)邏輯模型是以后設計和實現(xiàn)目標系統(tǒng)的基礎,必須準確而完整地體現(xiàn)用戶的要求。(1)需求說明書3.需求分析需求分析階段應提交的文檔是需求說明書。需求說明書的主要內(nèi)容如下。概述。需求說明:數(shù)據(jù)描述:運行環(huán)境:需求分析階段應提交的文檔是需求說明書。需求說明書的主要內(nèi)容如(2)結構化分析(StructuredAnalysis)方法 結構化分析方法是需求分析的最常用方法,簡稱SA方法。它與設計階段的結構化設計(SD)方法一起聯(lián)合使用,能夠較好地實現(xiàn)一個軟件系統(tǒng)的研制。①SA方法的基本原理②SA方法的分析工具③SA方法中導出的分析模型(2)結構化分析(StructuredAnalysis)方9.1.4軟件開發(fā) 軟件開發(fā),是實現(xiàn)前一個時期定義的軟件。它包含4個階段:總體設計、詳細設計、編碼和測試。1.總體設計2.詳細設計9.1.4軟件開發(fā)詳細設計階段的方法如下。(1)結構化程序設計技術。(2)面向數(shù)據(jù)結構的設計方法:(3)面向對象的程序設計方法:3.編碼設計與單元測試4.綜合測試詳細設計階段的方法如下。9.1.5軟件測試1.測試的定義測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。2.測試的目的3.基本測試方法4.測試策略9.1.5軟件測試9.1.6軟件維護 軟件維護的任務,是使軟件能夠持久地滿足用戶的需求。 軟件維護可分為4類:糾錯性維護、適應性維護、完善性維護和預防性維護。9.1.7計算機輔助軟件工程 計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE),是20世紀80年代末期從計算機輔助編輯工具4GLS(4thGenerationLanguages)和繪圖工具發(fā)展而來的大型綜合計算機軟件工程開發(fā)環(huán)境。9.1.6軟件維護9.2數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程 數(shù)據(jù)庫應用系統(tǒng)根據(jù)以數(shù)據(jù)為中心和以處理為中心可分為兩類:前者以提供數(shù)據(jù)為目的,重點在數(shù)據(jù)采集、建數(shù)據(jù)庫及數(shù)據(jù)庫維護等工作;后者雖然也包含這些內(nèi)容,但重點是使用數(shù)據(jù),即進行查詢、統(tǒng)計和打印報表等工作,其數(shù)據(jù)量比前者小得多。以處理為中心的數(shù)據(jù)庫應用系統(tǒng)適用于一般企事業(yè)單位。本節(jié)主要介紹這類系統(tǒng)的開發(fā)方法,其方法過程如圖9.1所示。9.2數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程 數(shù)據(jù)庫應用系統(tǒng)根據(jù)以數(shù)據(jù)為中圖9.1以處理為中心的數(shù)據(jù)庫應用系統(tǒng)開發(fā)流程示意圖圖9.1以處理為中心的數(shù)據(jù)庫應用系統(tǒng)開發(fā)流程示意圖1.需求分析 由圖9.1可知,整個開發(fā)活動從對系統(tǒng)的需求分析開始,系統(tǒng)需求包括對數(shù)據(jù)的需求和對應用功能的需求兩方面內(nèi)容。圖中把前者稱為數(shù)據(jù)分析,后者稱為功能分析。進行需求分析時應該注意以下問題。(1)確定需求必須建立在調查研究的基礎上,包括訪問用戶、了解人工系統(tǒng)模型、采集和分析有關資料等工作。在開發(fā)初期所做的設計方案往往會對最終結果產(chǎn)生很大的影響。認真細致地規(guī)劃將能節(jié)省時間、精力和資金。(2)需求分析階段應該讓最終用戶更多地參與。即使做了仔細的分析,在系統(tǒng)實施過程中也會需要不斷地修改設計,為此需隨時接受最終用戶的反饋。1.需求分析2.數(shù)據(jù)庫設計在設計應用程序之前,應先組織數(shù)據(jù)。VFP通過設置數(shù)據(jù)庫來統(tǒng)一管理數(shù)據(jù),既能增強數(shù)據(jù)的可靠性,也便于進行系統(tǒng)開發(fā)。(1)創(chuàng)建數(shù)據(jù)庫的優(yōu)點①創(chuàng)建數(shù)據(jù)庫是實現(xiàn)數(shù)據(jù)集成的有效手段。數(shù)據(jù)庫按一定的結構集中了應用系統(tǒng)中的數(shù)據(jù),使之更便于統(tǒng)一管理。②可以定義數(shù)據(jù)詞典的功能,其內(nèi)容包括表的屬性、字段屬性、記錄規(guī)則、表間關系以及參照完整性。③允許在數(shù)據(jù)庫中建立永久關系,使其具有以下功能。2.數(shù)據(jù)庫設計(2)數(shù)據(jù)庫的邏輯設計與物理設計這兩項是需要由開發(fā)人員完成的工作。其中數(shù)據(jù)庫邏輯設計的任務大致如下。①按一定的原則將數(shù)據(jù)組織成一個或多個數(shù)據(jù)庫,指明數(shù)據(jù)庫中包含了幾個表,并指出每個表包含的字段。②安排表之間的關聯(lián)。(3)代碼設計3.應用程序設計(2)數(shù)據(jù)庫的邏輯設計與物理設計結構化程序設計面向對象程序設計設計算法設計與簡單用戶界面設計圖形用戶界面設計及對象設置編碼程序編碼對象屬性定義與事件過程編碼測試與調試表9-1 結構化程序設計與面向對象程序設計主要步驟的比較結構化程序設計面向對象程序設計設計算法設計與簡單用戶(1)創(chuàng)建子類(2)用戶界面設計與編碼(3)數(shù)據(jù)輸出設計(4)數(shù)據(jù)庫維護功能(1)創(chuàng)建子類4.調試技術在典型情況下,當程序員測試和調試應用程序時,主要是在研究程序不同級別的可靠性。(1)運行不會導致崩潰或產(chǎn)生錯誤信息,即沒有語法錯誤。(2)在一般情況下操作正常,沒有邏輯錯誤。(3)具有運行時處理錯誤的能力。(4)在意外的用戶干擾時,很容易恢復,即具有數(shù)據(jù)安全保護機制。4.調試技術在早期的開發(fā)過程中,可以采取一些必要步驟,這樣可以使后面的測試和調試工作變得簡單。這些步驟包括:(1)建立測試環(huán)境;(2)設置驗證信息;(3)查看事件發(fā)生的序列。5.測試6.應用程序發(fā)布7.維護在早期的開發(fā)過程中,可以采取一些必要步驟,這樣可以使后面的測9.3數(shù)據(jù)庫應用程序開發(fā)實例 開發(fā)一個應用軟件,應在調查的基礎上對系統(tǒng)進行需求分析,并繪出模塊結構圖,根據(jù)模塊結構圖進行功能設計和數(shù)據(jù)庫設計,然后進行詳細設計和程序設計。其中,首先應明確系統(tǒng)的結構與數(shù)據(jù)文件結構。例9-1設計一個學生信息系統(tǒng)。9.3.1學生信息系統(tǒng)需求分析9.3數(shù)據(jù)庫應用程序開發(fā)實例 開發(fā)一個應用軟件,應在調查的(1)設計一個學生信息系統(tǒng),其中包括能進行成績錄入、修改和查詢,以及學生信息的錄入、修改和查詢。(2)不同的用戶管理。(3)數(shù)據(jù)查詢時應具備模糊查詢功能。(4)該系統(tǒng)屬于以處理為中心的數(shù)據(jù)庫應用系統(tǒng),應在設計應用程序之前先通過數(shù)據(jù)庫統(tǒng)一管理和組織數(shù)據(jù),以增強數(shù)據(jù)的可靠性,也便于進行系統(tǒng)開發(fā)。(5)使用現(xiàn)場收集部分或全部數(shù)據(jù)參與設計與測試。(6)重視用戶的需求及要求。(7)該系統(tǒng)的界面設計應注重界面友好,可讀性強,實用性強。(8)對于此例功能較為簡單的數(shù)據(jù)庫系統(tǒng),使用針對中小型數(shù)據(jù)庫開發(fā)的語言VFP6.0進行設計。(1)設計一個學生信息系統(tǒng),其中包括能進行成績錄入、修改和查9.3.2學生信息系統(tǒng)功能設計 根據(jù)需求分析,設計出如圖9.2所示的學生信息系統(tǒng)模塊結構。以下對各模塊進行功能分析。(1)根據(jù)需求分析,該系統(tǒng)應對3張數(shù)據(jù)表進行操作,它們分別是:學生成績表(Stu_gra.dbf)、學生信息表(Stu_info.dbf)和賬號表(管理員.dbf),如圖9.3所示。9.3.2學生信息系統(tǒng)功能設計圖9.2學生信息系統(tǒng)模塊結構圖9.2學生信息系統(tǒng)模塊結構圖9.3學生成績表、學生信息表和賬號表圖9.3學生成績表、學生信息表和賬號表(2)應用系統(tǒng)運行后出現(xiàn)在屏幕中的第一個表單即為“歡迎界面”。單擊該表單任意位置即可進入“系統(tǒng)登錄”表單。(3)“系統(tǒng)登錄”表單主要是為驗證用戶的操作權限,即對賬號表中的權限數(shù)據(jù)進行驗證。(4)當用戶以系統(tǒng)管理員賬號登錄時,對“系統(tǒng)管理”功能進行操作。(5)在“信息管理”功能中,對學生成績表和學生信息表兩個表中的數(shù)據(jù)進行瀏覽和編輯。如用戶以系統(tǒng)管理員賬號登錄時,對“數(shù)據(jù)編輯”功能進行操作。(6)在“數(shù)據(jù)查詢”功能中,對學生成績表和學生信息表中的數(shù)據(jù)進行信息的定位和查詢。(2)應用系統(tǒng)運行后出現(xiàn)在屏幕中的第一個表單即為“歡迎界面”9.3.3學生信息系統(tǒng)數(shù)據(jù)庫設計(1)根據(jù)需求分析及功能設計該系統(tǒng)需使用3張數(shù)據(jù)表,它們分別是:學生成績表(Stu_gra.dbf)、學生信息表(Stu_info.dbf)和賬號表(管理員.dbf)。(2)用數(shù)據(jù)庫(Stu.dbc)對這3張數(shù)據(jù)表進行管理。(3)這3張數(shù)據(jù)表的結構分別如表9-2、表9-3和表9-4所示。學生成績表的表結構:C:\STUDENT\Stu_gra.dbf數(shù)據(jù)記錄數(shù):5最近更新的時間:11/01/20049.3.3學生信息系統(tǒng)數(shù)據(jù)庫設計字段字段名類型寬度小數(shù)位索引排序Nulls1學號C8升序否2姓名C6否3VfpN51否4高等數(shù)學N51否5英語N51否6總分B51升序否表9-2 學生成績表的結構字段字段名類型寬度小數(shù)位索引學生信息表的表結構:C:\STUDENT\Stu_info.dbf數(shù)據(jù)記錄數(shù):5最近更新的時間:11/01/2004備注文件塊大?。?4數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例字段字段名類型寬度小數(shù)位索引排序Nulls1學生學號C8升序否2姓名C6否3性別C2否4出生年月D8否5家庭住址C20否6備注M4否表9-3 學生信息表的結構字段字段名類型寬度小數(shù)位索引管理員表的表結構:C:\STUDENT\管理員.dbf數(shù)據(jù)記錄數(shù):2最近更新的時間:11/01/2004管理員表的表結構:C:\STUDENT\管理員.dbf字段字段名類型寬度小數(shù)位索引排序Nulls1IdC8升序否2PsC12否3IdtypeL1否表9-4 管理員表的結構字段字段名類型寬度小數(shù)位索引排9.3.4學生信息系統(tǒng)應用程序框架設計 一個經(jīng)精心組織的VFP應用程序通常應由以下幾部分組成:一個或多個用于組織和存儲數(shù)據(jù)的數(shù)據(jù)庫、一個用于設置應用程序系統(tǒng)環(huán)境的主程序、一個方便用戶使用的菜單和工具欄、一個或多個用于輸入和顯示數(shù)據(jù)的表單,以及一個或多個允許用戶檢索或輸出數(shù)據(jù)的查詢和報表。9.3.4學生信息系統(tǒng)應用程序框架設計(1)建立學生信息系統(tǒng)的項目管理器,并在該項目管理器中新建、編輯應用程序中所需的各類文件。其步驟為:在系統(tǒng)菜單下選擇“文件”→“新建”命令,在“新建”對話框中選擇“項目”,單擊“新建文件”按鈕,在“創(chuàng)建”對話框中輸入項目名稱“Student”即可,如圖9.4所示。(2)將以上分析中建立的數(shù)據(jù)庫(Stu.dbc)以及該數(shù)據(jù)庫中的學生成績表(Stu_gra.dbf)、學生信息表(Stu_info)和賬號表(管理員.dbf)加入該數(shù)據(jù)庫。(1)建立學生信息系統(tǒng)的項目管理器,并在該項目管理器中新建、圖9.4學生信息系統(tǒng)的項目管理器圖9.4學生信息系統(tǒng)的項目管理器9.3.5學生信息系統(tǒng)詳細設計 在該系統(tǒng)中不進行菜單設計,系統(tǒng)以表單界面為主界面。表單是面向對象設計的主要操作界面,它充分體現(xiàn)了面向對象程序設計的風格,是VFP可視化設計的精華所在。1.歡迎界面的設計 歡迎界面如圖9.5所示。當在界面上單擊后自動進入“系統(tǒng)登錄”表單。9.3.5學生信息系統(tǒng)詳細設計圖9.5歡迎界面圖9.5歡迎界面操作步驟如下。(1)在表單中創(chuàng)建3個標簽控件,分別設置其字體、字號、位置并調整大小。表單控件的主要屬性如表9-5所示。操作步驟如下。對象名屬性名屬性值說明Form1Caption學生信息系統(tǒng)設置表單標題Form1Picture辦公樓效果圖.bmp設置表單背景圖片F(xiàn)orm1IconML.ICO設置表單的圖標Form1BorderStyle2設置表單的邊框為固定對話框Form1Closable.F.是否能通過雙擊菜單圖標關閉表單Form1MaxButton.F.關閉最大化按鈕Form1MixButton.F.關閉最小化按鈕Form1ShowWindow2該表單在運行時作為頂層表單Label1Caption學生信息系統(tǒng)標簽一的內(nèi)容Label2Caption學生信息系統(tǒng)標簽二的內(nèi)容Label3Caption學生信息系統(tǒng)標簽三的內(nèi)容表9-5 “歡迎界面”表單和控件的主要屬性設置及說明對象名屬性名屬性值說明Form1Captio(2)編寫表單的“Click”事件代碼,如圖9.6所示。(3)給表單文件命名為“歡迎界面.scx”后,運行表單。2.“系統(tǒng)登錄”表單的設計。操作步驟如下。(1)在表單中創(chuàng)建3個標簽控件、一個組合框控件和一個文本框控件,分別設置各控件的字體、字號和位置并調整大小。(2)將賬號表作為數(shù)據(jù)環(huán)境加入表單。(2)編寫表單的“Click”事件代碼,如圖9.6所示。圖9.6表單的“Click”事件代碼圖9.6表單的“Click”事件代碼圖9.7“系統(tǒng)登錄”表單圖9.7“系統(tǒng)登錄”表單(3)表單控件的主要屬性如表9-6所示。(4)“確認”按鈕的“Click”事件代碼如圖9.8所示,“退出”按鈕的“Click”事件和公共變量N的代碼如下?!巴顺觥卑粹o(Command2)的“Click”事件代碼:

A=MESSAGEBOX("你是否真的要退出?",4+32,"提示")

IFA=6THISFORM.Release &&關閉當

前表單

CLEAREVENTS &&退出(3)表單控件的主要屬性如表9-6所示。事

件循環(huán)

CLOSEALL &&關閉所

有文件

ENDIF公共變量需在表單的“Init”事件或“Load”事件中編寫,代碼如下:

PUBLICN,F(xiàn)LAG&&N為定義登錄次數(shù),F(xiàn)LAG為定義保存登錄權限的全局變量。

N=0(5)給表單文件命名為“系統(tǒng)登錄.scx”后,運行表單。事

件循環(huán)圖9.8“確認”(Command1)按鈕的“Click”事件代碼圖9.8“確認”(Command1)按鈕的“Click”事3.數(shù)據(jù)信息表單 當用戶以系統(tǒng)管理員賬號登錄時,具有“系統(tǒng)管理”功能的操作權限。如圖9.9所示,在該表單里,單擊“數(shù)據(jù)瀏覽”按鈕則進入“學生信息瀏覽”表單,單擊“數(shù)據(jù)查詢”按鈕則進入“學生查詢”表單,單擊“系統(tǒng)管理”按鈕則進入“用戶管理”表單。3.數(shù)據(jù)信息表單圖9.9系統(tǒng)管理員登錄時的數(shù)據(jù)信息操作界面圖9.9系統(tǒng)管理員登錄時的數(shù)據(jù)信息操作界面圖9.10操作員登錄時的數(shù)據(jù)信息操作界面圖9.10操作員登錄時的數(shù)據(jù)信息操作界面操作步驟如下。(1)在表單中創(chuàng)建兩個標簽控件和4個命令按鈕控件,分別設置各控件的字體、字號和位置并調整大小。(2)編寫窗體的“Init”事件,“數(shù)據(jù)瀏覽”按鈕的“Click”事件,“數(shù)據(jù)查詢”按鈕的“Click”事件,“系統(tǒng)管理/重新登錄”按鈕的“Click”事件以及“退出”按鈕的“Click”事件代碼。操作步驟如下。窗體的“Init”事件如圖9.11所示?!皵?shù)據(jù)瀏覽”按鈕(Command1)的“Click”事件代碼如下:“數(shù)據(jù)查詢”按鈕(Command2)的“Click”事件代碼如下:“退出”按鈕(Command3)的“Click”事件代碼如下:“系統(tǒng)管理/重新登錄”按鈕(Command4)按鈕的“Click”事件代碼,如圖9.12所示。窗體的“Init”事件如圖9.11所示。圖9.11

Form1.Init不同登錄賬號對按鈕標題的影響圖9.11Form1.Init不同登錄賬號對按鈕標題的影響圖9.12“系統(tǒng)管理/重新登錄”按鈕(Command4)的“Click”事件代碼圖9.12“系統(tǒng)管理/重新登錄”按鈕(Command4)的(3)表單控件的主要屬性如表9-7所示。(4)給表單文件命名為“數(shù)據(jù)信息.scx”后,運行表單。(3)表單控件的主要屬性如表9-7所示。對象名屬性名屬性值說明Form1Caption數(shù)據(jù)信息設置表單標題Form1IconML.ICO設置表單的圖標Form1BorderStyle2設置表單的邊框為固定對話框Form1Closable.F.是否能通過雙擊菜單圖標關閉表單Form1MaxButton.F.關閉最大化按鈕Form1MixButton.F.關閉最小化按鈕Form1ShowWindow2該表單在運行時作為頂層表單Label1Caption數(shù)據(jù)信息標簽標題Command1Caption數(shù)據(jù)瀏覽第一個命令按鈕標題Command2Caption數(shù)據(jù)查詢第二個命令按鈕標題Command3Caption退出(\<X)第三個命令按鈕標題表9-7 “數(shù)據(jù)信息”表單和控件的主要屬性設置及說明對象名屬性名屬性值說明Form14.系統(tǒng)管理 當用戶以系統(tǒng)管理員賬號登錄時,才能對“系統(tǒng)管理”功能進行操作。“系統(tǒng)管理”功能主要是對用戶數(shù)據(jù)進行更新:添加用戶、修改數(shù)據(jù)、刪除用戶和重新登錄。為保護用戶數(shù)據(jù),當對用戶數(shù)據(jù)進行修改后需重新登錄。而進行添加用戶和刪除用戶的操作不需重新登錄。當用戶以操作員賬號登錄時,不具備對此功能操作的權限,如圖9.13所示。4.系統(tǒng)管理圖9.13系統(tǒng)管理操作界面圖9.13系統(tǒng)管理操作界面操作步驟如下。(1)在表單中創(chuàng)建4個標簽控件、7個命令按鈕控件,兩個文本框控件,一個復選框控件和一個形狀(Shape)控件,按照圖9.13所示,分別設置各控件的字體、字號和位置并調整大小。(2)在數(shù)據(jù)環(huán)境中加入學生成績表“Stu_gra.dbf”和學生信息表“Stu_info.dbf”。(3)表單控件的主要屬性如表9-8所示。(4)數(shù)據(jù)環(huán)境設置如表9-9所示。操作步驟如下。對象名屬性名屬性值說明Cursor1Alias管理員數(shù)據(jù)表的別名設置為學生成績表Cursor1Exclusive.T.學生成績表以獨占方式打開表9-9 數(shù)據(jù)環(huán)境主要屬性的設置及說明對象名屬性名屬性值說明Cur(5)編寫窗體的“Load”事件,“上一條”按鈕的“Click”事件,“下一條”按鈕的“Click”事件,“添加用戶”按鈕的“Click”事件,“修改數(shù)據(jù)”按鈕的“Click“事件,“刪除用戶”按鈕的“Click”事件,“重新登錄”按鈕的“Click”事件以及“退出”按鈕的“Click”事件代碼。(5)編寫窗體的“Load”事件,“上一條”按鈕的“Clic窗體(Form1)的“Load”事件代碼如下:“上一條”按鈕(Command5)的“Click”事件代碼如下:“下一條”按鈕(Command6)的“Click”事件代碼如下:“添加用戶”按鈕(Command1)的“Click”事件代碼如下:“修改數(shù)據(jù)”(Command2)按鈕的“Click”事件代碼如下:“刪除用戶”按鈕(Command4)的“Click”事件代碼如下:“重新登錄”按鈕(Command7)的“Click”事件代碼如下:“退出”按鈕(Command3)的“Click”事件代碼如下:窗體(Form1)的“Load”事件代碼如下:(6)給表單文件命名為“系統(tǒng)管理.scx”后,運行表單。5.數(shù)據(jù)瀏覽“數(shù)據(jù)瀏覽”表單如圖9.14和圖9.15所示。該表單以頁框形式顯示,分別對學生成績表(Stu_gra.dbf)和學生信息表(Stu_info.dbf)進行瀏覽。學生成績表以行方式瀏覽,學生信息表以表格方式瀏覽。本例主要講解學生成績表的指針移動,數(shù)據(jù)編輯功能。(6)給表單文件命名為“系統(tǒng)管理.scx”后,運行表單。圖9.14“數(shù)據(jù)瀏覽”表單的“學生成績表“頁面圖9.14“數(shù)據(jù)瀏覽”表單的“學生成績表“頁面圖9.15“數(shù)據(jù)瀏覽”表單的“學生信息表”頁面圖9.15“數(shù)據(jù)瀏覽”表單的“學生信息表”頁面操作步驟如下。(1)在表單中創(chuàng)建4個標簽控件、一個命令按鈕控件、一個具有兩個頁面的頁框以及一個形狀(Shape)控件,按照圖9.14和圖9.15所示分別設置各控件的字體、字號和位置并調整大小。(2)在數(shù)據(jù)環(huán)境中加入學生成績表“Stu_gra.dbf”和學生信息表“Stu_info.dbf”。(3)將頁框中第一個頁面設置為“學生成績表”,第二個頁面設置為“學生信息表”。(4)進行如下的屬性設置。表單上各控件的主要屬性如表9-10所示。操作步驟如下。數(shù)據(jù)環(huán)境設置如表9-11所示。對象名屬性名屬性值說明Cursor1AliasStu_gra數(shù)據(jù)表的別名設置為學生成績表Cursor1Exclusive.T.學生成績表以獨占方式打開表9-11 數(shù)據(jù)環(huán)境主要屬性的設置及說明數(shù)據(jù)環(huán)境設置如表9-11所示。對象名屬性“學生信息表”頁面上各控件的主要屬性如表9-12所示。

表9-12 “學生信息表”頁面上各控件的主要屬性設置及說明對象名屬性名屬性值說明Grid1ReadOnly.T.表格數(shù)據(jù)禁止寫Grid1RecordSourceStu_info表格的數(shù)據(jù)源Grid1RecordSourceType1-別名表格的數(shù)據(jù)源類型Shape1BackStyle0-透明對象背景是否透明Shape1SpecialEffect0-3維以3維格式顯示“學生信息表”頁面上各控件的主要屬性如表9-12所示。對“學生成績表”頁面上各控件的主要屬性如表9-13所示。注意:“形狀”控件是覆蓋在其他控件表面的,應將其格式設置為“置后”,否則在運行表單時只能點擊形狀控件,而點擊不到其他控件。具體方法:選擇“形狀”→“格式”→“置后”命令即可。(5)編寫有關的事件代碼。表單上的“退出”按鈕(Command1)的“Click”事件代碼:表單(Form1)的“Load”事件代碼:表單(Form1)的“Load”事件代碼如圖9.16所示。頁框(PageFrame1)上“學生成績表”頁面(Page1)的“首記錄”按鈕(Command1)的“Click”事件代碼:“學生成績表”頁面上各控件的主要屬性如表9-13所示。頁框(PageFrame1)上“學生成績表”頁面(Page1)的“上一條”按鈕(Command2)的“Click”事件代碼:頁框(PageFrame1)上“學生成績表”頁面(Page1)的“下一條”按鈕(Command3)的“Click”事件代碼:頁框(PageFrame1)上“學生成績表”頁面(Page1)的“尾記錄”按鈕(Command4)的“Click”事件代碼:頁框(PageFrame1)上“學生成績表”頁面(Page1)的“添加”按鈕(Command5)的“Click”事件代碼:頁框(PageFrame1)上“學生成績表”頁面(Page1)的“修改”按鈕(Command6)的“Click”事件代碼:頁框(PageFrame1)上“學生成績表”頁面(Page1)的“刪除”按鈕(Command7)的“Click”事件代碼:頁框(PageFrame1)上“學生成績表”頁面(Pag6.數(shù)據(jù)查詢表單 數(shù)據(jù)查詢是數(shù)據(jù)庫管理系統(tǒng)的一個非常重要的功能,其查詢的方式各種各樣。在本例中,可查詢的表有學生信息表(Stu_info.dbf)和學生成績表(Stu_gra.dbf),且可按學號查詢也可按姓名查詢,如圖9.17所示。6.數(shù)據(jù)查詢表單圖9.17數(shù)據(jù)查詢操作界面圖9.17數(shù)據(jù)查詢操作界面操作步驟如下。(1)在表單中創(chuàng)建4個標簽控件,兩個命令按鈕控件、一個文本框標簽和兩個單選項組標簽,每組各有兩個單選項,分別設置各控件的字體、字號、位置并調整大小。(2)表單控件的主要屬性如表9-14所示。(3)編寫“確定”按鈕的“Click”事件,“退出”按鈕的“Click“事件以及“退出”按鈕的“Click”事件代碼。“確定”按鈕(Command1)的“Click”事件代碼“退出”按鈕(Command2)的“Click”事件代碼如下:(4)給表單文件命名為“數(shù)據(jù)查詢.scx”后,運行表單。操作步驟如下。9.3.6學生信息系統(tǒng)主程序設計1.設置應用程序起始點2.初始化環(huán)境3.顯示初始的用戶界面4.控制事件循環(huán)5.恢復初始的開發(fā)環(huán)境6.組織主程序文件7.為本實例的學生信息系統(tǒng)設計一個主程序(MAIN.PRG),并設置為主文件。9.3.6學生信息系統(tǒng)主程序設計9.3.7學生信息系統(tǒng)項目集成1.添加數(shù)據(jù)庫、菜單、表單2.連編3.運行可執(zhí)行文件9.3.7學生信息系統(tǒng)項目集成圖9.18連編選項圖9.18連編選項9.3.8學生信息系統(tǒng)應用程序的發(fā)布 完成應用程序的開發(fā)之后,就可以準備發(fā)布該應用程序了。發(fā)布應用程序的方法是集中所有需要的文件并創(chuàng)建發(fā)布磁盤。利用VFP提供的“安裝向導”,可以輕松地生成安裝程序和發(fā)布磁盤。創(chuàng)建發(fā)布磁盤之前,應將一些必要的系統(tǒng)支持文件復制到該目錄中,包括以下內(nèi)容。

VFP運行時支持庫VFP6R.DLL。特定地區(qū)資源文件:VFP6RCHS.DLL(中文版)和VFP6RENU.DLL(英文版),這些文件都在Windows的系統(tǒng)目錄下,需要復制到發(fā)布樹中。9.3.8學生信息系統(tǒng)應用程序的發(fā)布下面以學生信息系統(tǒng)的發(fā)布為例,介紹VFP的應用程序的發(fā)布。操作步驟如下。(1)建立發(fā)布樹(目錄),發(fā)布樹用來存放用戶運行時需要的全部文件,這里建立一個發(fā)布目錄“C:\STUDENT”,將一些必要的文件復制到該目錄中。用戶需要的文件如下。(2)在系統(tǒng)菜單下選擇“工具”→“向導”命令,進入安裝向導。(3)安裝向導步驟:下面以學生信息系統(tǒng)的發(fā)布為例,介紹VFP的應用程序的發(fā)布。圖9.19安裝向導步驟1圖9.19安裝向導步驟1圖9.20安裝向導步驟2圖9.20安裝向導步驟2圖9.21安裝向導步驟2圖9.21安裝向導步驟2圖9.22安裝向導步驟3圖9.22安裝向導步驟3第9章數(shù)據(jù)庫應用系統(tǒng)開發(fā)

9.1軟件工程9.2數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程9.3數(shù)據(jù)庫應用程序開發(fā)實例第9章數(shù)據(jù)庫應用系統(tǒng)開發(fā)9.1軟件工程9.1軟件工程9.1.1概述 軟件工程的概念起源于20世紀60年代末期出現(xiàn)的“軟件危機”。1.軟件 軟件是程序的完善和發(fā)展,是經(jīng)過嚴格的正確性檢驗和實際試用,并具有相對穩(wěn)定的文本和完整的文檔資料的程序。9.1軟件工程9.1.1概述2.軟件開發(fā)經(jīng)歷的3個階段(1)程序設計時期(1946年~20世紀60年代中期)(2)軟件時期(20世紀60年代中期~20世紀70年代中期)(3)軟件工程時期(1970年至今)3.軟件危機2.軟件開發(fā)經(jīng)歷的3個階段軟件危機主要有以下幾方面的表現(xiàn)。軟件的復雜性越來越高,“手工作坊”式的軟件開發(fā)方式已無法滿足要求。對軟件成本和進度統(tǒng)計不準,實際費用超出預算。開發(fā)周期成本。軟件質量難以保證,常被懷疑。缺乏良好的軟件文檔?,F(xiàn)有的軟件極難維護。軟件開發(fā)效率遠跟不上計算機發(fā)展的需求。用戶往往對軟件不滿意。軟件危機主要有以下幾方面的表現(xiàn)。4.軟件工程學概述(1)軟件工程學的研究對象(2)軟件工程學的基本目標(3)軟件工程學的3個要素(4)軟件生命周期(SoftwareLifeCycle)4.軟件工程學概述9.1.2軟件生存周期 一個軟件從用戶提出開發(fā)、使用要求到廢棄不用為止的全過程,稱為軟件生存周期,又稱軟件生命周期。 軟件生命周期由軟件定義、軟件開發(fā)和軟件維護3個時期組成。每個時期又分為若干個階段。 軟件生存周期的模型主要有以下兩個。1.瀑布模型(1976年由B.W.Boehm提出)9.1.2軟件生存周期按瀑布模型,一個完整的軟件開發(fā)過程分為如下幾個階段。(1)計劃階段:(2)開發(fā)階段:(3)運行階段:2.快速原型按瀑布模型,一個完整的軟件開發(fā)過程分為如下幾個階段。9.1.3軟件定義 軟件定義,又稱為系統(tǒng)分析。這個時期的任務,是確定軟件開發(fā)的總目標,確定軟件開發(fā)工程的可行性,確定實現(xiàn)工程目標應該采用的策略和必須完成的功能,估計完成該項工程需要的資源和成本,制定出工程進度表。 軟件定義,可進一步劃分為3個階段,即問題定義階段、可行性研究階段和需求分析階段。1.問題定義階段2.可行性研究階段9.1.3軟件定義可行性的內(nèi)容包括:技術可行性;經(jīng)濟可行性;操作可行性。軟件計劃任務書,包括:軟件項目目標;主要功能、性能;系統(tǒng)的高層邏輯模型(數(shù)據(jù)流圖);系統(tǒng)界面;可供使用的資源;進度安排和成本預算??尚行缘膬?nèi)容包括:3.需求分析 需求分析即系統(tǒng)分析,通常采用系統(tǒng)模型定義系統(tǒng)。在可行性分析的基礎上,需求分析的主要任務是:明確用戶要求軟件系統(tǒng)必須滿足的所有功能、性能和限制,也就是解決軟件“做什么的問題”。 系統(tǒng)邏輯模型是以后設計和實現(xiàn)目標系統(tǒng)的基礎,必須準確而完整地體現(xiàn)用戶的要求。(1)需求說明書3.需求分析需求分析階段應提交的文檔是需求說明書。需求說明書的主要內(nèi)容如下。概述。需求說明:數(shù)據(jù)描述:運行環(huán)境:需求分析階段應提交的文檔是需求說明書。需求說明書的主要內(nèi)容如(2)結構化分析(StructuredAnalysis)方法 結構化分析方法是需求分析的最常用方法,簡稱SA方法。它與設計階段的結構化設計(SD)方法一起聯(lián)合使用,能夠較好地實現(xiàn)一個軟件系統(tǒng)的研制。①SA方法的基本原理②SA方法的分析工具③SA方法中導出的分析模型(2)結構化分析(StructuredAnalysis)方9.1.4軟件開發(fā) 軟件開發(fā),是實現(xiàn)前一個時期定義的軟件。它包含4個階段:總體設計、詳細設計、編碼和測試。1.總體設計2.詳細設計9.1.4軟件開發(fā)詳細設計階段的方法如下。(1)結構化程序設計技術。(2)面向數(shù)據(jù)結構的設計方法:(3)面向對象的程序設計方法:3.編碼設計與單元測試4.綜合測試詳細設計階段的方法如下。9.1.5軟件測試1.測試的定義測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。2.測試的目的3.基本測試方法4.測試策略9.1.5軟件測試9.1.6軟件維護 軟件維護的任務,是使軟件能夠持久地滿足用戶的需求。 軟件維護可分為4類:糾錯性維護、適應性維護、完善性維護和預防性維護。9.1.7計算機輔助軟件工程 計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE),是20世紀80年代末期從計算機輔助編輯工具4GLS(4thGenerationLanguages)和繪圖工具發(fā)展而來的大型綜合計算機軟件工程開發(fā)環(huán)境。9.1.6軟件維護9.2數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程 數(shù)據(jù)庫應用系統(tǒng)根據(jù)以數(shù)據(jù)為中心和以處理為中心可分為兩類:前者以提供數(shù)據(jù)為目的,重點在數(shù)據(jù)采集、建數(shù)據(jù)庫及數(shù)據(jù)庫維護等工作;后者雖然也包含這些內(nèi)容,但重點是使用數(shù)據(jù),即進行查詢、統(tǒng)計和打印報表等工作,其數(shù)據(jù)量比前者小得多。以處理為中心的數(shù)據(jù)庫應用系統(tǒng)適用于一般企事業(yè)單位。本節(jié)主要介紹這類系統(tǒng)的開發(fā)方法,其方法過程如圖9.1所示。9.2數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程 數(shù)據(jù)庫應用系統(tǒng)根據(jù)以數(shù)據(jù)為中圖9.1以處理為中心的數(shù)據(jù)庫應用系統(tǒng)開發(fā)流程示意圖圖9.1以處理為中心的數(shù)據(jù)庫應用系統(tǒng)開發(fā)流程示意圖1.需求分析 由圖9.1可知,整個開發(fā)活動從對系統(tǒng)的需求分析開始,系統(tǒng)需求包括對數(shù)據(jù)的需求和對應用功能的需求兩方面內(nèi)容。圖中把前者稱為數(shù)據(jù)分析,后者稱為功能分析。進行需求分析時應該注意以下問題。(1)確定需求必須建立在調查研究的基礎上,包括訪問用戶、了解人工系統(tǒng)模型、采集和分析有關資料等工作。在開發(fā)初期所做的設計方案往往會對最終結果產(chǎn)生很大的影響。認真細致地規(guī)劃將能節(jié)省時間、精力和資金。(2)需求分析階段應該讓最終用戶更多地參與。即使做了仔細的分析,在系統(tǒng)實施過程中也會需要不斷地修改設計,為此需隨時接受最終用戶的反饋。1.需求分析2.數(shù)據(jù)庫設計在設計應用程序之前,應先組織數(shù)據(jù)。VFP通過設置數(shù)據(jù)庫來統(tǒng)一管理數(shù)據(jù),既能增強數(shù)據(jù)的可靠性,也便于進行系統(tǒng)開發(fā)。(1)創(chuàng)建數(shù)據(jù)庫的優(yōu)點①創(chuàng)建數(shù)據(jù)庫是實現(xiàn)數(shù)據(jù)集成的有效手段。數(shù)據(jù)庫按一定的結構集中了應用系統(tǒng)中的數(shù)據(jù),使之更便于統(tǒng)一管理。②可以定義數(shù)據(jù)詞典的功能,其內(nèi)容包括表的屬性、字段屬性、記錄規(guī)則、表間關系以及參照完整性。③允許在數(shù)據(jù)庫中建立永久關系,使其具有以下功能。2.數(shù)據(jù)庫設計(2)數(shù)據(jù)庫的邏輯設計與物理設計這兩項是需要由開發(fā)人員完成的工作。其中數(shù)據(jù)庫邏輯設計的任務大致如下。①按一定的原則將數(shù)據(jù)組織成一個或多個數(shù)據(jù)庫,指明數(shù)據(jù)庫中包含了幾個表,并指出每個表包含的字段。②安排表之間的關聯(lián)。(3)代碼設計3.應用程序設計(2)數(shù)據(jù)庫的邏輯設計與物理設計結構化程序設計面向對象程序設計設計算法設計與簡單用戶界面設計圖形用戶界面設計及對象設置編碼程序編碼對象屬性定義與事件過程編碼測試與調試表9-1 結構化程序設計與面向對象程序設計主要步驟的比較結構化程序設計面向對象程序設計設計算法設計與簡單用戶(1)創(chuàng)建子類(2)用戶界面設計與編碼(3)數(shù)據(jù)輸出設計(4)數(shù)據(jù)庫維護功能(1)創(chuàng)建子類4.調試技術在典型情況下,當程序員測試和調試應用程序時,主要是在研究程序不同級別的可靠性。(1)運行不會導致崩潰或產(chǎn)生錯誤信息,即沒有語法錯誤。(2)在一般情況下操作正常,沒有邏輯錯誤。(3)具有運行時處理錯誤的能力。(4)在意外的用戶干擾時,很容易恢復,即具有數(shù)據(jù)安全保護機制。4.調試技術在早期的開發(fā)過程中,可以采取一些必要步驟,這樣可以使后面的測試和調試工作變得簡單。這些步驟包括:(1)建立測試環(huán)境;(2)設置驗證信息;(3)查看事件發(fā)生的序列。5.測試6.應用程序發(fā)布7.維護在早期的開發(fā)過程中,可以采取一些必要步驟,這樣可以使后面的測9.3數(shù)據(jù)庫應用程序開發(fā)實例 開發(fā)一個應用軟件,應在調查的基礎上對系統(tǒng)進行需求分析,并繪出模塊結構圖,根據(jù)模塊結構圖進行功能設計和數(shù)據(jù)庫設計,然后進行詳細設計和程序設計。其中,首先應明確系統(tǒng)的結構與數(shù)據(jù)文件結構。例9-1設計一個學生信息系統(tǒng)。9.3.1學生信息系統(tǒng)需求分析9.3數(shù)據(jù)庫應用程序開發(fā)實例 開發(fā)一個應用軟件,應在調查的(1)設計一個學生信息系統(tǒng),其中包括能進行成績錄入、修改和查詢,以及學生信息的錄入、修改和查詢。(2)不同的用戶管理。(3)數(shù)據(jù)查詢時應具備模糊查詢功能。(4)該系統(tǒng)屬于以處理為中心的數(shù)據(jù)庫應用系統(tǒng),應在設計應用程序之前先通過數(shù)據(jù)庫統(tǒng)一管理和組織數(shù)據(jù),以增強數(shù)據(jù)的可靠性,也便于進行系統(tǒng)開發(fā)。(5)使用現(xiàn)場收集部分或全部數(shù)據(jù)參與設計與測試。(6)重視用戶的需求及要求。(7)該系統(tǒng)的界面設計應注重界面友好,可讀性強,實用性強。(8)對于此例功能較為簡單的數(shù)據(jù)庫系統(tǒng),使用針對中小型數(shù)據(jù)庫開發(fā)的語言VFP6.0進行設計。(1)設計一個學生信息系統(tǒng),其中包括能進行成績錄入、修改和查9.3.2學生信息系統(tǒng)功能設計 根據(jù)需求分析,設計出如圖9.2所示的學生信息系統(tǒng)模塊結構。以下對各模塊進行功能分析。(1)根據(jù)需求分析,該系統(tǒng)應對3張數(shù)據(jù)表進行操作,它們分別是:學生成績表(Stu_gra.dbf)、學生信息表(Stu_info.dbf)和賬號表(管理員.dbf),如圖9.3所示。9.3.2學生信息系統(tǒng)功能設計圖9.2學生信息系統(tǒng)模塊結構圖9.2學生信息系統(tǒng)模塊結構圖9.3學生成績表、學生信息表和賬號表圖9.3學生成績表、學生信息表和賬號表(2)應用系統(tǒng)運行后出現(xiàn)在屏幕中的第一個表單即為“歡迎界面”。單擊該表單任意位置即可進入“系統(tǒng)登錄”表單。(3)“系統(tǒng)登錄”表單主要是為驗證用戶的操作權限,即對賬號表中的權限數(shù)據(jù)進行驗證。(4)當用戶以系統(tǒng)管理員賬號登錄時,對“系統(tǒng)管理”功能進行操作。(5)在“信息管理”功能中,對學生成績表和學生信息表兩個表中的數(shù)據(jù)進行瀏覽和編輯。如用戶以系統(tǒng)管理員賬號登錄時,對“數(shù)據(jù)編輯”功能進行操作。(6)在“數(shù)據(jù)查詢”功能中,對學生成績表和學生信息表中的數(shù)據(jù)進行信息的定位和查詢。(2)應用系統(tǒng)運行后出現(xiàn)在屏幕中的第一個表單即為“歡迎界面”9.3.3學生信息系統(tǒng)數(shù)據(jù)庫設計(1)根據(jù)需求分析及功能設計該系統(tǒng)需使用3張數(shù)據(jù)表,它們分別是:學生成績表(Stu_gra.dbf)、學生信息表(Stu_info.dbf)和賬號表(管理員.dbf)。(2)用數(shù)據(jù)庫(Stu.dbc)對這3張數(shù)據(jù)表進行管理。(3)這3張數(shù)據(jù)表的結構分別如表9-2、表9-3和表9-4所示。學生成績表的表結構:C:\STUDENT\Stu_gra.dbf數(shù)據(jù)記錄數(shù):5最近更新的時間:11/01/20049.3.3學生信息系統(tǒng)數(shù)據(jù)庫設計字段字段名類型寬度小數(shù)位索引排序Nulls1學號C8升序否2姓名C6否3VfpN51否4高等數(shù)學N51否5英語N51否6總分B51升序否表9-2 學生成績表的結構字段字段名類型寬度小數(shù)位索引學生信息表的表結構:C:\STUDENT\Stu_info.dbf數(shù)據(jù)記錄數(shù):5最近更新的時間:11/01/2004備注文件塊大?。?4數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程與實例字段字段名類型寬度小數(shù)位索引排序Nulls1學生學號C8升序否2姓名C6否3性別C2否4出生年月D8否5家庭住址C20否6備注M4否表9-3 學生信息表的結構字段字段名類型寬度小數(shù)位索引管理員表的表結構:C:\STUDENT\管理員.dbf數(shù)據(jù)記錄數(shù):2最近更新的時間:11/01/2004管理員表的表結構:C:\STUDENT\管理員.dbf字段字段名類型寬度小數(shù)位索引排序Nulls1IdC8升序否2PsC12否3IdtypeL1否表9-4 管理員表的結構字段字段名類型寬度小數(shù)位索引排9.3.4學生信息系統(tǒng)應用程序框架設計 一個經(jīng)精心組織的VFP應用程序通常應由以下幾部分組成:一個或多個用于組織和存儲數(shù)據(jù)的數(shù)據(jù)庫、一個用于設置應用程序系統(tǒng)環(huán)境的主程序、一個方便用戶使用的菜單和工具欄、一個或多個用于輸入和顯示數(shù)據(jù)的表單,以及一個或多個允許用戶檢索或輸出數(shù)據(jù)的查詢和報表。9.3.4學生信息系統(tǒng)應用程序框架設計(1)建立學生信息系統(tǒng)的項目管理器,并在該項目管理器中新建、編輯應用程序中所需的各類文件。其步驟為:在系統(tǒng)菜單下選擇“文件”→“新建”命令,在“新建”對話框中選擇“項目”,單擊“新建文件”按鈕,在“創(chuàng)建”對話框中輸入項目名稱“Student”即可,如圖9.4所示。(2)將以上分析中建立的數(shù)據(jù)庫(Stu.dbc)以及該數(shù)據(jù)庫中的學生成績表(Stu_gra.dbf)、學生信息表(Stu_info)和賬號表(管理員.dbf)加入該數(shù)據(jù)庫。(1)建立學生信息系統(tǒng)的項目管理器,并在該項目管理器中新建、圖9.4學生信息系統(tǒng)的項目管理器圖9.4學生信息系統(tǒng)的項目管理器9.3.5學生信息系統(tǒng)詳細設計 在該系統(tǒng)中不進行菜單設計,系統(tǒng)以表單界面為主界面。表單是面向對象設計的主要操作界面,它充分體現(xiàn)了面向對象程序設計的風格,是VFP可視化設計的精華所在。1.歡迎界面的設計 歡迎界面如圖9.5所示。當在界面上單擊后自動進入“系統(tǒng)登錄”表單。9.3.5學生信息系統(tǒng)詳細設計圖9.5歡迎界面圖9.5歡迎界面操作步驟如下。(1)在表單中創(chuàng)建3個標簽控件,分別設置其字體、字號、位置并調整大小。表單控件的主要屬性如表9-5所示。操作步驟如下。對象名屬性名屬性值說明Form1Caption學生信息系統(tǒng)設置表單標題Form1Picture辦公樓效果圖.bmp設置表單背景圖片F(xiàn)orm1IconML.ICO設置表單的圖標Form1BorderStyle2設置表單的邊框為固定對話框Form1Closable.F.是否能通過雙擊菜單圖標關閉表單Form1MaxButton.F.關閉最大化按鈕Form1MixButton.F.關閉最小化按鈕Form1ShowWindow2該表單在運行時作為頂層表單Label1Caption學生信息系統(tǒng)標簽一的內(nèi)容Label2Caption學生信息系統(tǒng)標簽二的內(nèi)容Label3Caption學生信息系統(tǒng)標簽三的內(nèi)容表9-5 “歡迎界面”表單和控件的主要屬性設置及說明對象名屬性名屬性值說明Form1Captio(2)編寫表單的“Click”事件代碼,如圖9.6所示。(3)給表單文件命名為“歡迎界面.scx”后,運行表單。2.“系統(tǒng)登錄”表單的設計。操作步驟如下。(1)在表單中創(chuàng)建3個標簽控件、一個組合框控件和一個文本框控件,分別設置各控件的字體、字號和位置并調整大小。(2)將賬號表作為數(shù)據(jù)環(huán)境加入表單。(2)編寫表單的“Click”事件代碼,如圖9.6所示。圖9.6表單的“Click”事件代碼圖9.6表單的“Click”事件代碼圖9.7“系統(tǒng)登錄”表單圖9.7“系統(tǒng)登錄”表單(3)表單控件的主要屬性如表9-6所示。(4)“確認”按鈕的“Click”事件代碼如圖9.8所示,“退出”按鈕的“Click”事件和公共變量N的代碼如下?!巴顺觥卑粹o(Command2)的“Click”事件代碼:

A=MESSAGEBOX("你是否真的要退出?",4+32,"提示")

IFA=6THISFORM.Release &&關閉當

前表單

CLEAREVENTS &&退出(3)表單控件的主要屬性如表9-6所示。事

件循環(huán)

CLOSEALL &&關閉所

有文件

ENDIF公共變量需在表單的“Init”事件或“Load”事件中編寫,代碼如下:

PUBLICN,F(xiàn)LAG&&N為定義登錄次數(shù),F(xiàn)LAG為定義保存登錄權限的全局變量。

N=0(5)給表單文件命名為“系統(tǒng)登錄.scx”后,運行表單。事

件循環(huán)圖9.8“確認”(Command1)按鈕的“Click”事件代碼圖9.8“確認”(Command1)按鈕的“Click”事3.數(shù)據(jù)信息表單 當用戶以系統(tǒng)管理員賬號登錄時,具有“系統(tǒng)管理”功能的操作權限。如圖9.9所示,在該表單里,單擊“數(shù)據(jù)瀏覽”按鈕則進入“學生信息瀏覽”表單,單擊“數(shù)據(jù)查詢”按鈕則進入“學生查詢”表單,單擊“系統(tǒng)管理”按鈕則進入“用戶管理”表單。3.數(shù)據(jù)信息表單圖9.9系統(tǒng)管理員登錄時的數(shù)據(jù)信息操作界面圖9.9系統(tǒng)管理員登錄時的數(shù)據(jù)信息操作界面圖9.10操作員登錄時的數(shù)據(jù)信息操作界面圖9.10操作員登錄時的數(shù)據(jù)信息操作界面操作步驟如下。(1)在表單中創(chuàng)建兩個標簽控件和4個命令按鈕控件,分別設置各控件的字體、字號和位置并調整大小。(2)編寫窗體的“Init”事件,“數(shù)據(jù)瀏覽”按鈕的“Click”事件,“數(shù)據(jù)查詢”按鈕的“Click”事件,“系統(tǒng)管理/重新登錄”按鈕的“Click”事件以及“退出”按鈕的“Click”事件代碼。操作步驟如下。窗體的“Init”事件如圖9.11所示?!皵?shù)據(jù)瀏覽”按鈕(Command1)的“Click”事件代碼如下:“數(shù)據(jù)查詢”按鈕(Command2)的“Click”事件代碼如下:“退出”按鈕(Command3)的“Click”事件代碼如下:“系統(tǒng)管理/重新登錄”按鈕(Command4)按鈕的“Click”事件代碼,如圖9.12所示。窗體的“Init”事件如圖9.11所示。圖9.11

Form1.Init不同登錄賬號對按鈕標題的影響圖9.11Form1.Init不同登錄賬號對按鈕標題的影響圖9.12“系統(tǒng)管理/重新登錄”按鈕(Command4)的“Click”事件代碼圖9.12“系統(tǒng)管理/重新登錄”按鈕(Command4)的(3)表單控件的主要屬性如表9-7所示。(4)給表單文件命名為“數(shù)據(jù)信息.scx”后,運行表單。(3)表單控件的主要屬性如表9-7所示。對象名屬性名屬性值說明Form1Caption數(shù)據(jù)信息設置表單標題Form1IconML.ICO設置表單的圖標Form1BorderStyle2設置表單的邊框為固定對話框Form1Closable.F.是否能通過雙擊菜單圖標關閉表單Form1MaxButton.F.關閉最大化按鈕Form1MixButton.F.關閉最小化按鈕Form1ShowWindow2該表單在運行時作為頂層表單Label1Caption數(shù)據(jù)信息標簽標題Command1Caption數(shù)據(jù)瀏覽第一個命令按鈕標題Command2Caption數(shù)據(jù)查詢第二個命令按鈕標題Command3Caption退出(\<X)第三個命令按鈕標題表9-7 “數(shù)據(jù)信息”表單和控件的主要屬性設置及說明對象名屬性名屬性值說明Form14.系統(tǒng)管理 當用戶以系統(tǒng)管理員賬號登錄時,才能對“系統(tǒng)管理”功能進行操作?!跋到y(tǒng)管理”功能主要是對用戶數(shù)據(jù)進行更新:添加用戶、修改數(shù)據(jù)、刪除用戶和重新登錄。為保護用戶數(shù)據(jù),當對用戶數(shù)據(jù)進行修改后需重新登錄。而進行添加用戶和刪除用戶的操作不需重新登錄。當用戶以操作員賬號登錄時,不具備對此功能操作的權限,如圖9.13所示。4.系統(tǒng)管理圖9.13系統(tǒng)管理操作界面圖9.13系統(tǒng)管理操作界面操作步驟如下。(1)在表單中創(chuàng)建4個標簽控件、7個命令按鈕控件,兩個文本框控件,一個復選框控件和一個形狀(Shape)控件,按照圖9.13所示,分別設置各控件的字體、字號和位置并調整大小。(2)在數(shù)據(jù)環(huán)境中加入學生成績表“Stu_gra.dbf”和學生信息表“Stu_info.dbf”。(3)表單控件的主要屬性如表9-8所示。(4)數(shù)據(jù)環(huán)境設置如表9-9所示。操作步驟如下。對象名屬性名屬性值說明Cursor1Alias管理員數(shù)據(jù)表的別名設置為學生成績表Cursor1Exclusive.T.學生成績表以獨占方式打開表9-9 數(shù)據(jù)環(huán)境主要屬性的設置及說明對象名屬性名屬性值說明Cur(5)編寫窗體的“Load”事件,“上一條”按鈕的“Click”事件,“下一條”按鈕的“Click”事件,“添加用戶”按鈕的“Click”事件,“修改數(shù)據(jù)”按鈕的“Click“事件,“刪除用戶”按鈕的“Click”事件,“重新登錄”按鈕的“Click”事件以及“退出”按鈕的“Click”事件代碼。(5)編寫窗體的“Load”事件,“上一條”按鈕的“Clic窗體(Form1)的“Load”事件代碼如下:“上一條”按鈕(Command5)的“Click”事件代碼如下:“下一條”按鈕(Command6)的“Click”事件代碼如下:“添加用戶”按鈕(Command1)的“Click”事件代碼如下:“修改數(shù)據(jù)”(Command2)按鈕的“Click”事件代碼如下:“刪除用戶”按鈕(Command4)的“Click”事件代碼如下:“重新登錄”按鈕(Command7)的“Click”事件代碼如下:“退出”按鈕(Command3)的“Click”事件代碼如下:窗體(Form1)的“Load”事件代碼如下:(6)給表單文件命名為“系統(tǒng)管理.scx”后,運行表單。5.數(shù)據(jù)瀏覽“數(shù)據(jù)瀏覽”表單如圖9.14和圖9.15所示。該表單以頁框形式顯示,分別對學生成績表(Stu_gra.dbf)和學生信息表(Stu_info.dbf)進行瀏覽。學生成績表以行方式瀏覽,學生信息表以表格方式瀏覽。本例主要講解學生成績表的指針移動,數(shù)據(jù)編輯功能。(6)給表單文件命名為“系統(tǒng)管理.scx”后,運行表單。圖9.14“數(shù)據(jù)瀏覽”表單的“學生成績表“頁面圖9.14“數(shù)據(jù)瀏覽”表單的“學生成績表“頁面圖9.15“數(shù)據(jù)瀏覽”表單的“學生信息表”頁面圖9.15“數(shù)據(jù)瀏覽”表單的“學生信息表”頁面操作步驟如下。(1)在表單中創(chuàng)建4個標簽控件、一個命令按鈕控件、一個具有兩個頁面的頁框以及一個形狀(Shape)控件,按照圖9.14和圖9.15所示分別設置各控件的字體、字號和位置并調整大小。(2)在數(shù)據(jù)環(huán)境中加入學生成績表“Stu_gra.dbf”和學生信息表“Stu_info.dbf”。(3)將頁框中第一個頁面設置為“學生成績表”,第二個頁面設置為“學生信息表”。(4)進行如下的屬性設置。表單上各控件的主要屬性如表9-1

溫馨提示

  • 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

提交評論