版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)報(bào)告</p><p> 題 目: 圖書(shū)出租管理系統(tǒng) </p><p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 班 級(jí):
2、 計(jì)科081 </p><p> 院 系: 計(jì)算機(jī)科學(xué)與信息學(xué)院 </p><p> 專(zhuān)業(yè)年級(jí): 計(jì)算機(jī)科學(xué)與技術(shù) 2008 級(jí) </p><p> 2010 年 12 月 31 日</p><p><b> 一、需求分析</b>&
3、lt;/p><p><b> 1.問(wèn)題描述: </b></p><p> 隨著網(wǎng)絡(luò)化時(shí)代的到來(lái),圖書(shū)出租信息的網(wǎng)絡(luò)化可以大大節(jié)約人工和時(shí)間。為此可以開(kāi)發(fā)出圖書(shū)管理系統(tǒng),廣泛的應(yīng)用于學(xué)校和工業(yè)、商業(yè)、企業(yè)、事業(yè)和行政等單位。實(shí)際上,該系統(tǒng)的實(shí)用性還是比較強(qiáng)的。</p><p><b> 2.系統(tǒng)功能描述</b></p
4、><p><b> ?。?)系統(tǒng)功能描述</b></p><p> 一個(gè)圖書(shū)出租管理系統(tǒng)應(yīng)該提供包括客戶信息管理、圖書(shū)信息管理、出版社信息管理、用戶信息管理、租還書(shū)、綜合查詢等功能。</p><p> 客戶、圖書(shū)、用戶信息的數(shù)據(jù)模塊提供增加、刪除、改變和查詢、瀏覽等基本的數(shù)據(jù)維護(hù)功能。</p><p> 綜合查詢模塊可
5、以通過(guò)用戶選擇的數(shù)據(jù)表和相應(yīng)的查詢條件來(lái)查詢相關(guān)內(nèi)容。</p><p> 客戶租還書(shū)模塊是圖書(shū)出租管理系統(tǒng)的核心功能,實(shí)現(xiàn)客戶和圖書(shū)出租的交互。</p><p><b> ?。?)功能模塊劃分</b></p><p> 圖書(shū)出租管理系統(tǒng)的數(shù)據(jù)庫(kù)功能主要體現(xiàn)在對(duì)各種信息的提供、保存、更新和查詢操作上,包括圖書(shū)信息、用戶信息、客戶信息和租借信息
6、,各個(gè)部分的數(shù)據(jù)內(nèi)容又有內(nèi)在聯(lián)系。針對(duì)該系統(tǒng)的數(shù)據(jù)特點(diǎn),可以總結(jié)出如下的需求。</p><p> A、用戶和客戶具有不同的身份。</p><p> B、用戶信息記錄用戶資料。</p><p> C、客戶信息記錄客戶的詳細(xì)信息。</p><p> D、圖書(shū)信息記錄圖書(shū)的名稱、出版社等信息。</p><p> E
7、、租借信息記錄客戶租借圖書(shū)的信息。</p><p> 圖書(shū)出租管理系統(tǒng)應(yīng)該具有客戶信息管理、圖書(shū)信息管理、租還書(shū)和綜合查詢等功能。根據(jù)系統(tǒng)功能的需求分析,我們把該系統(tǒng)的功能劃分為5個(gè)模塊。</p><p> A、客戶信息維護(hù)模塊</p><p> B、圖書(shū)信息維護(hù)模塊</p><p> C、用戶信息管理模塊</p>&l
8、t;p> D、客戶租還書(shū)管理模塊</p><p><b> E、綜合查詢模塊</b></p><p> 圖書(shū)出租管理系統(tǒng)的功能模塊如圖所示</p><p> 其中,客戶租還書(shū)管理模塊包括以下3個(gè)子模塊:</p><p><b> A、租借圖書(shū)</b></p><p
9、><b> B、歸還圖書(shū)</b></p><p><b> C、查詢租借信息</b></p><p> 客戶信息維護(hù)模塊包括以下5個(gè)子模塊:</p><p><b> A、增加客戶信息</b></p><p><b> B、刪除客戶信息</b&g
10、t;</p><p><b> C、修改客戶信息</b></p><p><b> D、查詢客戶信息</b></p><p><b> E、遍歷客戶信息</b></p><p> 該模塊圖如下圖所示:</p><p> 同理,如圖書(shū)信息管理、用
11、戶信息管理模塊也被類(lèi)似的分為增加、刪除、修改、查詢和遍歷5個(gè)模塊。</p><p><b> ?。?)系統(tǒng)流程分析</b></p><p> 圖書(shū)出租管理系統(tǒng)的開(kāi)發(fā)首先要設(shè)計(jì)一個(gè)登錄系統(tǒng),用戶只有輸入了正確的用戶名和密碼方可進(jìn)入系統(tǒng)內(nèi)部。系統(tǒng)流程圖如下圖所示</p><p><b> (4)數(shù)據(jù)流程圖</b></
12、p><p> ?。?)系統(tǒng)功能分析和需求總結(jié)后,設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)</p><p> A、圖書(shū)信息,包括圖書(shū)編號(hào)、圖書(shū)名稱、作者等數(shù)據(jù)項(xiàng)</p><p> B、租書(shū)信息,包括客戶編號(hào)、圖書(shū)編號(hào)、租借日期等數(shù)據(jù)項(xiàng)。</p><p> C、客戶信息,包括客戶編號(hào)、姓名、密碼等數(shù)據(jù)項(xiàng)。</p><p> D、用戶信
13、息,包括用戶編號(hào)、密碼、分類(lèi)等數(shù)據(jù)項(xiàng)。</p><p> 3.系統(tǒng)使用權(quán)限方面</p><p> 該信息管理系統(tǒng)的角色可以分為3類(lèi):</p><p> ?。?)普通用戶:擁有客戶信息維護(hù)、圖書(shū)信息管理以及客戶租還書(shū)管理、報(bào)表顯示和綜合查詢的權(quán)限。</p><p> (2)系統(tǒng)管理員:擁有客戶信息維護(hù)、圖書(shū)信息管理、用戶信息管理以及客戶租
14、還書(shū)管理和綜合查詢權(quán)限。但其主要功能還是用戶信息管理。</p><p> ?。?)客戶:租書(shū)和還書(shū)。</p><p> 二、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</p><p> 得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)后,就可以設(shè)計(jì)滿足需求的各種實(shí)體及相互關(guān)系,再用實(shí)體-關(guān)系圖,及E-R(Entiry-Relationship)圖將這些內(nèi)容表達(dá)出來(lái),為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。</p
15、><p> 在這個(gè)系統(tǒng)中,所存在的實(shí)體有:圖書(shū)信息實(shí)體、租書(shū)信息實(shí)體、出版社信息實(shí)體、客戶信息實(shí)體和用戶信息實(shí)體,它們之間的關(guān)系如圖所示。</p><p><b> 三、邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> 1.模式設(shè)計(jì): </b></p><p><b> ?。?)關(guān)系模式:
16、</b></p><p> Book(BookID、BookName、BookWriter、BookPublish、BookPublishDate、BookPrice、BookSort、BookAmount、BookRemain)</p><p> BorrowBook(ReaderID、BookID、BorrowDate、ReturnDate、FactReturnDate
17、)</p><p> Reader(ReaderID、ReaderName、ReaderPassword、ReaderPhoneNo、ReaderEmail、ReaderBorrowBooks)</p><p> User(UserID、UserPassword、UserSort)</p><p><b> ?。?)數(shù)字字典:</b>&l
18、t;/p><p><b> 圖書(shū)表(Book)</b></p><p> 租借信息表(BorrowBook)</p><p> 客戶表(Reader)</p><p><b> 用戶表(User)</b></p><p> 在建立完所有數(shù)據(jù)表后,要根據(jù)數(shù)據(jù)表之間的關(guān)系在
19、屬性頁(yè)中添加關(guān)系。為Book表和BorrowBook表之間添加FK_BorrowBook_Book關(guān)系,為Book表和PublishCompany之間添加FK_Book_PublishCompany關(guān)系,為Reader表和BorrowBook表之間添加FK_BorrowBook_Reader關(guān)系。同時(shí)在兩關(guān)系中實(shí)現(xiàn)表間的級(jí)聯(lián)更新和級(jí)聯(lián)刪除。</p><p><b> ?。?)子模式設(shè)計(jì):</b&g
20、t;</p><p><b> 1)視圖</b></p><p> 在圖書(shū)出租管理系統(tǒng)中,為便于瀏覽目前客戶租借圖書(shū)的信息,創(chuàng)建了一個(gè)Borrow視圖來(lái)顯示租借記錄中客戶和所租借圖書(shū)的一些詳細(xì)信息以便以后綜合瀏覽。該視圖涉及到Book表、BorrowBook表和Reader表,三表間的聯(lián)系及其各自想要顯示的字段,如下圖所示。</p><p>
21、;<b> a)三表間的聯(lián)系</b></p><p><b> b)數(shù)據(jù)字典</b></p><p><b> 2)存儲(chǔ)過(guò)程</b></p><p> 在圖書(shū)出租管理系統(tǒng)中,創(chuàng)建實(shí)現(xiàn)在客戶租還書(shū)時(shí)對(duì)客戶表中的客戶所借書(shū)目和圖書(shū)表中圖書(shū)庫(kù)存量的改變的存儲(chǔ)過(guò)程和客戶借書(shū)之前查詢客戶租借圖書(shū)數(shù)目和圖
22、書(shū)庫(kù)存量的存儲(chǔ)過(guò)程。 </p><p> 圖書(shū)出租管理系統(tǒng)中,需要?jiǎng)?chuàng)建6個(gè)存儲(chǔ)過(guò)程,分別為:</p><p> ReaderBorrowedNumber 存儲(chǔ)過(guò)程</p><p> 該存儲(chǔ)過(guò)程負(fù)責(zé)獲取客戶已經(jīng)租借的圖書(shū)數(shù)目。其目的是為了在客戶租借圖書(shū)之前判斷此客戶是否達(dá)到借書(shū)數(shù)目的上限。</p><p> BookNumber 存儲(chǔ)過(guò)
23、程</p><p> 此存儲(chǔ)過(guò)程的功能是根據(jù)輸入的圖書(shū)編號(hào)得到該圖書(shū)現(xiàn)在的庫(kù)存數(shù)量。</p><p> BorrowReader 存儲(chǔ)過(guò)程</p><p> 當(dāng)客戶租借某種圖書(shū)后,該存儲(chǔ)過(guò)程向客戶表的客戶的目前所借圖書(shū)一項(xiàng)添加1。</p><p> BorrowBook 存儲(chǔ)過(guò)程</p><p> 當(dāng)客戶租借
24、某種圖書(shū)后,該存儲(chǔ)過(guò)程向圖書(shū)表的相應(yīng)的圖書(shū)庫(kù)現(xiàn)存量中減去1。</p><p> ReturnReader存儲(chǔ)過(guò)程</p><p> 當(dāng)客戶歸還所借的圖書(shū)時(shí),該存儲(chǔ)過(guò)程在客戶表中把客戶所借的圖書(shū)數(shù)量減1。</p><p> ReturnBook存儲(chǔ)過(guò)程</p><p> 當(dāng)客戶歸還所借的圖書(shū)時(shí),該存儲(chǔ)過(guò)程在圖書(shū)表中相應(yīng)的圖書(shū)現(xiàn)存量中增加
25、1。</p><p> 四、數(shù)據(jù)庫(kù)的物理設(shè)計(jì)</p><p> 為了提高在表中搜索元組的速度,于是在各表中分別建立關(guān)于主鍵升序的索引,如下:</p><p> 1.User表的PK_User索引(以UserID的升序建立的)</p><p> 2.Reader表的PK_Reader索引(以ReaderID的升序建立的)</p&g
26、t;<p> 3.BorrowBook表的PK_BorrowBook索引(以ReaderID、BookID的升序建立的)</p><p> 4.Book表的PK_Book索引(以BookID的升序建立的)</p><p> 五、數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)現(xiàn)及運(yùn)行</p><p> 開(kāi)發(fā)工具:SQL Sever 2000</p><p>
27、;<b> 1.數(shù)據(jù)庫(kù)的創(chuàng)建</b></p><p> create database BOOKMANAGEMENT;</p><p> 2.數(shù)據(jù)表的創(chuàng)建(可同時(shí)在創(chuàng)建時(shí)定義相關(guān)的約束)</p><p><b> T-SQL語(yǔ)句:</b></p><p><b> User表:&
28、lt;/b></p><p> create table User</p><p><b> (</b></p><p> UserID char(10) primary key,</p><p> UesrPassword char(10),</p><p> UserSo
29、rt varchar(10)</p><p><b> );</b></p><p><b> Reader表:</b></p><p> create table Reader</p><p><b> (</b></p><p> Rea
30、der UserID char(6) primary key,</p><p> ReaderName varchar(20),</p><p> ReaderPassword varchar(10),</p><p> ReaderPhoneNo varchar(15),</p><p> ReaderEmail var
31、char(50),</p><p> ReaderBorrowedbooks int</p><p><b> );</b></p><p> BorrowBook表:</p><p> create table ManagerUser</p><p><b> (</
32、b></p><p> ReaderID char(6), </p><p> BookID nvarchar(50),</p><p> BorrowDate datatime,</p><p> ReturnDate datatime,</p><p> FactReturnDate da
33、tatime,</p><p> primary key(ReaderID,BookID),</p><p> foreign key(ReaderID) references from Reader(ReaderID),</p><p> foreign key(BookID ID) references from BookID (BookID ID)<
34、;/p><p><b> );</b></p><p><b> Book表:</b></p><p> create table Book</p><p><b> (</b></p><p> BookID nvarchar(50) pri
35、mary key,</p><p> BookName nvarchar(50),</p><p> BookWriter nvarchar(20),</p><p> BookPublish nvarchar(50),</p><p> BookPublishDate datetime,</p><p&g
36、t; BookPrice float,</p><p> BookSort nvarchar(50),</p><p> BookAmount int,</p><p> BookRemain int</p><p><b> );</b></p><p><b>
37、3.視圖的創(chuàng)建</b></p><p><b> Borrow視圖:</b></p><p> CREATE VIEW dbo.Borrow</p><p><b> AS</b></p><p> SELECT dbo.BorrowBook.ReaderID, dbo.Read
38、er.ReaderName, </p><p> dbo.Reader.ReaderPhoneNo, dbo.BorrowBook.BookID, dbo.Book.BookName, </p><p> dbo.Book.BookWriter, dbo.BorrowBook.BorrowDate, </p><p> dbo.BorrowBook.Retur
39、nDate</p><p> FROM dbo.Book INNER JOIN</p><p> dbo.BorrowBook ON dbo.Book.BookID = dbo.BorrowBook.BookID INNER JOIN</p><p> dbo.Reader ON dbo.BorrowBook.ReaderID = dbo.Reader.Rea
40、derID</p><p><b> 4.存儲(chǔ)過(guò)程實(shí)現(xiàn)</b></p><p> 1)ReaderBorrowedNumber 存儲(chǔ)過(guò)程</p><p> CREATE PROCEDURE dbo.StoredProcedureReaderBorrowNumber</p><p><b> (</
41、b></p><p> @ReaderID char(10),</p><p> @BorrowedNumber int OUTPUT</p><p><b> )</b></p><p><b> AS</b></p><p> select @Borrow
42、edNumber=count(*) </p><p> from BorrowBook where ReaderID=@ReaderID</p><p><b> RETURN</b></p><p><b> GO</b></p><p> 2)BookNumber 存儲(chǔ)過(guò)程</p&
43、gt;<p> CREATE PROCEDURE dbo.StoredProcedureBookNumber</p><p><b> (</b></p><p> @BookID char(10),</p><p> @BookNumber int OUTPUT</p><p><b>
44、 )</b></p><p><b> AS</b></p><p> select @BookNumber=BookRemain </p><p> from Book where BookID=@BookID</p><p><b> RETURN </b></p&g
45、t;<p><b> GO</b></p><p> 3)BorrowReader 存儲(chǔ)過(guò)程</p><p> CREATE PROCEDURE dbo.StoredProcedureBorrowReader</p><p><b> (</b></p><p> @Read
46、erID char(6)</p><p><b> )</b></p><p><b> AS</b></p><p> update Reader</p><p> set ReaderBorrowedBooks=ReaderBorrowedbooks+1</p><p
47、> where ReaderID=@ReaderID;</p><p><b> RETURN </b></p><p><b> GO</b></p><p> 4)BorrowBook 存儲(chǔ)過(guò)程</p><p> CREATE PROCEDURE dbo.StoredProced
48、ureBorrowBook</p><p><b> (</b></p><p> @BookID char(10)</p><p><b> )</b></p><p><b> AS</b></p><p> update Book
49、</p><p> set BookRemain=BookRemain-1</p><p> where BookID=@BookID;</p><p><b> RETURN </b></p><p><b> GO</b></p><p> 5)ReturnRe
50、ader存儲(chǔ)過(guò)程</p><p> CREATE PROCEDURE dbo.StoredProcedureReturnReader</p><p><b> (</b></p><p> @ReaderID char(6)</p><p><b> )</b></p><
51、;p><b> AS</b></p><p> update Reader</p><p> set ReaderBorrowedBooks=ReaderBorrowedbooks-1</p><p> where ReaderID=@ReaderID;</p><p><b> RETURN
52、 </b></p><p><b> GO</b></p><p> 6)ReturnBook存儲(chǔ)過(guò)程</p><p> CREATE PROCEDURE dbo.StoredProcedureReturnBook</p><p><b> (</b></p>&l
53、t;p> @BookID char(10)</p><p><b> )</b></p><p><b> AS</b></p><p> update Book </p><p> set BookRemain=BookRemain+1</p><p>
54、 where BookID=@BookID;</p><p><b> RETURN </b></p><p><b> GO</b></p><p> 六、界面與數(shù)據(jù)庫(kù)的連接</p><p> 代碼區(qū)中加入如下代碼:</p><p> this.sqlConnec
55、tion1 = new System.Data.SqlClient.SqlConnection();</p><p> this.sqlConnection1.ConnectionString = "server=.;database=BookManagement;Integrated Security=true;";</p><p> this.sqlConnec
56、tion1.FireInfoMessageEventOnUserErrors = false;</p><p> 七、界面的實(shí)現(xiàn)(模塊中的功能實(shí)現(xiàn))</p><p> 【開(kāi)發(fā)工具:Visual Studio 2008】</p><p> ?。ùa及可執(zhí)行文件見(jiàn)附錄)</p><p> 運(yùn)行程序后,進(jìn)入登陸界面,輸入用戶名及密碼,截圖如下
57、:</p><p><b> 代碼:</b></p><p><b> {</b></p><p> // Login 的摘要說(shuō)明。</p><p> public class LoginForm : System.Windows.Forms.Form</p><p>
58、;<b> {</b></p><p> private System.Windows.Forms.Button btnCancel;</p><p> private System.Windows.Forms.TextBox textUserID;</p><p> private System.Windows.Forms.TextB
59、ox textUserPassword;</p><p> private System.Windows.Forms.Button btnOk;</p><p> private System.Data.SqlClient.SqlConnection sqlConnection1;</p><p> private System.Windows.Forms.L
60、abel lblUser;</p><p> private System.Windows.Forms.Label lblPassword;</p><p> /// 必需的設(shè)計(jì)器變量。</p><p> private System.ComponentModel.Container components = null;</p><p>
61、; public LoginForm()</p><p><b> {</b></p><p> // Windows 窗體設(shè)計(jì)器支持所必需的</p><p> InitializeComponent();</p><p> // TODO: 在InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼
62、</p><p><b> }</b></p><p> // 清理所有正在使用的資源。</p><p> protected override void Dispose( bool disposing )</p><p><b> {</b></p><p> i
63、f( disposing )</p><p><b> {</b></p><p> if(components != null)</p><p><b> {</b></p><p> components.Dispose();</p><p><b>
64、 }</b></p><p><b> }</b></p><p> base.Dispose( disposing );</p><p><b> }</b></p><p> #region Windows 窗體設(shè)計(jì)器生成的代碼</p><p> /
65、// <summary></p><p> /// 設(shè)計(jì)器支持所需的方法- 不要使用代碼編輯器修改</p><p> /// 此方法的內(nèi)容。</p><p> /// </summary></p><p> private void InitializeComponent()</p><p&
66、gt;<b> {</b></p><p> System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm));</p><p> this.lblUser = new S
67、ystem.Windows.Forms.Label();</p><p> this.lblPassword = new System.Windows.Forms.Label();</p><p> this.btnCancel = new System.Windows.Forms.Button();</p><p> this.textUserID = ne
68、w System.Windows.Forms.TextBox();</p><p> this.textUserPassword = new System.Windows.Forms.TextBox();</p><p> this.btnOk = new System.Windows.Forms.Button();</p><p> this.sqlConn
69、ection1 = new System.Data.SqlClient.SqlConnection();</p><p> this.SuspendLayout();</p><p><b> // </b></p><p> // lblUser</p><p><b> // </b>&
70、lt;/p><p> this.lblUser.BackColor = System.Drawing.Color.Transparent;</p><p> this.lblUser.Font = new System.Drawing.Font("宋體", 12F, System.Drawing.FontStyle.Regular, System.Drawing.Gra
71、phicsUnit.Point, ((byte)(134)));</p><p> this.lblUser.Location = new System.Drawing.Point(40, 56);</p><p> this.lblUser.Name = "lblUser";</p><p> this.lblUser.Size = ne
72、w System.Drawing.Size(72, 23);</p><p> this.lblUser.TabIndex = 1;</p><p> this.lblUser.Text = "用戶名:";</p><p><b> // </b></p><p> // lblPasswor
73、d</p><p><b> // </b></p><p> this.lblPassword.BackColor = System.Drawing.Color.Transparent;</p><p> this.lblPassword.Font = new System.Drawing.Font("宋體", 12
74、F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));</p><p> this.lblPassword.Location = new System.Drawing.Point(40, 104);</p><p> this.lblPassword.Name = &
75、quot;lblPassword";</p><p> this.lblPassword.Size = new System.Drawing.Size(72, 23);</p><p> this.lblPassword.TabIndex = 2;</p><p> this.lblPassword.Text = "密 碼:";&
76、lt;/p><p><b> // </b></p><p> // btnCancel</p><p><b> // </b></p><p> this.btnCancel.BackColor = System.Drawing.Color.Transparent;</p>&
77、lt;p> this.btnCancel.Location = new System.Drawing.Point(144, 152);</p><p> this.btnCancel.Name = "btnCancel";</p><p> this.btnCancel.Size = new System.Drawing.Size(64, 24);</
78、p><p> this.btnCancel.TabIndex = 3;</p><p> this.btnCancel.Text = "重置";</p><p> this.btnCancel.UseVisualStyleBackColor = false;</p><p> this.btnCancel.Click
79、+= new System.EventHandler(this.btnCancel_Click);</p><p><b> // </b></p><p> // textUserID</p><p><b> // </b></p><p> this.textUserID.Locati
80、on = new System.Drawing.Point(112, 56);</p><p> this.textUserID.Name = "textUserID";</p><p> this.textUserID.Size = new System.Drawing.Size(96, 21);</p><p> this.textUs
81、erID.TabIndex = 0;</p><p><b> // </b></p><p> // textUserPassword</p><p><b> // </b></p><p> this.textUserPassword.Location = new System.Dra
82、wing.Point(112, 104);</p><p> this.textUserPassword.Name = "textUserPassword";</p><p> this.textUserPassword.PasswordChar = '*';</p><p> this.textUserPassword.S
83、ize = new System.Drawing.Size(96, 21);</p><p> this.textUserPassword.TabIndex = 1;</p><p><b> // </b></p><p><b> // btnOk</b></p><p><b>
84、; // </b></p><p> this.btnOk.BackColor = System.Drawing.Color.Transparent;</p><p> this.btnOk.Location = new System.Drawing.Point(40, 152);</p><p> this.btnOk.Name = "
85、;btnOk";</p><p> this.btnOk.Size = new System.Drawing.Size(64, 24);</p><p> this.btnOk.TabIndex = 6;</p><p> this.btnOk.Text = "登錄";</p><p> this.btn
86、Ok.UseVisualStyleBackColor = false;</p><p> this.btnOk.Click += new System.EventHandler(this.btnOk_Click);</p><p><b> // </b></p><p> // sqlConnection1</p><
87、;p><b> // </b></p><p> this.sqlConnection1.ConnectionString = "server=.;database=BookManagement;Integrated Security=true;";</p><p> this.sqlConnection1.FireInfoMessag
88、eEventOnUserErrors = false;</p><p><b> // </b></p><p> // LoginForm</p><p><b> // </b></p><p> this.AutoScaleBaseSize = new System.Drawing.S
89、ize(6, 14);</p><p> this.BackColor = System.Drawing.Color.Blue;</p><p> this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));</p><
90、p> this.ClientSize = new System.Drawing.Size(250, 194);</p><p> this.Controls.Add(this.btnOk);</p><p> this.Controls.Add(this.textUserPassword);</p><p> this.Controls.Add(thi
91、s.textUserID);</p><p> this.Controls.Add(this.btnCancel);</p><p> this.Controls.Add(this.lblPassword);</p><p> this.Controls.Add(this.lblUser);</p><p> this.Icon =
92、((System.Drawing.Icon)(resources.GetObject("$this.Icon")));</p><p> this.MaximizeBox = false;</p><p> this.MinimizeBox = false;</p><p> this.Name = "LoginForm"
93、;;</p><p> this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;</p><p> this.Text = "圖書(shū)出租管理系統(tǒng)";</p><p> this.Load += new System.EventHandler(this.L
94、ogin_Load);</p><p> this.ResumeLayout(false);</p><p> this.PerformLayout();</p><p><b> }</b></p><p> #endregion</p><p> static void Main()
95、 </p><p><b> {</b></p><p> Application.Run(new LoginForm());</p><p><b> }</b></p><p><b> //撤銷(xiāo)之前的輸入</b></p><p> pri
96、vate void btnCancel_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> this.textUserID.Text="";</p><p> this.textUserPassword.Text="&quo
97、t;;</p><p><b> }</b></p><p> //確認(rèn)輸入,并與數(shù)據(jù)庫(kù)建立連接,判斷是否為合法用戶,以及判斷該用戶的權(quán)限</p><p> private void btnOk_Click(object sender, System.EventArgs e)</p><p><b>
98、{</b></p><p> if(UserCheck(this.textUserID.Text,this.textUserPassword.Text)=="system")</p><p><b> {</b></p><p> this.Visible=false;</p><p&
99、gt; Form mainform=new MainForm(this.textUserID.Text,"system");</p><p> mainform.ShowDialog();</p><p> this.Close();</p><p><b> }</b></p><p>
100、else if(UserCheck(this.textUserID.Text,this.textUserPassword.Text)=="user")</p><p><b> {</b></p><p> this.Visible=false;</p><p> Form mainform=new MainForm(
101、this.textUserID.Text,"user");</p><p> mainform.ShowDialog();</p><p> this.Close();</p><p><b> }</b></p><p><b> else</b></p&
102、gt;<p><b> {</b></p><p> if(MessageBox.Show("輸入用戶密碼有誤,是否重新登陸","輸入有誤",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)</p><p><b&g
103、t; {</b></p><p> this.textUserID.Clear();</p><p> this.textUserPassword.Clear();</p><p> //this.textUserID.();</p><p><b> }</b></p><p&
104、gt;<b> else</b></p><p><b> {</b></p><p> this.Close();</p><p><b> }</b></p><p><b> }</b></p><p><b&
105、gt; }</b></p><p> //判斷是否為合法用戶</p><p> string UserCheck(string username,string userpassword)</p><p><b> {</b></p><p> string txtSql,usersort;<
106、/p><p> usersort="nobody";</p><p> txtSql = "SELECT * FROM [User]";</p><p> SqlCommand checkuser=new SqlCommand(txtSql,this.sqlConnection1);</p><p>
107、<b> try</b></p><p><b> {</b></p><p> this.sqlConnection1.Open();</p><p> SqlDataReader sqlreader=checkuser.ExecuteReader();</p><p> while(s
108、qlreader.Read())</p><p><b> {</b></p><p> if((sqlreader[0].ToString().Trim()==username)&&(sqlreader[1].ToString().Trim()==userpassword))</p><p><b> {
109、</b></p><p> usersort=sqlreader[2].ToString().Trim();</p><p> break;</p><p><b> }</b></p><p><b> }</b></p><p>
110、;<b> }</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> //Console.WriteLine(e.ToString());</p><p> MessageBox.Show(e.ToString());<
111、;/p><p><b> }</b></p><p> sqlConnection1.Close();</p><p> //return "nobody";</p><p> return usersort;</p><p><b> }</b
112、></p><p> private void Login_Load(object sender, System.EventArgs e)</p><p><b> {</b></p><p> //this.sqlConnection1.Open();</p><p> //this.sqlDataAda
113、pter1.Fill(this.dataSetUser1);</p><p><b> }</b></p><p><b> }</b></p><p> 點(diǎn)擊“登錄”后,進(jìn)入系統(tǒng)主控界面,截圖如下:</p><p><b> 代碼:</b></p>&l
114、t;p> public MainForm(string username,string usersort)</p><p><b> {</b></p><p><b> //</b></p><p> // Windows 窗體設(shè)計(jì)器支持所必需的</p><p><b>
115、 //</b></p><p> InitializeComponent();</p><p> this.userName=username;</p><p> userSort=usersort;</p><p><b> //</b></p><p> // TO
116、DO: 在InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼</p><p><b> //</b></p><p><b> }</b></p><p> /// <summary></p><p> /// 清理所有正在使用的資源。</p>&l
117、t;p> /// </summary></p><p> protected override void Dispose( bool disposing )</p><p><b> {</b></p><p> if( disposing )</p><p><b> {</
118、b></p><p> if (components != null) </p><p><b> {</b></p><p> components.Dispose();</p><p><b> }</b></p><p><b> }</
119、b></p><p> base.Dispose( disposing );</p><p><b> }</b></p><p> #region Windows 窗體設(shè)計(jì)器生成的代碼</p><p> /// <summary></p><p> /// 設(shè)計(jì)器支持
120、所需的方法- 不要使用代碼編輯器修改</p><p> /// 此方法的內(nèi)容。</p><p> /// </summary></p><p> private void InitializeComponent()</p><p><b> {</b></p><p> th
121、is.components = new System.ComponentModel.Container();</p><p> System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));</p><
122、;p> this.btnReader = new System.Windows.Forms.Button();</p><p> this.btnBook = new System.Windows.Forms.Button();</p><p> this.btnBorrow = new System.Windows.Forms.Button();</p><
123、;p> this.btnUser = new System.Windows.Forms.Button();</p><p> this.btnQuery = new System.Windows.Forms.Button();</p><p> this.btnExit = new System.Windows.Forms.Button();</p><p&
124、gt; this.tbText = new System.Windows.Forms.TextBox();</p><p> this.timer1 = new System.Windows.Forms.Timer(this.components);</p><p> this.timer2 = new System.Windows.Forms.Timer(this.componen
125、ts);</p><p> this.btninf = new System.Windows.Forms.Button();</p><p> this.SuspendLayout();</p><p><b> // </b></p><p> // btnReader</p><p>
126、<b> // </b></p><p> this.btnReader.BackColor = System.Drawing.Color.Fuchsia;</p><p> this.btnReader.FlatStyle = System.Windows.Forms.FlatStyle.Flat;</p><p> this.btn
127、Reader.ForeColor = System.Drawing.Color.White;</p><p> this.btnReader.Location = new System.Drawing.Point(318, 142);</p><p> this.btnReader.Name = "btnReader";</p><p>
128、this.btnReader.Size = new System.Drawing.Size(113, 30);</p><p> this.btnReader.TabIndex = 9;</p><p> this.btnReader.TabStop = false;</p><p> this.btnReader.Text = "客戶信息"
129、;;</p><p> this.btnReader.UseVisualStyleBackColor = false;</p><p> this.btnReader.Click += new System.EventHandler(this.btnReader_Click);</p><p><b> // </b></p>
130、<p> // btnBook</p><p><b> // </b></p><p> this.btnBook.BackColor = System.Drawing.Color.Fuchsia;</p><p> this.btnBook.FlatStyle = System.Windows.Forms.FlatSt
131、yle.Flat;</p><p> this.btnBook.ForeColor = System.Drawing.Color.White;</p><p> this.btnBook.Location = new System.Drawing.Point(318, 188);</p><p> this.btnBook.Name = "btnBo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 《數(shù)據(jù)庫(kù)原理》課程設(shè)計(jì)-圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--- 圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)—數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)原理及應(yīng)用課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)----圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)——圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)管理
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告----圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論