C++圖書管理系統(tǒng)
《C++圖書管理系統(tǒng)》由會員分享,可在線閱讀,更多相關《C++圖書管理系統(tǒng)(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、成都理工大學工程技術學院畢業(yè)論文 C++圖書管理系統(tǒng) 作者姓名:江孝濤 專業(yè)名稱:計算機科學與技術 指導教師:柳 軍 講師 C++圖書管理系統(tǒng) 摘要 本系統(tǒng)采用基于網(wǎng)絡的C/S模式將軟件分成客戶端(前臺)和服務器端(后臺)。前臺與后臺服務器進行互動,前臺通過網(wǎng)絡向服務器發(fā)送數(shù)據(jù)請求,并處理服務器的回應數(shù)據(jù),將數(shù)據(jù)直觀的顯示給用戶,前臺程序主要運用的C++ Qt中的界面控件,后臺主要是接收用戶的請求,做出相應的回應,并進行數(shù)據(jù)存儲和數(shù)據(jù)處理,后臺使用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),需要建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。本系統(tǒng)
2、能對圖書實行分類管理,并能按客戶端登錄用戶實行三級權限管理:讀者、圖書管理員和操作員。 本系統(tǒng)分用戶登錄、圖書查詢、借還圖書,系統(tǒng)管理和日志系統(tǒng)等五大功能模塊。其中圖書查詢功能分為模糊查詢、直接查詢、多條件查詢;系統(tǒng)管理則包括讀者管理、圖書分類管理、圖書管理、逾期未還圖書管理、管理員權限帳戶管理等。其中多條件查詢、模糊查詢,圖書分類管理,同步,實時性,多文檔視圖是本系統(tǒng)的難點。 關鍵詞 :多文檔視圖 Qt C++ C/S MySQL Abstract The system uses the network of based on C / S mode into the
3、 software client (front) and server-side (background). Foreground and background server interaction, reception through the network to the server to send data requests and processing server response data, the data visually displayed to the user, the foreground program main use of C++ Qt in the interf
4、ace controls, background is mainly to receive the users request make the appropriate response, and for data storage and processing, using MySQL databases to store data back-need to establish strong data consistency and integrity, data security, a good library. The system can implement classification
5、 of management books and according to a three-level client login user rights management: Readers, librarians, and operators. The system points the user login, check books, circulation, system management and logging system, the five major functional blocks. Book search function which is divided int
6、o fuzzy queries, direct query, multiple query conditions; system management include the reader management, books classification management, library management, overdue library management, account management and other administrative privileges. One more query terms, fuzzy query, library classificatio
7、n management, synchronization, real-time, multi-document view is the difficulty of this system. Keywords: Multi-document,Qt,C++,C/S,MySQ - IV - 目錄 摘要 I Abstract II 目錄 III 前言 1 1 緒論 2 1.1 系統(tǒng)開發(fā)背景 2 1.2 設計目標 2 1.3 系統(tǒng)設計原則 3 2 系統(tǒng)開發(fā)工具及相應技術簡介 4 2.1 Qt簡介 4 2.2 常用開發(fā)技術比較 4 2.2.1 ODBC 4 2.
8、2.2 DB2 5 2.2.3 MySQL 5 2.3 客戶機/服務器結構(C/S)、多線程 6 2.3.1 C/S模式運用 6 2.3.2 服務器多線程編程 7 2.4 使用MySQL數(shù)據(jù)庫 8 2.4.1 Qt數(shù)據(jù)庫連接類 8 2.4.2 數(shù)據(jù)庫連接 8 2.4.3 查詢記錄 9 2.5 系統(tǒng)運行環(huán)境 9 2.5.1 服務器軟硬件要求 9 2.5.2 客戶端軟硬件要求 9 3 需求分析 10 3.1 功能需求 10 3.2 功能介紹 11 4 系統(tǒng)設計 14 4.1 系統(tǒng)總體設計 14 4.1.1 數(shù)據(jù)庫簡介 14 4.1.2 數(shù)據(jù)庫技術 16 4.1
9、.3 SQL語言基礎 18 4.2 數(shù)據(jù)庫實現(xiàn)原理 19 4.2.1 存儲過程(stored procedue) 19 4.2.2 觸發(fā)器 19 4.2.3 游標 20 4.3 定義系統(tǒng)表的結構 21 4.4 定義所需結構體 24 5 系統(tǒng)實現(xiàn) 28 5.1 登錄子系統(tǒng) 28 5.2 查詢子系統(tǒng) 29 5.3 借還子系統(tǒng) 29 5.3.1 借書模塊 30 5.3.2 還書模塊 30 5.4 管理子系統(tǒng) 31 5.4.1 圖書管理模塊 32 5.4.2 日志管理模塊 33 結語 35 致謝 36 參考文獻 37 前言 隨著揉社會的發(fā)展,揉對知識的需
10、求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據(jù)了一定的位置,如何科學地管理圖書館不但關系到讀者求知的方便程度,也關系到圖書館的發(fā)展,因此,開發(fā)一套完善的圖書館管理系統(tǒng)就成不可少了。 圖書館在正常運營中總是面對大量的讀者信息、書籍信息以及兩者相互作用產(chǎn)生的借書信息、還書信息。因此需要對讀者資源、書籍資源、借書信息、還書信息進行管理,及時了解各個環(huán)節(jié)中信息的變更,有利于提高管理效率。隨著社會的日益發(fā)展,尤其是科技的迅猛發(fā)展,使得我國各項事業(yè)得到了前所未有的突破,不僅提高了工作效率,而且也降低了勞動強度,美化了工作環(huán)境。 隨著計
11、算機廣泛地應用在科學技術領域的各個方面,并逐漸進入家庭,成為人們生活中必不可少的一部分。作為計算機應用的一部分,使用計算機對產(chǎn)品庫存信息進行管理,具有著人工管理無法比擬的優(yōu)點,它檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等,可減少更多的人力物力,這些都能夠極大地提高貨品庫存的管理效率,也是圖書信息的管理科學化、正規(guī)化的重要條件。因此,開發(fā)一個圖書信息的管理系統(tǒng)是很有必要的,具有其特有的技術意義和管理意義,為了適應讀者對圖書的需求,同時又大大減輕圖書館工作人員的工作量,全面提高圖書館的管理效率及服務質(zhì)量,以此為目的用C++開發(fā)了本圖書管理系統(tǒng)。 1 緒論 1.1 系統(tǒng)
12、開發(fā)背景 目前,在高校系部圖書管理中,師生查找圖書都是采用傳統(tǒng)的查詢方法,讓讀者在圖書分類架上一本本地去查找,這樣不僅很難找到自己所需要的圖書,而且費時費力。而圖書管理員在辦理借書登記、查詢讀者借書記錄時,管理人員必須在借書記錄上一個個去查找,而要找到借書記錄并刪除該記錄是件很麻煩的事情。每當新書入庫時,圖書管理員既要填寫新書入庫卡片,又要填寫新書入庫帳目,不僅工作量大,而且,在新書入庫后要經(jīng)歷較長的時間方能借出。另外,有的系部因圖書數(shù)量有限,必須對圖書實行限量借閱,因此,要實施彈性借書方法是件很困難的事。 為提高圖書查詢效率,減少系部圖書管理員的工作負擔,有必要開發(fā)一個小型圖書管理軟件來
13、對系部圖書實施有效管理。該系統(tǒng)必須具備以下功能: (1) 能對各類圖書實行分類管理; (2) 提供必要的讀者信息; (3) 能進行各種高級查詢(如未還書目的查詢,已還書目的查詢等); (4) 具有圖書檢索功能; (5) 能管理登錄系統(tǒng)的圖書管理員等這樣不僅能較好地幫助讀者在最短的時間內(nèi)找到自己所需要的圖書書目、編號,而且能讓圖書管理員以最高的效率辦理借閱手續(xù); (6) 讀者能夠?qū)Ξ斍皥D書館的書籍進行實時的查詢; 1.2 設計目標 針對以上情況,決定組建一個基于客戶機/服務器(C/S模式)結構的圖書管理系統(tǒng),讀者用戶能夠?qū)Ξ斍皥D書館書籍的情況進行實時的查詢,對登錄后的用戶實行權限
14、管理。在系統(tǒng)啟動后,讀者能在客戶端根據(jù)自已的需要查詢圖書,而圖書管理員能在服務器端根據(jù)讀者提供的身份信息及圖書編號辦理借書或還書手續(xù),通過自動查詢功能判斷讀者是否還能借書。如果讀者借書數(shù)量沒有超過規(guī)定的數(shù)量,沒有逾期未還圖書情況,則可繼續(xù)辦理借書手續(xù),否則不予辦理。另外,圖書管理員能根據(jù)需要通過該系統(tǒng)的服務端自行修改圖書信息,增加或刪除圖書書目等。 該系統(tǒng)設有管理員用戶,當管理員以此用戶級別登錄服務器時,該用戶有著最大的權限,能通過管理界面設置圖書借閱期限、查詢逾期未還圖書信息和讀者信息,并能有效地管理圖書分類、讀者信息及圖書管理員的登錄帳目等。 1.3 系統(tǒng)設計原則 (1) 實用性原則
15、 適合于中小型圖書館及高校系部圖書管理,用戶界面友好,操作使用方便,具有高效的數(shù)據(jù)處理能力。 (2) 先進性原則 采用目前先進的計算機軟硬件技術,使系統(tǒng)具有較高的技術水平和較長的生命周期,便于系統(tǒng)的升級和維護。 (3) 開放性,安全性,可靠性及可擴展性原則 (4) 兼容性原則 對于所選軟硬件系統(tǒng)及平臺,能很好地適應開發(fā)和使用的需要。 (5) 規(guī)范性原則 軟件設計過程嚴格按照“軟件工程”的規(guī)定,系統(tǒng)編碼、文檔、操作系統(tǒng)平臺以及開發(fā)方法采用相應的國際標準、國家標準和行業(yè)標準。 2 系統(tǒng)開發(fā)工具及相應技術簡介 2.1 Qt簡介 這個系統(tǒng)前臺所用的開發(fā)工具是Eclipse,
16、開發(fā)環(huán)境是Qt,Qt 是一個跨平臺的 C++ 圖形用戶界面庫,由挪威 TrollTech 公司出品,目前包括Qt, 基于 Framebuffer 的 Qt Embedded,快速開發(fā)工具 Qt Designer,國際化工具 Qt Linguist 等部分 Qt 支持所有 Unix 系統(tǒng),當然也包括 Linux,還支持 WinNT/Win2k,Win95/98 平臺。 Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序員 就已經(jīng)開始設計 Qt 了,Qt 的第一個商業(yè)版本于 1995 年推出然后 Qt 的發(fā)展就很快了。 2.2 常用開發(fā)
17、技術比較 Qt提供了許多數(shù)據(jù)庫訪問的接口,主要包括ODBC、DB2和MYSQL等等。這些技術在訪問數(shù)據(jù)庫時無論是易用程度還是運行性能上都是各有千秋,其情況如下: 2.2.1 ODBC ODBC是為客戶應用程序訪問關系數(shù)據(jù)庫時提供的一個標準的接口,對于不同的數(shù)據(jù),ODBC提供了統(tǒng)一的API,使應用程序可以誚所提供的API來訪問任何提供了ODBC驅(qū)動程序的數(shù)據(jù)庫。而且,ODBC已經(jīng)成為一種標準,所以,目前幾乎所有的關系數(shù)據(jù)庫都提供了了ODBC驅(qū)動程序,這使ODBC的應用十分廣泛,基本上可有于所有的關系數(shù)據(jù)庫。其優(yōu)點是,ODBC API可能使客戶應用程序能夠從從底層設置和控制數(shù)據(jù)庫,完成一些高
18、層數(shù)據(jù)庫技術無法完的事,但是其不足之處是要編寫大量的代碼,增加了程序的編制的難度。 2.2.2 DB2 DB2 是一種關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),是 Information Management 產(chǎn)品系列的一部分。DB2 被認為是第一種使用 SQL(一種為 RDBMS 提供接口的語言)的數(shù)據(jù)庫產(chǎn)品。DB2 于 1982 年首次發(fā)布,現(xiàn)在已經(jīng)可以用在許多操作系統(tǒng)平臺上,包括 Linux、UNIX 和 Windows。 DB2 有不同的版本,可以滿足不同的需求: 1. DB2 Everyplace 為移動用戶提供一個內(nèi)存占用小且性能出色的 DB2 版本。 2. DB2 for z
19、/OS 為主機系統(tǒng)提供 DB2 的所有特性。 3. DB2 for Linux, UNIX and Windows 提供幾種風格。 (1) Enterprise Server Edition(ESE)是一種具有客戶機/服務器設置的完整的 RDBMS。DB2 ESE 適用于中型和大型企業(yè)。 (2) Workgroup Server Edition(WSE)主要適用于小型和中型企業(yè),它提供除大型機連接之外的所有 DB2 ESE 特性。 (3) Personal Edition 為個人計算機提供一個單用戶的部署。 (4) 數(shù)據(jù)庫可以存儲任何類型的信息,無論是關系數(shù)據(jù)(比如職員的姓名和地址
20、),還是二進制數(shù)據(jù)(比如他們的身份證照片)。DB2 現(xiàn)在還支持 pureXML,可以輕松地存儲和檢索 XML 數(shù)據(jù)??梢允褂脤嵱贸绦蜓b載和維護數(shù)據(jù),還可以使用查詢檢索您感興趣的信息。可以使用本教程中描述的一些工具控制數(shù)據(jù)的完整性。 2.2.3 MySQL MySQL名字的來歷MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司,在2008年1月16號被Sun公司收購。MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。 MySQL
21、是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQL AB開發(fā)、發(fā)布和支持。MySQL AB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的注冊商標。 MySQL是一個快速的、多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務器。MySQL服務器支持關鍵任務、重負載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個大配置(mass-deployed)的軟件中去。 MySQL是開源的,開源意味著任何人都可以使用和修改該軟件,任何人都可以從Internet上下載和使用MySQL而不需要支付任何費用。如果你愿意,你可以研究其源代
22、碼,并根據(jù)你的需要修改它。MySQL使用GPL(GNU General Public License,通用公共許可),在http://www.fsf.org/licenses中定義了你在不同的場合對軟件可以或不可以做什么。如果你覺得GPL不爽或者想把MySQL的源代碼集成到一個商業(yè)應用中去,你可以向MySQL AB購買一個商業(yè)許可版本,MySQL服務器是一個快的、可靠的和易于使用的數(shù)據(jù)庫服務器。 2.3 客戶機/服務器結構(C/S)、多線程 2.3.1 C/S模式運用 二層的C/S結構是指以單一的服務器和局域網(wǎng)為核心,能通過客戶端與用戶進行直接對話。主要有二大功能:一是它用于檢查用戶從鍵
23、盤等輸入的數(shù)據(jù),顯示應用輸出的數(shù)據(jù)。為使用戶能直觀地進行操作,一般要使用圖形用戶接口(GUI),操作簡單、易學易用。在變更用戶接口時,只需改寫顯示控制和數(shù)據(jù)檢查程序,而不影響其他。檢查的內(nèi)容也只限于數(shù)據(jù)的形式和值的范圍,不包括有關業(yè)務本身的處理邏輯。另一個是確認用戶對應用和數(shù)據(jù)庫存取權限的功能以及記錄系統(tǒng)處理日志。 典型的C/S結構有以下特點: (1) 服務器負責數(shù)據(jù)管理及程序處理 (2) 客戶機負責界面描述和界面顯示 (3) 客戶機向服務器提出處理要求 (4) 服務器響應將處理結果返回客戶機 (5) 使網(wǎng)絡數(shù)據(jù)流量最少 近幾年,客戶機/服務器體系日益成熟而且應用越來越廣泛,許多
24、圖書館管理系統(tǒng)都用這種結構進行設計。 2.3.2 服務器多線程編程 什么是多線和為什么要應用多線程編程?進程和線程都是操作系統(tǒng)的概念。進程是應用程序的執(zhí)行實例,每個進程是由私有的虛擬地址空間、代碼、數(shù)據(jù)和其它各種系統(tǒng)資源組成,所謂私有,就是線程在有自己局部變量,進程在運行過程中創(chuàng)建的資源隨著進程的終止而被銷毀,所使用的系統(tǒng)資源在進程終止時被釋放或關閉。 線程是進程內(nèi)部的一個執(zhí)行單元。系統(tǒng)創(chuàng)建好進程后,實際上就啟動執(zhí)行了該進程的主執(zhí)行線程,主執(zhí)行線程以函數(shù)地址形式,比如說main或WinMain函數(shù),將程序的啟動點提供給Windows系統(tǒng)。主執(zhí)行線程終止了,進程也就隨之終止。 每一個進程
25、至少有一個主執(zhí)行線程,它無需由用戶去主動創(chuàng)建,是由系統(tǒng)自動創(chuàng)建的。用戶根據(jù)需要在應用程序中創(chuàng)建其它線程,多個線程并發(fā)地運行于同一個進程中。一個進程中的所有線程都在該進程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系統(tǒng)資源,所以線程間的通訊非常方便,多線程技術的應用也較為廣泛。 多線程可以實現(xiàn)并行處理,避免了某項任務長時間占用CPU時間。要說明的一點是,目前大多數(shù)的計算機都是單處理器(CPU)的,為了運行所有這些線程,操作系統(tǒng)為每個獨立線程安排一些CPU時間,操作系統(tǒng)以輪換方式向線程提供時間片,這就給人一種假象,好象這些線程都在同時運行。由此可見,如果兩個非?;钴S的線程為了搶奪對CP
26、U的控制權,在線程切換時會消耗很多的CPU資源,反而會降低系統(tǒng)的性能。這一點在多線程編程時應該注意。 多線程在構建大型系統(tǒng)的時候是需要重點關注的一個重要方面,特別是在效率(系統(tǒng)跑得多快?)和性能(系統(tǒng)工作正常?)之間做一個權衡的時候。恰當?shù)氖褂枚嗑€程可以極大的提高系統(tǒng)性能,當有多個客戶端程序同時連接到服務器端的時候,用戶不希望等待其他用戶完成操作之后才享有CPU時間,因為這樣的C/S模式的管理系統(tǒng)將會變得毫無意義,為了滿足每一位用戶都能夠感覺到自己是獨占服務器CPU時間的,所以在該圖書管理系統(tǒng)中有必要也必須應用到多線程編程,正因為多線程的并發(fā)行,使其處理客戶端的請求能夠達到同步的效果。因為多
27、線程共享全局變量,所以在進行多線程編程的時候要特別注意,當訪問全局數(shù)據(jù)的時候要用互斥鎖鎖住該變量,當當前線程使用完該變量的時候應當將其解鎖,一邊其它線程有機會訪問該變量,以免造成死鎖的情況發(fā)生。 2.4 使用MySQL數(shù)據(jù)庫 因為本系統(tǒng)主要用到MySQL數(shù)據(jù)庫編程,所以詳細的介紹其使用方法。 2.4.1 Qt數(shù)據(jù)庫連接類 QsqlDatabase類是主要用于連接數(shù)據(jù)的類,該類封裝了連接各種數(shù)據(jù)的方法,在編譯并安裝好Qt相應的數(shù)據(jù)庫驅(qū)動之后,只需要簡單的指定數(shù)據(jù)庫名字就能夠與相應的數(shù)據(jù)庫建立連接,而應用程序就能夠通過該連接句柄與數(shù)據(jù)庫進行良好的互動。 QSqlQuery類是主要用于數(shù)據(jù)
28、庫操作,包括執(zhí)行相應的SQL語句,獲取數(shù)據(jù)庫中的相應數(shù)據(jù)。 2.4.2 數(shù)據(jù)庫連接 在程序中定義QSqlDatabase db成員變量通過該變量可以獲取數(shù)據(jù)庫連接句柄,db = QSqlDatabase::addDatabase("QMYSQL");//由于我們使用的MySQL數(shù)據(jù)庫,所以這里指定的數(shù)據(jù)庫名字是QMYSQL。 db.setDatabaseName(database); db.setHostName("localhost"); db.setUserName(username); db.setPassword(password); if (!db.open())
29、{ QMessageBox::critical(0,QObject::tr("DatabaseError"), db.lastError().text()); return false; } 2.4.3 查詢記錄 查詢記錄使用QSqlQuery::exec(Qstring &)成員函數(shù)來執(zhí)行SQL語句,一旦查詢到數(shù)據(jù)庫中有相關的記錄,就可以通過QSqlQuery::isSelect() && QSqlQuery::next()來一條一條獲取查詢的結果, QSqlQuery::value(int column)獲取一行中指定列的記錄。 2.5 系統(tǒng)運行環(huán)境 2.5.1 服務
30、器軟硬件要求 軟件: Windows XP MySQL TCP/IP協(xié)議 硬件: CPU:PⅢ 內(nèi)存:256M 硬盤:4G以上 2.5.2 客戶端軟硬件要求 軟件: Windows 95/98/ME/2000/XP/WIN7 TCP/IP協(xié)議 硬件: CPU:486/586以及更高檔的PC 內(nèi)存:最少64M 硬盤:500M以上 3 需求分析 如同任何生物一樣,軟件也有一個誕生、成長、衰亡的生存過程。我們稱為軟件的生存期。根據(jù)這一思想,可以得到軟件生存期六個步驟,即制定計
31、劃、需求分析、軟件設計、程序編碼、測試及運行維護。 軟件需求分析工作是軟件生存期中重要一步,也是決定性一步。只有通過需求分析才能把軟件功能和性能的總體要領描述為具體的軟件需求規(guī)程說明,從而奠定軟件開發(fā)的基礎。 需求分析 系統(tǒng)設計 系統(tǒng)編碼 系統(tǒng)測試 系統(tǒng)功能圖 功能分析 框架分析 系統(tǒng)功能 系統(tǒng)界面 畫出功能圖 測試系統(tǒng)的所有功能,達到預期效果 圖3.1 系統(tǒng)整體設計流程圖 3.1 功能需求 根據(jù)自己調(diào)查圖書館的業(yè)務情況,從實際應用的角度出發(fā),確定為用戶提供和實現(xiàn)以下功能: (1) 登錄功能 (2) 讀者:主要提供直接查詢(包括模糊查詢)和多條件分類查詢功
32、能。 (3) 操作員:主要提供借書,還書,圖書管理。 (4) 管理員:主要提供圖書管理員登錄數(shù)據(jù)庫管理,圖書類管理,讀者管理逾期未還圖書的信息管理。 (5) 聯(lián)機幫助功能:能幫助用戶在最短的時間使用本系統(tǒng)。 3.2 功能介紹 圖3.2列出了這個系統(tǒng)各功能之間的關系圖書管圖系統(tǒng) 系統(tǒng)管理 數(shù)據(jù)管理 借還系統(tǒng) 幫助 用戶登錄 添加用戶 刪除用戶 用戶注銷 退出系統(tǒng) 書籍管理 用戶管理 讀者管理 日志管理 修改密碼 借出圖書 歸還圖書 續(xù)借圖書 幫助文檔 關于 查詢統(tǒng)計 查詢用戶 圖書查詢 借出記錄 借閱統(tǒng)計 逾期記錄 修改資料
33、 圖3.2 系統(tǒng)功能圖 (1) 用戶登錄 只有已注冊用戶才能登陸系統(tǒng),為了滿足不同用的需求級別,用戶包括三種權限,系統(tǒng)管理員、操作員、讀者,不同權限的用戶,其所能執(zhí)行的操作不相同,下面是用戶的相關權限。 讀者:登陸、注銷、退出、查詢與統(tǒng)計、修改密碼、幫助。 操作員:登陸、注銷、退出、書籍借出與歸還、修改密碼、幫助。 管理員:所有操作。 (2) 用戶管理 對用戶的相關操作,例如:添加新用戶、刪除用戶、查詢用戶、修改用戶資料。 添加新用戶:可以添加學生用戶、教師管理員、系統(tǒng)管理員。 查詢用戶:獲得用戶的相關資料。
34、 修改用戶:修改用戶的注冊信息及其相關,需要輸入要作修改的用戶的ID及其姓名,防止誤該。 (3) 修改密碼 任何用戶都可以修改自己的登陸密碼,用戶需要輸入舊的密碼,新密碼需要輸入兩次,保證其安全性。 (4) 注銷用戶 用戶切換時必須進行注銷,否則警告用戶已經(jīng)登錄。 (5) 正常退出系統(tǒng) (6) 添加圖書 當有新書入庫的時候,需要將該書的相關資料加入到數(shù)據(jù)庫中,教師管理員和系統(tǒng)管理員都有執(zhí)行該操作的權限。 (7) 刪除圖書 當學生報告書籍遺失或者很長時間未被歸還,視作該書籍已經(jīng)不存在,需要刪除其在數(shù)據(jù)庫中的相關記錄。 (8) 更新圖書 如果發(fā)現(xiàn)書籍的相關信息有誤,需要對該
35、信息進行修改,重新存入數(shù)據(jù)庫中,便于在書記查找的時候獲得的是該書的正確信息。 (9) 借出圖書 當有用戶要借書的時候,需要用戶提供書籍相關信息,管理員根據(jù)用戶提供的信息,搜索相關書籍,如果該書存在,可以進行借出操作,如果不存在,就給出相關的提示,每位用戶所能借閱的圖書同時不能超過4本,默認借出最大天數(shù)為30天。 (10) 歸還圖書 (11) 續(xù)借圖書 用戶在規(guī)定的期限內(nèi),沒有看完書籍,需要進行續(xù)借操作,續(xù)借的天數(shù)不能超過30,否則算作逾期。 (12) 查詢與統(tǒng)計 查詢庫存的圖書:獲取未借出的圖書記錄。 借出記錄:獲得借出的圖書記錄,及其相關信息,波形圖可以直觀的顯示一段時間內(nèi)借
36、出圖書的數(shù)量,當鼠標移動到波形線上的時候,得到該段時間內(nèi)借出圖書的詳細信息,如:借閱者、書名、借出時間、是否逾期等等;表格形式則一表格的形式詳細的顯示圖書名、借閱者、借出時間、是否逾期,如果沒有預期則顯示借出的天數(shù),如果逾期需要突出的顯示出來并顯示預期作為提示。 讀者借閱統(tǒng)計:獲得所有用戶現(xiàn)有的圖書數(shù)量,將鼠標移動到該數(shù)字上顯示所有借得的圖書的名字。 逾期借閱:獲得逾期借閱的圖書的相關信息,借閱者,具體借閱時間,超過的天數(shù)。 (13) 逾期借閱記錄 獲得借閱超時的所有書籍,顯示借閱者姓名,用戶ID,書名,超時天數(shù)。 4 系統(tǒng)設計 4.1 系統(tǒng)總體設計 系統(tǒng)設計又稱系統(tǒng)物理設
37、計。系統(tǒng)設計要根據(jù)系統(tǒng)分析報告中的系統(tǒng)邏輯模型綜合考慮各種約束,利用一切可利用的技術手段和方法進行各種具體設計,確定新系統(tǒng)的實施方案,解決“系統(tǒng)怎么做”的問題。 結構化系統(tǒng)設計是指利用一組標準的圖表工具和準則,確定系統(tǒng)有哪些模塊,用什么方法連接,如何構成良好的系統(tǒng)結構,并進行系統(tǒng)輸入、輸出、數(shù)據(jù)處理、數(shù)據(jù)存儲等環(huán)節(jié)的詳細設計。這一階段的重點是設計好系統(tǒng)的總體結構,選擇最經(jīng)濟合理的技術手段。在軟件需求分析階段,已搞清了軟件“做什么” 的問題,并描述出了系統(tǒng)的邏輯模型。在系統(tǒng)設計階段,主要要解決軟件“怎么做”的問題,所以需要描述軟件的總的體系結構既系統(tǒng)總體結構。 本系統(tǒng)是一個圖書管理系統(tǒng),那么
38、它具備用戶登錄:讀者圖書查詢:管理員借還書,增加書:圖書超級管理員管理系統(tǒng)信息四大基本功能,從這個基本功能出發(fā),確定了本系統(tǒng)應包含五個大模塊,即:登錄模塊,查詢模塊,借還書模塊,系統(tǒng)管理模塊,日志管理模塊。 4.1.1 數(shù)據(jù)庫簡介 計算機的數(shù)據(jù)處理應用,首先要把大量的信息以數(shù)據(jù)形式存放君存儲器中。存儲器的容量、存儲速率直接影響到數(shù)據(jù)管理技術的發(fā)展。1956年生產(chǎn)的第一臺計算機磁盤容量僅為5M字節(jié),而現(xiàn)在已達10000M字節(jié)。目前光盤已經(jīng)廣泛使用,容量已達數(shù)百G字節(jié)。存儲器的發(fā)展,為數(shù)據(jù)庫技術提供了良好的物質(zhì)基礎。 使用計算機以后,數(shù)據(jù)處理的速度和規(guī)模,無論是相對于手工方式,還是機械方式,
39、都是無可比擬的在數(shù)據(jù)處理中,通常計算是比較簡單的而數(shù)據(jù)的管理比較復雜。數(shù)據(jù)管理是指數(shù)據(jù)的收集、整理、組織、存儲、維護、檢索、傳送等操作,這部分操作是數(shù)據(jù)處理業(yè)務的基本環(huán)節(jié),而且是任何數(shù)據(jù)處理業(yè)務中必不可少的共有部分。數(shù)據(jù)管理技術的優(yōu)劣,將直接影響數(shù)據(jù)處理的效率。 數(shù)據(jù)管理技術的發(fā)展,與硬件(主要是外存)、軟件、計算機應用的范圍有密切的聯(lián)系。數(shù)據(jù)管理技術的發(fā)展經(jīng)過三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫階段。 從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫系統(tǒng)是信息處理領域的一個重大變化。在文件系統(tǒng)階段,人們關注的中心問題是系統(tǒng)功能的設計,因而程序設計處于主導地位,數(shù)據(jù)只起著服從程序需要的作用。在數(shù)據(jù)庫方式下,
40、信息處理觀念已為新體系所取代,數(shù)據(jù)占據(jù)了中心位置。數(shù)據(jù)結構的設計成為信息系統(tǒng)首先關心的問題,而利用這些數(shù)據(jù)的應用程序設計則退居到以既定的數(shù)據(jù)結構為基礎的外圍地位。 數(shù)據(jù)庫技術還在不斷的發(fā)展,并且不斷地與其它計算機技術相互滲透。數(shù)據(jù)庫技術與網(wǎng)絡通信技術相結合,產(chǎn)生了分布式數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術與面向?qū)ο蠹夹g相結合,產(chǎn)生了面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。 在數(shù)據(jù)庫技術中有四個名詞: (1) 數(shù)據(jù)庫(database,DB):DB是統(tǒng)一管理的相關數(shù)據(jù)的集合。DB能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨立性。 (2) 數(shù)據(jù)庫管理系統(tǒng)(Database Management Sy
41、stem,DBMS):DBMS是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關系型和面向?qū)ο笮虳BMS。 (3) 數(shù)據(jù)庫系統(tǒng)(Database System,DBS):DBS是實現(xiàn)有組織地、動態(tài)地存儲大量關聯(lián)數(shù)據(jù),方便多用戶訪問的計算機軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術的計算機系統(tǒng)。 (4) 數(shù)據(jù)庫技術:這是一門研究數(shù)據(jù)庫的結構、存儲、管理和使用的軟件學科。數(shù)據(jù)庫技術是操作系統(tǒng)的文件系統(tǒng)基礎上發(fā)展起來的。而DBMS本身要在操作系統(tǒng)的支持下才能工作
42、。數(shù)據(jù)庫不僅用到數(shù)據(jù)結構的知識,而且豐富了數(shù)據(jù)結構的內(nèi)容。在關系數(shù)據(jù)庫中要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫技術是一門綜合性較強的學科。 4.1.2 數(shù)據(jù)庫技術 從20世紀50年代中期開始,計算機的應用由科學研究部門逐步擴展到企業(yè)、行政部門。至60年代,數(shù)據(jù)處理成為計算機的主要應用。數(shù)據(jù)庫技術作為數(shù)據(jù)管理技術,是計算機軟件領域的一個重要分支,產(chǎn)生于60年代末?,F(xiàn)已形成相當規(guī)模的理論體系和實用技術。 模型是對現(xiàn)實世界的抽象。在數(shù)據(jù)庫技術中,我們用模型的概念描述數(shù)據(jù)庫的結構與語義,對現(xiàn)實世界進行抽象,表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。 目前廣泛作用的數(shù)據(jù)模型可分為兩種類
43、型。一種是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為“概念數(shù)據(jù)模型” ,另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結構,它是現(xiàn)實世界的第二層抽象。 這類模型涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),又稱為“結構數(shù)據(jù)模型”。 (1) 層次模型。用樹型結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。樹的結點是記錄類型,每個非根結點有且只有一個父結點。上一層記錄類型和下一層記錄類型間聯(lián)系是1∶N聯(lián)系。 (2) 網(wǎng)狀模型。用有向圖結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。 (3) 關系模型。關系模型的主要是用二維表格結構表達實體集,用外鍵表示實體間聯(lián)系。
44、關系模型是由若干個關系模式組成的集合。關系模式相當于前面提到的記錄類型,它的實例稱為關系,每個關系實際上是一張二維表格?,F(xiàn)在市場上典型的關系DBMS產(chǎn)品有DB2、ORACLE、SYBASE、INFORMIX和微機型產(chǎn)品Foxpro、Access等。 (4) 面向?qū)ο竽P?。面向?qū)ο竽P湍芡暾孛枋霈F(xiàn)實世界的數(shù)據(jù)結構,具有豐富的表達能力,但模型相對較復雜,涉及的知識面也廣,因此面向?qū)ο髷?shù)據(jù)庫尚未達到關系數(shù)據(jù)庫那樣的普及程度。 數(shù)據(jù)庫的體系結構分三級:內(nèi)部級(internal)、概念級(conceptual)和外部級(external)。這個三級結構有時也稱為“三級模式結構”,或“數(shù)據(jù)抽象的三個
45、級別”,大多數(shù)系統(tǒng)在總的體系結構上都具有三級模式的結構特征。 從某個角度看到的數(shù)據(jù)特性稱為“數(shù)據(jù)視圖”(data view)。 外部級最接近用戶,是單個用戶所能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。 概念級涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局數(shù)據(jù)視圖的描述稱為“概念模式”。 內(nèi)部級最接近于物理存儲設備,涉及到實際數(shù)據(jù)存儲的結構。物理存儲數(shù)據(jù)視圖的描述稱為“內(nèi)模式”。 數(shù)據(jù)庫的三級模式結構是數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給DBMS去做,用戶只要抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的表示和存儲,這樣就減輕了用戶使用系統(tǒng)的負擔。 三級結構之
46、間往往差別很大,為了實現(xiàn)這三個抽象級別的聯(lián)系和轉(zhuǎn)換,DBMS在三級結構之間提供兩個層次的映象(mappings):外模式/模式映象,模式/內(nèi)模式映象。此處模式是概念模式的簡稱。 由于數(shù)據(jù)庫系統(tǒng)采用三級模式結構,因此系統(tǒng)具有數(shù)據(jù)獨立性的特點。在數(shù)據(jù)庫技術中,數(shù)據(jù)獨立性是指應用程序和數(shù)據(jù)之間相互獨立,不受影響。數(shù)據(jù)獨立性分成物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性兩級。 (1) 物理數(shù)據(jù)獨立性 如果數(shù)據(jù)庫的內(nèi)模式要進行修改,即數(shù)據(jù)庫的存儲設備和存儲方法有所變化,那么模式/內(nèi)模式映象也要進行相當?shù)男薷?,使概念模式盡可能保持不變。也就是對內(nèi)模式的修改盡量不影響概念模式,當然,對于外模式和應用程序的影響更小
47、,這樣,我們稱數(shù)據(jù)庫達到了物理數(shù)據(jù)獨立性。 (2) 邏輯數(shù)據(jù)獨立性 如果數(shù)據(jù)庫的概念模式要進行修改,譬如增加記錄類型或增加數(shù)據(jù)項,那么外模式/模式映象也要進行相應的修改,使外模式盡可能保持不變。也就是對概念模式的修改盡量不影響外模式和應用程序,這樣,我們稱數(shù)據(jù)庫達到了邏輯數(shù)據(jù)獨立性。 4.1.3 SQL語言基礎 用戶對數(shù)據(jù)庫的使用,是通過數(shù)據(jù)庫管理系統(tǒng)提供的語言來實現(xiàn)的。不同的數(shù)據(jù)庫管理系統(tǒng)提供不同的數(shù)據(jù)庫語言。關系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關系數(shù)據(jù)庫標準語言——SQL。 SQL 是STRUCTURE QUERY LANGUAGE(結構化查詢語言)的縮寫,它是操作數(shù)據(jù)庫的工業(yè)標準語言。
48、由于SQL使用方便、功能豐富、語言簡潔易學,很快得到推廣和應用。例如關系數(shù)據(jù)庫產(chǎn)品DB2、ORACLE等都實現(xiàn)了SQL語言。同時,其它數(shù)據(jù)庫產(chǎn)品廠家也紛紛推出各自的支持SQL的軟件或者與SQL的接口軟件。這樣SQL語言很快被整個計算機界認可。1986年10月美國國家標準局(ANSI)頒布了SQL語言的美國標準。 SQL數(shù)據(jù)庫的體系結構,它基本上也是三級結構,但有些術語與傳統(tǒng)的關系數(shù)據(jù)庫術語不同。在SQL中,關系模式被稱為“基本表”,存儲模式稱為“存儲文件”,子模式稱為“視圖”,元組稱為“行”,屬性稱為“列”。 (1) 一個SQL數(shù)據(jù)庫是表(Table)的匯集,它用一個或若干個SQL模式義。
49、 (2) 一個SQL表由行集構成,一行(Row)是列(Column)的序列,每列對應一個數(shù)據(jù)項。 (3) 一個表或者一個基本表(Base Table),或者是一個視圖(View)。基本表是實際存儲在數(shù)據(jù)庫中的表;而視圖是若干個基本表或其它視圖構成的子集,用二個SQL的查詢語句定義,它的數(shù)據(jù)是基本基本表的數(shù)據(jù),不實際存儲在數(shù)據(jù)庫中因此它是個虛表。 (4) 一個基本表可以跨一個或多個存儲文件,而一個存儲文件可存放一個或多個基本表。每個存儲文件與外部存儲器上的一個物理文件對應。 (5) 用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶看來,視圖和基本表是一樣的,都是關系(即表格)。
50、 (6) SQL用戶可以是應用程序,也可以是最終用戶。 使用SQL可以對數(shù)據(jù)庫進行各種操作,例如,可以使用SQL語句生成新的數(shù)據(jù)庫、生成或加入表格、修改數(shù)據(jù)庫等。但SQL 最常用于從數(shù)據(jù)庫中獲取數(shù)據(jù)。從數(shù)據(jù)庫中獲取數(shù)據(jù)被稱為“查詢數(shù)據(jù)庫”。 4.2 數(shù)據(jù)庫實現(xiàn)原理 4.2.1 存儲過程(stored procedue) 存儲過程是一組先編譯好的Transact-SQL語句。它可能作為一個獨立的數(shù)據(jù)庫對象也可以作為一個單元被用戶的應用程序調(diào)用,在這個系統(tǒng)中的逾期書檢查中就在前臺調(diào)用了存儲過程,在記錄借書和還書時,所有的數(shù)據(jù)處理都是調(diào)用存儲過程。 使用存儲過程有很多的好處: (1) 執(zhí)
51、行速度快:存儲過程第一次調(diào)用后就駐留內(nèi)存中,特別是重復處理大量數(shù)據(jù)時,可以極大的是高運行效率。 (2) 模塊化的程序設計:存儲過程經(jīng)過一次修改后,可以無數(shù)次的調(diào)用。 (3) 減少網(wǎng)絡流量:所有數(shù)據(jù)處理都是在服務器進行,所以,前臺只發(fā)送調(diào)用存儲過程的指令和參數(shù),這樣能大減少了網(wǎng)絡上數(shù)據(jù)的流量。 (4) 保證系統(tǒng)的安全性。 存儲過程的定義: CREATE PROC procedure_name [{@parameter date_type} [VARYING][=default][OUTPUT]…] AS Sql_statement[….n] 4.2.2 觸發(fā)器 觸發(fā)器是一種
52、特殊的存儲過程,它與表格緊密相連,可能看作是表格定義的一部分,當用戶指定表或視圖的數(shù)據(jù)時,觸發(fā)器將會自動執(zhí)行。觸發(fā)器基于一個表創(chuàng)建,但是可以針對多個表進行駛操作。觸發(fā)器常用來實現(xiàn)復雜的商業(yè)規(guī)則。 使用觸發(fā)器的最終目的是更好地維護企業(yè)的業(yè)務規(guī)則。在實際運用中,主要提供了以下的功能: (1) 級聯(lián)修改數(shù)據(jù)庫中的怕有相關表。 (2) 撤消違反了完整性的操作,防止非法修改數(shù)據(jù)。 (3) 執(zhí)行比CHECK更復雜的約束操作。 (4) 查找在數(shù)據(jù)修改前后,表狀態(tài)的差別。 觸發(fā)器的定義: CREATE TRIGGER trigger_name ON table {FOR{[DELETE],[
53、INSERT],[UPDATE]}} AS Sql_statement[…] 4.2.3 游標 數(shù)據(jù)庫中的游標是像C語言指針一樣的語言結構。在通常情況下,數(shù)據(jù)庫招待的大多數(shù)SQL命令都是同時處理集合內(nèi)部的所有數(shù)據(jù)。但是,有時候用戶也需要對這些數(shù)據(jù)庫集合中的每一行進行作。在沒有游標的情況下,這種工作不得不放到數(shù)據(jù)庫前端,有高級語言來實現(xiàn)。這將導致不必要的數(shù)據(jù)傳輸,面而延長執(zhí)行的時間。通過使用游標,可能在服務器端有效的解決這個問題; (1) 游標的定義 DECLARE cursor_name CURSOR FOR select_statement (2) 游標打開 OPEN cu
54、rsor_name (3) FETCH語句 FETCH [[NEXT]|[PRIOR]|[FIRST]|[LAST]] FROM cursor_name [INTO @viriable_name[…]] (4) 游標關閉 CLOSE cursor_name (5) 刪除游標 DEALLOCATE cursor_name 4.3 定義系統(tǒng)表的結構 1. 定義圖書表(tbl_book),存放書籍信息,如表4.1所示: 表4.1 圖書表 字段 數(shù)據(jù)類型 長度 能否為空 Name VARCHAR 45 NOT NULL author VARCHAR 45
55、NOT NULL type VARCHAR 45 NULL press VARCHAR 45 NULL pressdate DATE NULL pagenum INTEGER NULL price DOUBLE 4 NULL adddate DATE 4 NOT NULL lendtimes INTEGER 4 NULL status INTEGER 4 NOT NULL bookID VARCHAR 20 NOT NULL 2. 定義讀者表(tbl_reader),存放讀者信息,如表4.2所示: 表4.2 讀者表
56、 字段 數(shù)據(jù)類型 長度 能否為空 Name VARCHAR 8 NOT NULL sex VARCHAR 10 NULL birthday VARCHAR 2 NULL carddate DATE 8 NULL cardnum VARCHAR 4 NULL type INTEGER 4 NULL status INTEGER 4 NULL school CHAR 16 NULL department CHAR 26 NULL grade CHAR 16 NOT NULL idcard VARCHAR
57、 20 NULL address VARCHAR 45 NULL post VARCHAR 10 NULL phone VARCHAR 20 NULL email VARCHAR 45 NULL readerID VARCHAR 20 NOT NULL 3. 定義借還記錄表(tbl_lend),存放借出書籍的信息,如表4.3所示: 表4.3 借出記錄表 字段 數(shù)據(jù)類型 長度 能否為空 name VARCHAR 45 NOT NULL author VARCHAR 20 NOT NULL type VARCHAR 45
58、 NULL pressdate DATE NULL pagenum INTEGER 4 NULL price DOUBLE 4 NULL lenddate DATE NOT NULL lenddays INTEGER 4 NOT NULL reader VARCHAR 20 NOT NULL overdays INTEGER 4 NOT NULL timeout INTEGER 4 NOT NULL bookID VARCHAR 20 NOT NULL readerID VARCHAR 20 NOT NULL
59、 4. 定義管理員登錄表(tbl_user),存放管理人員信息,如表4.4所示: 表4.4 系統(tǒng)管理員表 字段 數(shù)據(jù)類型 長度 能否為空 name VARCHAR 20 NOT NULL sex INTEGER 4 NULL birthday DATE NULL idcard VARCHAR 20 NULL phone VARCHAR 20 NULL status INTEGER 4 NOT NULL power INTEGER 4 NOT NULL password VARCHAR 20 NOT NULL onli
60、ne INTEGER 4 NOT NULL logintime DATE NOT NULL lasttime DATE NOT NULL userID VARCHAR 20 NOT NULL email VARCHAR 45 NULL 5. 書籍日志表(tbl_booklog),存放書籍日志信息,如表4.5所示: 表4.5 書籍日志表 字段 數(shù)據(jù)類型 長度 能否為空 Result INTEGER 4 NOT NULL bookID VARCHAR 20 NOT NULL bookname VARCHAR 45 NOT
61、 NULL ip VARCHAR 20 NOT NULL type VARCHAR 20 NOT NULL description VARCHAR 45 NOT NULL datetime DATETIME NOT NULL operator VARCHAR 20 NOT NULL operation INTEGER 4 NOT NULL 6. 用戶日志表(tbl_booklog),存放用戶日志信息,如表4.6所示: 表4.6 用戶日志表 字段 數(shù)據(jù)類型 長度 能否為空 Result INTEGER 4 NOT NULL
62、ip VARCHAR 20 NOT NULL description VARCHAR 45 NOT NULL datetime DATETIME NOT NULL operator VARCHAR 20 NOT NULL operation INTEGER 4 NOT NULL 4.4 定義所需結構體 1. 用戶數(shù)據(jù)結構體 typedef struct _userinfo_tag { QString sID;//保存用戶ID QString sName;//保存用戶名 u32 dwSex;//性別0:男,1:女 QString s
63、Pass;//保存用戶密碼 u32 dwPower;//保存用戶權限 QString sBirthDay;//出生日期 QString sPhone;//電話號碼 QString sIDCard;//身份證號 u32 dwStatus;//狀態(tài)0:正常 1:禁用 QString sLoginTime;//注冊時間 u32 dwOnline;//登陸信息標志0:未登錄 1:在線 QString sEmail; QString sLastTime;//最后登錄時間 }USERINFO, *PUSERINFO; 2. 書籍信息結構體 typedef stru
64、ct _bookinfo_tag { QString sID;//書籍ID QString sName;//書籍名字 QString sAuthor;//作者 QString sType;//圖書類型 QString sPress;//出版社 QString sPressDate;//出版日期 u32 dwPageNum;//頁數(shù) double fPrice;//價格 QString sAddDate;//入庫日期 u32 dwLendTimes;//借出次數(shù) u32 dwStatus;//圖書狀態(tài)0:未借出 1:借出 2:遺失 }BOOKINF
65、O, *PBOOKINFO; 3. 借出書籍信息結構體 typedef struct _lendinfo_tag { QString sID;//圖書ID QString sName;//圖書名字 QString sAuthor;//作者 QString sType;//圖書類型 QString sPress;//出版社 QString sPressDate;//出版日期 u32 dwPageNum;//頁數(shù) double fPrice;//圖書價格 QString sLendDate;//借出日期 u32 dwLendDays;//借出天數(shù)
66、u32 dwTimeOut;//是否逾期0:未逾期,1:逾期 u32 dwOverDays;//超期天數(shù) QString sReaderID;//讀者 QString sReader; }LENDINFO, *PLENDINFO; 4. 書籍日志信息結構體 typedef struct bookloginfo_tag { u32 dwID;//操作ID u32 dwResult;//操作結果0:成功 1:失敗 QString sOperator;//操作員 QString sBookID;//操作圖書ID QString sBookName;//操作圖書名字 u32 dwOperation;//操作1:添加圖書,2:刪除圖書,3:更新圖 書 4:借出 5:歸還 6:續(xù)借 QString sIP;//操作員IP地址 QString sType;//書籍類型 QString sDescription;//描述 QString sDateTime;//操作時間 }BOOKLOGINFO, *PBOOKLOGINFO; 5. 讀
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術比武題庫含解析
- 1 礦山應急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案