




已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
基于PB的圖書管理系統(tǒng)畢業(yè)論文100%通過!.pdf 免費(fèi)下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1摘要隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,企業(yè)要生存要發(fā)展,要高效率地把企業(yè)活動(dòng)有機(jī)地組織起來,就必須加強(qiáng)企業(yè)管理,即加強(qiáng)對(duì)企業(yè)內(nèi)部的各種資源(人、財(cái)、物等)的有效管理,建立與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)。本文介紹了在POWERBUIDER環(huán)境下采用“自上而下地總體規(guī)劃,自下而上地應(yīng)用開發(fā)”的策略開發(fā)一個(gè)管理信息系統(tǒng)的過程。通過分析傳統(tǒng)的人工管理圖書館的不足,創(chuàng)建了一套行之有效的計(jì)算機(jī)管理圖書館的方案。文章詳細(xì)介紹了圖書管理信息系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、組織機(jī)構(gòu)分析、管理職能分析、業(yè)務(wù)流程分析、數(shù)據(jù)流程分析、數(shù)據(jù)字典、處理描述等等;系統(tǒng)設(shè)計(jì)部分主要介紹了系統(tǒng)功能設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì);系統(tǒng)實(shí)現(xiàn)部分列出了幾個(gè)主要的程序框圖,并附帶了一些主要的窗口和程序。本系統(tǒng)界面友好,操作簡(jiǎn)單,比較實(shí)用。【關(guān)鍵字關(guān)鍵字關(guān)鍵字關(guān)鍵字】管理信息系統(tǒng)、圖書管理、POWERBUIDER應(yīng)用。2ABSTRACTWITHMOREANDMOREWIDESPREADANDPROFOUNDAPPLICATIONOFINFORMATIONTECHNOLOGYINMANAGEMENT,THEIMPLEMNTOFMANAGEMENTINFORMATIONSYTEMHASBECOMEMATUREINTECHNOLOGYSTEPBYSTEPMANAGINGINFORMATIONSYTEMISANEWSUBJECTENTERPRISENEEDSEXISTENCEANDDEVELOPMENT,SOENTRPRISEACTIVITIESSHOULDBEORGANIZEDEFICENTLYANDORGANICALY,WHICHMEANSTIGHTENINGUPTHEENTRPRISEMANAGEMENTANDSTRENGTHENINGEFCTIVEMANAGEMENTOFANYRESOURCESTAF,FINANCE,PROPERTY,ETCINTERNALTHEENTRPRISE,ANDALSOESTABLISHINGAMANAGEMENTINFORMATIONSYTEMFITINGINWITHITSOWNCHARACTERISTICSTHISARTICLEINTRODUCESTHEDETAILEDPROCESOFEXPLORINGAMNAGEMENTINFORMATIONSYTEMUNDERTHEENVIRONMENTOFPOWERBUILDER,UTILZING“TOPBOTTOM”O(jiān)VERALPLANANDASTRATEGYACORDINGTO“BOTTOMTOP”APPLICATIONANDEXPLOITAIONTHATISTOESTABLISHASETOFEFCTIVESCHEMEFORLIBRARYMANAGEMENTBYCOMPUTER,THROUGHANALYZINGDISADVANTAGESOFTRADITIONALIBRARYMANAGEMENTBYHUMANRESOURCESTHISARTICLEMPHASIZESONTHRESECTIONSTHESYTEMANALYSISECTIONOFLIBRARYMANAGEMENTINFORMATIONINCLUDESFEASIBLEANALYSI,ORGANIZINGORGANSANALYSI,MANAGEMENTFUNCTIONANALYSI,TECHNOLOGICALPROCESOFBUSINESANALYSI,TECHNOLOGICALPROCESOFDATANALYSI,DATADICTIONARY,DISPOSALDESCRIPTIONANDTHELIKETHESYTEMDESIGNSECTIONMAINLYFOCUSESONSYTEMFUNCTIONDESIGNANDDATABASEDESIGNANDTHESYTEMREALIZATIONSECTIONHASPROVIDEDSEVERALMJORPROGRAMCHARTS,TOGETHERWITHTHEMAINWINDOWSANDPROGRAMSTHISECONOMICALANDPRAGMTICSYTEMHASEXPLICTINTERFACE,WITHSIMPLEOPERATIONKEYWORDSMIS、LIBRARYMANAGEMENT、POWERBUILDERAPPLICATION3目錄一前言11MIS系統(tǒng)開發(fā)方法12IS系統(tǒng)開發(fā)過程2二系統(tǒng)需求分析41現(xiàn)行業(yè)務(wù)描述42現(xiàn)行系統(tǒng)存在問題的分析53解決方案61系統(tǒng)目標(biāo)設(shè)計(jì)72系統(tǒng)功能分析83系統(tǒng)各功能模塊設(shè)計(jì)84數(shù)據(jù)流圖91數(shù)據(jù)庫(kù)需求分析132數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)141POWERBUILDER開發(fā)工具簡(jiǎn)介202POWERBUILDER8應(yīng)用程序開發(fā)的基本步驟203編碼規(guī)范214創(chuàng)建祖先窗口和全局函數(shù)215應(yīng)用程序?qū)ο驛PP_LIBRARAIN247補(bǔ)充說明48七結(jié)束語(yǔ)491一前言隨著人類社會(huì)的發(fā)展,人類對(duì)知識(shí)的需求也不斷地增長(zhǎng)。在這種形勢(shì)下,書籍就漸漸地成為人們獲取并增長(zhǎng)知識(shí)的主要途徑,而圖書館就自然而然地在人們的生活中占據(jù)了一定的位置,如何科學(xué)地管理圖書館不但關(guān)系到讀者求知的方便程度,也關(guān)系到圖書館的發(fā)展,因此,開發(fā)一套完善的圖書館管理系統(tǒng)就必不可少了。管理信息系統(tǒng)簡(jiǎn)稱MIS是介于信息論,經(jīng)濟(jì)管理理論,統(tǒng)計(jì)學(xué)與運(yùn)籌學(xué)及計(jì)算機(jī)科學(xué)之間的一門邊緣性,綜合性,系統(tǒng)性的交叉科學(xué),它是隨著管理科學(xué),信息技術(shù),計(jì)算機(jī)技術(shù)等的發(fā)展而產(chǎn)生和發(fā)展起來的。圖書館管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端的應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立數(shù)據(jù)的一致性和完整性,對(duì)于后者則要求應(yīng)用程序功能的完備,易用等的特點(diǎn)?;谏鲜隹紤]本系統(tǒng)主要利用POWERBUILDER8作前端的應(yīng)用開發(fā)工具,利用ADAPTIVESERVERANYWHERE7作為后臺(tái)的數(shù)據(jù)庫(kù),利用WINDOWS作為系統(tǒng)平臺(tái)開發(fā)的圖書管理系統(tǒng)。另外本圖書館管理系統(tǒng)利用軟件工程化思想和方法,總體上是采用結(jié)構(gòu)化生命法進(jìn)行系統(tǒng)分析和設(shè)計(jì)的,而系統(tǒng)實(shí)現(xiàn)等步驟則采用了原型法和面對(duì)對(duì)象的方法。1MIS系統(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法管理信息系統(tǒng)的開發(fā)方法有生命周期法、原型法和面向?qū)ο蟮拈_發(fā)方法等生命周期法(LIFECYCLEMTHOD)是20世紀(jì)60年代發(fā)展起來的一種應(yīng)用廣泛且比較成熟的管理系統(tǒng)開發(fā)方法,它的基本思想是將系統(tǒng)的開發(fā)工作從開始到結(jié)束劃分為若干個(gè)階段,每個(gè)階段都有明確的任務(wù),而系統(tǒng)開發(fā)出來后,并不意味著生2命周期的結(jié)束,而意味著根據(jù)組織的需要對(duì)系統(tǒng)的修改和重建的開始。原型法PROTYPINGMETHOD是20世紀(jì)80年代發(fā)展起來的,旨在改變生命周期法的缺點(diǎn)的一種系統(tǒng)開發(fā)方法,該法的開發(fā)思路是首先根據(jù)用戶的要求,由用戶和開發(fā)者共同確定系統(tǒng)的基本要求和主要功能,利用系統(tǒng)快速生成工具,建立一個(gè)系統(tǒng)模型,再在此基礎(chǔ)上與用戶交流,將模型不斷補(bǔ)充、修改、完善,如此反復(fù),最終直至用戶和開發(fā)者都比較滿意為止,從而形成一個(gè)相對(duì)穩(wěn)定、較為理想的管理信息系統(tǒng)。面向?qū)ο螅∣BJECTORIENTED)的開發(fā)方法于20世紀(jì)80年代開始興起的,是一種基于問題對(duì)象的自底向上的一種系統(tǒng)開發(fā)方法,這種方法的特點(diǎn)是以對(duì)象為基礎(chǔ),對(duì)象是分析問題和解決問題的核心。2MIS系統(tǒng)開發(fā)過程系統(tǒng)開發(fā)過程系統(tǒng)開發(fā)過程系統(tǒng)開發(fā)過程一個(gè)MIS系統(tǒng)的開發(fā)過程一般包括如下幾個(gè)步驟(1)需求分析需求分析主要是了解用戶的需求。需求了解得越詳細(xì),程序的后期開發(fā)與維護(hù)費(fèi)用就會(huì)越少。一般的開發(fā)團(tuán)隊(duì)中,需求分析都是由資歷較深的系統(tǒng)分析員或項(xiàng)目經(jīng)理?yè)?dān)當(dāng),可見它的重要性。需求分析制訂好后,需要反復(fù)修改。將最后的結(jié)果交給用戶審定,確認(rèn)無誤后,由系統(tǒng)分析員完成需求分析文檔,再開始下一步工作。(2)概要設(shè)計(jì)概要設(shè)計(jì)緊跟在需求分析之后。用戶需求明確后,將得到的數(shù)據(jù)分析后,開始構(gòu)建數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。此時(shí),數(shù)據(jù)庫(kù)中的表格還未成形,通過各種分析工具(如POWERDESIGNER等)畫出數(shù)據(jù)流圖,最后就可抽象出數(shù)據(jù)庫(kù)的具體表結(jié)構(gòu)。這時(shí)由系統(tǒng)分析人員反復(fù)審核。確認(rèn)所有的需求都考慮在內(nèi),沒有遺漏后,就可以開始制訂概要設(shè)計(jì)文檔。概要設(shè)計(jì)文檔形成后,整個(gè)程序的邏輯框架也就形成了。(3)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)完成后,根據(jù)設(shè)計(jì)中制訂的業(yè)務(wù)模塊。就可以進(jìn)行詳細(xì)分析設(shè)計(jì)了。詳細(xì)設(shè)計(jì)就是將各個(gè)業(yè)務(wù)模塊的窗口全部建好,各3個(gè)窗口控件的處理代碼全部用語(yǔ)言表達(dá)出。所以詳細(xì)設(shè)計(jì)是整個(gè)系統(tǒng)中最繁瑣的環(huán)節(jié)。詳細(xì)設(shè)計(jì)完成后,整個(gè)程序就確定了,再由編程人員根據(jù)詳細(xì)設(shè)計(jì)文檔將代碼完成。整個(gè)開發(fā)工作就宣告結(jié)束。1程序編碼程序編碼相對(duì)于其他環(huán)節(jié)來說比較簡(jiǎn)單,程序員只需要根據(jù)詳細(xì)分析文檔寫程序編碼,保證代碼沒有錯(cuò)誤即可。程序編碼需要注意的是整個(gè)程序書寫中命名的規(guī)范化與編程風(fēng)格的規(guī)范化,這需要較長(zhǎng)時(shí)間的培養(yǎng)來形成。需要在不斷的實(shí)踐中形成自己獨(dú)特的風(fēng)格。總的來說,不要過分地追求復(fù)雜的算法,因?yàn)槟强赡軙?huì)導(dǎo)致后期維護(hù)人員無法讀懂你的代碼而造成維護(hù)的困難。(4)測(cè)試程序編碼完成后,就需要測(cè)試。測(cè)試有幾種類型,主要是測(cè)試代碼有無邏輯錯(cuò)誤以及在加載數(shù)據(jù)環(huán)境下程序的穩(wěn)定性問題。測(cè)試工作中發(fā)現(xiàn)的錯(cuò)誤應(yīng)及時(shí)改正,然后將它記錄到測(cè)試文檔中。(5)打包測(cè)試完成,確認(rèn)無誤后。程序就可以打包發(fā)行了。打包一般使用工具如PWISE等。以上是一個(gè)完整的MIS系統(tǒng)開發(fā)過程,其實(shí)不僅MIS系統(tǒng),其他類型的程序開發(fā)也基本相同。4二系統(tǒng)需求分析整個(gè)軟件生命周期中,開發(fā)所占的費(fèi)用和時(shí)間都很小。后期維護(hù)工作一般要占整個(gè)軟件生命周期的80以上。所以系統(tǒng)分析很重要,一個(gè)好的系統(tǒng)分析可以減少很多后期維護(hù)工作。1現(xiàn)行業(yè)務(wù)描述下面以一所學(xué)校的圖書館為例子進(jìn)行分析,畫出圖書館的組織結(jié)構(gòu)圖如下圖21該圖書館各個(gè)部門負(fù)責(zé)的主要業(yè)務(wù)如下(1)采編組主要負(fù)責(zé)圖書采編工作,包括購(gòu)置新書、打印編目、增加數(shù)量。(2)目錄廳主要負(fù)責(zé)讀者查詢工作,包括可借圖書(按圖書類別、圖書名稱或圖書作者查詢);新書目錄(按圖書類別、日期查詢)。(3)借閱組主要負(fù)責(zé)圖書流通、查詢統(tǒng)計(jì)、借閱查詢等工作。(4)閱覽室、工具書室主要負(fù)責(zé)讀者閱覽工作,包括閱覽各種雜志、館長(zhǎng)采編組書庫(kù)閱覽室工具書室目錄廳借閱室5報(bào)紙、閱覽各種工具書。下面繪制出圖書館流通業(yè)務(wù)中借書的流程圖(1)讀者在目錄廳查閱索引卡;(2)讀者寫出所借圖書的分類號(hào)、種次號(hào)、交給圖書管理員,并出示本人的借書證;(3)圖書管理員根據(jù)圖書的分類號(hào)、種次號(hào)到書庫(kù)找書;(4)將圖書交給讀者,并由讀者填寫所借圖書的借書卡。(5)圖書管理員把借書卡保存到寫有該讀者借書證號(hào)的口袋里。得出該圖書館業(yè)務(wù)流程圖如下所示圖222現(xiàn)行系統(tǒng)存在問題的分析該圖書館工作大部分還是進(jìn)行著手工管理,工作起來效率很低,由于不可避免的人為因素,經(jīng)常造成數(shù)據(jù)的遺漏、誤報(bào)。計(jì)算機(jī)信息化管理有著儲(chǔ)存信息量大、速度快等許多優(yōu)點(diǎn),提供給我們的處理信息及時(shí)快捷,6同時(shí)也提高了我們工作人員的自身素質(zhì)。3解決方案基于以上的對(duì)問題的分析,利用計(jì)算機(jī)給我們提供信息,及時(shí)地調(diào)整學(xué)校圖書館圖書結(jié)構(gòu),并且對(duì)學(xué)生們的借閱過程形成一整套動(dòng)態(tài)的管理就十分必要了。圖書館信息系統(tǒng)的建立,需要進(jìn)行用戶的需求調(diào)查與分析,以確定系統(tǒng)目標(biāo),提出解決問題的詳細(xì)方案,這是系統(tǒng)建設(shè)的重要環(huán)節(jié)。學(xué)校圖書館規(guī)模相對(duì)于商業(yè)圖書館小,但要有著完善的圖書信息,對(duì)每一冊(cè)書要有詳細(xì)的記錄信息,功能上對(duì)系統(tǒng)的需求是全面的。因此對(duì)用戶的需求可分為四個(gè)方面一方面是圖書館工作人員通過計(jì)算機(jī)來管理各類圖書,分類編號(hào),調(diào)整圖書結(jié)構(gòu),增加圖書庫(kù)存,適應(yīng)學(xué)生的需求;二方面是學(xué)生們能通過計(jì)算機(jī)來查詢?yōu)g覽圖書館中的圖書,來確定自己需要的書籍,為借閱做好準(zhǔn)備;三方面是工作人員對(duì)學(xué)生們的借書證發(fā)放;四方面也是圖書館的核心工作,對(duì)圖書的借閱管理。這四個(gè)方面形成了學(xué)校圖書館一個(gè)工作整體,采用計(jì)算機(jī)自動(dòng)化信息處理,可方便快捷地共享信息、交流信息,高效地協(xié)同工作。在軟、硬件方面對(duì)系統(tǒng)的需求,軟件要求易學(xué),界面友好,容易掌握,可以很簡(jiǎn)單方便的管理各種圖書信息。硬件的配置要求不能太高,這樣可以很好的適應(yīng)當(dāng)前的學(xué)校圖書館。在開發(fā)方式上對(duì)系統(tǒng)的需求,由于學(xué)校圖書館是一種無商業(yè)利益的,所以系統(tǒng)設(shè)計(jì)開發(fā)的周期要短,在短時(shí)間內(nèi)完成,減少開發(fā)成本,提高開發(fā)效率,方便、簡(jiǎn)單、實(shí)用作為系統(tǒng)開發(fā)的指導(dǎo)思想。7三系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)如果要完成一個(gè)完整的圖書管理系統(tǒng),需要的相關(guān)信息很多。由于種種條件的限制,同時(shí)考慮到開發(fā)成本,所以本系統(tǒng)僅實(shí)現(xiàn)基本的管理功能。并不能完全滿足上面例子所描述的圖書館,使用前應(yīng)進(jìn)行二次開發(fā)。1系統(tǒng)目標(biāo)設(shè)計(jì)系統(tǒng)開發(fā)的總目標(biāo)是實(shí)現(xiàn)內(nèi)部圖書借閱管理的系統(tǒng)化、規(guī)范化和自動(dòng)化。能夠?qū)D書進(jìn)行注冊(cè)登記,也就是將圖書的基本信息(如書名、作者、價(jià)格等)預(yù)先存入數(shù)據(jù)庫(kù)中,供以后檢索。能夠?qū)栝喨诉M(jìn)行注冊(cè)登記,包括記錄借閱人的姓名、地址、電話等信息。提供方便的查詢方法。如以書名、作者、出版社、出版時(shí)間(確切的時(shí)間、時(shí)間段、某一時(shí)間之前、某一時(shí)間之后)等信息進(jìn)行圖書檢索,并能反映出圖書的借閱情況;以借閱人編號(hào)對(duì)借閱人信息進(jìn)行檢索;以出版社名稱查詢出版社聯(lián)系方式信息。提供統(tǒng)計(jì)分析功能??梢哉宫F(xiàn)出圖書類型比例、庫(kù)存與借出比例。提供舊書銷毀功能,對(duì)于淘汰、損壞、丟失的書目可及時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。能夠?qū)κ褂迷摴芾硐到y(tǒng)的用戶進(jìn)行管理,按照不同的工作職能提供不同的功能授權(quán)。提供較為完善的差錯(cuò)控制與友好的用戶界面,盡量避免誤操作。82系統(tǒng)功能分析根據(jù)以上功能,將圖書管理系統(tǒng)的數(shù)據(jù)分為數(shù)據(jù)輸入部分主要包括圖書基本信息的錄入、借閱人基本信息的錄入、用戶基本信息的錄入。數(shù)據(jù)輸出部分主要是各種統(tǒng)計(jì)查詢,包括根據(jù)圖書信息(如書名、作者、出版社等)查閱圖書及其借閱信息、統(tǒng)計(jì)輸出圖書類型比例等。數(shù)據(jù)處理部分主要涉及借閱和歸還的處理,如一本書借出后,必須在數(shù)據(jù)庫(kù)中將該書標(biāo)記為已借出,以防出現(xiàn)數(shù)據(jù)庫(kù)中有書但圖書館無書的情況;一本書歸還后,同樣必須在數(shù)據(jù)庫(kù)中將其標(biāo)記為已經(jīng)歸還,以便再次借出。3系統(tǒng)各功能模塊設(shè)計(jì)在系統(tǒng)功能分析的基礎(chǔ)上,考慮POWERBUILDER程序編制的特點(diǎn),得到如圖所示的系統(tǒng)功能模塊圖圖31圖書借閱管理系統(tǒng)數(shù)據(jù)輸入子系統(tǒng)數(shù)據(jù)輸出子系統(tǒng)數(shù)據(jù)管理子系統(tǒng)94數(shù)據(jù)流圖(1)圖書基本信息登記/修改圖32說明出版社信息人工錄入后,存放在出版社信息庫(kù)中,便于今后書籍信息的錄入以及出版社信息的查詢。分類信息由圖書館進(jìn)行分類定制,存放在圖書分類信息庫(kù)中,用于圖書的分類管理。登記新書時(shí),當(dāng)涉及到出版社和分類的填寫時(shí),只需做相應(yīng)的選擇即可,并存放在圖書信息庫(kù)中。(2)借閱人基本信息登記/修改圖3圖書信息出版社信息庫(kù)圖書分類信息庫(kù)出版社信息分類信息得到完整的圖書信息圖書信息庫(kù)借閱人基本信息借閱人信息庫(kù)10說明錄入借閱人基本信息后存放在借閱人信息庫(kù)中。(3)圖書查詢圖34說明輸入查詢條件后,檢索圖書信息庫(kù),并反應(yīng)出查詢結(jié)果。(4)圖書統(tǒng)計(jì)圖35說明根據(jù)選擇的統(tǒng)計(jì)條件,檢索圖書分類信息庫(kù)或圖書信息庫(kù),并反應(yīng)出統(tǒng)計(jì)結(jié)果。查詢條件圖書信息庫(kù)信息查詢圖書查詢結(jié)果統(tǒng)計(jì)條件圖書分類信息庫(kù)信息統(tǒng)計(jì)圖書統(tǒng)計(jì)結(jié)果圖書信息庫(kù)15圖書借閱圖36說明輸入借閱人編號(hào),通過檢索借閱人信息庫(kù),核實(shí)借閱人身份。輸入圖書編號(hào),通過檢索圖書信息庫(kù),核實(shí)圖書信息。進(jìn)行圖書借出處理后,在圖書借閱庫(kù)中進(jìn)行登記,并將借出圖書的在借標(biāo)志設(shè)為“是”。(6)圖書歸還圖37借閱人編號(hào)借閱人信息庫(kù)借閱人信息認(rèn)證圖書信息庫(kù)圖書借出處理圖書編號(hào)圖書信息認(rèn)證在借信息庫(kù)圖書在借狀態(tài)修改在借圖書編號(hào)圖書信息庫(kù)借閱人信息庫(kù)在借信息庫(kù)圖書歸還處理圖書在借狀態(tài)修改在借信息庫(kù)修改12說明輸入圖書編號(hào),檢索在借信息庫(kù),反應(yīng)出圖輸借閱情況。進(jìn)行歸還操作后,修改在借信息庫(kù)中相關(guān)條目,同時(shí)在圖書信息庫(kù)中修改相關(guān)圖書在借標(biāo)志為“否13四數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)是MIS系統(tǒng)的核心部分,設(shè)計(jì)數(shù)據(jù)庫(kù),首先要進(jìn)行需求分析,然后進(jìn)行數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn)等步驟。1數(shù)據(jù)庫(kù)需求分析根據(jù)以上的需求分析和數(shù)據(jù)組織,開始設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),即根據(jù)需求勾畫出實(shí)體/關(guān)系圖(E/R)。在概念上,E/R圖代表的是系統(tǒng)需要的數(shù)據(jù)及其這些數(shù)據(jù)之間的關(guān)系。如圖所示的實(shí)體/關(guān)系圖圖41從圖中可以看出,在這個(gè)系統(tǒng)中實(shí)際存在的實(shí)體圖書和借閱人,其中借閱人和圖書是多對(duì)多關(guān)系,針對(duì)本系統(tǒng),通過對(duì)圖書借閱管理的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下(1)圖書基本信息,其數(shù)據(jù)項(xiàng)有圖書編號(hào)、圖書名稱、作者、出版社等。(2)借閱人基本信息,其數(shù)據(jù)項(xiàng)有借閱人編號(hào)、借閱人姓名、電話等。(3)圖書借閱登記,其數(shù)據(jù)項(xiàng)有借閱序號(hào)、借閱圖書編號(hào)、借閱人借閱人MEMBER圖書基本信息(BOK)圖書借閱登記(BOKLOAN)14編號(hào)等。為了實(shí)現(xiàn)圖書信息錄入的方便性與規(guī)范性以及相關(guān)的統(tǒng)計(jì)功能,還應(yīng)增加出版社信息與圖書分類信息(4)出版社信息,其數(shù)據(jù)項(xiàng)有出版社編號(hào)、出版社名稱、地址、電話、傳真等。(5)圖書分類信息,其數(shù)據(jù)項(xiàng)有分類編號(hào)、分類名稱、同一類型圖書數(shù)目。同時(shí)針對(duì)于本系統(tǒng)的多用戶使用特點(diǎn),增加用戶信息表(6)用戶信息表,其數(shù)據(jù)項(xiàng)有用戶名、密碼、用戶權(quán)限。為了實(shí)現(xiàn)圖書借閱超期罰款制度,還應(yīng)增設(shè)罰金規(guī)則表(7)罰金規(guī)則表,其數(shù)據(jù)項(xiàng)包括免費(fèi)使用天數(shù)、罰金費(fèi)率、規(guī)則啟用開關(guān)。2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)有幾個(gè)范式,一般我們要做到的是第三范式,即數(shù)據(jù)表中沒有冗余字段以及同一個(gè)表中的字段沒有函數(shù)依賴關(guān)系,冗余字段即在一個(gè)表中已經(jīng)保存過的信息,在另一個(gè)表中就不應(yīng)該存在,如果需要的話,可以通過表間的關(guān)聯(lián)來得到,函數(shù)依賴性就是一個(gè)表中的字段間不應(yīng)該有計(jì)算關(guān)系,如一個(gè)表中有單價(jià)字段、數(shù)量字段,就不應(yīng)該有一個(gè)總金額字段。如果程序運(yùn)行過程中需要總金額,可以實(shí)時(shí)計(jì)算。不過在一些較常用的表中,我們可以適當(dāng)?shù)乇A羧哂嘧侄危@樣,在程序運(yùn)行過程中可以減少由于表間互相關(guān)聯(lián)而使用速度降低等問題。這就是所謂的第四范式。數(shù)據(jù)表設(shè)計(jì)時(shí),最好不要使用用戶輸入的信息作為主鍵,每一個(gè)數(shù)據(jù)表自己定義一個(gè)主鍵,添加信息是由程序自動(dòng)添加,這樣就可以減少數(shù)據(jù)更新時(shí)產(chǎn)生的錯(cuò)誤。表與表相關(guān)聯(lián)的外鍵最好是由程序自動(dòng)生成的主鍵,這樣數(shù)15據(jù)庫(kù)就比較規(guī)范了。另外,數(shù)據(jù)表設(shè)計(jì)時(shí)一般都應(yīng)該有一些標(biāo)志字段,標(biāo)志字段可以定義成CHAR1或BIT型。建議實(shí)際應(yīng)用中定義成CHAR1字段可以存儲(chǔ)多種可能的狀態(tài),在最初設(shè)計(jì)時(shí),可能我們沒有考慮到的一些情況,在程序后來的開發(fā)中,可以通過設(shè)計(jì)標(biāo)志字段為不同的值來解決,這樣就避免了修改數(shù)據(jù)庫(kù)結(jié)構(gòu)。數(shù)據(jù)庫(kù)初期設(shè)計(jì)時(shí)一定要謹(jǐn)慎,把所有可能的情況都考慮進(jìn)去,即使當(dāng)時(shí)沒有用到,也要將它留在數(shù)據(jù)庫(kù)中作為備用字段以便將來擴(kuò)充。程序一旦開始編碼,就應(yīng)該盡量避免再修改數(shù)據(jù)庫(kù)。因?yàn)槿绻麛?shù)據(jù)庫(kù)結(jié)構(gòu)一旦改變,所有與修改的數(shù)據(jù)表相關(guān)的業(yè)務(wù)都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個(gè)惡性循環(huán)。錯(cuò)誤越改越多,越改越亂,最終導(dǎo)致程序的失敗。PB的數(shù)據(jù)窗口與其他語(yǔ)言的數(shù)據(jù)控件不一樣,它的很多東西是預(yù)編譯的。即使你一個(gè)模塊已經(jīng)調(diào)試無誤,但只要數(shù)據(jù)庫(kù)結(jié)構(gòu)改動(dòng)。相應(yīng)的模塊就一定要重新修改,否則一定會(huì)出問題。圖書借閱管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面幾個(gè)表格所示。每個(gè)表格表示為數(shù)據(jù)庫(kù)中的一個(gè)表。借閱人基本信息表MEMBERINFO說明記錄借閱人的基本情況,MEBERID設(shè)為主鍵、索引。表41列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋MEMBERIDCHAR10NOTNULL借閱人編號(hào)MEMBERNAMECHAR10NULL借閱人姓名IDVARCHAR20NULL身份證號(hào)ADDCHAR50NULL聯(lián)系地址PHONECHAR20NULL聯(lián)系電話16MOBILECHAR20NULL移動(dòng)電話用戶基本信息表PEOPLE說明記錄系統(tǒng)用戶的用戶名、密碼與權(quán)限,NAME設(shè)為主鍵。表42列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋NAMECHAR10NOTNULL用戶名PASSWORDCHAR10NOTNULL密碼LEVELCHAR1NOTNULL權(quán)限圖書基本信息表BOOKINFO說明記錄圖書基本信息,BOKID設(shè)為主鍵、索引。表43列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋BOOKIDCHAR10NOTNULL圖書編號(hào)ISBNCHAR30NULL圖書ISBNCLASSNAMECHAR20NULL圖書類型TITLECHAR40NULL圖書名稱PUBLISHDATEDATENULL出版日期AUTHORCHAR20NULL作者WORDSINTNULL字?jǐn)?shù)(千字)PUBCHAR30NULL出版社PRICENUMERIC194NULL價(jià)格DISKCHAR1NULL附帶光盤KEYWORDCHAR30NULL關(guān)鍵詞NUMBERINTNULL存放代碼ABSTRACTVARCHAR100NULL摘要BOOKONLOANCHAR1NULL圖書在借標(biāo)志17Y在借N未借出版社基本信息表PUBLISHINFO說明記錄出版社信息,PUBID設(shè)為主鍵。表4列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋PUBIDCHAR4NOTNULL出版社編號(hào)PUBCHAR30NULL出版社名稱ADDCHAR50NULL聯(lián)系地址ZIPCHAR6NULL郵政編碼TELCHAR16NULL聯(lián)系電話FAXCHAR16NULL傳真HTTPCHAR16NULL網(wǎng)址分類信息表BOOKCLASS說明記錄定制的分類情況,CLASID設(shè)為主鍵。表45列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋CLASSIDCHAR2NOTNULL分類編號(hào)CLASSNAMECHAR20NULL分類名稱NUMBERINTNULL數(shù)目借閱情況信息表LOAN說明進(jìn)行借閱的登記,LOANID設(shè)為主鍵、自動(dòng)增長(zhǎng)。表46列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋LOANIDINTNOTNUL借閱序號(hào)BOKIDCHAR10NOTNUL圖書編號(hào)18MEBERIDCHAR10NOTNUL借閱人編號(hào)LOANDATEDATENUL借閱日期規(guī)則信息表REGULAR說明記錄設(shè)置的借閱規(guī)則,DAYS設(shè)為主鍵。表47列名數(shù)據(jù)類型長(zhǎng)度可否為空注釋DAYSINT4NOTNUL免費(fèi)借閱天數(shù)FINEDEC52NUL罰金標(biāo)準(zhǔn)FLAGCHAR1NUL規(guī)則開關(guān)(1)規(guī)劃有效的索引A在組合表的列中創(chuàng)建索引,包括主關(guān)鍵字和外部關(guān)鍵字所在的列。B在列或類組合中創(chuàng)建唯一的索引能增強(qiáng)唯一性。C瀏覽索引并卸載不使用的索引。索引需要一定硬盤空間和時(shí)間來維護(hù)。具有較高數(shù)據(jù)插入操作頻率的數(shù)據(jù)庫(kù)最好不要索引。有較高讀操作頻率的數(shù)據(jù)庫(kù)應(yīng)該有更多的索引。D避免在簇索引中包括不必要的列。在可能的情況下,使用較小的數(shù)據(jù)類型,例如用VARCHAR替代CHAR。E考慮使用簇索引來支持排序和范圍化查詢。在為數(shù)據(jù)檢索優(yōu)化表時(shí),簇索引必須支持?jǐn)?shù)據(jù)的分組索引。為簇關(guān)鍵字選擇列或列組,簇關(guān)鍵字以經(jīng)常需要的順序排序數(shù)據(jù)或以必須被一起訪問的記錄而分組記錄。F創(chuàng)建支持一般查詢的查找參數(shù)索引。具有高選擇性的列是索引的最好候選列。具有高密度的列是索引糟糕的候選列。(2)使用約束實(shí)現(xiàn)數(shù)據(jù)的完整性PRIMARYKEY約束在表中定義了主關(guān)鍵字,它是行唯一的標(biāo)識(shí)符,它可以強(qiáng)制實(shí)體完整性。在使用PRIMARYKEY約束時(shí)考慮以下19事實(shí)A每個(gè)表只能有一個(gè)PRIMARYKEY約束。B鍵入的值必須是唯一的。C不允許有空值。DPRIMARYKEY約束在指定的列創(chuàng)建唯一的索引,可以指定簇索引和非簇索引(如果非簇索引先前并不存在,簇索引是默認(rèn)的)。UNIQUE約束指定,在一列中的兩行不能有相同的值。該約束使用唯一的索引來強(qiáng)制實(shí)體的完整性。在已有一個(gè)主關(guān)鍵字時(shí)UNIQUE約束很有用,例如雇員號(hào),但是必須保證其他標(biāo)識(shí)符(例如,雇員駕駛證號(hào))也是唯一的。在使用UNIQUE約束時(shí),考慮以下事實(shí);A允許有空值。B在一個(gè)表中可以設(shè)置多個(gè)UNIQUE約束。C可以將UNIQUE約束運(yùn)用于具有唯一值的單列或多列,但不能用于表的主關(guān)鍵字。D通過在指定的列或列組中創(chuàng)建唯一的索引,可以使UNIQUE索引得到強(qiáng)制20五圖書管理系統(tǒng)的具體實(shí)現(xiàn)1POWERBUILDER開發(fā)工具簡(jiǎn)介POWERBUILDER是目前開發(fā)CLIENT/SERVER結(jié)構(gòu)的應(yīng)用系統(tǒng)的主要工具之一。POWERBUILDER80在繼承與發(fā)展以前版本優(yōu)秀功能的基礎(chǔ)上,為適應(yīng)網(wǎng)絡(luò)應(yīng)用程序的開發(fā)要求集成了ENTERPISEAPLICATIONSTUDIO中POWERBUILDER以及POWERSITE的功能,在傳統(tǒng)數(shù)據(jù)庫(kù)開發(fā)的基礎(chǔ)上,將WEB應(yīng)用更好地集成到POWERBUILDER中。POWERBUILDER全面支持面向?qū)ο缶幊?。是功能?qiáng)大并易于使用的第4代編程語(yǔ)言4GL,它內(nèi)置了包括數(shù)據(jù)窗口在內(nèi)的多種對(duì)象類,可以方便地訪問數(shù)據(jù)庫(kù)。相對(duì)于其他應(yīng)用工具,POWERBUILDER具有工作效率高、成本低、質(zhì)量高、功能強(qiáng)的特點(diǎn)。2POWERBUILDER8應(yīng)用程序開發(fā)的基本步驟我們要開發(fā)應(yīng)用程序時(shí),首先要對(duì)它進(jìn)行分析。無論哪種、哪方面的應(yīng)用程序,都要先建立一個(gè)應(yīng)用對(duì)象。下面我們介紹以下POWERBUILDER8應(yīng)用程序開發(fā)的基本步驟(1)首先要建立應(yīng)用對(duì)象。(2)創(chuàng)建窗口。在窗口里放置各種控件和編寫事件響應(yīng)的腳本。(3)創(chuàng)建菜單。窗口里的菜單可包括菜單條,下拉式菜單,級(jí)聯(lián)菜單和彈出式菜單為菜單編寫事件響應(yīng)的腳本。(4)創(chuàng)建用戶對(duì)象。如果想要重復(fù)使用某個(gè)控件的功能,可以把窗口上經(jīng)常放置的控件定義為用戶對(duì)象。(5)創(chuàng)建數(shù)據(jù)窗口。數(shù)據(jù)窗口可以檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù),可以建立21各種報(bào)或統(tǒng)計(jì)表,可以修改數(shù)據(jù)庫(kù)。(6)創(chuàng)建函數(shù)、結(jié)構(gòu)、事件。為了能夠更好地支持腳本,編寫自定義的函數(shù),定義結(jié)構(gòu)類型變量,也可以為對(duì)象和控件定義自己的事件。(7)運(yùn)行與調(diào)試??梢栽陂_發(fā)環(huán)境中隨時(shí)運(yùn)行應(yīng)用程序,發(fā)現(xiàn)錯(cuò)誤后,可以用調(diào)試工具進(jìn)行調(diào)試。(8)當(dāng)應(yīng)用程序開發(fā)完畢后,可以把它編譯成可執(zhí)行的文件,讓用戶比較容易地建立應(yīng)用系統(tǒng)的運(yùn)行環(huán)境。3編碼規(guī)范為了減少在軟件開發(fā)過程中的錯(cuò)誤,在軟件開發(fā)過程中應(yīng)該遵守一定的標(biāo)準(zhǔn)。給對(duì)象命名要有一定的規(guī)范,部件名稱可以達(dá)到40個(gè)字符,窗口的命名W_功能代碼_功能描述。數(shù)據(jù)窗口的命名DW_功能代碼_功能描述。菜單命名M_功能代碼_功能描述。標(biāo)識(shí)符命名時(shí),應(yīng)該使標(biāo)識(shí)符有一定的字面含義,有助于程序的調(diào)試和腳本的可讀性的提高。本系統(tǒng)中使用的命名規(guī)范為變量作用域變量類型”_”具有一定字面含義的名稱。例如LI_SELECTROW反映出的含義”L”代表是本地變量,是LOCAL的縮寫,”I”代表是INTEGER類型的變量,SELECTROW表示該變量是用來記錄一個(gè)行號(hào)的計(jì)數(shù)器。4創(chuàng)建祖先窗口和全局函數(shù)為充分利用PB的面向?qū)ο蟮奶匦浴3绦蜷_發(fā)時(shí)一般創(chuàng)建幾個(gè)模板窗口。將功能窗口上的某些常用功能封裝在模板窗口中。然后將這些模板窗口作為祖先窗口。所有的子孫窗口都可以通過繼承的方法來生成。這樣就減少了代碼的書寫量。使得整個(gè)程序界面保持整齊。當(dāng)修改祖先窗口時(shí),所有的子孫窗口都會(huì)自動(dòng)修改。所以,祖先窗口的確定要十分謹(jǐn)慎。2全局函數(shù)與局部函數(shù)的作用類似。唯一不同的是全局函數(shù)的作用域是整個(gè)程序周期。不論你在任何一個(gè)模塊的代碼中都可以調(diào)用它。所以我們可以把某些常用功能寫成全局函數(shù)。在程序的其他地方反復(fù)調(diào)用。41函數(shù)LEVELCHARACTERLEV功能介紹通過傳入的LEV值,將某些菜單項(xiàng)設(shè)為“非使能”,以限制某些功能的使用。LEV值即不同職責(zé)的權(quán)限(系統(tǒng)管理1、圖書管理2、借閱人管理3、借閱操作員4),從PEOPLE表中的LEVEL字段中讀取。代碼分析CHOOSECASELEVCASE“1“CASE“2“M_MAINM_借閱人管理ENABLEDFALSEM_MAINM_圖書租賃ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_用戶管理ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_借閱規(guī)則設(shè)置ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_圖書信息設(shè)置ENABLEDFALSECASE“3“M_MAINM_圖書管理ENABLEDFALSEM_MAINM_圖書租賃ENABLEDFALSEM_MAINM_圖書查詢ENABLEDFALSEM_MAINM_統(tǒng)計(jì)資料ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_用戶管理ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_借閱規(guī)則設(shè)置ENABLEDFALSE23M_MAINM_系統(tǒng)菜單M_圖書信息設(shè)置ENABLEDFALSECASE“4“M_MAINM_圖書管理ENABLEDFALSEM_MAINM_借閱人管理ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_用戶管理ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_借閱規(guī)則設(shè)置ENABLEDFALSEM_MAINM_系統(tǒng)菜單M_圖書信息設(shè)置ENABLEDFALSEENDCHOOSE42函數(shù)COUNTDAYCOUNTDAYDATEDATE1,DATEDATE2功能介紹通過傳入的DATE1(起始日期)值與DATE2(結(jié)束日期)值,計(jì)算出中間相差的天數(shù),返回值為INTEGER型。代碼分析INTDAYDAYINTEGERYEARDATE2INTEGERYEARDATE1365/提交事務(wù)CB_NEWSETFOCUS/“新增”按鈕獲得焦點(diǎn)ELSEROLLBACK/回滾事務(wù)MESSAGEBOX“系統(tǒng)提示“,“保存失敗請(qǐng)檢驗(yàn)數(shù)據(jù)的正確性“DW_1SETCOLUMN1/數(shù)據(jù)窗口第一列獲得焦點(diǎn)DW_1SETFOCUSENDIFELSECB_NEWSETFOCUS/“新增”按鈕獲得焦點(diǎn)ENDIF30(5)舊書銷毀窗口W_DELBOOK圖54功能介紹刪除圖書信息。操作方法首先通過圖書編號(hào)檢索出圖書信息,然后點(diǎn)擊“銷毀”按鈕注銷圖書。代碼分析OPEN事件類同“新書入庫(kù)窗口W_NEWBOOK”“檢索”按鈕STRINGLS_BOOKID,LS_FILTERLS_BOOKIDSLE_BOOKIDTEXT/設(shè)置過濾條件DW_1SETFILTER“BOOKID“LS_BOOKID“/過濾數(shù)據(jù)DW_1FILTER/使“銷毀”按鈕可用CB_DELENABLEDTRUESLE_BOOKIDSETFOCUS“銷毀”按鈕LONGLI_ROWLI_ROWDW_1GETROW/得到當(dāng)前行號(hào)IFLI_ROW0THEN/判斷是否有可刪除的行IFMESSAGEBOX刪除詢問,真的要注銷此書嗎31,QUESTION,YESNO,21THENDW_1DELETEROWLI_ROW/刪除行IFDW_1UPDATE0THEN/更新數(shù)據(jù)庫(kù)COMMITELSEROLLBACKMESSAGEBOX“錯(cuò)誤提示“,“無法注銷“ENDIFLI_ROWDW_1GETROW/得到當(dāng)前行IFLI_ROW0THEN/判斷是否有該“借閱人”MESSAGEBOX“系統(tǒng)提示“,“沒有此借閱人信息“SLE_MEMBERIDSETFOCUS/“借閱人編號(hào)”輸入框獲得焦點(diǎn)RETURNELSESLE_BOOKIDSETFOCUS/“圖書編號(hào)”輸入框獲得焦點(diǎn)SLE_MEMBERNAMETEXTLS_MEMBERNAME/顯示“”借閱人姓名ENDIF“圖書編號(hào)”輸入框MODIFIED事件STRINGLS_BOOKID,LS_TITLELS_BOOKIDTRIMTHISTEXT35SELECTTITLEINTOLS_TITLEFROMBOOKINFOWHEREBOOKIDLS_BOOKIDIFSQLCASQLCODE0THENMESSAGEBOX“系統(tǒng)提示“,“沒有此圖書信息“SLE_BOOKIDSETFOCUSRETURNELSESLE_TITLETEXTLS_TITLEENDIF“借閱”按鈕STRINGLS_BOOKID,LS_MEMBERID,LS_BOOKONLOANDATELDT_NOWDATELDT_NOWDATETODAY/獲得“當(dāng)前日期”LS_BOOKIDTRIMSLE_BOOKIDTEXT/獲得“借閱人號(hào)”LS_MEMBERIDTRIMSLE_MEMBERIDTEXT/獲得“圖書編號(hào)”/強(qiáng)制輸入“借閱人號(hào)”與“圖書編號(hào)”IFLS_MEMBERID“ORISNULLLS_MEMBERIDTHENMESSAGEBOX“系統(tǒng)提示“,“請(qǐng)輸入借閱人編號(hào)“SLE_MEMBERIDSETFOCUSRETURNENDIFIFLS_BOOKID“ORISNULLLS_BOOKIDTHENMESSAGEBOX“系統(tǒng)提示“,“請(qǐng)輸入圖書編號(hào)“SLE_BOOKIDSETFOCUS36RETURNENDIF/根據(jù)“圖書編號(hào)”查詢圖書是否借出SELECTBOOKONLOANINTOLS_BOOKONLOANFROMBOOKINFOWHEREBOOKIDLS_BOOKIDIFLS_BOOKONLOAN“Y“THENMESSAGEBOX“系統(tǒng)提示“,“本書已經(jīng)外借“SLE_BOOKIDSETFOCUSRETURNELSE/添加圖書借閱記錄INSERTINTOLOANBOOKID,MEMBERID,LOANDATEVALUESLS_BOOKID,LS_MEMBERID,LDT_NOWDATECOMMIT/設(shè)置該圖書為“借出”狀態(tài)UPDATEBOOKINFOSETBOOKONLOANYWHEREBOOKIDLS_BOOKIDCOMMITENDIF/“借閱人號(hào)”得到焦點(diǎn),所有輸入框清空SLE_MEMBERIDSETFOCUSSLE_BOOKIDTEXT“SLE_TITLETEXT“SLE_MEMBERIDTEXT“SLE_MEMBERNAMETEXT“37“關(guān)閉”按鈕CLOSEPARENT(9)還書窗口W_RETURN圖58功能介紹歸還圖書操作方法輸入“圖書編號(hào)”,判斷后顯示出圖書名稱、借閱人編號(hào)、借閱人姓名。并根據(jù)是否啟用了“罰金制度”(在“罰金規(guī)則窗口”設(shè)置),決定是否計(jì)算罰金。代碼分析OPEN事件CHARLC_FLAG/查詢“規(guī)則”是否啟用,并表現(xiàn)出來SELCTFLAGINTOLC_FLAGFROMREGULARIFLC_FLAGYTHENSLE_FINENABLEDTRUETHISWIDTH1285THISHEIGHT1256“圖書編號(hào)”輸入框MODIFED事件STRINGLS_BOKID,LS_TILE,LS_MEBERID,LS_MEBERNAMEDATELD_ATE1,LD_ATE2INTLI_DAYSDECLD_FINE,LD_COUNTFINELD_ATE2TODAY/獲得當(dāng)前日期LS_BOKIDTRIMTHISTEXT/獲得“圖書編號(hào)”/根據(jù)“圖書編號(hào)”查詢出“借閱日期”SELCTLOANDATEINTOLD_ATE1FROMLOAN38WHERBOKIDLS_BOKID/查詢“免費(fèi)天數(shù)”、“罰金規(guī)定”SELCTDAYS,FINEINTOLI_DAYS,LD_FINEFROMREGULAR/計(jì)算罰金LD_COUNTFINECOUNTFINELI_DAYS,LD_FINE,COUNTDAYLD_ATE1,LD_ATE2/查詢“圖書名稱”SELCTTILEINTOLS_TILEFROMBOKINFOWHERBOKIDLS_BOKID/查詢“借閱人號(hào)”、“借閱人姓名”SELCTMEBERID,MEBERNAMEINTOLS_MEBERID,LS_MEBERNAMEFROMMEBERINFOWHERMEBERIDINSELCTMEBERIDFROMLOANWHERBOKIDLS_BOKIDIFSQLCASQLCODE0THENMESAGEBOX“系統(tǒng)提示“,沒有借閱信息“SLE_BOKIDSETFOCUSRETURNELSESLE_TILETEXTLS_TILESLE_MEBERIDTEXTLS_MEBERIDSLE_MEBERNAMETEXTLS_MEBERNAMEIFSLE_FINENABLEDTRUETHENSLE_FINETEXTSTRINGLD_COUNTFINEENDIF“歸還”按鈕STRINGLS_BOKID,LS_BOKONLOANLS_BOKIDSLE_BOKIDTEXTIFLS_BOKID“ORISNULLS_BOKIDTHENMESAGEBOX“系統(tǒng)提示“,請(qǐng)輸入圖書編號(hào)“SLE_BOKIDSETFOCUSRETURNELSE39SELCTBOKONLOANINTOLS_BOKONLOANFROMBOKINFOWHERBOKIDLS_BOKIDIFLS_BOKONLOAN“NTHENMESAGEBOX“系統(tǒng)提示“,本書已歸還“ELSEDELTELOANWHERBOKIDLS_BOKIDUPDATEBOKINFOSETBOKONLOANNWHERBOKIDLS_BOKIDCOMITENDIFENDIFSLE_BOKIDSETFOCUSSLE_BOKIDTEXT“SLE_TILETEXT“SLE_MEBERIDTEXT“SLE_MEBERNAMETEXT“SLE_FINETEXT“關(guān)閉”按鈕CLOSEPARENT(10)圖書查詢“按圖書標(biāo)題查詢“窗口W_SEARCH_TILE“按作者姓名查詢”窗口W_SEARCH_AUTHOR“按出版社查詢”窗口W_SEARCH_PUB“按關(guān)鍵詞查詢”窗口W_SEARCH_KEYWORD“按ISBN號(hào)查詢”窗口W_SEARCH_ISBN“按出版日期某個(gè)階段查詢”窗口W_SEARCH_DATE_BETWEN“按出版日期某個(gè)日期查詢“窗口W_SEARCH_DATE_DATE“按出版日期某日期之前查詢”窗口W_SEARCH_DATE_BEFORE“按出版日期某日期之后查詢”窗口W_SEARCH_DATE_AFTER說明由于“按出版日期查詢”使用的是DATE型數(shù)據(jù),所以分開闡述。其中,查詢條件為CHAR型40圖59說明屬于此類的查詢包括“按圖書標(biāo)題查詢“、“按作者姓名查詢”、“按出版社查詢”“按關(guān)鍵詞查詢”、“按ISBN號(hào)查詢”。由于“按圖書標(biāo)題查詢“窗口W_SEARCH_TILE為模板窗口,其他窗口都是繼承得來,所以僅分析這個(gè)窗口。功能介紹根據(jù)查詢條件,檢索出符合條件的數(shù)據(jù)操作方法輸入檢索條件,點(diǎn)擊“查詢”按鈕進(jìn)行查詢,點(diǎn)擊“重置”按鈕重新輸入查詢條件。代碼分析OPEN事件DW_1SETRANSOBJECTSQLCATHISWIDTH361THISHEIGHT1096“查詢”按鈕STRINGLS_TILELS_TILETRIMSLE_FINDTEXTIFSLE_FINDTEXT“THENMESAGEBOX“提示信息“,請(qǐng)輸入“MIDST_1TEXT,4ELSELS_TILE“LS_TILE“/設(shè)置檢索條件DW_1RETRIEVLS_TILEENDIFSLE_FINDSETFOCUS“重置”按鈕SLE_FINDTEXT“SLE_FINDSETFOCUS數(shù)據(jù)窗口的數(shù)據(jù)源SQL語(yǔ)句SELCT“BOKINFO“BOKONLOAN“,41“BOKINFO“NUMBER“,“BOKINFO“TILE“,“BOKINFO“AUTHOR“,“BOKINFO“PUB“,“BOKINFO“PUBLISHDATE“,“BOKINFO“ISBN“,“BOKINFO“KEYWORDS“,“BOKINFO“ABSTRACT“FROM“BOKINFO“WHER“BOKINFO“TILE“LIKEQUERY/QUERY為查詢變量查詢條件為DATE型圖510說明屬于此類查詢的查詢包括“按出版日期某個(gè)階段查詢”、“按出版日期某個(gè)日期查詢“、“按出版日期某日期之前查詢”、“按出版日期某日期之后查詢”。我們將對(duì)“按出版日期某個(gè)階段查詢”窗口W_SEARCH_DATE_BETWEEN進(jìn)行分析。功能介紹根據(jù)查詢條件,檢索出符合條件的數(shù)據(jù)操作方法輸入檢索條件,點(diǎn)擊“查詢”按鈕進(jìn)行查詢,點(diǎn)擊“重置”按鈕重新輸入查詢條件。代碼分析42OPEN事件類同“按圖書標(biāo)題查詢“窗口“查詢”按鈕DATEID_START,ID_ENDIFISDATEEM_DATETEXTTHENIFISDATEEM_DATE2TEXTTHENID_STARTDATEEM_DATETEXTID_ENDDATEEM_DATE2TEXTELSEMESSAGEBOX“數(shù)據(jù)錯(cuò)誤“,“請(qǐng)重新輸入結(jié)束日期“EM_DATE2SETFOCUSRETURNENDIFELSEMESSAGEBOX“數(shù)據(jù)錯(cuò)誤“,“請(qǐng)重新輸入開始日期“EM_DATESETFOCUSRETURNENDIFIFID_STARTID_ENDTHENMESSAGEBOX“數(shù)據(jù)錯(cuò)誤“,“開始日期不能大于結(jié)束日期“ELSEDW_1RETRIEVEID_START,ID_ENDENDIFEM_DATESETFOCUS“重置”按鈕EM_DATETEXT“EM_DATE2TEXT“EM_DATESETFOCUS43數(shù)據(jù)窗口的數(shù)據(jù)源SQL語(yǔ)句SELECT“BOOKINFO“BOOKONLOAN“,“BOOKINFO“NUMBER“,“BOOKINFO“TITLE“,“BOOKINFO“AUTHOR“,“BOOKINFO“PUB“,“BOOKINFO“PUBLISHDATE“,“BOOKINFO“ISBN“,“BOOKINFO“KEYWORDS“,“BOOKINFO“ABSTRACT“FROM“BOOKINFO“WHERE“BOOKINFO“PUBLISHDATE“BETWEENDATE1ANDDATE2/DATE1與DATE2為查詢變量(1)統(tǒng)計(jì)窗口各類圖書比例窗口W_COUNT_BOOKTYPE、庫(kù)存/借出比例窗口W_COUNT_LOAN說明由于這兩個(gè)窗口大同小異,所以僅對(duì)W_COUNT_BOKTYPE進(jìn)行說明。圖514功能介紹統(tǒng)計(jì)現(xiàn)有各類圖書比例,并以餅型圖顯示出來。數(shù)據(jù)窗口的數(shù)據(jù)源SQL語(yǔ)句SELECT“BOOKINFO“BOOKONLOAN“,COUNTFROM“BOOKINFO“GROUPBY“BOOKINFO“BOOKONLOAN“(12)用戶管理窗口W_PEOPLE圖512功能介紹添加、刪除、修改用戶信息。操作方法A添加用戶點(diǎn)擊“添加”按鈕,輸入用戶名、密碼、選擇等級(jí),點(diǎn)擊“保存”B刪除用戶點(diǎn)擊欲刪除的用戶,點(diǎn)擊“刪除”按鈕C修改用戶修改用戶信息,點(diǎn)擊“保存”按紐代碼分析OPEN事件類同“新書入庫(kù)窗口W_NEWBOK”數(shù)據(jù)窗口ROWFOCUSCHANGED事件THISELCTROW0,FALSE/高亮顯示當(dāng)前選中的行THISELCTROWCURENTROW,TRUE數(shù)據(jù)窗口CLICKED事件CB_DELENABLEDTRUE/點(diǎn)擊數(shù)據(jù)窗口后使“刪除”按鈕可用“增加”按紐類同“新書入庫(kù)窗口W_NEWBOK”45“保存”按紐類同“新書入庫(kù)窗口W_NEWBOK”“刪除”按紐類同“舊書銷毀窗口W_DELBOK”(13)圖書信息設(shè)置圖書分類設(shè)置窗口W_BOKCLAS、出版社信息窗口W_PUBINFO圖513功能介紹設(shè)置圖書分類信息與出版社信息,同時(shí)可以對(duì)出版社信息進(jìn)行查詢說明設(shè)置“圖書分類信息”是為了今后統(tǒng)計(jì)現(xiàn)有圖書類型比例,設(shè)置“出版社信息”是為了今后查詢出版社信息,同時(shí)在“新書入庫(kù)”時(shí)方便相應(yīng)項(xiàng)目的輸入(下拉DATAWINDOW)代碼分析略46(14)借閱規(guī)則設(shè)置窗口W_REGULAR圖514功能介紹設(shè)置罰金規(guī)則操作方法填寫“免費(fèi)使用天數(shù)”、“罰金費(fèi)率”,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)踐教學(xué)與實(shí)驗(yàn)課程計(jì)劃
- 社團(tuán)工作的組織和管理計(jì)劃
- 客戶細(xì)分的年度研究計(jì)劃
- 數(shù)字化轉(zhuǎn)型的行動(dòng)指南計(jì)劃
- 音樂會(huì)中音響系統(tǒng)的音質(zhì)優(yōu)化策略
- 跨境電商平臺(tái)的數(shù)據(jù)分析與商業(yè)智能應(yīng)用
- 黑龍江2025年02月黑龍江省伊春市事業(yè)單位上半年公開招考335名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 跨境投資教育資源的全球化配置
- 初中語(yǔ)文文摘職場(chǎng)難于判斷
- 甘肅2024年12月甘肅省慶陽(yáng)市西峰區(qū)事業(yè)單位2025年引進(jìn)136名高層次和急需緊缺人才筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 四年級(jí)上冊(cè)道德與法治學(xué)科質(zhì)量分析報(bào)告
- 湖北省武漢市漢陽(yáng)區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末數(shù)學(xué)試題
- 混合痔疾病查房課件
- DL-T5394-2021電力工程地下金屬構(gòu)筑物防腐技術(shù)導(dǎo)則
- 2024年武漢市東西湖自來水公司招聘筆試參考題庫(kù)附帶答案詳解
- 2024年南京旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案
- 湖北省武漢市2024年七年級(jí)下學(xué)期期末數(shù)學(xué)試題附答案
- 遼寧省撫順市順城區(qū)2023-2024學(xué)年下學(xué)期八年級(jí)物理期中考試題
- 靜脈藥物調(diào)配中心PIVAS靜脈用藥配置中心靜脈藥物配置中心靜脈中心TPN相關(guān)知識(shí)
- 資助政策調(diào)查研究報(bào)告
- 跨學(xué)科學(xué)習(xí):一種基于學(xué)科的設(shè)計(jì)、實(shí)施與評(píng)價(jià)
評(píng)論
0/150
提交評(píng)論