資源簡介
具體要解決的問題如下:
圖書管理系統設計
圖書管理系統其實是一個很復雜的信息管理系統,它包括很多分類、檢索等方面的內容。因為其復雜性,建立這樣一個系統更加能體現出運用SQL Server數據庫進行數據處理的優越性。本課題將實現一個簡化的圖書管理系統的功能。
1.系統功能設計
(1)信息錄入功能
1)添加新圖書信息。當圖書館收藏新圖書時,系統向用戶提供新圖書信息錄入功能,由于同一種書可能會有多本,因此,新圖書的信息有兩類:某一個ISBN類別的圖書信息,包括:ISBN書號、圖書類別、書名、作者、出版社、出版日期、價格、館藏數量、可借數量、圖書簡介;另一個具體到每一本書的信息,包括:ISBN書號、圖書書號、是否可借。每一個ISBN書號和同一個ISBN書號的多本書之間是一對多的關系,每一本書的圖書書號是唯一的。
2)添加讀者信息。用于登記新讀者信息。包括:借書證號、姓名、性別、身份證號、職稱、可借數量、已借數量、工作部門、聯系電話等。
3)借閱信息。用于登記讀者的借閱情況信息。包括:借書證號、借閱書號、借出日期、借閱期限、歸還日期等信息。歸還日期為空值表示該圖書未歸還。
(2)數據修改和刪除功能
1)修改和刪除圖書信息。圖書被借出時,系統需要更新圖書信息的可借數量,當可借數量為0時,表示該圖書都已被借出。當輸入的圖書信息有錯誤或需要進行必要更新時,可以修改圖書信息;當一種圖書所有館藏圖書都已損毀或遺失并且不能重新買到時,該圖書信息需要刪除。
2)修改和刪除讀者信息。當讀者的自身信息發生變動,如部門間調動或調離本單位,或違反圖書館規定需要限制其可借閱圖書數量時,需要修改讀者信息。
3)還書處理。讀者歸還圖書時,更新圖書借閱信息表中的歸還日期,讀者信息表中的已借數量及ISBN類別信息表中該圖書的可借數量。
(3)查詢和統計功能
1)圖書查詢功能。根據圖書的各種已知條件來查詢圖書的詳細信息,如書名、作者、出版社、ISBN書號等支持模糊查詢。
2)讀者信息查詢。輸入讀者的借書證號、姓名、工作部門等信息,查詢讀者的基本信息。對查詢到的每一個讀者,能夠顯示其未歸還的圖書編號和書名。
3)查詢所有到期未歸還的圖書信息。要求結果顯示圖書編號、書名、讀者姓名、借書證號碼、借出日期等信息。
4)統計指定讀者一段時間內的某類圖書或所有類別圖書借閱次數及借閱總次數。
2.數據表的創建
根據功能要求的說明創建下列數據表:
(1)圖書ISBN類別信息表
圖書ISBN類別信息表包括以下字段:
ISBN書號、圖書類別、書名、作者、出版社、出版日期、價格、館藏數量、可借數量、圖書簡介。
(2)圖書信息表
圖書信息表包括以下字段:
ISBN書號、圖書書號、是否可借。
(3)讀者信息表
讀者信息表包括以下字段:
借書證號、姓名、性別、出生年月、身份證號、職稱、可借數量、已借數量、工作部門、家庭地址、聯系電話。
(4)借閱信息表(圖書-讀者關系)
借閱信息表包括以下字段:
借書證號、借閱書號、借出日期、借閱期限、歸還日期。
3.數據庫完整性設計
設計者應認真分析和思考各個表之間的關系,合理設計和實施數據完整性原則。
1) 給每個表實施主鍵及外鍵約束。
2) 設定缺省約束。如性別。
3) 設置非空約束如圖書信息表中的書名。
4) 實施CHECK約束。如ISBN類別表中的可借數量小于館藏數量。
5) 實施規則。如身份證號碼必須為15為或18位。
4.SQL Server數據庫對象設計
1)設計一個存儲過程,以圖書編號為輸入參數,返回借閱該圖書但未歸還的讀者姓名和借書證號。
2)讀者資料查詢:設計一個有多個輸入參數的存儲過程,返回讀者的詳細信息。設計另一存儲過程并以讀者借書證號為輸入參數,返回該讀者未歸還的圖書名稱和圖書編號。
3)到期圖書查詢:設計一個視圖,返回所有逾期未歸還的圖書的編號、書名、讀者姓名等信息。
4)統計圖書借閱次數:設計一個以兩個日期作為輸入參數的存儲過程,計算這一段時間內各類別圖書被借閱的次數,返回圖書類別、借閱次數的信息。
5)加快數據檢索速度,用圖書編號為圖書信息表建立索引。
6)為讀者信息表創建一個刪除觸發器,當一個讀者調出本單位時,將此讀者的資料從讀者信息表中刪除。注意實施業務規則:有借閱書的讀者不得從讀者信息表中刪除。
7)借閱處理:為借閱信息表設計INSERT觸發器,在讀者借閱時更改ISBN類別信息表,且可借數量減1,圖書信息表是否可借列的值變為“不可借”,讀者信息表中該類讀者已借閱數加1。
8)還書處理:為借閱信息表設計UPDATE觸發器,在該表的歸還日期列被更改后,將圖書信息表的是否可借列的值變為“可借”,讀者信息表中已借數量減1及ISBN類別信息表中可借數量加1。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Data?.SqlClient;
using?System.Data;
namespace?ClassLibrary
{
????public?class?Dbconnection
????{
????????///?
????????///?SQL-server?數據庫連接
????????///?
????????///?SqlConnection?myConnection
????????public?static?SqlConnection?Dblink()
????????{
????????????string?connectionString?=?“server=(local);database?=Library;integrated?security=true“;
????????????SqlConnection?myConnection?=?new?SqlConnection(connectionString);
????????????//SqlCommand?command?=?new?SqlCommand(connectionString);
????????????return?myConnection;
????????}
????????///?
????????///?執行SQL語句
????????///?
????????///?
????????///?int?number
????????public?int?ExeInfochange(string?sql)
????????{
????????????try
????????????{
????????????????SqlConnection?myConnection?=?Dblink();
????????????????SqlCommand?myCommand?=?myConnection.CreateCommand();
????????????????myCommand.CommandText?=?sql;
????????????????myConnection.Open();
????????????????int?number?=?myCommand.ExecuteNonQuery();
????????????????myConnection.Close();
????????????????myConnection.Dispose();
????????????????return?number;
????????????}
????????????catch?(Exception)
????????????{
????????????????return?0;
????????????}
????????}
????????///?
????????///?執行?Select?語句
????????///?
????????///?
????????///?
????????public?object?ExecuteSelect(string?sql)
????????{
????????????try
????????????{
????????????????SqlConnection?myConnection?=?Dblink();
????????????????SqlCommand?myCommand?=?myConnection.CreateCommand();
????????????????myCommand.CommandText?=?sql;
????????????????myConnection.Open();
????????????????int?number?=?Convert?.ToInt32(myCommand.ExecuteScalar());
????????????????myConnection.Close();
????????????????myConnection.Dispose();
????????????????return?number;
????????????}
????????????catch?(Exception)
????????????{
????????????????return?0;
????????????}
????????}
????????///?
????????///?獲取數據集
????????///?
????????///?
????????///?DataSet?ds
????????public?DataSet?ds(string?str1)
????????{
????????????string?sql?=?str1;
????????????try
????????????{
????????????????SqlConnection?myConnection?=?Dblink();
????????????????SqlCommand?myCommand?=?myConnection.CreateCommand();
????????????????myCommand.CommandText?=?sql;
????????????????myConnection.Open();
????????????????SqlDataAdapter?myDataReader?=?new?SqlDataAdapter();
????????????????myDataReader.SelectCommand?=?myCommand;
????????????????DataSet?ds?=?new?DataSet();
????????????????myDataReader.Fill(ds);
????????????????myConnection.Close();
????????????????myConnection.Dispose();
????????????????return?ds;
????????????}
????????????catch?(Excepti
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????20480??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\bin\Debug\ClassLibrary.dll
?????文件??????19968??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\bin\Debug\ClassLibrary.pdb
?????文件????1093632??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\bin\Debug\Interop.Excel.dll
?????文件?????217088??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\bin\Debug\Interop.Microsoft.Office.Core.dll
?????文件??????57344??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\bin\Debug\Interop.VBIDE.dll
?????文件???????2972??2008-12-08?08:44??圖書管理系統(二)?1.1?(01)\ClassLibrary\ClassLibrary.csproj
?????文件???????3102??2009-01-01?20:20??圖書管理系統(二)?1.1?(01)\ClassLibrary\Dbconnection.cs
?????文件???????6937??2008-12-31?03:37??圖書管理系統(二)?1.1?(01)\ClassLibrary\Dbinfoshow.cs
?????文件????????417??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\ClassLibrary.csproj.FileList.txt
?????文件???????1257??2008-12-28?20:25??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\ClassLibrary.csproj.FileListAbsolute.txt
?????文件????????726??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\ClassLibrary.csproj.ResolveComReference.cache
?????文件??????20480??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\ClassLibrary.dll
?????文件??????19968??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\ClassLibrary.pdb
?????文件????1093632??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\Interop.Excel.dll
?????文件?????217088??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\Interop.Microsoft.Office.Core.dll
?????文件??????57344??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\Interop.VBIDE.dll
?????文件??????16384??2009-01-01?15:33??圖書管理系統(二)?1.1?(01)\ClassLibrary\obj\Debug\Refactor\ClassLibrary.dll
?????文件???????1327??2008-11-21?16:39??圖書管理系統(二)?1.1?(01)\ClassLibrary\Properties\AssemblyInfo.cs
?????文件????????513??2008-12-08?12:25??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\app.config
?????文件??????20480??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\ClassLibrary.dll
?????文件??????19968??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\ClassLibrary.pdb
?????文件????1093632??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\Interop.Excel.dll
?????文件?????217088??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\Interop.Microsoft.Office.Core.dll
?????文件??????57344??2009-01-01?20:36??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\Interop.VBIDE.dll
?????文件??????16384??2008-12-08?13:11??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\LibraryReport1.rpt
?????文件?????933888??2009-01-01?20:37??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\圖書管理系統(二).exe
?????文件????????513??2008-12-08?12:25??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\圖書管理系統(二).exe.config
?????文件?????585216??2009-01-01?20:37??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\圖書管理系統(二).pdb
?????文件???????5632??2005-12-08?14:51??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\圖書管理系統(二).vshost.exe
?????文件????????513??2008-12-08?12:25??圖書管理系統(二)?1.1?(01)\圖書管理系統(二)\bin\Debug\圖書管理系統(二).vshost.exe.config
............此處省略204個文件信息
- 上一篇:拱豬撲克牌游戲C#源碼
- 下一篇:c#賓館管理系統實現—功能全
評論
共有 條評論