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

正文內(nèi)容

pb圖書管理系統(tǒng)論文模版(編輯修改稿)

2025-06-19 01:00 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 網(wǎng)址 分類信息表 bookclass 說(shuō)明:記錄定制的分 類情況, classid 設(shè)為主鍵。 表 列名 數(shù)據(jù)類型 長(zhǎng)度 可否為空 注釋 Classid Char 2 Not Null 分類編號(hào) Classname Char 20 Null 分類名稱 Number int Null 數(shù)目 借閱情 況信息表 loan 說(shuō)明:進(jìn)行借閱的登記, loanid 設(shè)為主鍵、自動(dòng)增長(zhǎng)。 表 列名 數(shù)據(jù)類型 長(zhǎng)度 可否為空 注釋 Loanid Int Not Null 借閱序號(hào) Bookid Char 10 Not Null 圖書編號(hào) memberid Char 10 Not Null 借閱人編號(hào) Loandate date Null 借閱日期 規(guī)則信息表 regular 說(shuō)明:記錄設(shè)置的借閱規(guī)則, days 設(shè)為主鍵。 表 列名 數(shù)據(jù)類型 長(zhǎng)度 可否為空 注釋 Days Int 4 Not Null 免費(fèi)借閱天數(shù) Fine Dec Null 罰金標(biāo)準(zhǔn) Flag Char 1 Null 規(guī)則開(kāi)關(guān) ( 1)規(guī)劃有效的索引 ,包括主關(guān)鍵字和外部關(guān)鍵字所在的列。 。 。索引需要一定硬盤空間和時(shí)間來(lái)維護(hù)。具有較高數(shù)據(jù)插入操作頻率的數(shù)據(jù)庫(kù)最好不要索引。有較高讀操作頻率的數(shù)據(jù)庫(kù)應(yīng)該有更多的索引。 。在可能的情況 下,使用較小的數(shù)據(jù)類型,例如用 varchar替代 char。 。在為數(shù)據(jù)檢索優(yōu)化表時(shí),簇索引必須支持?jǐn)?shù)據(jù)的分組索引。為簇關(guān)鍵字選擇列或列組,簇關(guān)鍵字以經(jīng)常需要的順序排序數(shù)據(jù)或以必須被一起訪問(wèn)的記錄而分組記錄。 。具有高選擇性的列是索引的最好候選列。具有高密度的列是索引糟糕的候選列。 ( 2)使用約束實(shí)現(xiàn)數(shù)據(jù)的完整性 PRIMARY KEY 約束在表中定義了主關(guān)鍵字,它是行唯一的標(biāo)識(shí)符,它可以強(qiáng)制實(shí)體完整性。在使用 PRIMARY KEY 約束時(shí) 考慮以下事實(shí): a. 每個(gè)表只能有一個(gè) PRIMARY KEY 約束。 b. 鍵入的值必須是唯一的。 c. 不允許有空值。 d. PRIMARY KEY 約束在指定的列創(chuàng)建唯一的索引,可以指定簇索引和非簇索引(如果 非簇索引先前并不存在,簇索引是默認(rèn)的)。 UNIQUE 約束指定,在一列中的兩行不能有相同的值。該約束使用唯一的索引來(lái)強(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. 通過(guò)在指定的列或列組中創(chuàng)建唯一的索引,可以使 UNIQUE 索引得到強(qiáng)制 五 圖書管理系統(tǒng)的具體實(shí)現(xiàn) 1 PowerBuilder 開(kāi)發(fā)工具簡(jiǎn)介 PowerBuilder 是目前開(kāi)發(fā) Client/Server 結(jié)構(gòu)的應(yīng)用系統(tǒng)的主要工具之一。 承與發(fā)展以前版本優(yōu)秀功能的基礎(chǔ)上,為適應(yīng)網(wǎng)絡(luò)應(yīng)用程序的開(kāi)發(fā)要求集成了 Enterprise Application Studio 中 PowerBuilder 以及 Power Site 的功能,在傳統(tǒng)數(shù)據(jù)庫(kù)開(kāi)發(fā)的基礎(chǔ)上,將Web 應(yīng)用更好地集成到 PowerBuilder 中。 PowerBuilder 全面支持面向?qū)ο缶幊?。是功能?qiáng)大并易于使用的第 4代編程語(yǔ)言 (4GL),它內(nèi)置了包括數(shù)據(jù)窗口在內(nèi)的多種對(duì)象類,可以方便地訪問(wèn)數(shù)據(jù)庫(kù)。相對(duì)于其他應(yīng)用工具, PowerBuilder 具有工作效率高、成本低、質(zhì)量高、功能強(qiáng)的特 點(diǎn)。 2 Powerbuilder 8應(yīng)用程序開(kāi)發(fā)的基本步驟 我們要開(kāi)發(fā)應(yīng)用程序時(shí),首先要對(duì)它進(jìn)行分析。無(wú)論哪種、哪方面的應(yīng)用程序,都要先建立一個(gè)應(yīng)用對(duì)象。下面我們介紹以下 PowerBuilder 8應(yīng)用程序開(kāi)發(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ù),可以建立各種報(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)試??梢栽陂_(kāi)發(fā)環(huán)境中隨時(shí)運(yùn)行應(yīng)用程序,發(fā)現(xiàn)錯(cuò)誤后,可以用調(diào)試工具進(jìn)行調(diào)試。 ( 8)當(dāng)應(yīng)用程序開(kāi)發(fā)完畢后,可以把它編譯成可執(zhí)行的文件,讓用戶比較容易地建立應(yīng)用系統(tǒng)的運(yùn)行環(huán)境。 3 編碼規(guī)范 為了減少在軟件開(kāi)發(fā)過(guò)程中的錯(cuò)誤,在軟件開(kāi)發(fā)過(guò)程中應(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 表示該變量是用來(lái)記錄一個(gè)行號(hào)的計(jì)數(shù)器。 4 創(chuàng)建祖先 窗口和全局函數(shù) 為充分利用 PB 的面向?qū)ο蟮奶匦?。程序開(kāi)發(fā)時(shí)一般創(chuàng)建幾個(gè)模板窗口。將功能窗口上的某些常用功能封裝在模板窗口中。然后將這些模板窗口作為祖先窗口。所有的子孫窗口都可以通過(guò)繼承的方法來(lái)生成。這樣就減少了代碼的書寫量。使得整個(gè)程序界面保持整齊。當(dāng)修改祖先窗口時(shí),所有的子孫窗口都會(huì)自動(dòng)修改。所以,祖先窗口的確定要十分謹(jǐn)慎。 全局函數(shù)與局部函數(shù)的作用類似。唯一不同的是全局函數(shù)的作用域是整個(gè)程序周期。不論你在任何一個(gè)模塊的代碼中都可以調(diào)用它。所以我們可以把某些常用功能寫成全局函數(shù)。在程序的其他地方反復(fù)調(diào)用。 level(character lev) 功能介紹:通過(guò)傳入的 lev 值,將某些菜單項(xiàng)設(shè)為 “非使能 ”,以限制某些功能的使用。 Lev 值即不同職責(zé)的權(quán)限(系統(tǒng)管理 圖書管理 借閱人管理 借閱操作員 4),從 people 表中的 level字段中讀取。 代碼分析: choose case lev case 1 case 2 .enabled=false 賃 .enabled=false .m_用戶管理 .enabled=false .m_借閱規(guī)則設(shè)置 .enabled=false .m_圖書信息設(shè)置 .enabled=false case 3 .enabled=false .enabled=false .enabled=false .enabled=false .m_用戶管理 .enabled=false .m_借閱規(guī)則設(shè)置 .enabled=false .m_圖書信息設(shè)置 .enabled=false case 4 .enabled=false .enabled=false .m_用戶管理 .enabled=false .m_借閱規(guī)則設(shè)置 .enabled=false .m_圖書信 息設(shè)置 .enabled=false end choose 函數(shù) countday countday (date date1,date date2) 功能介紹:通過(guò)傳入的 date1(起始日期)值與 date2(結(jié)束日期)值,計(jì)算出中間相差的天數(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ù)圖書免費(fèi)借閱天數(shù) days、罰金費(fèi)率 fine,以及已借閱的天數(shù)(由 countday 函數(shù)算出),計(jì)算出費(fèi)用,返回值為 decimal 型。 代碼分析: dec countfine if countday=0 and countday=days then//免費(fèi)使用期內(nèi)罰金為 0 countfine=0 else countfine=(countday days)*fine//超根據(jù)期多少計(jì)算罰金 end if return countfine 5 應(yīng)用程序?qū)ο? App_librarain 功能介紹: PB程序由一個(gè)應(yīng)用程序開(kāi)始,即每個(gè) PB程序在開(kāi)始運(yùn)行時(shí),先執(zhí)行應(yīng)用程序?qū)ο蟮?Open 事件 。在 Open 事件中連接數(shù)據(jù)庫(kù),并打開(kāi)登陸窗口 w_login。 代碼分析: // Profile librarian = ODBC = False = ConnectString=39。DSN=librarian。UID=WD=39。 Connect using SQLCA。 //判斷數(shù)據(jù)庫(kù)連接是否成功 if = 0 then open(w_login) else messagebox(39。系統(tǒng)提示 39。,39。連接數(shù)據(jù)庫(kù)失敗! 39。) end if 6 具體窗口的實(shí)現(xiàn) ( 1)登錄窗口 w_login 圖 功能介紹:本窗口主要是檢查操作員輸入的用戶名及密碼是否正確,如果正確,允許登錄。如果錯(cuò)誤,顯示出錯(cuò)誤提示。 操作方法:填寫 “用戶名 ”與 “密碼 ”后,點(diǎn)擊 “登錄 ”按鈕進(jìn)行驗(yàn) 證,點(diǎn)擊 “放棄 ”退出。 代碼分析: Open 事件: ()//“用戶名 ”輸入框獲得焦點(diǎn) =923 =588 “登錄 ”按鈕: string name,pwd char lev int test name= pwd= //檢測(cè)用戶名與密碼是否匹配 SELECT level INTO :lev FROM people WHERE name=:name and password=:pwd。 if lev then open(w_main) level(lev)//根據(jù)權(quán)限設(shè)定菜單狀態(tài) else () test=messagebox(提示: ,用戶名或者密碼錯(cuò)誤! ,Exclamation!, OKCancel!, 2) end if//檢測(cè)是否重新登錄 if test=1 then return 1 else
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1