powerbuilder圖書管理系統(tǒng)設(shè)計(jì)_第1頁(yè)
powerbuilder圖書管理系統(tǒng)設(shè)計(jì)_第2頁(yè)
powerbuilder圖書管理系統(tǒng)設(shè)計(jì)_第3頁(yè)
powerbuilder圖書管理系統(tǒng)設(shè)計(jì)_第4頁(yè)
powerbuilder圖書管理系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù) 據(jù) 庫(kù) 應(yīng) 用 基 礎(chǔ)作 品 設(shè) 計(jì) 報(bào) 告設(shè) 計(jì) 作 品 題 目: 綜合檢測(cè)技術(shù)實(shí)驗(yàn)平臺(tái) 自動(dòng)化測(cè)量系統(tǒng) 學(xué) 院 名 稱: 電子與信息工程學(xué)院 專 業(yè): 電氣工程及其自動(dòng)化 班 級(jí): 082班 姓 名: 楊仲豪 學(xué) 號(hào) 08401170214指 導(dǎo) 教 師: 應(yīng)宏微 職 稱 講師 完成日期: 2011 年 6 月 10 日 1 引言隨著信息技術(shù)在管理上越來(lái)越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,企業(yè)要生存要發(fā)展,要高效率地把企業(yè)活動(dòng)有機(jī)地組織起來(lái),就必須加強(qiáng)企業(yè)管理,即加強(qiáng)對(duì)企業(yè)內(nèi)部的各種資源(人、財(cái)、物等)的有效管理,建立與自身特

2、點(diǎn)相適應(yīng)的管理信息系統(tǒng)。 本文介紹了在PowerBuider環(huán)境下采用“自上而下地總體規(guī)劃,自下而上地應(yīng)用開發(fā)”的策略開發(fā)一個(gè)管理信息系統(tǒng)的過程。文章詳細(xì)介紹了圖書管理信息系統(tǒng)的系統(tǒng)分析部分,包括系統(tǒng)、借閱和查詢、系統(tǒng)維護(hù)和幫助,分別細(xì)分重新登錄、斷開連接和退出系統(tǒng),借還圖書查詢窗口、圖書查詢窗口、會(huì)員查詢窗口、借書窗口和還書窗口,錄入/注銷圖書、修改密碼、注冊(cè)/注銷會(huì)員卡、打印會(huì)員卡和注冊(cè)用戶,關(guān)于等;系統(tǒng)設(shè)計(jì)部分主要介紹了系統(tǒng)功能設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì);系統(tǒng)實(shí)現(xiàn)部分列出了幾個(gè)主要的程序框圖,并附帶了一些主要的窗口和程序。特點(diǎn):本系統(tǒng)界面友好,操作簡(jiǎn)單,比較實(shí)用。 2 作品設(shè)計(jì)原理2.1 .1數(shù)據(jù)

3、庫(kù)設(shè)計(jì)(1)數(shù)據(jù)庫(kù)設(shè)計(jì)有幾個(gè)范式,一般我們要做到的是第三范式,即數(shù)據(jù)表中沒有冗余字段以及同一個(gè)表中的字段沒有函數(shù)依賴關(guān)系,冗余字段即在一個(gè)表中已經(jīng)保存過的信息,在另一個(gè)表中就不應(yīng)該存在,如果需要的話,可以通過表間的關(guān)聯(lián)來(lái)得到,函數(shù)依賴性就是一個(gè)表中的字段間不應(yīng)該有計(jì)算關(guān)系。數(shù)據(jù)庫(kù)初期設(shè)計(jì)時(shí)一定要謹(jǐn)慎,把所有可能的情況都考慮進(jìn)去,即使當(dāng)時(shí)沒有用到,也要將它留在數(shù)據(jù)庫(kù)中作為備用字段以便將來(lái)擴(kuò)充。 圖書借閱管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面幾個(gè)表格所示。每個(gè)表格表示為數(shù)據(jù)庫(kù)中的一個(gè)表。 表1 圖書表boot_t名稱數(shù)據(jù)類型大小空b_idvarchar20否b_namenvarchar60是aut

4、hervarchar20是publish_companynvarchar60是publish_daydatetime8是isbnvarchar60是pricenumeric9(12,2)是表2 借還圖書記錄表jiehuant名稱數(shù)據(jù)類型大小空m_idvarchar20否b_idvarchar20否jiedatedatetime8是huandatedatetime8是remarknvarchar60是表3 會(huì)員表membert名稱數(shù)據(jù)類型大小空m_idvarchar20否m_namevarchar60是sexvarchar2是birthdaydatetime8是phonevarchar60是ad

5、dressvarchar 50是lockvarchar2是表4 用戶表user_t名稱數(shù)據(jù)類型大小空user_idvarchar50否user_namevarchar50是passwordvarchar50是adminvarchar50是2.1.2 建立表打開企業(yè)管理器,建立名為booksystem的數(shù)據(jù)庫(kù)打開查詢分析器,用sql語(yǔ)句建立表。圖書表包括書名、圖書編號(hào)、作者、出版社、出版日期、isbn、價(jià)格。use booksystemgocreate table bookt(b_id varchar (20) not null unique,b_name nvarchar (60) uniqu

6、e,auther varchar (20) unique,publish_company nvarchar(60)unique,publish_day datetime(8) unique,isbn varchar(60) unique,price numeric(9(12,2)) unique,);gocreate table jiehuant(m_id varchar (20) not null unique,b_id varchar (20) not null unique, jiedate datetime(8) unique, huandate datetime(8) unique,

7、remark nvarchar (60) unique,)gocreate table membert(m_id varchar (20) not null unique, m_name varchar (60) unique, sex int, varchar (2) unique,birthday datetime(8)unique,phone varchar (60) unique,address varchar (50) unique,lock varchar (2) unique,)go;create table 用戶(user_id varchar (50) not null un

8、ique, user_name varchar (50) unique,password varchar (50) unique,admin varchar (50) unique, );go建立表后在與圖書表中填入圖書基本信息,借還記錄表中寫入會(huì)員借閱情況,會(huì)員表中寫入會(huì)員資料,用戶表中添加可以登錄界面的用戶信息,其中包括管理員和會(huì)員兩個(gè)權(quán)限。管理員登入后所顯示的會(huì)員登入后所顯示的2.2 PB界面設(shè)計(jì)2.2.1在 PB界面中建立一個(gè)名為wage的workplace,建立其與數(shù)據(jù)庫(kù)的聯(lián)系并連接服務(wù)器 圖1圖2在PB的“wage”application的open中 / Profile wageS

9、QLCA.DBMS = "MSS Microsoft SQL Server"SQLCA.Database = "wage"SQLCA.ServerName = "PC-201009021624"SQLCA.LogId = "sa"SQLCA.AutoCommit = FalseSQLCA.DBParm = ""connect;open(w_login)2.2.2 PB系統(tǒng)功能設(shè)計(jì)在系統(tǒng)功能分析的基礎(chǔ)上,考慮PowerBuilder程序編制的特點(diǎn),得到如圖所示的系統(tǒng)功能模塊圖: 圖3系統(tǒng)功能系統(tǒng)功

10、能分析:主界面:系統(tǒng)、借閱和查詢、系統(tǒng)維護(hù)和幫助系統(tǒng):重新登錄、斷開連接和退出系統(tǒng)借閱和查詢:借還圖書查詢窗口、圖書查詢窗口、會(huì)員查詢窗口、借書窗口和還書窗口系統(tǒng)維護(hù):錄入/注銷圖書、修改密碼、注冊(cè)/注銷會(huì)員卡、打印會(huì)員卡和注冊(cè)用戶幫助:關(guān)于3作品使用說明書3.1首先附加數(shù)據(jù)庫(kù)SQL Server2000(1) 將文件夾中的擴(kuò)展名為booksystem_Data.MDF和booksystem_Log.LDF的兩個(gè)文件拷貝到SQL Server安裝路徑下Data文件中。(2) 打開SQL Server2000 中“企業(yè)管理器”,然后展開你開本地服務(wù)器,在“數(shù)據(jù)庫(kù)”數(shù)據(jù)項(xiàng)上單擊鼠標(biāo)右鍵,在彈出的快

11、捷菜單中選擇“所有任務(wù)”/“附加數(shù)據(jù)庫(kù)”菜單項(xiàng)中。(3) 將彈出“附加數(shù)據(jù)庫(kù)”對(duì)話框中,在該對(duì)話框中單擊按鈕,選擇所要附加數(shù)據(jù)庫(kù)的booksystem_Data.MDF文件,單擊【確定】按鈕,即可完成附加數(shù)據(jù)庫(kù)的附加操作。3.2系統(tǒng)介紹本系統(tǒng)屬于小型的班級(jí)管理系統(tǒng),可以有效地對(duì)班級(jí)成員進(jìn)行管理,本系統(tǒng)應(yīng)達(dá)到以下目標(biāo):界面美觀大方,信息查詢靈活,方便,數(shù)據(jù)存儲(chǔ)安全可靠。實(shí)現(xiàn)對(duì)錄入/注銷圖書,修改密碼,注冊(cè)/注銷會(huì)員卡,打印會(huì)員卡,會(huì)員、圖書和會(huì)員借閱情況查詢,借書,還書等操作。本系統(tǒng)還具有權(quán)限設(shè)置,會(huì)員可以操作系統(tǒng)、借閱和查詢、幫助,而管理員還可使用系統(tǒng)維護(hù)。3.3操作流程 (2)登入界面 圖4

12、 Login中的登入按鈕的clicked中string user ,pass ,temp1,temp2,temp3user = sle_1.textif len(user) = 0 or isnull(user) = true thenmessagebox("","用戶名不能為空!")returnend ifselect user_id into :temp1 from user_t where user_id = :userusing sqlca;if sqlca.sqlcode <> 0 thenmessagebox("&quo

13、t;,"用戶名不存在!")returnend ifpass = sle_2.textselect password into :temp2 from user_t where user_id = :userusing sqlca;if pass <> temp2 thenmessagebox("","口令錯(cuò)誤!")returnend ifopen(w_mian)select admin into :temp3 from user_t where user_id = :user using sqlca;if temp3 =

14、'admin' thenmain.m_系統(tǒng)維護(hù).enabled=trueend ifclose(parent)(3) 借閱人基本信息登記/修改 圖6 說明:錄入借閱人基本信息后存放在借閱人信息庫(kù)中。lock_or_unlock中注冊(cè)按鈕的clicked中int n/定義一個(gè)整型變量n=dw_1.rowcount()/將數(shù)據(jù)表總行數(shù)賦與ndw_1.insertrow(0)/插入記錄dw_1.scrolltorow(n+1)/轉(zhuǎn)到最后一行記錄注銷 按鈕的clicked中dw_1.deleterow(0)/刪除記錄更新if dw_1.update()=1 thencommit;end

15、 if第一個(gè) 按鈕的clicked中dw_1.scrolltorow(1)/轉(zhuǎn)到第一條記錄上一個(gè)int mm=dw_1.getrow()/取得當(dāng)前記錄號(hào)if m>1 thenm=m -1dw_1.scrolltorow(m)/轉(zhuǎn)到上一條記錄elsemessagebox("提示","這是第一個(gè)記錄!")/彈出提示框end if下一個(gè) 按鈕的clicked中int m,nn=dw_1.rowcount()/取得總行數(shù)m=dw_1.getrow()/取得當(dāng)前行號(hào)if m<n then/比較當(dāng)前行號(hào)與總行數(shù)大小m=m+1dw_1.scrolltoro

16、w(m)/滾到下一行elsemessagebox("提示","這是最后一個(gè)記錄!")/顯示提示框end if最后一個(gè) 按鈕的clicked中int n/定義一個(gè)整型變量n=dw_1.rowcount()/將數(shù)據(jù)表總行數(shù)賦與ndw_1.scrolltorow(n)/轉(zhuǎn)到最后一行記錄關(guān)閉 按鈕的clicked中close(parent)/關(guān)閉窗體(4) 圖書基本信息注入/修改圖5 說明:出版社信息人工錄入后,存放在出版社信息庫(kù)中,便于今后書籍信息的錄入以及出版社信息的查詢。分類信息由圖書館進(jìn)行分類定制,存放在圖書分類信息庫(kù)中, 用于圖書的分類管理。登記新書時(shí)

17、,當(dāng)涉及到出版社和分類的填寫時(shí),只需做相應(yīng)的選擇即可,并存放在圖書信息庫(kù)中。(5) 圖書查詢 圖6說明:輸入查詢條件后,檢索圖書信息庫(kù),并反應(yīng)出查詢結(jié)果chaxun的open中dw_1.settransobject(sqlca)dw_2.settransobject(sqlca)chaxun的搜索作者的clicked中string aurtheraurther = sle_2.textif isnull(aurther) = true or len(aurther) = 0 thenaurther = "%"elseaurther = "%" + aur

18、ther + "%"end ifdw_1.retrieve(aurther)(6)會(huì)員查詢圖7在搜索按鈕的clicked中輸入與chaxun的搜索作者同理chaxun1中dw_1中if row > 0 thenstring s_ids_id = this.getitemstring(row,"m_id")dw_2.retrieve(s_id)end if (7)圖書借閱圖8說明:輸入借閱人編號(hào),通過檢索借閱人信息庫(kù),核實(shí)借閱人身份。輸入圖書編號(hào),通過檢索圖書信息庫(kù),核實(shí)圖書信息。進(jìn)行圖書借出處理后,在圖書借閱庫(kù)中進(jìn)行登記,并將借出圖書的在借標(biāo)志設(shè)為

19、“是”。(8)圖書歸還 圖9huanshu中modified中sle_1string ls_bookid,ls_title,ls_memberid,ls_membernamedate ld_date1,ld_date2int li_daysdec ld_fine,ld_countfineld_date2=today()/獲得當(dāng)前日期ls_bookid=trim(this.text)/獲得"圖書編號(hào)"/根據(jù)"圖書編號(hào)"查詢出"借閱日期SELECT jiedate INTO :ld_date1 FROM jiehuant WHERE b_id=:l

20、s_bookid;)/查詢"圖書名稱"SELECT b_name INTO :ls_title FROM bookt WHERE b_id=:ls_bookid; /查詢"借閱人號(hào)"、"借閱人姓名"SELECT m_id,m_nameINTO :ls_memberid,:ls_membername FROM membertWHERE m_id in (SELECT m_id FROM jiehuant WHERE b_id=:ls_bookid); if sqlca.sqlcode<>0 then messagebox(&

21、quot;系統(tǒng)提示","沒有借閱信息!") sle_1.setfocus() returnelsesle_2.text=ls_titlesle_3.text=ls_memberidsle_4.text=ls_membernameend if圖中的"還書"按鈕的clicked中string ls_bookid,ls_bookonloandate ldt_nowdateldt_nowdate=today()/獲得"當(dāng)前日期"ls_bookid=sle_1.textif ls_bookid="" or isnu

22、ll(ls_bookid) then messagebox("系統(tǒng)提示","請(qǐng)輸入圖書編號(hào)!") sle_1.setfocus() returnelseselect remark into :ls_bookonloanfrom jiehuant where b_id=:ls_bookid;if ls_bookonloan="已還" then messagebox("系統(tǒng)提示","本書已歸還!")else UPDATE jiehuant set huandate=:ldt_nowdate WHER

23、E b_id=:ls_bookid; commit; update jiehuant set remark='已還' where b_id=:ls_bookid; commit;end ifend ifsle_1.setfocus()sle_1.text=""sle_2.text=""sle_3.text=""sle_4.text=""jieshu中sle_1的modified中string ls_memberid,ls_membernamels_memberid=trim(this.text)/根

24、據(jù)"借閱人編號(hào)"查詢出"借閱人姓名"select m_name into :ls_membername from membert where m_id=:ls_memberid;/判斷是否有該"借閱人"if sqlca.sqlcode<>0 then messagebox("系統(tǒng)提示","沒有此借閱人信息!") sle_1.setfocus()/"借閱人編號(hào)"輸入框獲得焦點(diǎn) returnelse sle_2.setfocus()/"圖書編號(hào)"輸

25、入框獲得焦點(diǎn) sle_3.text=ls_membername/顯示""借閱人姓名end if中sle_2的modified中string ls_bookid,ls_titlels_bookid=trim(this.text)select b_name into :ls_title from bookt where b_id=:ls_bookid;if sqlca.sqlcode<>0 then messagebox("系統(tǒng)提示","沒有此圖書信息!") sle_2.setfocus() returnelse sle_4.

26、text=ls_titleend if圖中借書按鈕的clicked中string ls_bookid,ls_memberid,ls_remarkdate ldt_nowdateldt_nowdate=today()/獲得"當(dāng)前日期"ls_bookid=trim(sle_2.text)/獲得"借閱人號(hào)"ls_memberid=trim(sle_1.text)/獲得"圖書編號(hào)"/強(qiáng)制輸入"借閱人號(hào)"與"圖書編號(hào)"if ls_memberid="" or isnull(ls_mem

27、berid) then messagebox("系統(tǒng)提示","請(qǐng)輸入借閱人編號(hào)!") sle_1.setfocus() returnend ifif ls_bookid="" or isnull(ls_bookid) then messagebox("系統(tǒng)提示","請(qǐng)輸入圖書編號(hào)!") sle_2.setfocus() returnend if/根據(jù)"圖書編號(hào)"查詢圖書是否借出SELECT remark INTO:ls_remark FROM jiehuant WHERE b

28、_id=:ls_bookid;if ls_remark="未還" then messagebox("系統(tǒng)提示","本書已經(jīng)外借!") sle_2.setfocus() returnelse/添加圖書借閱記錄INSERT INTO jiehuant (b_id,m_id,jiedate)VALUES (:ls_bookid,:ls_memberid,:ldt_nowdate);commit;/設(shè)置該圖書為"借出"狀態(tài)UPDATE jiehuant set remark='未還' WHERE b_id=

29、:ls_bookid;commit; end if/"借閱人號(hào)"得到焦點(diǎn),所有輸入框清空sle_1.setfocus()sle_2.text=""sle_4.text=""sle_1.text=""sle_3.text=""(9)借還圖書記錄情況 圖10與會(huì)員查詢相似。(10)密碼修改圖11password中clicked中string user_idint retselect user_id into :user_id from user_t where password=:sle_1.tex

30、tusing sqlca;if sqlca.sqlcode=0 thenif sle_2.text=sle_3.text thenupdate user_t set password=:sle_2.text where user_id=:user_id;commit using sqlca;close(parent)returnelse ret=messagebox("提示","新密碼有誤!",question!,yesno!,2)if ret = 1 then sle_1.text="" sle_2.text=""

31、; sle_3.text=""else close(parent) return end if end if else ret=messagebox("提示","舊密碼有誤!",question!,yesno!,2) if ret = 1 then sle_1.text="" sle_2.text=""sle_3.text="" elseclose(parent) return end if end if(11)注冊(cè)用戶圖12注冊(cè)用戶的確定clicked中string ls_id,ls_user,ls_password,ls_admin,ls_temp,ls_temp2ls_id=sle_1.textls_user=sle_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論