電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a15_第1頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a15_第2頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a15_第3頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a15_第4頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a15_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第15章 綜合實(shí)例 學(xué)習(xí)要點(diǎn)1、數(shù)據(jù)需求和功能需求2、邏輯設(shè)計(jì)和物理設(shè)計(jì)3、總體設(shè)計(jì)、用戶界面設(shè)計(jì)4、設(shè)計(jì)與編碼、數(shù)據(jù)裝載第15章 綜合實(shí)例15.1 需求分析15.2 數(shù)據(jù)庫設(shè)計(jì)15.3 應(yīng)用程序設(shè)計(jì)15.4 運(yùn)行設(shè)計(jì)第15章 綜合實(shí)例 本章通過一個(gè)實(shí)例“摩托車修理管理系統(tǒng)”來介紹Visual FoxPro6.0應(yīng)用系統(tǒng)的開發(fā)過程。 15.1 需求分析 15.1.1 數(shù)據(jù)需求 在調(diào)研的過程中,用戶提供了該系統(tǒng)所需的輸入、輸出單據(jù)(見圖15-115-7)。輸入單據(jù)包括修車登記單、摩托車修理單、零件入庫單和零件出庫單等4種;輸出單據(jù)包括季度零件訂貨計(jì)劃、摩托車修理發(fā)票和工資月報(bào)表等3種。不少單據(jù)都

2、填寫了數(shù)據(jù),這是開發(fā)人員所需要的,同時(shí)也為數(shù)據(jù)庫設(shè)計(jì)提供了數(shù)據(jù)樣例。15.1.2 功能需求 功能分析的任務(wù),是弄清用戶對(duì)目標(biāo)系統(tǒng)數(shù)據(jù)處理功能所提出的需求。根據(jù)系統(tǒng)目標(biāo)和數(shù)據(jù)需求并與用戶充分討論后,本例的功能需求可歸納為以下5個(gè)方面。 1.數(shù)據(jù)登記 登記功能用于把各種手填單據(jù)中的數(shù)據(jù)及時(shí)登記到系統(tǒng)將要定義的表中,還要求能進(jìn)行修改。這些單據(jù)包括修車登記單、摩托車修理單、零件入庫單和零件出庫單。 2.查詢 能查詢登記單、修理單、摩托車、車主、修理工、零件庫存的有關(guān)數(shù)據(jù)。15.1.2 功能需求 3.編制零件訂貨計(jì)劃需要找出要訂貨的零件,訂貨條件為:零件庫存量最低庫存量。訂貨量可由用戶輸入或修改。 4.

3、打印發(fā)票 發(fā)票中除包含顧客、摩托車及修理項(xiàng)目等數(shù)據(jù)外,還要計(jì)算出修車費(fèi),修車費(fèi)包括修理費(fèi)和零件費(fèi),按下列各式計(jì)算:零件費(fèi)=(零件價(jià)格耗用數(shù)量)修理費(fèi)=小時(shí)工資修理工時(shí)3總計(jì)=零件費(fèi)+修理費(fèi) 不難看出,發(fā)票包含的信息來自修車登記單、摩托車修理單和零件出庫單等各種單據(jù),這是一項(xiàng)涉及面很廣的功能。 5.打印修理工工資月報(bào)表某修理工的月工資= 修理小時(shí)小時(shí)工資15.2 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)庫設(shè)計(jì)的任務(wù)是確定系統(tǒng)所需的數(shù)據(jù)庫。數(shù)據(jù)庫是表的集合,通常一個(gè)簡(jiǎn)單系統(tǒng)只需一個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫設(shè)計(jì)可分為邏輯設(shè)計(jì)與物理設(shè)計(jì)兩個(gè)步驟。第一步確定數(shù)據(jù)庫所包含的表及其字段。第二步確定表的具體結(jié)構(gòu),即確定字段的名稱、類型及寬度;

4、此外還要確定索引,為建立表的關(guān)聯(lián)準(zhǔn)備條件。 15.2.1 邏輯設(shè)計(jì) 設(shè)計(jì)從分析輸入數(shù)據(jù)著手,輸入數(shù)據(jù)中的某類相關(guān)數(shù)據(jù)可以歸納為一個(gè)表。對(duì)需要同時(shí)調(diào)用的若干表,應(yīng)使它們符合關(guān)聯(lián)要求。數(shù)據(jù)庫設(shè)計(jì)好后,可通過分析輸出數(shù)據(jù)來驗(yàn)證其可用性,若發(fā)現(xiàn)有的輸出數(shù)據(jù)不能從輸入數(shù)據(jù)導(dǎo)出,須繼續(xù)向用戶征集數(shù)據(jù)。15.2.2 物理設(shè)計(jì) 下面列出摩托車修理管理系統(tǒng)所有表的結(jié)構(gòu)與索引,為便于理解,也列出表的部分記錄。 1.修理單(d:mtcxlxld.dbf) 2.摩托車(d:mtcxlmtc.dbf) 3.車主(d:mtcxlcz.dbf) 4.修理工(d:mtcxlxlg.dbf) 5.零件用量(d:mtcxlljy

5、l.dbf) 6.零件庫存(d:mtcxlljkc.dbf) 除上述6個(gè)表外,零件入庫、出庫時(shí)還需要暫存表。零件入庫表為ljrk.dbf,其結(jié)構(gòu)與ljkc.dbf相同。零件出庫表(d:mtcxlljck.dbf)的結(jié)構(gòu)為:ljck(零件號(hào)c(6),數(shù)量n(2))。15.3 應(yīng)用程序設(shè)計(jì) 15.3.1 總體設(shè)計(jì) 按照功能分類是總體設(shè)計(jì)中常用的方法,系統(tǒng)的總體結(jié)構(gòu)可用層次圖(Hierarchy Chart簡(jiǎn)稱HC圖)來表示(見圖15-9)。這種圖自上而下進(jìn)行分層:第一層為系統(tǒng)層,通常對(duì)應(yīng)主程序;第二層為子系統(tǒng)層,一般起分類控制作用,但是當(dāng)該層沒有下一層次時(shí)也可直接用來表達(dá)功能(例如圖中的查詢功能)

6、;第三層為功能層;第四層為操作層。 15.3.2 初始用戶界面設(shè)計(jì) 從總體結(jié)構(gòu)圖很容易列出應(yīng)用程序的菜單,由總體結(jié)構(gòu)圖轉(zhuǎn)換到菜單時(shí),其對(duì)應(yīng)情況如下:系統(tǒng)層對(duì)應(yīng)菜單文件,子系統(tǒng)層對(duì)應(yīng)菜單標(biāo)題;功能層則對(duì)應(yīng)子菜單項(xiàng)。15.3.3 模塊設(shè)計(jì)與編碼 1.主文件(mtcxl.prg) 菜單文件名定為mtcxlcd(摩托車修理菜單),并設(shè)置一個(gè)主文件來調(diào)用它。主文件代碼編寫如下: SET TALK OFF SET DEFA TO d:vfp6mtcxl CLEA ALL SET VIEW TO sjhj.vue PUBLIC xldh,zljf Xldh=SPACE(4) DO FORM fm KEYB

7、CTRL+F4 MODI WIND SCREEN TITL 摩托車修理管理系統(tǒng) CLEA15.3.3 模塊設(shè)計(jì)與編碼 *以上為初始化環(huán)境代碼 DO mtcxlcd.mpr READ EVENT QUIT 圖15-11 摩托車修理管理系統(tǒng)的數(shù)據(jù)環(huán)境15.3.3 模塊設(shè)計(jì)與編碼 2.菜單程序(mtcxlcd.mpr) 往命令窗口鍵入命令MODI MENU mtcxlcd,就會(huì)出現(xiàn)菜單設(shè)計(jì)窗口。 “退出”菜單項(xiàng)的命令 CLEAR EVENTS 按圖15-10設(shè)置調(diào)用各表單的命令,例如對(duì)“修車登記”菜單項(xiàng)可鍵入命令DO FORM xcdj。 從菜單文件mtcxlcd.mnx生成菜單程序mtcxlcd.

8、mpr。15.3.3 模塊設(shè)計(jì)與編碼 3.“修車登記”表單(xcdj.scx) 修車登記表單用于輸入、修改或添加修車登記單,它具有以下特點(diǎn): 將多個(gè)表的輸入、修改、添加等多種維護(hù)功能集于一體,并使屏幕顯示與修車登記單格式一致,方便用戶操作。 能提供翻頁和尋頁兩種方式來查找修車登記單。尋頁按鈕供用戶直接鍵入xld.編號(hào)來查找記錄。 增頁按鈕用于增加新的修車登記單,登記單編號(hào)自動(dòng)加1,并可增加新的摩托車與車主。15.3.3 模塊設(shè)計(jì)與編碼 若輸入的摩托車牌號(hào)在mtc.dbf中已有,則摩托車與車主的數(shù)據(jù)會(huì)自動(dòng)填入表格。這不僅可減少輸入擊鍵,而且減少了輸入出錯(cuò)機(jī)會(huì)。自動(dòng)填入的數(shù)據(jù)還允許立即修改,此時(shí)系

9、統(tǒng)會(huì)更新有關(guān)的表,即具有實(shí)時(shí)維護(hù)摩托車與車主數(shù)據(jù)的能力。 設(shè)有專用按鈕,可當(dāng)場(chǎng)臨時(shí)維護(hù)摩托車與車主數(shù)據(jù)。15.3.3 模塊設(shè)計(jì)與編碼現(xiàn)將設(shè)計(jì)xcdj.scx表單的主要操作步驟列出如下:創(chuàng)建表單:往命令窗口鍵入命令MODIFY FORM xcdj,便出現(xiàn)標(biāo)題為xcdj.scx的表單設(shè)計(jì)器窗口。圖15-12 “修車登記”表單窗口15.3.3 模塊設(shè)計(jì)與編碼 Forml的屬性設(shè)置 Caption屬性設(shè)置為“修車登記”;AutoCenter屬性設(shè)置為.T.,使表單在主窗口內(nèi)居中顯示。 在表單上創(chuàng)建各標(biāo)簽和文本框 添加表格線條:利用表單控件工具欄的線條按鈕畫出表格的所有橫線和豎線。15.3.3 模塊設(shè)計(jì)

10、與編碼創(chuàng)建命令按鈕組圖15-13 “輸入修理單號(hào)”表單窗口15.3.3 模塊設(shè)計(jì)與編碼 4.“輸入修理單號(hào)”表單(srxldh.scx) 創(chuàng)建表單:往命令窗口鍵入命令MODIFY FORM srxldh,便出現(xiàn)表單設(shè)計(jì)器窗口。 屬性設(shè)置:Form1的Caption屬性為“輸入”;Labell的Caption屬性為“請(qǐng)輸入修理單號(hào):”;Command1的Caption屬性為“確定”。 Text1文本框的LostFocus事件代碼編寫如下: xldh=THISFORM.Text1.VALUE Command1命令按鈕的Click事件代碼編寫如下:THISFORM.Release15.3.3 模塊設(shè)

11、計(jì)與編碼 5.“摩托車修理”表單(mtcxl.scx)圖15-14 “摩托車修理”表單窗口15.3.3 模塊設(shè)計(jì)與編碼創(chuàng)建表單:往命令窗口鍵入命令MODIFY FORM mtcxl,便出現(xiàn)表單設(shè)計(jì)器窗口。Form1的屬性設(shè)置 將Caption屬性設(shè)置為“摩托車修理.修理情況”。按圖15-14在表單上創(chuàng)建各標(biāo)簽和文本框在xlg表選取修理工的工號(hào),并存入xld.工號(hào)Form1的Refresh事件代碼編寫15.3.3 模塊設(shè)計(jì)與編碼 6.“零件訂貨計(jì)劃”表單(ljdh.scx) 創(chuàng)建表單:往命令窗口鍵入命令MODIFY FORM ljdh,便出現(xiàn)表單設(shè)計(jì)器窗口,如圖15-15所示。圖15-15 “零

12、件訂貨計(jì)劃”表單窗口15.3.3 模塊設(shè)計(jì)與編碼 按圖15-15在表單上創(chuàng)建Label1標(biāo)簽和List1列表框各一個(gè)。 創(chuàng)建變量屬性jd(表示“季度”):用表單菜單的新建屬性命令創(chuàng)建一個(gè)變量屬性jd,然后在屬性窗口將該變量屬性的初值設(shè)置為“1”。 屬性設(shè)置 List1的Init事件代碼 List1的DblClick事件代碼15.3.3 模塊設(shè)計(jì)與編碼7.“打印發(fā)票”表單(dyfp.scx)創(chuàng)建表單:往命令窗口鍵入命令MODIFY FORM dyfp,便出現(xiàn)表單設(shè)計(jì)器窗口,如圖15-16所示。圖15-16 “打印發(fā)票”表單窗口15.3.3 模塊設(shè)計(jì)與編碼 按圖15-16在表單上創(chuàng)建Label1標(biāo)

13、簽Text1文本框和Command1命令按鈕各一個(gè)。 屬性設(shè)置:將Form1的Caption屬性設(shè)置為“打印發(fā)票”;將Command1命令按鈕的Caption屬性設(shè)置為“確定”。 Text1的LostFocus事件代碼編寫如下: xldh=THISFORM.Text1.VALUE Command1的Click事件代碼15.3.3 模塊設(shè)計(jì)與編碼 8.“發(fā)票”報(bào)表(fp.frx) 圖15-17 “發(fā)票”報(bào)表設(shè)計(jì)器15.3.3 模塊設(shè)計(jì)與編碼 創(chuàng)建報(bào)表:在命令窗口鍵入命令MODIFY REPORT fp,便出現(xiàn)fp.frx報(bào)表設(shè)計(jì)器窗口。 創(chuàng)建報(bào)表變量ljf(零件費(fèi))和xlf(修理費(fèi)):選定報(bào)表菜

14、單的變量選項(xiàng)在報(bào)表變量對(duì)話框的變量列表中鍵入ljf在“要存儲(chǔ)的值”與“初始值”文本框中均鍵入zljf。 可用類似的方法來創(chuàng)建xlf報(bào)表變量,但在“要存儲(chǔ)的值”與“初始值”兩框中均鍵入:xld.修理小時(shí)*xlg.小時(shí)工資*3。15.3.3 模塊設(shè)計(jì)與編碼 在報(bào)表設(shè)計(jì)器窗口中創(chuàng)建表達(dá)式控件:用報(bào)表控件工具欄中的域控件按鈕創(chuàng)建如圖15-17所示的9個(gè)表達(dá)式控件,它們分別是xld.完工日期,mtc.車主名,cz.地址,xld.牌號(hào),xld.修理項(xiàng)目,xld.送修日期,ljf,xlf和ljf+xlf。ljf和ljf+xlf兩個(gè)表達(dá)式控件創(chuàng)建時(shí),在報(bào)表表達(dá)式對(duì)話框中的格式文本框均設(shè)置9999.99。15.4 運(yùn)行設(shè)計(jì) 15.4.1 裝載數(shù)據(jù) 在應(yīng)用系統(tǒng)投入運(yùn)行之前,通常要往數(shù)據(jù)庫裝入必要的數(shù)據(jù)。本系統(tǒng)也可在運(yùn)行時(shí)裝載某些數(shù)據(jù),例如通過登記功能來裝載,但是上例中的修理工管理和零件入庫程序尚未編寫,故這些信息只得打開相應(yīng)的表來輸入。15.4.2 設(shè)置應(yīng)用系統(tǒng)程序項(xiàng) 本系統(tǒng)可直接在Visual FoxPro 6.0中運(yùn)行,只要在命令窗口中鍵入命令DO d:mtcxlmtcxl 就可行。也可在Windows的開始菜單中建立程序項(xiàng)來運(yùn)行。建立程序項(xiàng)的步驟如下: 進(jìn)入Windows 98;15.

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論