freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計-基于pb的圖書管理系統(tǒng)—論文(編輯修改稿)

2025-01-06 18:07 本頁面
 

【文章內(nèi)容簡介】 義成 CHAR(1)字段可以存儲多種可能的狀態(tài),在最初設計時,可能我們沒有考慮到的一些情況,在程序后來的開發(fā)中,可以通過設計標志字段為不同的 值來解決,這樣就避免了修改數(shù)據(jù)庫結構。 數(shù)據(jù)庫初期設計時一定要謹慎,把所有可能的情況都考慮進去,即使當時沒有用到,也要將它留在數(shù)據(jù)庫中作為備用字段以便將來擴充。 程序一旦開始編碼,就應該盡量避免再修改數(shù)據(jù)庫。因為如果數(shù)據(jù)庫結構一旦改變, 所有與修改的數(shù)據(jù)表相關的業(yè)務都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個惡性循環(huán)。錯誤越改越多,越改越亂,最終導致程序的失敗。PB 的數(shù)據(jù)窗口與其他語言的數(shù)據(jù)控件不一樣,它的很多東西是預編譯的。即使你一個模塊已經(jīng)調(diào)試無誤,但只要數(shù)據(jù)庫結構改動。相應的模塊就一定要重新修改,否則一定會出問題。 圖書借閱管 理系統(tǒng)數(shù)據(jù)庫中各個表的設計結果如下面幾個表格所示。每個表格表示為數(shù)據(jù)庫中的一個表。 借閱人基本信息表 memberinfo 說明:記錄借閱人的基本情況, memberid設為主鍵、索引。 表 列名 數(shù)據(jù)類型 長度 可否為空 注釋 Memberid Char 10 Not Null 借閱人編號 Membername Char 10 Null 借閱人姓名 17 Id varchar 20 Null 身份證號 Add Char 50 Null 聯(lián)系地址 Phone Char 20 Null 聯(lián)系電話 Mobile Char 20 Null 移動電話 用戶基本信息表 people 說明:記錄系統(tǒng)用戶的用戶名、密碼與權限, name設為主鍵。 表 列名 數(shù)據(jù)類型 長度 可否為空 注釋 name Char 10 Not Null 用戶名 password Char 10 Not Null 密碼 level char 1 Not Null 權限 圖書基本信息表 bookinfo 說明:記錄圖書基本信息, bookid設為主鍵、索引。 表 列名 數(shù)據(jù)類型 長度 可否為空 注釋 Bookid Char 10 Not null 圖書編號 Isbn Char 30 Null 圖書 ISBN Classname Char 20 Null 圖書類型 Title Char 40 Null 圖書名稱 publishdate date Null 出版日期 author Char 20 Null 作者 words int Null 字數(shù)(千字) pub Char 30 Null 出版社 price numeric Null 價格 disk Char 1 Null 附帶光盤 keyword Char 30 Null 關鍵詞 number int Null 存放代碼 Abstract varchar 100 Null 摘要 bookonloan Char 1 Null 圖書在借標志 18 (Y在借 N未借 ) 出版社基本信息表 publishinfo 說 明:記錄出版社信息, pubid設為主鍵。 表 列名 數(shù)據(jù)類型 長度 可否為空 注釋 Pubid char 4 Not Null 出版社編號 Pub char 30 Null 出版社名稱 Add char 50 Null 聯(lián)系地址 Zip char 6 Null 郵政編碼 Tel char 16 Null 聯(lián)系電話 Fax char 16 Null 傳真 char 16 Null 網(wǎng)址 分類信息表 bookclass 說明:記錄 定制的分類情況, classid設為主鍵。 表 列名 數(shù)據(jù)類型 長度 可否為空 注釋 Classid Char 2 Not Null 分類編號 Classname Char 20 Null 分類名稱 Number int Null 數(shù)目 借閱情況信息表 loan 說明:進行借閱的登記, loanid設為主鍵、自動增長。 表 列名 數(shù)據(jù)類型 長度 可否為空 注釋 Loanid Int Not Null 借閱 序號 Bookid Char 10 Not Null 圖書編號 memberid Char 10 Not Null 借閱人編號 Loandate date Null 借閱日期 規(guī)則信息表 regular 說明:記錄設置的借閱規(guī)則, days設為主鍵。 表 19 列名 數(shù)據(jù)類型 長度 可否為空 注釋 Days Int 4 Not Null 免費借閱天數(shù) Fine Dec Null 罰金標準 Flag Char 1 Null 規(guī)則開關 ( 1)規(guī)劃有效的索引 ,包括主關鍵字和外部關鍵字所在的列。 。 。索引需要一定硬盤空間和時間來維護。具有較高數(shù)據(jù)插入操作頻率的數(shù)據(jù)庫最好不要索引。有較高讀操作頻率的數(shù)據(jù)庫應該有更多的索引。 。在可能的情況下,使用較小的數(shù)據(jù)類型,例如用 varchar 替代 char。 。在為數(shù)據(jù)檢索優(yōu)化表時,簇索引必須支持數(shù)據(jù)的分組索引。為簇關鍵字選擇列或列組 ,簇關鍵字以經(jīng)常需要的順序排序數(shù)據(jù)或以必須被一起訪問的記錄而分組記錄。 。具有高選擇性的列是索引的最好候選列。具有高密度的列是索引糟糕的候選列。 ( 2)使用約束實現(xiàn)數(shù)據(jù)的完整性 PRIMARY KEY 約束在表中定義了主關鍵字,它是行唯一的標識符,它可以強制實體完整性。在使用 PRIMARY KEY 約束時考慮以下事實: a. 每個表只能有一個 PRIMARY KEY 約束。 b. 鍵入的值必須是唯一的。 c. 不允許有空值。 d. PRIMARY KEY 約束在指定的列創(chuàng)建唯一的索引,可以指定簇索引和非簇索 引(如果 非簇索引先前并不存在,簇索引是默認的)。 UNIQUE 約束指定,在一列中的兩行不能有相同的值。該約束使用唯一的索引來強制實體的完整性。在已有一個主關鍵字時 UNIQUE 約束很有用,例如雇員號,但是必須保證其他標識符(例如,雇員駕駛證號)也是唯一的。 20 在使用 UNIQUE 約束時,考慮以下事實; a. 允許有空值。 b. 在一個表中可以設置多個 UNIQUE 約束。 c. 可以將 UNIQUE 約束運用于具有唯一值的單列或多列,但不能用于表的主關鍵字。 d. 通過在指定的列或列組中創(chuàng)建唯一的索引,可以使 UNIQUE 索引得到強制 五 圖書管理系統(tǒng)的具體實現(xiàn) 1 PowerBuilder 開發(fā)工具簡介 PowerBuilder 是目前開發(fā) Client/Server 結構的應用系統(tǒng)的主要工具之一。 在繼承與發(fā)展以前版本優(yōu)秀功能的基礎上,為適應網(wǎng)絡應用程序的開發(fā)要求集成了 Enterprise Application Studio中 PowerBuilder以及 Power Site 的功能,在傳統(tǒng)數(shù)據(jù)庫開發(fā)的基礎上,將 Web 應用更好地集成到 PowerBuilder 中。 PowerBuilder全面支持面向?qū)ο?編程。是功能強大并易于使用的第 4代編程語言 (4GL),它內(nèi)置了包括數(shù)據(jù)窗口在內(nèi)的多種對象類,可以方便地訪問數(shù)據(jù)庫。相對于其他應用工具, PowerBuilder具有工作效率高、成本低、質(zhì)量高、功能強的特點。 21 2 Powerbuilder 8 應用程序開發(fā)的基本步驟 我們要開發(fā)應用程序時,首先要對它進行分析。無論哪種、哪方面的應用程序,都要先建立一個應用對象。下面我們介紹以下 PowerBuilder 8 應用程序開發(fā)的基本步驟: ( 1)首先要建立應用對象。 ( 2)創(chuàng)建窗口。在窗口里放置各種控件和編寫事件響應的腳 本。 ( 3)創(chuàng)建菜單。窗口里的菜單可包括菜單條,下拉式菜單,級聯(lián)菜單和彈出式菜單為菜單編寫事件響應的腳本。 ( 4)創(chuàng)建用戶對象。如果想要重復使用某個控件的功能,可以把窗口上經(jīng)常放置的控件定義為用戶對象。 ( 5)創(chuàng)建數(shù)據(jù)窗口。數(shù)據(jù)窗口可以檢索數(shù)據(jù)庫中的數(shù)據(jù),可以建立各種報或統(tǒng)計表,可以修改數(shù)據(jù)庫。 ( 6)創(chuàng)建函數(shù)、結構、事件。為了能夠更好地支持腳本,編寫自定義的函數(shù),定義結構類型變量,也可以為對象和控件定義自己的事件。 ( 7)運行與調(diào)試??梢栽陂_發(fā)環(huán)境中隨時運行應用程序,發(fā)現(xiàn)錯誤后,可以用調(diào)試工具進行調(diào)試。 ( 8)當應用程序開發(fā)完畢后,可以把它編譯成可執(zhí)行的文件,讓用戶比較容易地建立應用系統(tǒng)的運行環(huán)境。 3 編碼規(guī)范 為了減少在軟件開發(fā)過程中的錯誤,在軟件開發(fā)過程中應該遵守一定的標準。 給對象命名要有一定的規(guī)范,部件名稱可以達到 40 個字符,窗口的命名:W_功能代碼 _功能描述。數(shù)據(jù)窗口的命名: DW_功能代碼 _功能描述。菜單命名:M_功能代碼 _功能描述。 標識符命名時,應該使標識符有一定的字面含義,有助于程序的調(diào)試和腳本的可讀性的提高。本系統(tǒng)中使用的命名規(guī)范為:變量作用域 +變量類型 +” _” +具有一定字面含義 的名稱。例如: li_selectrow 反映出的含義: ”l” 代表是本地變量,是 local 的縮寫, ” i” 代表是 integer 類型的變量, selectrow 表示 22 該變量是用來記錄一個行號的計數(shù)器。 4 創(chuàng)建祖先窗口和全局函數(shù) 為充分利用 PB 的面向?qū)ο蟮奶匦浴3绦蜷_發(fā)時一般創(chuàng)建幾個模板窗口。將功能窗口上的某些常用功能封裝在模板窗口中。然后將這些模板窗口作為祖先窗口。所有的子孫窗口都可以通過繼承的方法來生成。這樣就減少了代碼的書寫量。使得整個程序界面保持整齊。當修改祖先窗口時,所有的子孫窗口都會自動修改。所以,祖先窗口 的確定要十分謹慎。 全局函數(shù)與局部函數(shù)的作用類似。唯一不同的是全局函數(shù)的作用域是整個程序周期。不論你在任何一個模塊的代碼中都可以調(diào)用它。所以我們可以把某些常用功能寫成全局函數(shù)。在程序的其他地方反復調(diào)用。 函數(shù) level(character lev) 功能介紹:通過傳入的 lev 值,將某些菜單項設為“非使能”,以限制某些功能的使用。 Lev 值即不同職責的權限(系統(tǒng)管理 圖書管理 借閱人管理 借閱操作員 4),從 people 表中的 level 字段中讀取。 代碼分析: choose case lev case 1 case 2 .enabled=false .enabled=false .m_用戶管理 .enabled=false .m_借閱規(guī)則設置 .enabled=false .m_圖書信息設置 .enabled=false case 3 .enabled=false .enabled=false 23 .enabled=false .enabled=false .m_用戶管理 .enabled=false .m_借閱規(guī)則設置 .enabled=false .m_圖書信息設置 .enabled=false case 4 .enabled=false .enabled=false .m_用戶管理 .enabled=false .m_借閱規(guī)則設置 .enabled=false .m_圖書信息設置 .enabled=false end choose 函數(shù) countday countday (date date1,date date2) 功能介紹:通過傳入的 date1(起始日期)值與 date2(結束日期)值,計算出中間相差的天數(shù),返回值為 integer 型。 代碼分析: int day day=(integer(year(date2)) integer(year(date1)))*365 +amp。 (integer(month(date2)) integer(month(date1)))*30 +amp。 (integer(day(date2)) integer(day(date1)))*1 return day 函數(shù) countfine countfine (integer days, decimal fine, integer countday) 功能介紹:根據(jù)圖書免費借閱 天數(shù) days、罰金費率 fine,以及已借閱的天數(shù)(由 24 countday 函數(shù)算出),計算出費用,返回值為 decimal 型。 代碼分析: dec countfine if countday=0 and countday=days then//免
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1