
摘要
隨著各圖書館的圖書數(shù)量不斷增多和圖書館規(guī)模的不斷擴大,管理這些龐大的體系非
常困難的,因為圖書的情況是隨時改變的,因此必需對圖書進行動態(tài)的管理,而這對于一
個管理人員來說是一件比較復雜的事情。
本文介紹了管理信息系統(tǒng)的基本設計方法,詳細闡述了整個應用系統(tǒng)的設計思路,并
對各部分設計周期進行了詳盡的分析,最終達成了一個完整的設計方案;本文的系統(tǒng)是一
個圖書管理系統(tǒng),包括管理員界面和密碼登錄界面然后進入主菜單,主菜單包括了圖書管
理,讀者管理,圖書借閱管理等幾個大的模塊。該系統(tǒng)為單機版,相應的硬件設備也分為
單機型的方案。適用于各個圖書管理的信息管理。系統(tǒng)基于好用、易用、美觀的原則為用
戶定制了一套統(tǒng)一的人機界面。系統(tǒng)各模塊按功能主要分為兩大類:編輯類完成以編輯為
主的功能,如增加、刪除、修改等;瀏覽類完成以再現(xiàn)為主的功能,如查詢、瀏覽等。
關鍵詞:VisualStudio2005;圖書管理系統(tǒng);數(shù)據(jù)庫
Abstract
Increasunceasinglyalongwithvariouslibraries'books'quantitywiththe
libraryscaleunceasingexpansion,managesthehugesystemstobedifficult,
becauthebookssituationismomentarilychanges,mustthereforetothebookscarry
onthedynamicmanagement,butthisregardinganadministrativepersonnelisaquite
complexmatter.
Thisarticleintroducedmanagementinformationsystem'sbasicdesignmethod,
elaboratedindetailtheentireapplicationsystem'sdesignmentality,andhascarriedon
theexhaustiveanalysistovariouspartofdesigncycle,achievedacompletedesign
proposalfinally;Thisarticlesystemisabooksmanagementsystemmanagement
system,thenenteredthemainmenuincludingthemanagercontactsurfaceandthe
passworddebarkationcontactsurface,themainmenuincludesthebooksmanagement,
thereaderhasmanaged,booksborrowingmanagementandsoonveralbigsubjects.
Thissystemisthesingleplaneversion,thecorrespondinghardwareequipmentalso
dividesintosingleplane'ableineachbooksmanagementinformation
tembadoneasytou,YiYong,theartisticprinciplehashad
variousmodulesmainlydivideintotwobroadheadingsaccordingtothefunction:The
editorclasscompleteditsthefunctionprimarily,likeincreas,thedeletion,the
revisionandsoon;Thebrowsingclasscompletesreappearsthefunctionprimarily,
likeinquiry,browsingandsoon.
Keywords:VisualStudio2005,Booksmanagementsystemmanagementsystem,
databa
目錄
摘要..............................................................................................................................1
第1章緒論..........................................................................................................5
1.1畢業(yè)設計主要內(nèi)容、功能及技術指標...........................................................5
1.2目前圖書管理系統(tǒng)存在的問題.......................................................................5
1.3課題意義...........................................................................................................6
1.4論文的工作和安排...........................................................................................6
第2章可行性分析....................................................................................................8
2.1問題描述..........................................................................................................8
2.2可行性分析研究...............................................................................................9
2.2.1操作可行性.............................................................................................9
2.2.2技術可行性..........................................................................................10
2.2.3經(jīng)濟可行性..........................................................................................10
2.3結論意見.........................................................................................................10
第3章系統(tǒng)總體設計................................................................................................11
3.1系統(tǒng)設計思想.................................................................................................11
3.2系統(tǒng)功能模塊圖.............................................................................................12
3.3系統(tǒng)流程圖.....................................................................................................13
3.4程序流程圖....................................................................................................14
3.5功能模塊設計.................................................................................................18
3.6程序接口描述................................................................................................18
3.6.1外部接口..............................................................................................18
3.6.2內(nèi)部接口..............................................................................................18
3.7數(shù)據(jù)庫的設計................................................................................................18
3.7.1系統(tǒng)設計局部ER模式....................................................................19
3.7.2.系統(tǒng)設計全局ER模式.......................................................................21
3.7.3數(shù)據(jù)庫邏輯設計...................................................................................22
3.8系統(tǒng)主要數(shù)據(jù)字典.........................................................................................24
第4章程序設計與編碼..........................................................................................25
4.1數(shù)據(jù)庫連接.....................................................................................................25
4.2系統(tǒng)管理設計.................................................................................................26
4.3圖書管理設計.................................................................................................30
4.4查詢管理設計.................................................................................................39
4.5用戶管理設計................................................................................................43
4.6讀者管理設計................................................................................................46
4.7借還管理設計.................................................................................................54
第5章軟件測試........................................................................................................62
5.1軟件測試的方法與步驟................................................................................62
5.2測試用例運行過程及測試結果分析............................................................63
5.2.1模塊測試...............................................................................................63
5.2.2集成測試...............................................................................................64
5.2.3驗收測試..............................................................................................65
第6章總結................................................................................................................66
參考文獻......................................................................................................................67
致謝..........................................................................................................................68
第1章緒論
1.1畢業(yè)設計主要內(nèi)容、功能及技術指標
圖書館管理系統(tǒng)的總體目標是:在計算機網(wǎng)絡,數(shù)據(jù)庫和先進的開發(fā)平臺上,
利用現(xiàn)有的軟件,配置一定的硬件,分析和設計一個具有開放體系結構的、易擴
充的、易維護的、具有良好人機交互界面的圖書館管理系統(tǒng),為決策者和管理者
提供充足的信息、快捷的查詢和有效的管理方式,減少不必要的損失和浪費,提
高圖書館管理的效率。
1.根據(jù)可行性研究的結果和客戶的要求,分析現(xiàn)有情況及問題,采用C/S
或B/S結構,將圖書館管理系統(tǒng)劃分為:新書訂購管理、圖書管理、讀者管理、
借閱管理、信息查詢等;
2.整個系統(tǒng)可以選擇采用2層C/S結構或3層B/S結構。數(shù)據(jù)庫系統(tǒng)可采
用Access,SQLServer2005等,前臺開發(fā)工具可以選用PowerBuilder或Visual
Studio、ASP或JSP等;
3.圖書館管理系統(tǒng)所涉及的信息有圖書、讀者、借閱、圖書管理員等方面,
可通過系統(tǒng)流程圖、業(yè)務流程圖、數(shù)據(jù)流程圖和數(shù)據(jù)字典對其進行描述,在分析
和設計的基礎上,提出系統(tǒng)的總體框架并進行詳細設計,為系統(tǒng)實現(xiàn)做準備。
1.2目前圖書管理系統(tǒng)存在的問題
1)檢索速度慢、效率低
因為圖書館的藏書種類多、數(shù)量多,將藏書準確地分門別類,快速檢索,手
工進行非常困難往往是終于查到了二偉的信息,館中沒有此書或已被別人借走。
圖書館的規(guī)模越大,這個問題越突出。
2)借書、還書工作量大
借書、還書頻率越大,說明圖書館的作用越大,然而隨之而來的大量的借書、
還書登記、實存圖書的更新以及借出圖書超期、遺失等的處理,其工作量之大,
往往是人工操作所難以勝任的。而且經(jīng)常會出現(xiàn)這樣那樣的差錯。
3)圖書統(tǒng)計工作難、藏書更新不能及時完成。
圖書館的圖書應根據(jù)科學技術的發(fā)展和教學工作的需要及時添加和更新,然
而由于藏書數(shù)量及圖書種類越來越多,加上自然損耗,人為破壞,使圖書的統(tǒng)計
工作難以及時完成,藏書的更新也就很難有針對性地進行,藏書的知識結構得不
到良好地控制。
我校也是一所發(fā)展中的高校,近兒年的發(fā)展速度很快,圖書館的規(guī)模和藏書
數(shù)量也不斷的擴大,為了解決海量圖書的管理問題,改變傳統(tǒng)的管理方式也是迫
在眉睫了。
1.3課題意義
隨著計算機的廣泛應用,其逐步成為現(xiàn)代化的標志。圖書館或者一些企業(yè)內(nèi)
部,甚至是書店,在正常運行過程中總是面對大量的讀者信息,書籍信息以及兩
者相互作用產(chǎn)生的借書信息、還書信息。因此需要對讀者資源、書籍資源、借書
信息、還書信息進行管理,及時了解各個環(huán)節(jié)中信息的變更,要對因此而產(chǎn)生的
單據(jù)進行及時的處理,為了提高圖書館或者企業(yè)內(nèi)部對圖書存銷的自動化的管
理,能夠更快速的滿足讀者的要求,提高各種工作的效率,現(xiàn)對其設計相應的系
統(tǒng),以達到上述的目的。
圖書管理系統(tǒng)的主要功能是實現(xiàn)圖書館圖書借閱和歸還的管理的自動化。圍
繞這一主要功能,本系統(tǒng)涉及到以下核心功能:借閱管理,歸還管理。除了這些
核心功能外,還包括一些基本和輔助功能,它們是:用戶管理、圖書管理、統(tǒng)計
查詢。
1.4論文的工作和安排
本次設計的目標是,開發(fā)一個圖書館借閱管理系統(tǒng)。借助該系統(tǒng),管理員通
過快捷可靠的數(shù)據(jù)庫管理,方便的管理圖書館的信息資料,規(guī)范化的管理讀者用
戶,設定不同用戶權限,方便讀者的使用,最終達到提高圖書館資源利用效率的
目的。
論文設計和實現(xiàn)了圖書借閱管理系統(tǒng)系統(tǒng),可以根據(jù)用戶的不同權限,對圖
書館的的各種信息進行添加、刪除、修改或查詢操作。論文分為六個部分:
第一章即本章緒論,簡述圖書館借閱管理系統(tǒng)這個課題的背景情況以及開發(fā)
本系統(tǒng)的意義。
第二章為可行性分析,本章中明確了系統(tǒng)需要實現(xiàn)的功能,分析了系統(tǒng)的可
行性,并介紹根據(jù)系統(tǒng)的需求選擇的開發(fā)工具和技術的概況。
第三章是總體設計,詳細描述了本系統(tǒng)中數(shù)據(jù)庫的設計情況,并給出了系統(tǒng)
總體界面的設計方案。
第四章為程序設計與編碼各主要功能模塊的實現(xiàn)方法和部分關鍵代碼,同時
提供了個主要界面運行的參考圖片,以更直觀了解系統(tǒng)的實現(xiàn)情況。
第五章是軟件測試,測試系統(tǒng)功能實現(xiàn)并對測試結果進行記錄分析
第六章為總結,為此次畢業(yè)設計做一個總結,總結所獲得的經(jīng)驗和體會。
第2章可行性分析
2.1問題描述
圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫
的建立和維護以及前臺應用程序的開發(fā)兩個方面,一方面要求建立起數(shù)據(jù)一致性
和完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫;另一方面則要求應用程序具有功能完備,
已使用等特點。
原來的圖書管理處理中心進行信息管理主要是基于手工處理,信息處理工作
量大,容易出錯,缺乏系統(tǒng)、規(guī)范的信息管理手段。現(xiàn)在準備建立的圖書管理系
統(tǒng),要對圖書館的圖書管理、讀者管理、圖書借閱管理等日常管理工作實行計算
機統(tǒng)一管理,以提高工作效率和管理水平。
圖書館作為提供學習的場所,不僅要求便于管理,而且要求給讀者和借閱者
提供方便快速的查找、借閱和登記手續(xù)。
圖書館需要統(tǒng)一圖書管理,對各類書籍的借閱情況和圖書館現(xiàn)有藏書的數(shù)
量、種類要及時掌握,這就要求它具有很強的時效性。既要減少舊書和大量內(nèi)容
重復的圖書占用有限空間而又要盡量做到圖書種類的齊全,作為圖書館的管理人
員需要及時地對圖書進行上架和注銷處理。
圖書管理涉及圖書信息、系統(tǒng)用戶信息、讀者信息、圖書借閱者信息等多種
數(shù)據(jù)管理。從管理的角度可將數(shù)據(jù)管理分為3類:圖書信息管理、系統(tǒng)用戶管理、
圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建
立和維護以及前臺應用程序的開發(fā)兩個方面,一方面要求建立起數(shù)據(jù)一致性和完
整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫;另一方面則要求應用程序具有功能完備,已使
用等特點。
原來的圖書管理處理中心進行信息管理主要是基于手工處理,信息處理工作
量大,容易出錯,缺乏系統(tǒng)、規(guī)范的信息管理手段。現(xiàn)在準備建立的圖書管理系
統(tǒng),要對圖書館的圖書管理、讀者管理、圖書借閱管理等日常管理工作實行計算
機統(tǒng)一管理,以提高工作效率和管理水平。
圖書館作為提供學習的場所,不僅要求便于管理,而且要求給讀者和借閱者
提供方便快速的查找、借閱和登記手續(xù)。
圖書館需要統(tǒng)一圖書管理,對各類書籍的借閱情況和圖書館現(xiàn)有藏書的數(shù)
量、種類要及時掌握,這就要求它具有很強的時效性。既要減少舊書和大量內(nèi)容
重復的圖書占用有限空間而又要盡量做到圖書種類的齊全,作為圖書館的管理人
員需要及時地對圖書進行上架和注銷處理。
圖書管理涉及圖書信息、系統(tǒng)用戶信息、讀者信息、圖書借閱者信息等多種
數(shù)據(jù)管理。從管理的角度可將數(shù)據(jù)管理分為3類:圖書信息管理、系統(tǒng)用戶管理、
讀者數(shù)據(jù)管理。圖書信息管理包括圖書征訂、借還、查詢等操作,系統(tǒng)用戶管理
包括用戶類別和用戶數(shù)量管理,讀者數(shù)據(jù)管理包括讀者類別管理和個人數(shù)據(jù)的錄
入、修改和刪除。
讀者數(shù)據(jù)管理。圖書信息管理包括圖書征訂、借還、查詢等操作,系統(tǒng)用戶
管理包括用戶類別和用戶數(shù)量管理,讀者數(shù)據(jù)管理包括讀者類別管理和個人數(shù)據(jù)
的錄入、修改和刪除。
2.2可行性分析研究
當接受一個軟件開發(fā)任務,就進入軟件生命的第一個階段,即進行可行性的
研究。并不是所有問題具有簡單的解決辦法,許多問題不能在預定的規(guī)模之內(nèi)解
決。因此通過可行性的研究分析可以知道問題。
有無可行性的解決方法,進而避免人力、物力和才力的浪費。在現(xiàn)行系統(tǒng)初
步調(diào)查的基礎上就可以提出新系統(tǒng)目標,即新系統(tǒng)建立后所要求達到的運行指
標,這是系統(tǒng)開發(fā)和評價的依據(jù)。系統(tǒng)目標應充分體現(xiàn),直接為小商品銷售管理
系統(tǒng)服務,并且,程序可以分期分批實現(xiàn)。但是,需要指出的是,系統(tǒng)目標是不
可能在總體規(guī)劃階段就提得非常具體,它還將在開發(fā)過程中逐步明確和定量化。
以達到更加出色的程序系統(tǒng)。可是,目標的提法不盡相同,例如:
1.提高圖書管理效率,減輕勞動強度;
2.提高信息處理速度和準確性;
3.為管理者提供更方便、科學的服務項目。
2.2.1操作可行性
本系統(tǒng)是基于B/S模式的管理系統(tǒng),操作過程很簡單,是完全可以實現(xiàn)的。
對操作系統(tǒng)的要求是WindowXP7系統(tǒng),還要有MicrosoftVisualStudio2005和
Access2003,在這之前還需要安裝meworkSDKv2.0,這些軟
件都可以從網(wǎng)上或其他途徑達到要求。
2.2.2技術可行性
在MicrosoftVisualStudio2005中使用的是C#語言,控件的代碼可以直接拖
動自動生成,在此基礎之上對其進行屬性設置。對數(shù)據(jù)庫的操作是使用SQL語
句進行更改,為了使界面更加美觀,需用PS對圖片進行處理,雖然存在困難,
但經(jīng)過不斷的學習可以實現(xiàn)。所以不存在技術上無法解決的問題。
2.2.3經(jīng)濟可行性
該系統(tǒng)適用于技術工程學院,整體數(shù)據(jù)容量不大,管理的用戶根據(jù)該學校的
學生人數(shù)而決定,而且對數(shù)據(jù)的存儲量不大,對以往的借書、還書記錄沒有備份
的功能,更節(jié)省了開銷,沒有經(jīng)濟方面需要多加關注的問題。
2.3結論意見
經(jīng)過認真地可行性研究,系統(tǒng)基本上做到了在技術、經(jīng)濟、運行、法律上的
可行。因此,相信在按照計劃上實施的前提下,全系統(tǒng)的設計將會按時、高質(zhì)量
完成。所以,系統(tǒng)研制和開發(fā)是可以馬上進行的。
第3章系統(tǒng)總體設計
3.1系統(tǒng)設計思想
圖書館管理系統(tǒng)主要應具有以下功能:圖書借閱者的需求是查詢圖書館所存
的圖書、個人借閱情況及個人信息;圖書館工作人員對圖書借閱者的借閱及還書
要求進行操作,同時形成借書和還書報表給借閱者查看和確認;圖書館管理人員
的功能最為復雜,包括對工作人員、圖書借閱者、圖書進行管理和維護,以及對
系統(tǒng)狀態(tài)的查看、維護等。
圖書借閱者可以直接查看圖書管的圖書情況,如果圖書借閱者根據(jù)本人借書
證號和密碼登陸系統(tǒng),還可以進行本人借書情況的查詢和部分個人信息的維護。
一般情況下,圖書借閱者只可以查詢和維護本人的借書情況和個人信息,若要查
詢和維護其他借閱者的結束情況和個人信息,就要知道其他圖書借閱者的借書證
號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,
還保護了圖書借閱者的個人隱私。
圖書館工作人員有修改圖書借閱者借書和還書記錄的權限,所以需要對圖書
館工作人員登錄本模塊進行更多的考慮。在此模塊中,圖書館工作人員可以為圖
書借閱者添加借書記錄或者還書記錄,并打印生成相應的報表給用戶查看和確
認。
圖書館管理人員的信息量很大,數(shù)據(jù)安全性和保密性要求高。本功能實現(xiàn)對
圖書信息、借閱信息、總體借閱信息的管理和統(tǒng)計、對工作人員信息和管理人員
信息的查看和維護。圖書館管理人員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計
圖書的基本信息;瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書借閱者的基本信息;
瀏覽、查詢、統(tǒng)計圖書館的借閱信息,但不能添加、刪除和修改借閱信息。這部
分功能應該由圖書館工作人員執(zhí)行。
具體功能如下
設計不同用戶的操作權限和登陸方式;
對所有用戶開放的圖書查詢;
借閱者維護部分個人信息;
借閱者查看個人借閱信息;
維護借閱者個人密碼;
根據(jù)借閱情況對數(shù)據(jù)庫進行操作并生成報表;
根據(jù)還書情況對數(shù)據(jù)庫進行操作并生成報表;
查詢及統(tǒng)計各種信息;
維護圖書信息;
維護工作人員和管理人員信息;
維護借閱者信息。
3.2系統(tǒng)功能模塊圖
圖3.1系統(tǒng)功能模塊圖
圖
書
館
管
理
信
息
系
統(tǒng)
圖書館管理人員
系統(tǒng)管理
圖書管理
讀者管理
添加用戶
圖書分類
圖書添加
借閱者分類
借閱者添加
修改權限
借書
還書
圖書查詢
借閱查詢
圖書館工作人員
借閱者查詢模
用戶管理
修改密碼
刪除用戶
3.3系統(tǒng)流程圖
是
是
添
加
系
統(tǒng)
管
理
刪
除
圖
書
管
理
添
加
刪
除
是
是
圖3.2系統(tǒng)數(shù)據(jù)流圖
成功
借
閱
記
錄
查
詢
圖
書
書
目
查
詢
圖書證號
或書名
或作者
讀
者
管
理
添
加
刪
除
是
是
借
書
還
書
輸
入
圖
書
編
號
輸
入
借
書
證
號
輸
入
借
書
證
號
輸
入
圖
書
編
號
是
否
超
期
罰
款
管
理
人
員
借
閱
者
用戶登錄
工
作
人
員
3.4程序流程圖
依據(jù)軟件工程的基本原理,詳細設計階段的根本任務是確定應該怎樣具體實
現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設計工作,應該得出對目標系統(tǒng)的
精確描述,從而在系統(tǒng)實現(xiàn)階段可以把這個描述直接翻譯成用某種程序設計語言
書寫的程序。具體來說就是把經(jīng)過總體設計得到的各個模塊詳細的加以描述。
下面給出軟件系統(tǒng)的程序流程圖。如圖3.3、3.4、3.5所示。
圖3.3管理員登錄程序流程圖
開始
管理員登錄
是否合法
選擇
系統(tǒng)管理圖書管理讀者管理借還管理查詢操作用戶登錄
添
加
用
戶
瀏
覽
用
戶
圖
書
分
類
瀏
覽
圖
書
瀏
覽
身
份
瀏
覽
讀
者
借
書
還
書
圖
書
查
詢
借
閱
查
詢
修
改
密
碼
重
新
登
錄
顯
示
借
閱
信
息
輸
入
圖
書
信
息
輸
入
還
書
信
息
輸
入
借
書
信
息
顯
示
讀
者
信
息
顯
示
身
份
信
息
顯
示
圖
書
信
息
顯
示
圖
書
類
型
顯
示
用
戶
列
表
輸
入
用
戶
信
息
添
加
成
功
借
出
圖
書
成
功
還
書
查
詢
成
功
輸
入
信
息
修
改
成
功
管理員注銷
結束
否
是
退
出
確
定
圖3.4讀者登錄程序流程圖
否
選擇
開始
讀者登陸
是否合法
是
退
出
確定
用戶登錄
結束
重新登錄
修改密碼
輸入信息
修改成功
圖書查詢
查詢記錄
圖書查詢
退
出
繼續(xù)
清
空
顯示記錄
查詢操作
顯示個
人信息
和借閱
借閱查詢
讀者注銷
圖3.5工作人員登陸程序流程圖
退
出
結束
工作人員注銷
是否合法
工作人員登陸
否
是
選擇
開始
輸入還書信息
輸入借書信息
還書
借還管理
借書
借出圖書
成功還書
重新登錄
確定
修改成功
輸入信息
修改密碼
用戶登錄
3.5功能模塊設計
通過對用戶需求和系統(tǒng)設計思想的分析,可以得出該圖書館管理信息系統(tǒng)大
致可以分為幾個大模塊:圖書管理人員維護管理模塊、圖書館工作人員借還管理
模塊、借閱者查詢模塊。
1圖書管理人員維護管理模塊
系統(tǒng)管理模塊:系統(tǒng)用戶身份的分類、錄入、修改和刪除;
圖書管理模塊:圖書數(shù)據(jù)的錄入、修改、刪除和校審等。
讀者管理模塊:借閱者個人數(shù)據(jù)的錄入。修改和刪除等。
2圖書館工作人員借還管理模塊
包括圖書的借閱、續(xù)借、返還;圖書借閱數(shù)據(jù)的修改和刪除;圖書書目查詢
等。
3借閱者查詢模塊
圖書書目查詢;借閱情況查詢。
3.6程序接口描述
3.6.1外部接口
按Windows應用軟件用戶界面的規(guī)范來設計,使用以對話框為主的用戶界
面,便于用戶使用。
3.6.2內(nèi)部接口
模塊間接口采用數(shù)據(jù)耦合方式,通過參數(shù)表傳送數(shù)據(jù),交換信息。
3.7數(shù)據(jù)庫的設計
在數(shù)據(jù)庫設計階段,設計人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)
生一個反映用戶觀點的概念模式。然后把概念模式轉換成邏輯模式。利用ER方
法進行數(shù)據(jù)庫的概念設計,可以分成3步進行:首先設計局部ER模式,然后把
各局部ER模式綜合成一個全局模式,最后對全局ER模式進行優(yōu)化,得到最終
的模式,即概念模式。
3.7.1系統(tǒng)設計局部ER模式
實體和屬性的定義:
圖書(編號,名稱,作者,出版社,出版日期,備注,價格,數(shù)量,類別)
圖3.6圖書的ER圖
借出圖書(借書證號,圖書編號,借出時間)
圖3.7借出圖書的ER圖
借閱者(借書證號,姓名,性別,身份證,電話,密碼,罰款,身份編號)
圖3.8借閱者的ER圖
出版
日期
編號
出版社
名稱
作者
價格
數(shù)量
類別
備注
圖書
借出圖書
借書證號
圖書編號
借出時間
電話
身份證
借書
證號
身份
證號
性別
姓名
密碼
罰款
借閱者
身份(身份編號,身份描述,最大借閱數(shù),最長借閱時間)
圖3.9登陸人員身份的ER圖
圖書類別(圖書類別編號,類別描述)
圖3.10圖書類別的ER圖
ER模式的“聯(lián)系”用于刻畫實體之間的關聯(lián)。一種完整的方式是對局部結構
中任意兩個實體類型,依據(jù)需求分析的結果,考察局部結構中任意兩個實體類型
之間是否存在聯(lián)系。若有聯(lián)系,則進一步確定是1:N,M:N,還是1:1。還要考
慮一個實體類型內(nèi)部是否存在聯(lián)系,兩個實體類型之間是否存在聯(lián)系,多個實體
類型之間是否存在聯(lián)系等。可以總結出如下規(guī)律:
一個借閱者(用戶)只能具有一種身份,而一個身份可以被多個借閱者所具
有;
一本圖書只能屬于一種圖書類型(類別),而一種圖書類型可以包含多本圖
書;
一個用戶可以節(jié)約多本不同的圖書,而一本圖書也可以被多個不同的用戶所
借閱。
身份
身份編號
身份描述
最大借閱
數(shù)
最長借閱
時間
圖書類別
類別描述
圖書類別編號
3.7.2.系統(tǒng)設計全局ER模式
所有局部ER模式都涉及好了以后,接下來就是把他們綜合成單一的全局概
念結構。全局概念結構不僅要直接所有局部ER模式,而且必須合理地表示一個
完整,一致的數(shù)據(jù)庫概念結構。為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應該進一步依據(jù)
處理要求外,還應滿足一下條件:
實體類型的個數(shù)要盡可能的少;
實體類型所含屬性個數(shù)盡可能的少;
實體類型之間聯(lián)系無冗余。
“圖書借閱管理系統(tǒng)”的全局ER模式如下圖4.7所示。
出版
日期
編號
出版社
名稱
作者
價格
數(shù)量
類別
備注
圖書
借閱者
工作人員
管理人員
維護
借還
操作
電話
身份證
借書
證號
身份
證號
性別
姓名
密碼
罰款
圖3.11全局ER圖
3.7.3數(shù)據(jù)庫邏輯設計
根據(jù)數(shù)據(jù)庫的概念設計,得出數(shù)據(jù)庫的邏輯設計。系統(tǒng)數(shù)據(jù)庫名稱為
libraryMIS,數(shù)據(jù)庫中包括:①圖書信息表(book);②借出圖書信息表(bookOut);
③借閱者信息表(person):④身份信息表(identity);⑤圖書類別信息表(type);
⑥管理員信息表(manager)。下面列出各個表的數(shù)據(jù)結構:
表3.1圖書信息表(book)的數(shù)據(jù)結構
表3.2借出圖書信息表(bookOut)的數(shù)據(jù)結構
表3.3身份信息表(identity)的數(shù)據(jù)結構
字段名類型描述
BID文本圖書編號(主鍵)
BName文本圖書名
BWriter文本作者
BPublish文本出版社
BDate日期/時間出版日期
BPrice文本價格
BNum數(shù)字數(shù)量
type文本類型
BRemark文本備注
字段名類型描述
OID自動編號借出圖書ID(主鍵)
BID文本圖書編號
PID文本借書證編號
ODate日期/時間借出日期
字段名類型描述
identity文本身份(主鍵)
longTime數(shù)字最長借閱時間
bigNum數(shù)字最大借閱數(shù)量
表3.4借閱者信息表(person)的數(shù)據(jù)結構
表3.5圖書類別信息表(type)的數(shù)據(jù)結構
表4.6管理員信息表(manager)的數(shù)據(jù)結構
字段名類型描述
PID文本借書證編號(主鍵)
PName文本姓名
PSex文本性別
PPhone文本電話
PN文本身份證
PCode文本密碼
PMoney數(shù)字罰款
identity文本身份
PRemark文本備注
sys是/否權限
字段名類型描述
TID自動編號類別ID
Type文本類別(主鍵)
tRemark文本類別描述
字段名類型描述
MName文本名稱(主鍵)
MCode文本密碼
manage是/否管理人員
work是/否工作人員
query是/否查詢
3.8系統(tǒng)主要數(shù)據(jù)字典
圖書:圖書表結構
別名:
描述:記錄所有圖書的基本情況
定義:圖書信息表=圖書編號+圖書名
+作者+出版社+出版日期+價格+數(shù)
量+類型+備注
位置:數(shù)據(jù)庫
身份信息:身份信息表結構
別名:
描述:圖書借閱者的身份類型
定義:身份信息=身份類型+最長借閱
時間+最大借閱數(shù)量
位置:數(shù)據(jù)庫
讀者:借閱者信息表結構
別名:
描述:記錄所有讀者信息
定義:讀者=借書證編號+姓名+性別+
電話+身份證+密碼+罰款+身份+備
注+權限
位置:數(shù)據(jù)庫
借書:借出圖書結構
別名:圖書借閱
描述:學生借閱信息
定義:借出圖書=借出圖書ID+圖書
編號+借書證編號+借出日期
位置:數(shù)據(jù)庫
管理員:管理員信息表結構
別名:
描述:管理圖書管的工作人員
定義:管理員信息表=名稱+密碼+管
理人員+工作人員+查詢
位置:數(shù)據(jù)庫
圖書類別:圖書類別信息表結構
別名:
描述:圖書管圖書類型
定義:圖書類別表=類別ID+類別+類
別描述
位置:數(shù)據(jù)庫
第4章程序設計與編碼
4.1數(shù)據(jù)庫連接
本系統(tǒng)采用Access文件數(shù)據(jù)庫,降低了程序對硬件操作系統(tǒng)版本的要求。
并且Access數(shù)據(jù)庫操作方便,配置簡單,只需把數(shù)據(jù)庫文件放置到合適的目錄
下即可。
數(shù)據(jù)庫連接代碼
Usingsystem
{
///
///dbConnection的摘要說明
PublicclassdbConnection
{
PublicdbConnection()
{
}
Publicstaticstringconnection
{
Get
{return”DataSource=;JetOLEDB:EngineType=5;
Provider=.4.0;”}
}
}
}
數(shù)據(jù)庫調(diào)用代碼
PrivateOleDbConnectionoleConnection1=new
OleDbConnection(tion);
4.2系統(tǒng)管理設計
在主界面中選擇【系統(tǒng)管理】|【添加用戶】命令菜單或單擊工具欄上的“系
統(tǒng)”按鈕,即可進入添加用戶界面,如下圖4.1所示。在該界面可以建立新的用
戶,并為用戶選擇角色,賦予權限。單擊【確定】按鈕,如果用戶信息輸入完整
并且用戶名稱不重復則顯示添加成功,否則添加失敗。
圖4.1添加用戶界面
在該窗體中設計了3個TextBox控件、2個Button控件和2個RadioButton
控件。各個控件的名稱、作用如表4.1所示
表4.1添加用戶界面控件設計
控件類型控件名稱作用
TextBox
TextName輸入用戶名
TextPassWord輸入密碼
TextPWDNew重復輸入密碼
ButtonBtAdd添加
BtClo退出
RadioButtonRadioWord工作員角色
RadioManager管理員角色
代碼實現(xiàn)如下:
privatevoidbtAdd_Click(objectnder,rg)
{
if
(()==""||()==""||()
==""||d==fal&&d==fal)
{
("請輸入完整信息!","警告");
}
el
{
if(()!=())
{
("兩次密碼輸入不一致!","警告");
}
el
{
();
OleDbCommandcmd=new
OleDbCommand("",oleConnection1);
stringsql="lect*frommanagerwhereMName=
'"+()+"'";
dText=sql;
if(null==eScalar())
{
if(d==true)
sql="inrtintomanager"+
"values
('"+()+"','"+()+"',true,fal,fal)";
el
sql="inrtintomanager"+
"values
('"+()+"','"+()+"',fal,true,fal)";
dText=sql;
eNonQuery();
("添加用戶成功!","提示");
();
}
el
{
("用戶名"+()+"已經(jīng)存在!","提示");
="";
="";
}
();
}
}
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
在主界面中選擇【系統(tǒng)管理】|【瀏覽用戶】命令菜單,即可進入瀏覽用戶
界面,如圖4.2所示。在該界面可以顯示圖書館所有工作人員的信息,并可以刪
除用戶。該界面中有一個DataGrid控件,控件名稱是DataGrid1,用來顯示用戶
信息。
圖4.2瀏覽用戶界面
在該窗體中設計了3個Button控件和1個DataGrid控件。各個控件的名稱、
作用如表4.2所示
表4.2添加用戶界面控件設計
控件類型控件名稱作用
ButtonBtModify修改
BtDel刪除
BtClo退出
DataGridDataGrid1顯示用戶信息
代碼實現(xiàn)如下:
privatevoidUr_Load(objectnder,rg)
{
();
stringsql="lectMNameas用戶名,MCodeas密碼,manageas權
限,workas權限,queryas權限frommanager";
OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"ur");
urce=["ur"].DefaultView;
nText="共有"+["ur"].+"條記
錄";
();
}
ModifyUrmodifyUr;
privatevoidbtModify_Click(objectnder,rg)
{
if
(tRowIndex>=0&&urce!=null&&dataGrid1[data
tCell]!=null)
{
modifyUr=newModifyUr();
=
[0].Rows[ber][0].ToString().Trim();
alog();
}
}
privatevoidbtDel_Click(objectnder,rg)
{
if
(tRowIndex>=0&&urce!=null&&dataGrid1[data
tCell]!=null)
{
();
stringsql="delete*frommanagerwhereMName=
'"+["ur"].Rows[ber][0].ToString().Trim()
+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
eNonQuery();
("刪除用戶
'"+[0].Rows[ber][0].ToString().Trim()+"'成
功","提示");
();
}
el
return;
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
4.3圖書管理設計
在主界面中選擇【圖書管理】|【圖書分類】命令菜單,即可進入瀏覽圖書
分類界面,如圖4.3所示。
圖4.3瀏覽圖書分類界面
該界面中共有1個DataGrid控件和4個Button控件,分別是:【添加】
(BtAdd)、【修改】(BtModify)、【刪除】(BtDel)和【退出】(BtClo)。
代碼實現(xiàn)如下:
privatevoidType_Load(objectnder,rg)
{();
stringsql="lecttypeas類型,tRemarkas類型描述,TIDas類型編號fromtype";
OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"type");
urce=["type"].DefaultView;
nText="共有"+["type"].+"條記錄";
();
}
AddTypeaddType;
privatevoidbtAdd_Click(objectnder,rg)
{addType=newAddType();
alog();
}
ModifyTypemodifyType;
privatevoidbtModify_Click(objectnder,rg)
{if(urce!=null||dataGrid1[tCell]!=
null)
{modifyType=newModifyType();
=["type"].Rows[
Number][0].ToString().Trim();
=["type"].Rows[
wNumber][1].ToString().Trim();
=["type"].Rows[ber][2]
.ToString().Trim();
();
}
el
("沒有指定類型信息!","提示");
}
privatevoidbtDel_Click(objectnder,rg)
{if
(tRowIndex>=0&&urce!=null&&dataGrid1[data
tCell]!=null)
{();
stringsql="lect*frombookwhere
type='"+["type"].Rows[ber][0].ToString().T
rim()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
OleDbDataReaderdr;
dr=eReader();
if(())
{
("刪除類型
'"+["type"].Rows[ber][0].ToString().Trim()
+"'失敗,請先刪掉該類型圖書!","提示");
();
}
el
{
();
sql="delete*fromtypewheretypenotin(lectdistincttype
frombook)andTID"+
"=
"+["type"].Rows[ber][2].ToString().Trim()+
"";
dText=sql;
eNonQuery();
("刪除類型
'"+[0].Rows[ber][0].ToString().Trim()+"'成
功","提示");
}
();
}
el
return;
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
單擊【添加】按鈕進入添加圖書類型界面,如圖4.4所示。
圖4.4添加圖書類型界面
用戶可以在這個窗體中設置圖書類型信息。單擊【確定】按鈕,如果圖書類
型信息輸入完整并且圖書類型不重復則顯示添加成功,否則添加失敗。該窗體中
設計了2個TextBox控件和2個Button控件。各個控件的名稱、作用如表4.3所
示。
表4.3新建角色界面控制設計
控件類型控件名稱作用
TextBoxTextName輸入圖書類型
TextRemark輸入類型描述
ButtonBtAdd添加
BtClo退出
代碼實現(xiàn)如下:
privatevoidbtAdd_Click(objectnder,rg)
{
if(()==""||()=="")
("請?zhí)顚懲暾畔?,"提示");
el
{
();
stringsql="lect*fromtypewhere
type='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
if(null!=eScalar())
("類型重復,請重新輸入!","提示");
el
{
sql="inrtintotype(type,tRemark)values
('"+()+"','"+()+"')";
dText=sql;
eNonQuery();
("類型添加成功!","提示");
();
();
}
();
}
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
在主界面中選擇【圖書管理】|【瀏覽】命令菜單,即可進入瀏覽圖書界面,
如圖4.5所示。
圖4.5瀏覽圖書界面
該界面中共有1個DataGrid控件和4個Button控件,分別是:【添加】
(BtAdd)、【修改】(BtModify)、【刪除】(BtDel)和【退出】(BtClo)。
代碼實現(xiàn)如下:
privatevoidBook_Load(objectnder,rg)
{
();
stringsql="lectBIDas圖書編號,BNameas圖書名,BWriteras作
者,BPublishas出版社,BDateas出版日期,BPriceas價格,"+
"BNumas數(shù)量,typeas類型,BRemarkas備注frombook";
OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"book");
urce=["book"].DefaultView;
nText="共有"+["book"].+"條記
錄";
();
}
AddBookaddBook;
privatevoidbtAdd_Click(objectnder,rg)
{
addBook=newAddBook();
alog();
}
ModifyBookmodifyBook;
privatevoidbtModify_Click(objectnder,rg)
{
if(urce!=null||dataGrid1[tCell]!=null)
{
modifyBook=newModifyBook();
=
["book"].Rows[ber][0].ToString().Trim();
=
["book"].Rows[ber][1].ToString().Trim();
=
["book"].Rows[ber][2].ToString().Trim();
=
["book"].Rows[ber][3].ToString().Trim();
=
["book"].Rows[ber][4].ToString().Trim();
=
["book"].Rows[ber][5].ToString().Trim();
=
["book"].Rows[ber][6].ToString().Trim();
=
["book"].Rows[ber][7].ToString().Trim();
=
["book"].Rows[ber][8].ToString().Trim();
();
}
el
("沒有指定圖書信息!","提示");
}
privatevoidbtDel_Click(objectnder,rg)
{
if
(tRowIndex>=0&&urce!=null&&dataGrid1[data
tCell]!=null)
{
();
stringsql="lect*frombookOutwhere
BID='"+["book"].Rows[ber][0].ToString().
Trim()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
OleDbDataReaderdr;
dr=eReader();
if(())
{
("刪除圖書
'"+["book"].Rows[ber][1].ToString().Trim()
+"'失敗,該圖書正在流通中!","提示");
();
}
el
{
();
sql="delete*frombookwhereBIDnotin(lectdistinctBID
frombookOut)andBID"+
"=
'"+["book"].Rows[ber][0].ToString().Trim()
+"'";
dText=sql;
eNonQuery();
("刪除圖書
'"+[0].Rows[ber][1].ToString().Trim()+"'成
功","提示");
}
();
}
el
return;
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
進入瀏覽圖書界面后單擊【添加】按鈕,進入添加圖書界面。用戶可以在這
個窗體中設置圖書信息。單擊【確定】按鈕,如果圖書信息輸入完整并且圖書編
號不重復則顯示添加成功,否則添加失敗。界面設計如圖4.6所示。
圖4.6添加圖書界面
該窗體中設計了7個TextBox控件、1個DataTimePicker控件、1個ComboBox
控件和2個Button控件。各個控件的名稱、作用如表4.4所示。
表4.4添加圖書界面控件設計
控件類型控件名稱作用
TextBoxTextID圖書編號
TextName圖書名
TextWriter作者
TextPublish出版社
TextNum數(shù)量
TextPrice價格
TextRemark備注
DataTimePickerDatel出版日期
ComboBoxComboType圖書類型
ButtonBtAdd添加
BtClo退出
代碼實現(xiàn)如下:
privatevoidAddBook_Load(objectnder,rg)
{
try
{
();
stringsql="lectTID,typefromtype";
OleDbDataAdapteradp=new
OleDbDataAdapter(sql,oleConnection1);
DataSetds=newDataSet();
(ds,"type");
urce=["type"].DefaultView;
yMember="type";
ember="TID";
();
}
catch(Exceptionee)
{
ine(e);
}
}
privatevoidbtAdd_Click(objectnder,rg)
{
if
(()==""||()==""||()==""||textW
()=="")
("請?zhí)顚懲暾畔?,"提示");
el
{
();
stringsql="lect*frombookwhere
BID='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
if(null!=eScalar())
("圖書編號重復","提示");
el
{
sql="inrtintobookvalues
('"+()+"','"+()+"','"+()+"',"+
"'"+()+"','"+()+"','"+()+"'
,'"+()+"',"+
"'"+()+"','"+()+"')";
dText=sql;
eNonQuery();
("添加成功","提示");
clear();
}
();
}
}
privatevoidclear()
{
="";
="";
="";
="";
="";
="";
="";
="";
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
4.4查詢管理設計
在主界面中選擇【查詢管理】|【圖書查詢】命令或者單擊工具欄上“查
詢”按鈕,即可進入查詢圖書界面,如圖4.7所示。
圖4.7查詢圖書界面
該界面上共有3個查詢條件:圖書編號、圖書名和作者。單擊【查詢】按鈕,
根據(jù)查詢條件得出的圖書信息將顯示在DataGrid控件中,并且計算出該圖書目
前在庫中的數(shù)量。
該窗口中設計了3個TextBox控件,2個Button控件和1個DataGrid控件。
各個控件的名稱。作用如表4.5所示。
表4.5圖書查詢界面控件設計
控件類型控件名稱作用
TexrBox
TextID圖書編號
TextName圖書名
TextWriter作者
Button
BtQuery查詢
BtClear清空
BtClo退出
DataGridDataGrid顯示查詢圖書信息
代碼實現(xiàn)如下:
privatevoidbtQuery_Click(objectnder,rg)
{
stringsql1="(BNum-(lectcount(*)frombookOutwhere";
stringsql="lectBIDas圖書編號,BNameas圖書名,BWriteras作
者,BPublishas出版社,BDateas出版日期,BPriceas價格,"+
"BNumas數(shù)量,typeas類型,BRemarkas備注,";
if(()!="")
{
sql1=sql1+"BID="+"'"+()+"'))as庫存數(shù)量";
sql=sql+sql1+"frombookwhereBID=
"+"'"+()+"'";
}
elif(()!="")
{
sql1=sql1+"BID=(lectBIDfrombookwhere
BName='"++"')))as庫存數(shù)量";
sql=sql+sql1+"frombookwhereBName=
"+"'"++"'";
}
elif(()!="")
{
sql1=sql1+"BID=(lectBIDfrombookwhere
BWriter='"++"')))as庫存數(shù)量";
sql=sql+sql1+"frombookwhereBWriter=
"+"'"++"'";
}
el
{
("請輸入查詢條件","提示");
return;
}
();
OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);
DataSetds=newDataSet();
();
(ds,"book");
urce=[0].DefaultView;
nText="共有"+[0].+"條查詢記錄
";
();
}
privatevoidbtClear_Click(objectnder,rg)
{
="";
="";
="";
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
選擇【查詢管理】|【借閱查詢】命令菜單,即可進入查詢借閱界面,顯示
當前登錄用戶的個人信息和已借圖書信息,如圖4.8所示。
圖4.8查詢借閱者界面
該窗體重設計了3個DataGrid控件,其中一個控件用來傳遞數(shù)據(jù),不顯示。
各個控件的名稱、作用如表4.6所示。
表4.6借閱者查詢界面控件設計
控件類型控件名稱作用
DataGrid
DataGrid1顯示借閱圖書信息
DataGrid2顯示個人信息
DataGrid3傳遞圖書編號(不顯示)
代碼實現(xiàn)如下:
privatevoidPersonQuery_Load(objectnder,rg)
{
();
stringsql1="lectPNameas姓名,PSexas性別,PNas身份
證,PMoneyas罰款,identityas身份"+
"frompersonwherePID='"+ng().Trim()+"'";
stringsql3="lectBIDfrombookOutwherePID=
'"+ng().Trim()+"'";
OleDbDataAdapteradp=new
OleDbDataAdapter(sql1,oleConnection1);
OleDbDataAdapteradp3=new
OleDbDataAdapter(sql3,oleConnection1);
ds=newDataSet();
();
(ds,"person");
(ds,"bookid");
urce=["person"].DefaultView;
nText="共有"+["person"].+"條記錄";
urce=["bookid"].DefaultView;
for(intx=0;x<["bookid"].;x++)
{
stringsql2="圖書編號,BNameas圖書
名,BWriteras作者,BPublishas出版社,BDateas出版日期,BPriceas價格,"+
"typeas類型,ODateas借書日期,(lectlongTimefrom
identityinfowhereidentity=(lectidentityfrompersonwhere
PID='"+ng().Trim()+"'))"+
"as最長借書時間,dateAdd('m',最長借書時間,ODate)as應
還日期frombook,==
'"+["bookid"].Rows[x][0]+"'"+
"andPID='"+ng().Trim()+"'";
OleDbDataAdapteradp2=new
OleDbDataAdapter(sql2,oleConnection1);
(ds,"bookout");
urce=["bookout"].DefaultView;
nText="已借圖書
"+["bookout"].+"本";
}
();
}
}
}
4.5用戶管理設計
在主界面中選擇【用戶管理】|【修改密碼】命令菜單或者單擊工具欄上的
【用戶】按鈕,即可進入修改密碼界面,如下4.9圖所示。
圖4.9修改密碼界面
單擊【確定】按鈕,如果密碼正確并且新密碼與確認密碼一致,則顯示修改
成功,否則修改失敗。
在該窗體中設計了4個TexrBox控件和2個Button控件。各個控件的名稱、
作用如表4.7所示。
表4.7修改密碼界面控件設計
控件類型控件名稱作用
TextBox
TextName用戶名稱(只讀)
TextPWD輸入原密碼
TextPWDNew輸入新密碼
TextPWDNew2確認新密碼
ButtonBtAdd添加
BtClo退出
代碼實現(xiàn)如下:
privatevoidbtSave_Click(objectnder,rg)
{
if
(()==""||()==""||()=="
"||()=="")
("請?zhí)顚懲暾畔ⅲ?,"提示");
el
{
();
OleDbCommandcmd=newOleDbCommand("",oleConnection1);
stringsql1="lect*frompersonwhere
PID='"+()+"'andPCode='"+()+"'";
stringsql2="lect*frommanagerwhere
MName='"+()+"'andMCode='"+()+"'";
if(=="管理員")
dText=sql2;
el
dText=sql1;
if(null!=eScalar())
{
if(()!=())
("兩次密碼輸入不一致!","警告");
el
{
sql1="updatepersont
PCode='"+()+"'wherePID='"+()+"'";
sql2="updatemanagert
MCode='"+()+"'where
MName='"+()+"'";
if(=="管理員")
dText=sql2;
el
dText=sql1;
eNonQuery();
("密碼修改成功!","提示");
();
}
}
el
("密碼錯誤!","提示");
();
}
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
privatevoidModifyCode_Load(objectnder,rg)
{
=ng().Trim();
}
}
}
4.6讀者管理設計
在主界面中選擇【讀者管理】|【瀏覽身份】命令菜單,即可進入瀏覽讀
者身份界面,如圖4.10所示。
圖4.10瀏覽讀者身份界面
該界面中共有1個DataGrid控件和4個Button控件,分別是:【添加】
(BtAdd)、【修改】(BtModify)、【刪除】(BtDel)和【退出】(BtClo)。
代碼實現(xiàn)如下:
privatevoidIdentity_Load(objectnder,rg)
{
();
stringsql="lectidentityas身份,longTimeas最長借閱時
間,bigNumas最大借閱數(shù)量fromidentityinfo";
OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"identity");
urce=["identity"].DefaultView;
nText="共有"+["identity"].+"條
記錄";
();
}
AddIdentityaddIdentity;
privatevoidbtAdd_Click(objectnder,rg)
{
addIdentity=newAddIdentity();
alog();
}
privatevoidbtModify_Click(objectnder,rg)
{
}
privatevoidbtDel_Click(objectnder,rg)
{
if
(tRowIndex>=0&&urce!=null&&dataGrid1[data
tCell]!=null)
{
();
stringsql="lect*frompersonwhere
identity='"+["identity"].Rows[ber][0].ToStri
ng().Trim()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
OleDbDataReaderdr;
dr=eReader();
if(())
{
("刪除身份
'"+["identity"].Rows[ber][0].ToString().Tri
m()+"'失敗,有該身份的讀者存在!","提示");
();
}
el
{
();
sql="delete*fromidentityinfowhereidentitynotin(lect
distinctidentityfromperson)andidentity="+
"'"+["identity"].Rows[ber][0].ToString(
).Trim()+"'";
dText=sql;
eNonQuery();
("刪除身份
'"+[0].Rows[ber][0].ToString().Trim()+"'成
功","提示");
}
();
}
el
return;
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}}
}
單擊【添加】按鈕進入添加讀者身份界面,如圖4.11所示。
圖4.11添加讀者身份界面
用戶可以在這個窗體中設置讀者身份信息。單擊【確定】按鈕,如果
讀者身份信息輸入完整并且讀者身份不重復則顯示添加成功,否則添加失敗。該
窗體中設計了1個TextBox控件、2個ComboBox控件。各個控件的名稱、作用
如表4.8所示。
表5.8添加身份界面控件設計
控件類型控件名稱作用
TextBoxTextName輸入圖書類型
ButtonBtAdd添加
BtClo退出
ComboBoxComboDate最長借閱時間
ComboNum最大借閱數(shù)量
代碼實現(xiàn)如下:
privatevoidbtAdd_Click(objectnder,rg)
{if
(()==""||()==""||()=="")
("請?zhí)顚懲暾畔?,"提示");
el
{();
stringsql="lect*fromidentityinfowhere
identity='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
if(null!=eScalar())
("身份重復","提示");
el
{sql="inrtintoidentityinfovalues
('"+()+"',"+()+","+()+");
dText=sql;
eNonQuery();
("添加成功","提示");
="";
="";
="";
}
();
}}
privatevoidbtClo_Click(objectnder,rg)
{
();
}}}
在主界面中選擇【讀者管理】|【瀏覽讀者】命令菜單或者單擊工具欄上的
“讀者”按鈕,即可進入瀏覽借閱者界面,如圖4.12所示。
圖4.12瀏覽借閱者界面
該界面中共有1個DataGrid控件和4個Button控件,分別是:【添加】
(BtAdd)、【修改】(BtModify)、【刪除】(BtDel)和【退出】(BtClo)。
代碼實現(xiàn)如下:
privatevoidPerson_Load(objectnder,rg)
{
();
stringsql="lectPIDas借書證編號,PNameas姓名,PSexas性
別,PPhoneas電話,PNas身份證,PCodeas密碼,"+
"PMoneyas罰款,identityas身份,PRemarkas備注fromperson";
OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"person");
urce=["person"].DefaultView;
nText="共有"+["person"].+"條
記錄";
();
}
AddPersonaddPerson;
privatevoidbtAdd_Click(objectnder,rg)
{
addPerson=newAddPerson();
alog();
}
ModifyPersonmodifyPerson;
privatevoidbtModify_Click(objectnder,rg)
{
if(urce!=null||
dataGrid1[tCell]!=null)
{
modifyPerson=newModifyPerson();
=
["person"].Rows[ber][0].ToString().Trim();
=
["person"].Rows[ber][1].ToString().Trim();
=
["person"].Rows[ber][2].ToString().Trim();
=
["person"].Rows[ber][3].ToString().Trim();
=
["person"].Rows[ber][4].ToString().Trim();
=
["person"].Rows[ber][5].ToString().Trim();
=
["person"].Rows[ber][6].ToString().Trim();
=
["person"].Rows[ber][7].ToString().Trim();
=
["person"].Rows[ber][8].ToString().Trim();
();
}
el
("沒有指定信息!","提示");
}
privatevoidbtDel_Click(objectnder,rg)
{
if
(tRowIndex>=0&&urce!=null&&dataGrid1[data
tCell]!=null)
{
();
stringsql="delete*frompersonwhere
PID='"+[0].Rows[ber][0].ToString().Trim()
+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
eNonQuery();
("刪除借閱者
'"+[0].Rows[ber][1].ToString().Trim()+"'成
功","提示");
}
el
return;
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
單擊【添加】按鈕進入添加借閱者界面,如圖4.13所示。
圖4.13添加借閱者界面
用戶可以在這個窗體中設置讀者基本信息。單擊【確定】按鈕,如果讀者基
本信息輸入完整并且借書證號和身份證號不重復則顯示添加成功,否則添加失
敗。該窗體中設計了7個TextBox控件、2個Button控件和2個ComboBox控件。
各個控件的名稱、作用如表所示。
表4.9添加借閱者界面控件設計
控件類型控件名稱作用
TextBoxTextID借書證號
TextName姓名
TextPN身份證
TextPhone電話
TextCode密碼
TextMoney罰款
TextRemark備注
ButtonBtAdd添加
BtClo退出
ComboBoxComboSex姓名
Combold身份
實現(xiàn)代碼如下:
privatevoidAddPerson_Load(objectnder,rg)
{try
{();
stringsql="lectidentityfromidentityinfo";
OleDbDataAdapteradp=new
OleDbDataAdapter(sql,oleConnection1);
DataSetds=newDataSet();
(ds,"identi");
urce=["identi"].DefaultView;
yMember="identity";
ember="identity";
();
}
catch(Exceptionee)
{
ine(e);
}
}
privatevoidbtAdd_Click(objectnder,rg)
{
if
(()==""||()==""||()==""||textP
()=="")
("請?zhí)顚懲暾畔?,"提示");
El
{
();
stringsql="lect*frompersonwhere
PID='"+()+"'orPN='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
if(
null!=eScalar())
("圖書證號或身份證號重復重復","提示");
el
{sql="inrtintopersonvalues('"+()+"',"+
"'"+()+"','"+()+"','"+
()+"','"+()+"',"+
"'"+()+"',"+()+",'"+()
+"','"+()+"',fal)";
dText=sql;
eNonQuery();
("添加成功","提示");
clear();
}
();
}}
privatevoidclear()
{
="";
="";
="";
="";
="";
="";
="";
="";
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}}}
4.7借還管理設計
在主界面中選擇【借還管理】|【借書】命令菜單或者單擊工具欄上的“借書”
按鈕,即可進入借書界面,如圖4.14所示。
圖4.14借書界面
在【借書證號】TextBox中輸入借書證號后回車,借閱者信息和已借圖書信
息都會顯示在相應控件中,在【圖書編號】TextBox中輸入圖書編號后回車,該
編號的圖書也顯示在相應的控件中。單擊【借出】按鈕,判斷該借閱者是否已經(jīng)
接了該書,如果沒有則借書成功,否則失敗。
該窗體中設計了13個TextBox控件、2個Button控件、1個ComboBox控
件和4個DataGrid控件,其中3個DataGrid控件不顯示,只是用來傳遞數(shù)據(jù)。
各個控件的名稱、作用如表4.10所示。
表4.10借書界面控件設計
控件類型控件名稱作用
TextBox
TextPID借書證號
TextPName姓名
TextPSex性別
TextPN身份證
TextIden密碼
TextMoney罰款
TextBID圖書編號
TextBName圖書名
TextWriter作者
TextPublish出版社
TextType類型
TextBDate出版日期
TextPrice價格
ButtonBtOut借書
BtClo退出
ComboBoxComboSex姓名
DataGrid
DataGrid1顯示已借圖書信息
DataGrid2傳遞借閱者信息(不顯示)
DataGrid3傳遞圖書信息(不顯示)
DataGrid4傳遞已借圖書編號(不顯示)
代碼實現(xiàn)如下:
privatevoidtextPID_KeyDown(objectnder,
ntArg)
{if(ng()=="Enter")
{();
stringsql1="lectPNameas姓名,PSexas性別,PNas身份
證,PMoneyas罰款,identityas身份"+
"frompersonwherePID='"+()+"'";
stringsql3="lectBIDfrombookOutwherePID=
'"+()+"'";
OleDbDataAdapteradp=new
OleDbDataAdapter(sql1,oleConnection1);
OleDbDataAdapteradp3=new
OleDbDataAdapter(sql3,oleConnection1);
ds=newDataSet();
();
(ds,"person");
(ds,"bookid");
urce=["person"].DefaultView;
urce=["bookid"].DefaultView;
if([0].!=0)
{=
["person"].Rows[ber][0].ToString().Trim();
=
["person"].Rows[ber][1].ToString().Trim();
=
["person"].Rows[ber][2].ToString().Trim();
=
["person"].Rows[ber][3].ToString().Trim();
=
["person"].Rows[ber][4].ToString().Trim();
nText="共有
"+["person"].+"條記錄";
}
el
("沒有該借書證號","提示");
for(intx=0;x<["bookid"].;x++)
{stringsql2="圖書編號,BNameas圖書
名,BWriteras作者,BPublishas出版社,BDateas出版日期,BPriceas價格,"+
"typeas類型,ODateas借書日期,(lectlongTimefrom
identityinfowhereidentity=(lectidentityfrompersonwhere
PID='"+()+"'))"+
"as最長借書時間,dateAdd('m',最長借書時間,ODate)as
應還日期frombook,==
'"+["bookid"].Rows[x][0]+"'"+
"andPID='"+()+"'";
OleDbDataAdapteradp2=new
OleDbDataAdapter(sql2,oleConnection1);
(ds,"bookout");
urce=["bookout"].DefaultView;
nText="已借圖書
"+["bookout"].+"本";
}
();
}
}
privatevoidtextBID_KeyDown(objectnder,
ntArg)
{if(ng()=="Enter")
{();
stringsql="lectBNameas圖書名,BWriteras作者,BPublishas
出版社,BDateas出版日期,BPriceas價格,"+
"typeas類型frombookwhere
BID='"+()+"'";
OleDbDataAdapteradp=new
OleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"book");
urce=["book"].DefaultView;
if([0].!=0)
{=
[0].Rows[ber][0].ToString().Trim();
=
[0].Rows[ber][1].ToString().Trim();
=
[0].Rows[ber][2].ToString().Trim();
=
[0].Rows[ber][3].ToString().Trim();
=
[0].Rows[ber][4].ToString().Trim();
=
[0].Rows[ber][5].ToString().Trim();
nText="共有
"+["book"].+"條記錄";
}
el
("沒有該圖書編號","提示");
();
}}
privatevoidbtOut_Click(objectnder,rg)
{if(()==""||()=="")
("請輸入完整信息","提示");
el
{();
stringsql="lect*frombookOutwhere
BID='"+()+"'andPID='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
if(null!=eScalar())
("你已經(jīng)借了一本該書","提示");
el
{sql="inrtintobookOut(BID,PID,ODate)values
('"+()+"','"+()+"','"+()+"')";
dText=sql;
eNonQuery();
("借出成功","提示");
}}}
選擇【借還管理】|【還書】命令菜單或者單擊工具欄上的“還書”按鈕,即可
進入還書界面,如圖4.15所示。
在【借書證號】TextBox中輸入借書證號,在【圖書編號】TextBox中輸入
圖書編號后回車,如果該借閱者借了該圖書,則該圖書信息就會顯示在相應的控
件計算出該圖書的應還日期、超出天數(shù)和罰款金額。
圖4.15還書界面
該窗體中設計了14個TextBox控件,2個Button控件和1個DataGrid控件。
各個控件的名稱、作用如表4.11所示。
表4.11還書界面控件設計
控件類型控件名稱作用
TextBox
TextPID借書證號
TextOutData借出日期
TextInData1應還日期
TextNow今天日期i
TextBigDay規(guī)定天數(shù)
TextDay超出天數(shù)
TextMoney罰款金額(每天0.1元)
TextBID圖書編號
TextBName圖書名
TextWriter作者
TextPublish出版社
TextType類型
TextBDate出版日期
TextPrice價格
ButtonBtIn還書
BtClo取消
DataGridDataGrid1傳遞圖書信息(不顯示)
代碼實現(xiàn)如下:
privatevoidtextBID_KeyDown(objectnder,
ntArg)
{
if(ng()=="Enter")
{
();
stringsql="lectBNameas圖書名,BWriteras作者,BPublishas
出版社,BDateas出版日期,BPriceas價格,typeas類型,"+
"ODateas借出日期,(lectlongTimefromidentityinfowhere
identity=(lectidentityfrompersonwherePID='"+()+"'))"+
"as最長借書時間,dateAdd('m',最長借書時間,ODate)as應
還日期,DateDiff('d',應還日期,Now)as超出天數(shù)frombook,bookOutwhere"+
"='"+()+"'and
PID='"+()+"'";
OleDbDataAdapteradp=new
OleDbDataAdapter(sql,oleConnection1);
ds=newDataSet();
();
(ds,"book");
urce=["book"].DefaultView;
if([0].!=0)
{
=
[0].Rows[ber][0].ToString().Trim();
=
[0].Rows[ber][1].ToString().Trim();
=
[0].Rows[ber][2].ToString().Trim();
=
[0].Rows[ber][3].ToString().Trim();
=
[0].Rows[ber][4].ToString().Trim();
=
[0].Rows[ber][5].ToString().Trim();
=
[0].Rows[ber][6].ToString().Trim();
=
ng(16([0].Rows[
mber][7].ToString().Trim())*30);
=
[0].Rows[ber][8].ToString().Trim();
if
(16([0].Rows[ber][9].ToStrin
g().Trim())>0)
{
=
[0].Rows[ber][9].ToString().Trim();
=
ng(16()*0.15);
}
el
{
="0";
="0";
}
=ng();
nText="共有
"+["book"].+"條記錄";
}
el
("該讀者沒有借該圖書","提示");
sql="updatepersontPMoney=PMoney+'"++"'
wherePID='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
eNonQuery();
();
}
}
privatevoidbtIn_Click(objectnder,rg)
{
if(()==null)
("請?zhí)顚憟D書編號","提示");
el
{
();
stringsql="delete*frombookOutwhereBID=
'"+()+"',andPID='"+()+"'";
OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);
eNonQuery();
("還書成功","提示");
}
}
privatevoidbtClo_Click(objectnder,rg)
{
();
}
}
}
第5章軟件測試
5.1軟件測試的方法與步驟
該系統(tǒng)在本地服務器上進行運行和調(diào)試,鑒于對系統(tǒng)的內(nèi)部結構和處理算法
的完全了解以及對系統(tǒng)功能的全面掌握對系統(tǒng)進行白盒測試和黑盒測試。
在開發(fā)軟件系統(tǒng)的過程中,需要面對錯綜復雜的問題,因此,在軟件生存周
期的每個階段都不可避免地會產(chǎn)生錯誤。測試目的在于:發(fā)現(xiàn)錯誤而執(zhí)行一個程
序的過程,測試重要發(fā)現(xiàn)一個發(fā)現(xiàn)其中尚未發(fā)現(xiàn)的錯誤。
本系統(tǒng)的測試階段信息流程下圖所示。
圖5.1測試階段信息流程圖
為了設計出有效地測試方案按照下面準則進行測試:所有測試都應追溯到用
戶需求;在完成了需求模型就要著手制定測試計劃,在編碼之前最所有測試工作
進行計劃和設計;運用Pareto原理著重對占出現(xiàn)錯誤80%的容易出錯的20%的
模塊進行測試,從小規(guī)模開始逐步進行大規(guī)模測試,通常先重點測試單個程序模塊
再轉向集成的模塊簇;精心設計測試方案,盡可能充分覆蓋程序邏輯使之達到要求
的可靠性。
按照軟件工程的觀點,軟件測試(主要是指多模塊程序的測試)共包括4
個層次。
1)單元測試。單元測試的用例從單元詳細設計中導出。在單元測試中可以采
用功能性測試和結構性測試兩種。
2)集成測試和確認測試。這一階段的任務,是通過了單元測試的模塊逐步組
裝起來,通過測試與糾錯,最終得到一個滿足需求的目標軟件。
3)驗證測試。在這個測試步驟中所發(fā)現(xiàn)的往往是需求規(guī)格說明的錯誤。一般
測試
評價
調(diào)試
軟件配置
測試配置
測試結果
預期結果
錯誤率數(shù)據(jù)
錯誤
可靠性預測
正確
可靠性
模型
來說,系統(tǒng)測試是功能性測試,不是結構性測試。
在整個測試中,采用了白盒測試和黑盒測試相結合的方法。
5.2測試用例運行過程及測試結果分析
5.2.1模塊測試
1)登錄模塊測試
表5.1登錄模塊用例測試
用例測試數(shù)據(jù)預期結果
1:輸入正確的用戶名和密碼用戶名:admin
密碼:admin
系統(tǒng)跳轉到登陸成功頁面
2:輸入空用戶名或空密碼用戶名:admin密碼:請輸入用戶名和密碼
3:輸入用戶名和錯誤的密碼用戶名:admin
密碼:ad
用戶名或密碼錯誤
4.輸入用戶名和密碼,不選
擇角色
用戶名:admin
密碼:admin
沒有選擇角色
當用戶輸入的用戶名或密碼錯誤時系統(tǒng)會跳轉到出錯頁面并提示“用戶名或
密碼錯誤”。用戶點擊確定,系統(tǒng)會重新返回登陸頁面,其中錯誤信息提示頁面
如圖5.1所示:
圖5.1系統(tǒng)出錯提示頁面
2)更改密碼模塊測試
用戶登錄系統(tǒng)后可對自己的登錄密碼進行更改,更改過程要求用戶提供原始
密碼,輸入新密碼,重新輸入新密碼進行確認,如果用戶輸入的原始密碼錯誤,
或兩次輸入的新密碼不一致將無法執(zhí)行密碼更新操作,系統(tǒng)會給出相應的提示,
起顯示頁面為:
圖5.2兩次密碼不一致提示頁面
5.2.2集成測試
把經(jīng)過單元測試的模塊放在一起形成一個子系統(tǒng)并對它進行測試用于檢驗
模塊相互間的協(xié)調(diào)和通信,這里主要對圖書管理員功能系統(tǒng)進行了測試,經(jīng)過檢
驗其功能均得以順利實現(xiàn),下圖為管理員操作的圖書查詢模塊成功運行界面:
圖5.3圖書查詢模塊測試圖
把經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)進行測試,經(jīng)過黑盒測試于白盒
測試相結合的方式,對整個系統(tǒng)的各個功能模塊進行了測試,并調(diào)試改正其中的
設計和編碼錯誤,經(jīng)過這個環(huán)節(jié)的操作整個系統(tǒng)的功能基本實現(xiàn)成功運行。
5.2.3驗收測試
在進行了以上的測試工作后,將整個軟件系統(tǒng)作為單一的實體進行測試,測
試內(nèi)容與系統(tǒng)測試基本類似,但它是在用戶積極參與下進行的,此測試過程主要
使用實際數(shù)據(jù),進行測試,驗證測試的目的是驗證系統(tǒng)確實能夠滿足用戶的需求,
經(jīng)過這個環(huán)節(jié)的實際數(shù)據(jù)測試,系統(tǒng)的各個功能實現(xiàn)都達到了系統(tǒng)需求設計的要
求。
5.3評價
測試過程嚴格按照測試的流程,經(jīng)過單元測試、子系統(tǒng)測試和系統(tǒng)測試。通
過單元測試,查找出了系統(tǒng)各模塊內(nèi)部的錯誤;通過子系統(tǒng)測試,發(fā)現(xiàn)了模塊間
相互協(xié)調(diào)和通信上的錯誤;通過系統(tǒng)的集成測試,發(fā)現(xiàn)了軟件設計過程中存在的
錯誤。通過改正錯誤的設計和實現(xiàn)部分,保證了圖書借閱管理系統(tǒng)可以完成需求
分析中制定的需求。
從上面的測試中可以看出,此系統(tǒng)可以完成用戶登錄、系統(tǒng)設置、圖書管理、
讀者管理管理、借閱管理和系統(tǒng)查詢等功能。讀者在本系統(tǒng)的應用下可實現(xiàn)按照
各種方式(如:書名,編號,作者)查詢圖書館的藏書,方便的借閱圖書、續(xù)借圖
書、歸還圖書,能夠查詢自己的借閱圖書情況。圖書館工作人員能夠實現(xiàn)方便的
對圖書進行查詢,方便的進行讀者借閱情況查詢,方便的進行借書還書處理等,
便捷的對圖書信息進行添加、修改、刪除,分類管理等操作,對讀者信息進行相
關添加、修改、分類管理等操作。系統(tǒng)管理員可以對圖書館信息進行修改更新操
作,對系統(tǒng)用戶進行添加、修改、刪除、權限設置等操作,對圖書館的辦證參數(shù)
進行修改維護等操作功能。測試階段的工作一方面發(fā)現(xiàn)了系統(tǒng)的各種錯誤,另外
一方面也驗證了修改后的系統(tǒng)能夠實現(xiàn)提高圖書館工作效率的預期目的。
第6章總結
在VisualStudio2005開發(fā)環(huán)境下,運用C#編程語言和Access數(shù)據(jù)庫完成了
B/S模式的圖書館借閱管理系統(tǒng)。系統(tǒng)基本上實現(xiàn)了預期的各項功能,達到了任
務書中的主要設計內(nèi)容的各項任務,整個系統(tǒng)也在經(jīng)過測試和不斷地改正之后能
夠順利運行。基本上實現(xiàn)了開題報告中的需求設計,該系統(tǒng)能夠實現(xiàn):
1.讀者在本系統(tǒng)的應用下可實現(xiàn)按照各種方式(如:書名,編號,作者)查詢圖書
館的藏書,能夠查詢自己的借閱圖書情況,修改自己的密碼。
2.圖書館工作人員能夠實現(xiàn)方便的對圖書進行查詢,方便的進行讀者借閱情
況查詢,方便的進行借書還書處理等,便捷的對圖書信息進行添加、修改、刪除,
分類管理等操作,對讀者信息進行相關添加,修改,分類管理等操作。
3.系統(tǒng)管理員可以對圖書館信息進行修改更新操作,對系統(tǒng)用戶進行添加、修
改、刪除、權限設置等操作,對圖書館的辦證參數(shù)進行修改維護等操作功能。
本系統(tǒng)只對傳統(tǒng)書籍進行了最基本的管理,隨著計算機技術的飛速發(fā)展,應將
各個圖書館的圖書進行聯(lián)網(wǎng)交流,使讀者可以遠程查詢圖書館的藏書等信息,還應
開發(fā)對電子書的管理,形成網(wǎng)上圖書資源共享平臺,使讀者可以在線閱讀電子書資
料,并設置用戶權限,使管理員可以上傳圖書資料信息,高級用戶可以下載網(wǎng)上電
子書資源,從而實現(xiàn)信息資源最大化被共享。
經(jīng)過不斷學習和設計開發(fā)加上老師同學的幫助,終于完成了我的畢業(yè)設計,
在開題報告階段我參閱了大量的中外文獻,對所開發(fā)系統(tǒng)的現(xiàn)狀,國際發(fā)展情況以
及未來發(fā)展趨勢有了深入的了解;在整個系統(tǒng)的需求分析過程中對開發(fā)前期工作
地流程步驟有了深入的掌握;在開發(fā)過程我進一步學習了C#的基礎語法,在編寫
過程中也規(guī)范了許多編碼習慣,數(shù)據(jù)庫設計階段我嘗試了幾個不同版本的數(shù)據(jù)庫,
它們在配置操作上各有不同,又各有優(yōu)缺點,在它們的一些基本操作上也有了進一
步提高。
在整個系統(tǒng)開發(fā)的過程中,我學到了很大新的知識,前學過的許多知識點在運
用過程中也有了更為深入的分析,這是我大學期間做過的規(guī)模最大的項目,在這個
過程中也體會到了如何將書本知識轉化到實際的應用中。
參考文獻
[1]王立福.軟件工程(第二版)[M].北京:北京大學出版社.2002.
[2]張秋余,楊玥.基于用例的需求建模方法[J].計算機工程與設計,2006,19:
3539-3541.
[3]張秋余,楊玥.基于用例的需求建模方法[J].計算機工程與設計,2006,19:
3539-3541.
[4]王珊,薩師炫.數(shù)據(jù)庫系統(tǒng)概論(第三版)[M].北京:高等教育出版社.2002
[5]張海潘.軟件工程[J].清華大學出版社.2003年11月
[6]張波.網(wǎng)絡答疑系統(tǒng)的設計與實現(xiàn)[D].長春:吉林大學軟件學院,2005.
[7]陸榮幸,郁洲.J2EE平臺上MVC設計模式的研究與實現(xiàn)[J].計算機應用研
究,2003,03:144-146.
[8]孫衛(wèi)琴,李洪稱.Tomcat與JavaWeb開發(fā)技術詳解[M].北京:電子工業(yè)出版
社,2003.
[9]何成萬,余秋惠.MVC模型2及軟件框架Struts的研究[J].計算機工程,2002,
06:274-276.
[10]戴繼周.基于Web的網(wǎng)絡教學平臺的設計與實現(xiàn)[D].長春:吉林大學計算
機應用技術專業(yè),2004
[11]尹朝慶.計算機系統(tǒng)結構教程[M].北京:清華大學出版社.2005.
[12]張海藩.軟件工程導論(第四版)[M].北京:清華大學出版社,2003.
[13]張維明.信息系統(tǒng)原理與工程.電子工業(yè)出版社.2002年1月
致謝
大學四年學習時光已經(jīng)接近尾聲,在此我想對我的母校,我的父母、親人們,
我的老師和同學們表達我由衷的謝意。感謝我的家人對我大學四年學習的默默支
持;感謝我的母校蘭州理工大學技術工程學院給了我在大學四年深造的機會,讓
我能繼續(xù)學習和提高;感謝老師和同學們四年來的關心和鼓勵。老師們課堂上的
激情洋溢,課堂下的諄諄教誨;同學們在學習中的認真熱情,生活上的熱心主動,
所有這些都讓我的四年充滿了感動。
這次畢業(yè)論文設計我得到了很多老師和同學的幫助,其中我的論文指導老師
對我的關心和支持尤為重要。每次遇到難題,我最先做的就是向指導老師幫助,
而老師每次不管忙或閑,總會抽空來找我面談,然后一起商量解決的辦法。感謝
在整個畢業(yè)設計期間和我密切合作的同學,和曾經(jīng)在各個方面給予過我?guī)椭幕?/p>
伴們,在此,我再一次真誠地向幫助過我的老師和同學表示感謝!
本文發(fā)布于:2023-03-14 00:52:19,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/1678726340122141.html
版權聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:圖書管理系統(tǒng)論文.doc
本文 PDF 下載地址:圖書管理系統(tǒng)論文.pdf
| 留言與評論(共有 0 條評論) |