




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上邯鄲學(xué)院成人高等教育本科論文(設(shè)計)題 目 基于C/S的圖書管理系統(tǒng)的設(shè)計與開發(fā)學(xué) 生 指導(dǎo)教師 講師年 級 2010級專 業(yè) 計算機科學(xué)與技術(shù)二級學(xué)院 信息工程學(xué)院邯鄲學(xué)院信息工程學(xué)院2012年10月鄭重聲明 本人的畢業(yè)論文(設(shè)計)是在指導(dǎo)教師李慧老師的指導(dǎo)下獨立撰寫完成的。如有剽竊、抄襲、造假等違反學(xué)術(shù)道德、學(xué)術(shù)規(guī)范和侵權(quán)的行為,本人愿意承擔由此產(chǎn)生的各種后果,直至法律責任,并愿意通過網(wǎng)絡(luò)接受公眾的監(jiān)督。特此鄭重聲明。畢業(yè)論文作者(簽名): 年 月 日 專心-專注-專業(yè)摘 要 隨著科學(xué)技術(shù)的不斷提高,在計算機日益成熟的今天,微機管理的優(yōu)越性已被人們深刻地認識到。本
2、文介紹了在PowerBuider環(huán)境下設(shè)計的一個小型圖書管理系統(tǒng)。通過分析傳統(tǒng)的人工管理圖書館的不足,創(chuàng)建了一套行之有效的計算機管理圖書館的方案。文章詳細介紹了圖書管理信息系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、數(shù)據(jù)流程分析、數(shù)據(jù)字典等等;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計;系統(tǒng)實現(xiàn)部分列出了幾個主要的程序框圖,并附帶了一些主要的窗口和程序。 本系統(tǒng)主要是對圖書的增減以及圖書借出歸還的管理,主要包括數(shù)據(jù)插入、刪除、查詢、掛失等功能。圖書管理信息系統(tǒng)能夠有效、準確地完成這些功能,并達到界面友好、使用方便。關(guān)鍵詞 圖書管理 管理信息系統(tǒng) PowerBuilder應(yīng)用Based on C/Ss
3、 library management system design and developmentWu Xuetao Driected by Li NaAbstract With more and more widespread and profound application of information technology in management,the implement of management information system has become mature in technology step by step.Managing information system
4、is a new subject.Enterprise needs existence and development, so enterprise activieies should be organized efficiently and organically,which means tightening up the enterprise management and strengthening effective management of any resource(staff,finance,property,etc.)internal the enterprise,and als
5、o establishing a management information system fitting in with its own characteristics.Thin article introduces the detailed process of exploring a management information system under the environment of PowerBuilder, utilizing “Top-Bottom”overall plan and a strategy according to“Bottom-Top”applicatio
6、n and exploitation.That is to establish a set of effective scheme for library management by computer,through analyzing disadvantages of traditional library management by human resources.This article emphasizes on three sections.The system analysis section of library management information includes f
7、easible analysis,organizing organs analysis,management function analysis,technological process of business analysis,technological process of data analyais,data dictionary, disposal description and the like.The system design section mainly focuses on system function design and data base design.And th
8、e system realization section has provided semeral major program charts,together with the main windows and programs.Key words library management Application MIS PowerBuilder目 錄II基于C/S的圖書管理系統(tǒng)的設(shè)計與開發(fā)1前言圖書管理工作是學(xué)校管理工作的重要組成部分,圖書種類的增加以及學(xué)生借還的管理都給以往手工圖書管理提出了挑戰(zhàn)。以前學(xué)校的圖書管理一直采用手工的方法,這種管理方式存在著許多缺點,如:效率低、工作量大、容易遺漏信
9、息等。隨著計算機技術(shù)的發(fā)展,其強大的功能已為人們深刻認識,所以借此機會為我校的圖書管理設(shè)計一個比較符合我校情況的圖書管理系統(tǒng)。作為計算機應(yīng)用的一部分,使用計算機對圖書進行管理,具有比手工管理無法比擬的優(yōu)點。例如:查詢方便、借還圖書效率提高、存儲量大、壽命長、可靠性高等。這些優(yōu)點能夠大大地提高圖書管理效率和質(zhì)量,減少工作量,是學(xué)校為老師和學(xué)生提供方便的必要條件,也是一個學(xué)校步入正規(guī)的標志。圖書管理工作主要是對圖書的增減以及圖書借出歸還的管理,主要包括數(shù)據(jù)插入、刪除、查詢、掛失等功能。圖書管理信息系統(tǒng)能夠有效、準確地完成這些功能,并達到界面友好、使用方便。所以,開發(fā)一種圖書管理軟件成為很有必要的事
10、情。圖書館管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端的應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立數(shù)據(jù)的一致性和完整性,對于后者則要求應(yīng)用程序功能的完備,易用等的特點。基于上述考慮本系統(tǒng)主要利用PowerBuilder 9.0作前端的應(yīng)用開發(fā)工具 ,利用Sybase SQL Anywhere8.0作為后臺的數(shù)據(jù)庫,利用WINDOWS作為系統(tǒng)平臺開發(fā)的圖書管理系統(tǒng)。2系統(tǒng)分析21 系統(tǒng)初步調(diào)查通過現(xiàn)場觀察、與單位相關(guān)人員面談和查閱相關(guān)文獻資料等方法進行了詳盡而完備的調(diào)查工作,發(fā)現(xiàn)采用手工管理圖書借閱登記效率低、工作量大、容易出錯、信息存儲時間短等問題。而現(xiàn)在計算機的廣
11、泛使用能夠順利替代手工,使管理更為方便、實用。通過調(diào)查得出如下結(jié)論:即本系統(tǒng)的開發(fā)不僅是完全必要得的,而且在技術(shù)上也是完全有可能的。22 系統(tǒng)可行性研究圖書管理信息系統(tǒng)的目標是:按照管理信息系統(tǒng)的原理和方法,采用信息技術(shù)和手段,支持圖書管理工作的過程,使學(xué)校的圖書管理工作系統(tǒng)化、規(guī)范化、自動化,從而達到提高學(xué)校圖書管理效率的目的,提高圖書管理工作的現(xiàn)代化水平。系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)學(xué)校圖書管理的系統(tǒng)化、規(guī)范化和自動化。23 現(xiàn)行系統(tǒng)詳細調(diào)查對現(xiàn)行管理水平進行詳細調(diào)查研究是了解系統(tǒng)需求和進行系統(tǒng)分析與設(shè)計的重要基礎(chǔ)工作,因此要對學(xué)校圖書管理的各項管理工作進行全面、細致而充分的調(diào)查研究。24系統(tǒng)
12、邏輯模型系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型,本系統(tǒng)的邏輯模型主要是以系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)詞典為主要描述工具,在對圖書管理方式和業(yè)務(wù)流程進行認真分析和研究的基礎(chǔ)上,完全從業(yè)務(wù)管理和管理對象出發(fā),按信息系統(tǒng)中應(yīng)有的數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)來勾畫系統(tǒng)的概貌。241 數(shù)據(jù)流圖數(shù)據(jù)流圖是在對系統(tǒng)調(diào)研階段繪制的業(yè)務(wù)流程圖進行分析的基礎(chǔ)上,從系統(tǒng)的科學(xué)性,管理的合理性、實際運行的可行性角度出發(fā),將信息處理功能和彼此之間的聯(lián)系自頂向下、從左到右、逐層分解,從邏輯上精確地描述系統(tǒng)應(yīng)具有的數(shù)據(jù)輸入、數(shù)據(jù)輸出、存儲及數(shù)據(jù)來源和去向(外部項)。家庭住址會員編號姓名班級年級性別會員信息借還圖書用戶登錄用戶切換用戶鎖定用戶 反饋
13、管理中心 借書基本信息還書基本信息 圖2-1圖書管理系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)流圖由4種成分組成:1、外部項(外部實體):外部項在數(shù)據(jù)中表示所描述系統(tǒng)的數(shù)據(jù)來源和去處的各種實體或工作環(huán)節(jié)。這些實體或環(huán)節(jié)向開發(fā)的系統(tǒng)發(fā)出或接收信息。系統(tǒng)開發(fā)不能改變這些外部項本身的結(jié)構(gòu)和固有屬性。2、數(shù)據(jù)加工:又稱數(shù)據(jù)邏輯,描述系統(tǒng)對信息進行處理的邏輯功能。在數(shù)據(jù)流圖上這種邏輯功能由一個或一個以上的輸入數(shù)據(jù)流轉(zhuǎn)換成一個或一個以上輸出數(shù)據(jù)流來表示。3、數(shù)據(jù)存儲:邏輯意義上的數(shù)據(jù)存儲環(huán)節(jié),即系統(tǒng)信息處理功能需要的、不考慮存儲物理介質(zhì)和技術(shù)手段的數(shù)據(jù)存儲環(huán)節(jié)。4、數(shù)據(jù)流:與所描述系統(tǒng)信息處理功能有關(guān)的各類信息的載體,是各加工環(huán)節(jié)
14、進行處理和輸出的數(shù)據(jù)集合。在數(shù)據(jù)流圖中數(shù)據(jù)流用箭線表示,箭頭指處表示數(shù)據(jù)流的輸送處,箭尾連接處表示數(shù)據(jù)流的來源。242 數(shù)據(jù)詞典數(shù)據(jù)詞典是數(shù)據(jù)邏輯模型的重要組成部分。數(shù)據(jù)詞典應(yīng)對數(shù)據(jù)流圖中的數(shù)據(jù)存儲、數(shù)據(jù)流、加工、外部項和數(shù)據(jù)項進行進一步的描述。1、操作員信息。包括的數(shù)據(jù)項有編號、用戶名、密碼。2、會員信息。包括的數(shù)據(jù)項有會員編號、會員姓名、性別、年級、班級、家庭住址、是否鎖定。3、借書還書信息。包括的數(shù)據(jù)項有會員編號、圖書編號、借書日期、還書日期、備注等4、圖書信息。包括的數(shù)據(jù)項有圖書編號、書名、作者、出版社、出版日期、圖書價格。由以上的分析可知該圖書管理系統(tǒng)從技術(shù)、經(jīng)濟、時間都能夠滿足要求
15、,系統(tǒng)開發(fā)切實可行。3系統(tǒng)設(shè)計.1總體設(shè)計總體結(jié)構(gòu)設(shè)計主要包括運行模式選擇、操作系統(tǒng)選擇、數(shù)據(jù)庫管理系統(tǒng)選擇、系統(tǒng)功能結(jié)構(gòu)設(shè)計等。運行模式選擇單機模式。開發(fā)工具選擇PowerBuilder9.0。數(shù)據(jù)庫管理系統(tǒng)(DBMS)選擇PowerBuilder自帶的Sybase SQL Anywhere8.0.11系統(tǒng)功能設(shè)計本系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)圖書管理的簡單化、準確化、效率化。根據(jù)需求分析,圖書管理工作主要是針對借書人的管理和圖書的借、還、查找及庫存管理等。圖書管理系統(tǒng)需要完成的功能主要有:u 增加會員,包括編號、姓名、性別等u 會員卡掛失u 會員卡的打印u 會員信息的輸出u 圖書入庫,包括圖書
16、編號、書名、作者、出版社、定價等u 圖書查詢u 借書u 還書12系統(tǒng)模塊設(shè)計對上述各項功能進行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計的要示,得到如圖所示的系統(tǒng)功能模塊圖: 圖書管理系統(tǒng)系統(tǒng)登錄圖書管理會員管理系統(tǒng)管理系統(tǒng)統(tǒng)護借還圖書圖書庫存查詢詢圖書檢索會員檢索會員明細表更換操作修改密碼添加操作退出系統(tǒng)錄入、注銷掛失、解鎖輸出、打印圖3-1系統(tǒng)模塊設(shè)計圖2 系統(tǒng)總體物理結(jié)構(gòu)從實際出發(fā),本系統(tǒng)最好利用計算機局部網(wǎng)絡(luò)作為系統(tǒng)的基本物理結(jié)構(gòu),這樣有利于以后圖書管理信息系統(tǒng)的開發(fā)。但是,從目前情況來看,由于本系統(tǒng)只涉及圖書管理信息,所以采用單機結(jié)構(gòu)作為本系統(tǒng)的基本物理結(jié)構(gòu)。其基本配置如下:硬盤:80GB以上
17、內(nèi)存:256MB顯示器:SVGA 800×600 打印機: EPSON-1600K(可選其它型號)操作系統(tǒng):Windows2000/XP。軟件環(huán)境:PowerBuilder 9.0數(shù)據(jù)庫管理系統(tǒng)(DBMS)選擇了PowerBuilder自帶的SQL Anywhere 8.03 軟件開發(fā)平臺隨著社會經(jīng)濟的不斷發(fā)展以及計算機技術(shù)的日益完善,人們對各種軟件的需求也不斷提高,這就要求開發(fā)者可以提供功能更強、質(zhì)量更高的軟件產(chǎn)品。為此幫助人們開發(fā)軟件的工具即軟件開發(fā)工具就由此應(yīng)運而生。軟件開發(fā)工具的基本思想是致力于軟件開發(fā)的優(yōu)質(zhì)與高效,是可以對軟件的開發(fā)全過程提供不同程度的支持與幫助。Power
18、Builder就是其中一種應(yīng)用較廣的軟件開發(fā)工具。PowerBuilder(簡稱PB)是美國著名的數(shù)據(jù)庫應(yīng)用開發(fā)工具生產(chǎn)廠商PowerSoft于1991年推出的成功產(chǎn)品。它是完全按照客戶/服務(wù)器(C/S)體系結(jié)構(gòu)研制設(shè)計的,采用面向?qū)ο蠛涂梢暬夹g(shù),提供有圖形化的應(yīng)用開發(fā)環(huán)境,使得用戶使用PowerBuilder可以方便地開發(fā)基于后臺服務(wù)器中的數(shù)據(jù)庫應(yīng)用系統(tǒng)。作為一種優(yōu)秀的開發(fā)工具,PowerBuilder具有以下功能和特點:(1)支持多種環(huán)境與跨平臺開發(fā) PB是專門用來設(shè)計、建立高性能的基于客戶/服務(wù)器(C/S)體系結(jié)構(gòu)的應(yīng)用程序,同時支持分布式計算和Web環(huán)境。另外PB還支持跨平臺的開發(fā)和
19、分布。例如:在Windows下開發(fā)的應(yīng)用程序可以分布到UNIX或其他平臺上運行。開發(fā)人員也可以組成開發(fā)小組,一些人員在Windows下開發(fā),同時另一些人員在UNIX進行另外一部分的開發(fā),并且他們可共享PB應(yīng)用程序中的對象。這樣程序不但有很好的移植性,使用環(huán)境廣,而且同時開發(fā),縮短了開發(fā)時間,節(jié)約了開發(fā)成本。(2)功能強大的編程語言與函數(shù)PowerScript是PB的功能很強的第四代編程語言,用PowerScript語言編寫的程序通常稱為腳本(Script)。腳本往往是由PowerScript命令、函數(shù)和相應(yīng)某一事件所要完成的處理過程的語言所組成。它能使開發(fā)人員很容易地將簡單或復(fù)雜的事物邏輯與應(yīng)
20、用相配合。它有幾百個函數(shù)用以對操作對象、數(shù)字、文本和日期等信息,并且全面支持DDE和全文本I/O。(3)面向?qū)ο蟮木幊淘赑B中創(chuàng)建的每一個菜單或窗口都是一個自含的模塊,稱為對象(Object)。PB應(yīng)用程序基本的構(gòu)建塊是用戶所創(chuàng)建的對象,每個對象都具有一些特定的特性和行為(屬性、事件、功能)。利用面向?qū)ο蟮木幊碳夹g(shù),可使程序具有可重用性、可擴展性和強有力的功能。面向?qū)ο蟮木幊碳夹g(shù)還可以使開發(fā)人員無需精通專用語言即可進行開發(fā)。PB應(yīng)用由一系列對象組成,如窗口、菜單等。而對象又包含若干控件,如命令按鈕等。這些對象和控件都可以在許多應(yīng)用中重復(fù)使用。因此,提高了編程效率和軟件質(zhì)量,又極大地減少了開發(fā)時
21、間。(4)開放的數(shù)據(jù)庫連接系統(tǒng)PB最優(yōu)秀的開放系統(tǒng)功能就是可以訪問任何一個常用的后臺數(shù)據(jù)庫系統(tǒng)。在應(yīng)用程序開發(fā)時,開發(fā)人員不需要了解數(shù)據(jù)庫內(nèi)部的細節(jié),PB提供了一個通用的前端用戶界面,后端數(shù)據(jù)庫的連接由PB來完成。對于大型數(shù)據(jù)庫系統(tǒng),PB通過使用PowerSoft提供的專用接口直接與數(shù)據(jù)庫相連;對于小型數(shù)據(jù)庫系統(tǒng),PB通過使用PowerSoft的ODBC接口與數(shù)據(jù)庫相連。另外,開發(fā)人員還可以利用PB內(nèi)置的高性能數(shù)據(jù)庫引擎Sybase SQL Anywhere,生成獨立應(yīng)用或脫離服務(wù)器在單機環(huán)境下運行。(5)強大的調(diào)試和測試功能由于PB具有強大的編譯能力以及集成調(diào)試和測試功能,因此在開發(fā)時可以利
22、用斷點跟蹤、單步調(diào)試等方法對應(yīng)用程序進行查看、調(diào)試并根據(jù)需要進行程序修改。PB9.0是PowerSoft公司推出的又一版本,它除了繼承PB以上功能與特點外,還對原有性能進行了改進、優(yōu)化與增強,從而使在用PB進行開發(fā)時工作更快、成本更低、質(zhì)量更高、功能更強?;赑B的以上優(yōu)點,故在本系統(tǒng)采用PB9.0作為開發(fā)系統(tǒng)的軟件工具。4系統(tǒng)詳細設(shè)計1 用戶界面設(shè)計用戶運行該系統(tǒng)時,首先出現(xiàn)一個登錄窗口,提示用戶輸入用戶名和密碼,輸入正確進入系統(tǒng)主窗口。在主窗口中主要是通過菜單進行操作,進而打開具體功能的窗口界面。本系統(tǒng)采用了基于菜單、工具按鈕、簡單回答等友好的手段及人機交互方式,使得操作方便,易于掌握。窗
23、口示例見后面的系統(tǒng)實施部分。2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計分為:數(shù)據(jù)庫概念設(shè)計和數(shù)據(jù)庫邏輯設(shè)計21數(shù)據(jù)庫概念模型及ER圖設(shè)計概念模型作為現(xiàn)實世界到機器世界的一個過渡性的中間層次,是對現(xiàn)實世界的抽象和概括。ER圖是描述數(shù)據(jù)實體及其關(guān)系的一種直觀的描述工具,E-R圖的信息借助實體、屬性、聯(lián)系這三個基本概念表達。l 實體。用方框表示,方框內(nèi)為實體的名稱。l 實體的各種屬性。用橢圓表示,橢圓內(nèi)為屬性名稱。使用線段將其和相應(yīng)的實體連接起來。l 實體之間的聯(lián)系。用菱形表示,菱形內(nèi)為聯(lián)系的名稱。在本系統(tǒng)中,我們把會員信息設(shè)為會員實體(見圖4-1), 圖書信息設(shè)為圖書實體(見圖4-2),借書還書信息設(shè)為借書還書實體
24、(見圖4-3),操作員信息設(shè)為操作員實體(見圖4-4),各個實體之間的聯(lián)系(見圖4-5)。會員信息年級會員編號性別姓名鎖定班級家庭住址會員信息圖41 會員實體ER圖出版社作 者出版日期書 名庫 存圖書編號圖書信息圖書定價圖書信息圖42圖書實體ER圖借書還書信息圖書編號會員編號還書日期借書日期備注借書還書信息圖43借書還書實體ER圖操作員信息用戶名編號密碼操作員信息圖44操作員實體ER圖圖書表圖書編號借書還書表會員表借書還書表會員編號圖45 實體之間ER圖22數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計根據(jù)E-R圖到關(guān)系模式的轉(zhuǎn)換規(guī)則,實體分別轉(zhuǎn)換成關(guān)系模式,如下圖(4-1至4-3)。 另外,為了保證系統(tǒng)的安全性,只有合
25、法用戶才能登錄使用系統(tǒng),為方便系統(tǒng)管理員對用戶的管理,需要設(shè)一表來存放合法用戶的用戶名、密碼等信息,如表4-4所示。 表4-1會員表主鍵列標題列 名數(shù)據(jù)類型寬度小數(shù)位數(shù)是否空缺省值P會員編號會員編號Char10No姓名姓名Char10No性別性別Char2No年級年級Char4No班級班級Char4No家庭住址家庭住址Char30No鎖定鎖定Char2No表4-2圖書表主鍵列標題列 名數(shù)據(jù)類型寬度小數(shù)位數(shù)是否空缺省值P圖書編號圖書編號Char10No書名書名Char30No作者作者Char10No出版社出版社Char30No出版日期出版日期DateNo庫存庫存IntegerNo圖書定價圖書定價
26、FloatNo表4-3借書還書表主鍵列名數(shù)據(jù)類型寬度小數(shù)位數(shù)是否空缺省值P圖書編號Char10NoP會員編號Char10No借書日期Date10No 還書日期Date10Yes備注Char20Yes表4-4操作員表主鍵列標題列 名數(shù)據(jù)類型寬度小數(shù)位數(shù)是否空缺省值P編 號編 號Char6No用戶名用戶名Char10No密碼密碼Char15No5系統(tǒng)實施每個PowerBuilder應(yīng)用程序都須有一個、而且只能有一個應(yīng)用程序?qū)ο?,也可以說,應(yīng)用程序?qū)ο蟠砹藨?yīng)用程序,程序從應(yīng)用程序?qū)ο箝_始運行。除了作為應(yīng)用程序的入口這一功能外,應(yīng)用程序?qū)ο筮€定義了應(yīng)用程序的系統(tǒng)級行為,例如,應(yīng)用程序使用哪些應(yīng)用庫(
27、一種PowerBuilder定義的特殊格式的文件)來保存用到的各種對象、對象的默認字體、應(yīng)用程序圖標等。PowerBuilder是面向?qū)ο蟮拈_發(fā)環(huán)境,用它開發(fā)的應(yīng)用程序以對象和事件驅(qū)動為基本特征。作為PowerBuilder的對象之一,應(yīng)用程序?qū)ο笠灿幸唤M事件,當用戶運行應(yīng)用程序時,首先觸發(fā)應(yīng)用程序?qū)ο蟮膐pen事件,在這個事件的事件處理程序中可以設(shè)置應(yīng)用的初始狀態(tài),裝入其對象、連接數(shù)據(jù)庫等。當用戶終止應(yīng)用程序時,應(yīng)用程序?qū)ο蟮腸lose事件被觸發(fā),在這個事件的事件處理程序中完成必要的系統(tǒng)清理工作,例如斷開與數(shù)據(jù)庫的連接,清除用戶自定義對象等。當程序運行過程中發(fā)生嚴重錯誤時,應(yīng)用程序?qū)ο蟮腟y
28、stemError事件被觸發(fā),這時可以報告錯誤類型和性質(zhì),以便及時排除錯誤。由此可見,應(yīng)用程序?qū)ο髮﹂_發(fā)完美的PowerBuilder的應(yīng)用程序至關(guān)重要。語言與函數(shù)用PowerScript語言編寫的程序通常稱為腳本(Script)。腳本是由PowerScriptT命令、函數(shù)和相應(yīng)某一事件所要完成的處理過程的語句所組成。它能使開發(fā)人員很容易地將簡單工作復(fù)雜的事務(wù)邏輯與應(yīng)用相匹配。它有幾百個函數(shù)用于操作對象、數(shù)字、文字和日期等信息并全面支持DDE和全文本的I/O。例如為某個按鈕上的Clicked事件編寫的腳本可能進行的處理是從數(shù)據(jù)庫中檢索和顯示數(shù)據(jù)。事件本身也可以觸發(fā)其它事件,例如當一個按鈕上的C
29、licked事件要打開一個窗口時就觸發(fā)了一個窗口上的Open事件。此外,用戶還可以定義自己的函數(shù)在應(yīng)用程序中來執(zhí)行某種特定的處理過程。外部函數(shù)可以在PowerBuilder內(nèi)說明和訪問,就如同內(nèi)置的PowerBuilder的應(yīng)用函數(shù)一樣。面向?qū)ο蟮木幊蘌owerBuilder應(yīng)用由一系列對象組成,包括有函數(shù)、菜單、結(jié)構(gòu)和數(shù)據(jù)窗口、用戶對象、用戶事件等,對象中又包含若干控件如命令按鈕、單行編輯器等這些對象和控件都可在許多應(yīng)用中重復(fù)使用。1建立應(yīng)用對象建立一個為book的應(yīng)用對象,在其Open事件中加入如下腳本:/ 設(shè)置數(shù)據(jù)庫連接參數(shù)SQLCA.DBMS = "ODBC"SQL
30、CA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=booksys;UID=dba;PWD=sql'"/連接數(shù)據(jù)庫connect;/打開啟動窗口open(w_strat)sleep(3)/打開登陸窗口open(login)在應(yīng)用對象的Close事件中加入如下腳本/斷開數(shù)據(jù)庫連接DISCONNECT USING SQLCA;2登錄窗口在登錄按鈕的Clicked事件中加入如下腳本:/定義兩個變量string pass_word,usename/檢索用戶名和密碼記錄 SELECT 操作員表.用戶名, 操作
31、員表.密碼 INTO :usename, :pass_word FROM 操作員表 WHERE 操作員表.用戶名 = :sle_1.text ;/判斷用戶輸入的用戶名是否正確if sle_1.text="" or sle_2.text="" thenmessagebox("錯誤!","用戶名或密碼不能為空!")disconnect; /斷開數(shù)據(jù)庫連接elseif usename=sle_1.text and pass_word=sle_2.text thenopen(index)/打開圖書管理系統(tǒng)主界面close(
32、parent)/關(guān)閉登錄窗口elsemessagebox("錯誤!","用戶名或密碼錯誤,請重新輸入!")disconnect; /斷開數(shù)據(jù)庫連接end ifend if在取消按鈕Clicked事件中加入如下腳本:close(parent)/關(guān)閉登錄窗口圖5-1圖書管理系統(tǒng)登錄窗口3創(chuàng)建主窗口1創(chuàng)建MDI主窗口該窗口的名稱為“我的圖書管理系統(tǒng)”類型為mdi。有一個菜單與之相連接。窗口保存為index 。2設(shè)置主窗口菜單在菜單畫面中設(shè)計應(yīng)用程序主窗口所連接的菜單mainmenu,該菜單的結(jié)構(gòu)如下圖所示。圖5-2圖書管理系統(tǒng)主窗口運行時可以通過單擊主窗口左上
33、方的下拉菜單來調(diào)用不同功能的模塊,本程序的菜單共設(shè)置5個主菜單,13個子菜單項目。還可以通過菜單欄下的工具欄圖標進行系統(tǒng)的操作。在菜單項的clicked事件中完成的操作就是打開某個固定窗口。因此在這里以一個為例介紹菜單項clicked事件的代碼,其它的類似。在“借還圖書”菜單項的clicked事件中加入如下代碼:open(jiehuanbook)用于打開“借還圖書”窗口。4借還圖書窗口在借還圖書窗口jiehuanbook中主要完成圖書的借閱和歸還操作。首先,建立三個數(shù)據(jù)窗口huiyuan、jiehuanbook、d_tushu,其數(shù)據(jù)源分別為會員表、借書還書表和圖書表。其次,在窗口中添加三個數(shù)
34、據(jù)控件,并將其分別與數(shù)據(jù)窗口對象huiyuan、jiehuanbook、d_tushu相關(guān)聯(lián);兩個單行編輯框(用來輸入會員編號、圖書編號);兩個靜態(tài)文本邊框(用來提示輸入會員編號和圖書編號);四個按鈕(用來實現(xiàn)借書、還書、顯示信息和關(guān)閉)。圖5-3圖書管理系統(tǒng)借還圖書窗口在借還圖書窗口的借書按鈕的clicked事件中加入如下代碼:/顯示特定會員和圖書的借閱記錄dw_1.settransobject(sqlca)dw_1.setfilter("會員編號='"+trim(sle_1.text)+"'")dw_1.retrieve()dw_2.
35、settransobject(sqlca)dw_2.setfilter("會員編號='"+trim(sle_1.text)+"' and 圖書編號='"+trim(sle_2.text)+"'")dw_2.retrieve()dw_3.settransobject(sqlca)dw_3.setfilter("圖書編號='"+trim(sle_2.text)+"'" )dw_3.retrieve()/得到記錄的總行書int m,n,i/得到借書記錄總
36、行數(shù)和圖書當前行號 if dw_1.retrieve()=1 and dw_3.retrieve()=1 theni=dw_1.getrow() m=dw_2.rowcount() n=dw_3.getrow()if dw_3.object.庫存n>0 and dw_1.object.鎖定i="否" then /插入借書記錄 dw_2.insertrow(m+1) dw_2.scrolltorow(m+1) dw_2.object.會員編號m+1=sle_1.text dw_2.object.圖書編號m+1=sle_2.text dw_2.object.借書日期m+1
37、= string(today() dw_2.object.備注m+1= "未歸還" /庫存減1 dw_3.object.庫存n=dw_3.object.庫存n-1 /更新數(shù)據(jù)庫 if dw_2.update()=1 and dw_3.update()=1 then commit; messagebox("成功!","更新數(shù)據(jù)庫成功!") else rollback; messagebox("失敗!","更新數(shù)據(jù)庫失??!") end if else /提示用戶不能借書的原因 messagebox(
38、"錯誤!","庫存不足或您的卡號被鎖定,會員或圖書不存在,無法借閱!",exclamation!,ok!,2)end ifend if在借還圖書窗口的還書按鈕的clicked事件中加入如下代碼:/顯示特定會員和圖書的借閱記錄dw_1.settransobject(sqlca)dw_1.setfilter("會員編號='"+trim(sle_1.text)+"'")dw_1.retrieve()dw_2.settransobject(sqlca)dw_2.setfilter("會員編號=
39、39;"+trim(sle_1.text)+"' and 圖書編號='"+trim(sle_2.text)+"' and 備注='未歸還'")dw_2.retrieve()dw_3.settransobject(sqlca)dw_3.setfilter("圖書編號='"+trim(sle_2.text)+"'" )dw_3.retrieve()/判斷哪一行為還書記錄int nn=dw_2.rowcount()if dw_2.retrieve()=1
40、or n>1 then/找到還書記錄后修改記錄dw_2.object.還書日期n= string(today()dw_2.object.備注n= "已歸還"/將會員還的書庫存加1int mm=dw_3.getrow()dw_3.object.庫存m=dw_3.object.庫存m+1/判斷會員是所借圖書是否超期超期if int(daysafter(date(dw_2.object.借書日期n),date(dw_2.object.還書日期n)>30 thenint qq=dw_1.getrow()dw_1.object.鎖定q="是"messa
41、gebox("超期!","圖書已還,所借圖書已經(jīng)超期,卡號被鎖定!",exclamation!,ok!,2)dw_2.object.備注n= "已歸還,超期"end if/更新數(shù)據(jù)庫if dw_1.update()=1 and dw_2.update()=1 and dw_3.update()=1 then commit;messagebox("成功!","更新數(shù)據(jù)庫成功!")elserollback;messagebox("失??!","更新數(shù)據(jù)庫失敗!"
42、)end ifelsemessagebox("錯誤!","沒有借書記錄!",exclamation!,ok!,2)在借還圖書窗口的顯示信息按鈕的clicked事件中加入如下代碼:/啟動數(shù)據(jù)窗體連接事務(wù)if sle_2.text="" then/顯示該會員的借書記錄dw_1.settransobject(sqlca)dw_1.setfilter("會員編號='"+trim(sle_1.text)+"'")dw_1.retrieve()dw_2.settransobject(sqlc
43、a)dw_2.setfilter("會員編號='"+trim(sle_1.text)+"'")dw_2.retrieve()dw_3.settransobject(sqlca)dw_3.setfilter("圖書編號='"+trim(sle_2.text)+"'" )dw_3.retrieve()else if sle_1.text="" then/顯示該書的借閱記錄dw_1.settransobject(sqlca)dw_1.setfilter("會員
44、編號='"+trim(sle_1.text)+"'")dw_1.retrieve()dw_2.settransobject(sqlca)dw_2.setfilter("圖書編號='"+trim(sle_2.text)+"'")dw_2.retrieve()dw_3.settransobject(sqlca)dw_3.setfilter("圖書編號='"+trim(sle_2.text)+"'" )dw_3.retrieve()else/顯
45、示特定會員和圖書的借閱記錄dw_1.settransobject(sqlca)dw_1.setfilter("會員編號='"+trim(sle_1.text)+"'")dw_1.retrieve()dw_2.settransobject(sqlca)dw_2.setfilter("會員編號='"+trim(sle_1.text)+"' and 圖書編號='"+trim(sle_2.text)+"'")dw_2.retrieve()dw_3.sett
46、ransobject(sqlca)dw_3.setfilter("圖書編號='"+trim(sle_2.text)+"'" )dw_3.retrieve()end ifend if5圖書檢索窗口圖書檢索窗口主要實現(xiàn)查詢數(shù)據(jù)窗口中滿足條件的記錄,可實現(xiàn)精確和模糊查找。圖5-4圖書管理系統(tǒng)查詢窗口在此窗口的檢索信息按鈕的clicked事件中加入如下代碼:dw_1.dataobject="d_tushubiao"dw_1.settransobject(sqlca) /取消所有過濾條件 dw_1.setfilter("
47、;")if rb_1.checked=true then/精確查詢模式程序 choose case ddlb_1.text case "圖書編號" dw_1.setfilter("圖書編號='"+sle_1.text+"'") case "書名" dw_1.setfilter("書名='"+sle_1.text+"'") case "作者" dw_1.setfilter("作者='"+s
48、le_1.text+"'")case "出版社" dw_1.setfilter("出版社='"+sle_1.text+"'")end choose else /模糊查詢模式程序 choose case ddlb_1.text case "圖書編號" dw_1.setfilter("圖書編號 like"+"'%"+sle_1.text+"%'") case "書名" dw_1.s
49、etfilter("書名 like"+"'%"+sle_1.text+"%'") case "作者" dw_1.setfilter("作者 like"+"'%"+sle_1.text+"%'") case "出版社" dw_1.setfilter("出版社 like"+"'%"+sle_1.text+"%'") end choos
50、e end if dw_1.retrieve() /檢索數(shù)據(jù)會員信息查詢與圖書信息查詢類似,不再重復(fù)。另外完成這些功能后繼續(xù)完成用戶管理、圖書庫存查詢、錄入信息、打印等功能的創(chuàng)建,方法與前面兩個窗口類似,這里不詳述。6總 結(jié)用了幾個月的時間完成這成了這次畢業(yè)設(shè)計,設(shè)計完后上機制作、調(diào)試。這里面離不開團隊的合作與幫助,有問題時找同事、同學(xué)請教討論。每解決一個問題就對這個PB理解更深刻了一步,對PB強大的功能就又掌握了一點。也讓我體會到了團隊的力量。本系統(tǒng)實現(xiàn)了對圖書基本信息的登記,查詢及管理,為學(xué)校管理提供了服務(wù)。在開發(fā)過程中,為了提高用戶使用軟件的熱情,并刺激他們的積極性,本著美觀、適用、方便
51、用戶的原則,盡最大努力爭做到安全可靠、操作簡便、界面友好,但是,由于時間倉促和我現(xiàn)有知識的不足其中仍有一些不足之處,還望老師指導(dǎo)。參考文獻1 袁 方 主編 郗亞輝、陳昊 、楊成 編著.數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計理論與實踐教程.(第二版),2005.32 甘仞初 主編信息系統(tǒng)開發(fā)北京:經(jīng)濟科學(xué)出版社,2000.63 丁寶康 主編數(shù)據(jù)庫原理北京:經(jīng)濟科學(xué)出版社,2000.3 4 陳禹、方美琪 主編.軟件開發(fā)工具. 北京:經(jīng)濟出版社,2000.25 何旭洪、余建英 著.PowerBuilder數(shù)據(jù)庫系統(tǒng)開發(fā)實例導(dǎo)航.人民郵電出版社,20046 羅超理、李萬紅 著.管理信息系統(tǒng)原理與應(yīng)用清華大學(xué)出版社,200
52、27 艾德才 著.計算機信息管理基礎(chǔ)中國水利水電出版社,20018 Jeff Robin Management of Information System 機械工業(yè)出版社,20029 薩師煊、王珊 著.數(shù)據(jù)庫系統(tǒng)概論高等教育出版社,200010徐松林、路斌、王冬春 著.PowerBuilder數(shù)據(jù)庫應(yīng)用開發(fā)教程清華大學(xué)出版社,200311 郭興成 著.PowerBuilder教程北京希望電子出版社,200212 王志勇、阮堅、王鵬 著.用PowerBuilder開發(fā)小型數(shù)據(jù)庫人民郵電出版社,2002致 謝本課題在選題及研究過程中得到老師的悉心指導(dǎo)。老師多次詢問研究進程,并為我指點迷津,幫助我開
53、拓研究思路,精心點撥、熱忱鼓勵。李慧老師一絲不茍的作風(fēng),嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,對李慧老師的感激之情是無法用言語表達的。感謝丁老師對我的教育培養(yǎng),感謝他們細心指導(dǎo)我的學(xué)習(xí)與研究,在此,我要向諸位老師深深地鞠上一躬。附錄A在借還圖書窗口的借書按鈕的clicked事件中加入如下代碼:/顯示特定會員和圖書的借閱記錄dw_1.settransobject(sqlca)dw_1.setfilter("會員編號='"+trim(sle_1.text)+"'")dw_1.retrieve()dw_2.settrans
54、object(sqlca)dw_2.setfilter("會員編號='"+trim(sle_1.text)+"' and 圖書編號='"+trim(sle_2.text)+"'")dw_2.retrieve()dw_3.settransobject(sqlca)dw_3.setfilter("圖書編號='"+trim(sle_2.text)+"'" )dw_3.retrieve()/得到記錄的總行書int m,n,i/得到借書記錄總行數(shù)和圖書當前行
55、號 if dw_1.retrieve()=1 and dw_3.retrieve()=1 theni=dw_1.getrow() m=dw_2.rowcount() n=dw_3.getrow()if dw_3.object.庫存n>0 and dw_1.object.鎖定i="否" then /插入借書記錄 dw_2.insertrow(m+1) dw_2.scrolltorow(m+1) dw_2.object.會員編號m+1=sle_1.text dw_2.object.圖書編號m+1=sle_2.text dw_2.object.借書日期m+1= string
56、(today() dw_2.object.備注m+1= "未歸還" /庫存減1 dw_3.object.庫存n=dw_3.object.庫存n-1 /更新數(shù)據(jù)庫 if dw_2.update()=1 and dw_3.update()=1 then commit; messagebox("成功!","更新數(shù)據(jù)庫成功!") else rollback; messagebox("失?。?quot;,"更新數(shù)據(jù)庫失??!") end if else /提示用戶不能借書的原因 messagebox("錯誤!","庫存不足或您的卡號被鎖定,會員或圖書不存在,無法借閱!",exclamation!,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 雨水收集系統(tǒng)怎么做
- 項目管理規(guī)章制度的構(gòu)建與執(zhí)行
- 申報項目可行性分析
- 安全文明施工措施
- 時尚產(chǎn)業(yè)數(shù)字化營銷及產(chǎn)品創(chuàng)新設(shè)計
- 基于大數(shù)據(jù)的金融風(fēng)險管理模型構(gòu)建與應(yīng)用研究
- 畫廊裝修安全責任承諾
- 施工現(xiàn)場臨時用電措施安全方案完整版
- 可以編寫項目可行性研究報告的機構(gòu)
- 三農(nóng)村電商助力農(nóng)民擴大就業(yè)創(chuàng)業(yè)方案
- 蘇教版二年級科學(xué)下冊第10課《認識工具》教案(定稿)
- GB/T 40262-2021金屬鍍膜織物金屬層結(jié)合力的測定膠帶法
- GB/T 3279-2009彈簧鋼熱軋鋼板
- GB/T 16823.3-2010緊固件扭矩-夾緊力試驗
- 應(yīng)用文寫作-第四章公務(wù)文書(請示報告)課件
- Premiere-視頻剪輯操作-課件
- PDCA降低I類切口感染發(fā)生率
- 麻醉藥理學(xué)阿片類鎮(zhèn)痛藥PPT
- 新湘版小學(xué)科學(xué)四年級下冊教案(全冊)
- 食品生產(chǎn)企業(yè)落實主體責任培訓(xùn)
- 宿舍樓消防火災(zāi)應(yīng)急疏散預(yù)案與宿舍消防安全管理制度
評論
0/150
提交評論