1 概要設計
一個系統的功能框架和人機交互的感官框架的形成,其目的主要反映在人機交互的界面。系統界面的功能分組、頁面布局和整體樣式格局,這是用戶習慣和系統設計之間的紐帶。系統研究和用戶的目標和需求的無縫集成的設計是轉化為具體的界面設計的一個重要階段。
概要設計的主要目的是根據需求分析將系統的整體功能體系架構和各個模塊的聯系進行規划。設計出軟件的整體結構有助於系統的框架功能的開發並在前期給客戶展示一些系統涵蓋的功能范圍。數據結構的設計包括數據的分享,設計出數據結構,數據庫的生成與優化。
圖書管理系統管理子系統包含如下幾大模塊:管理員可以進行用戶管理、圖書管理、讀者管理、數據管理、數據統計,用戶可以進行圖書借閱、借閱查詢等。各個模塊相互協作共同完成企業的業務流程。系統框架如圖2-1所示。
各個模塊功能介紹:
(1) 用戶管理,包括添加普通用戶、查詢普通用戶、重置用戶密碼等。
(2) 圖書管理,包括圖書類別管理如增改查圖書類別,圖書信息管理如增刪改查圖書信息等。
(3) 讀者管理,包括讀者類別管理如增改查讀者類別,讀者信息管理如增刪改查讀者信息等。
(4) 數據統計,包括圖書查詢等。
(5) 數據管理,包括刪除借閱記錄。
2.2 詳細設計
詳細設計主要是對算法和數據結構和特定的計算機語言實現各模塊的實現初步描述。定義各個模塊直接通信的接口,與數據庫連接的統一接口和實現,為正式開發制定規范。
更改詳細設計方案,不能對概要設計方案造成影響;詳細設計階段要出幾篇文檔,包括詳細設計文檔和模塊設計方案。每個模塊的詳細設計文檔都應該形成規范並以文檔的形式公布。
詳細設計的任務包括:
(1) 確定每個模塊的算法的使用,一個合適的工具來表達算法的過程中選擇,掌握每個算法的優缺點;
(2) 為模塊內的數據結構進行設計。將需求分析、概要設計階段確定的概念性的數據類型進行確切的定義;
(3)這個階段我們將設計出系統開發中使用的大量的接口,接口的規范有助於開發人員程序書寫的條理性和一致性的約束。采用接口還有助於我們本套系統與其他遺留系統的整合與集成。對於后期的維護和功能修改,采用統一的接口的方式將會使后期的開發方便快捷。
2.2.1用戶管理詳細設計
用戶可以修改用戶密碼,管理員可以增加、修改、查看用戶的信息。
2.2.2 圖書管理詳細設計
用戶可以進行借閱書籍和歸還書籍,管理員可以增加、刪除、查詢圖書類別,增加、刪除、查詢圖書信息。
2.2.3 讀者管理詳細設計
管理員可以增加、刪除、查詢讀者類別,增加、刪除、查詢讀者信息。
2.3 數據庫設計
管理員表記錄管理員的用戶id、用戶密碼、用戶身份。如表2-1所示。
表2-1 管理員表(Manager)
字段名 |
中文含義 |
數據類型 |
允許空 |
約束條件 |
managerid |
用戶id |
char(20) |
N |
主鍵 |
managerPassword |
用戶密碼 |
char(12) |
N |
無 |
mIdentity |
用戶身份 |
bit |
N |
無 |
讀者表記錄讀者的基本信息,包括讀者id、讀者姓名、id、電話、數字。如表2-2所示。
表2-2 讀者表(Reader)
字段名 |
中文含義 |
數據類型 |
允許空 |
約束條件 |
Rid |
讀者id |
char(19) |
N |
主鍵 |
Rname |
讀者姓名 |
nchar(10) |
N |
無 |
Phone |
電話 |
char(11) |
Y |
無 |
Rblnum |
數字 |
Int |
N |
無 |
讀書信息表用於記錄供應商的基本信息,包括編號、姓名、Id、作者、地址、時間、類型、數量、借出數量、價錢。如表2-3所示。
表2-3 讀書信息表(company)
字段名 |
中文含義 |
數據類型 |
允許空 |
約束條件 |
ISBN |
編號 |
char(25) |
N |
主鍵 |
BookName |
姓名 |
nchar(30) |
N |
無 |
bCategoryid |
Id |
Int |
N |
無 |
author |
作者 |
nchar(20) |
N |
無 |
Publisher |
地址 |
nchar(30) |
N |
無 |
Publishertime |
時間 |
Int |
N |
無 |
Bookstate |
類型 |
Bit |
N |
無 |
Num |
數量 |
Int |
N |
無 |
Lendnum |
借出數量 |
Int |
N |
無 |
Price |
價錢 |
float |
N |
無 |
借書表用於記錄商品進貨的到貨信息,包括身份證號、編號、借閱時間、還書日期、金額、是否歸還、是否為新。如表2-4所示。
表2-4借書表(PurchasedMaterialList)
字段名 |
中文含義 |
數據類型 |
允許空 |
約束條件 |
Rid |
身份證號 |
Char(19) |
N |
主鍵/外鍵 |
ISBN |
編號 |
Char(25) |
N |
主鍵/外鍵 |
LendTime |
借閱時間 |
datetime |
N |
無 |
BookTime |
還書日期 |
datetime |
N |
無 |
Money |
金額 |
fLoat |
N |
無 |
Isback |
是否歸還 |
bit |
N |
無 |
Renew |
是否為新 |
Bit |
N |
無 |
圖書類別表用於記錄售貨信息,包括id、類別名。如表2-5所示。
表2-5 圖書類別表(SaledMaterialList)
字段名 |
中文含義 |
數據類型 |
允許空 |
約束條件 |
bCategoryid |
Id |
Int |
N |
主鍵/外鍵 |
bCategoryname |
類別名 |
nchar(16) |
N |
無 |
讀者借閱表用於儲存登陸用戶的信息,包括Id、用戶名、借閱數量、借閱天數。如表2-6所示。
表2-6 讀者借閱表(userLogin)
字段名 |
中文含義 |
數據類型 |
允許空 |
約束條件 |
Rcategoryid |
Id |
Int |
N |
主鍵 |
Rcategoryname |
用戶名 |
char(10) |
N |
無 |
Rbnum |
借閱數量 |
Int |
N |
無 |
Rday |
借閱天數 |
Int |
N |
無 |
2.4 界面設計(界面設計采用WinForm)
WinForm自身包含了大量的窗體控件,當然,設計者也可以通過給定的接口來設計自己的窗體控件。本着簡潔方便的原則,通過使用微軟提供的窗體控件使得程序風格統一並且與用戶日常接觸的習慣一致。通過為按鈕等控件賦予一些聲音和顏色特性,給用戶更好的反饋效果。
2.4.1登錄頁面
系統登錄頁面分為兩個部分,一個是管理員登錄,一個是普通用戶登錄。