c-s圖書銷售管理系統(tǒng)畢業(yè)設計_第1頁
已閱讀1頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  畢業(yè)設計(論文)任務書</p><p> 畢業(yè)設計(論文)題目:C-S圖書銷售管理系統(tǒng)畢業(yè)設計(論文)要求及原始數(shù)據(jù)(資料):1.綜述編寫目的程序的緣由及其所帶來的方便性;2.實地了解大中型書店在日常營業(yè)中對圖書的銷售、管理等方式;3.精確分析系統(tǒng)流程,同時構建程序框架;4.熟練掌握C/S程序的編寫技術,訓練利用Java編寫客戶端程序的能力;5. 熟練掌握GUI等技術,完成客戶端程序與數(shù)據(jù)庫

2、之間信息的傳遞;6. 訓練數(shù)據(jù)封裝能力,減少程序中的冗余代碼;7.深入了解測試程序所用的黑盒法以及白盒法;8.訓練檢索文獻資料和利用文獻資料的能力;9.訓練撰寫技術文檔與學位論文的能力。</p><p> 畢業(yè)設計(論文)主要內容:1.綜述圖書銷售管理系統(tǒng)在大中型書店應用的前景;2.了解編寫C/S程序需要的相關技術;3.熟練運用編寫C/S程序的開發(fā)環(huán)境; 4.精確掌握程序開發(fā)需求并設計系統(tǒng)流程圖;5. 深入分析系

3、統(tǒng)流程,完成程序概要設計及劃分程序模塊;6.熟練運用多種Java技術實現(xiàn)程序中的各個模塊并將其整合;7.熟練掌握測試用例的編寫,完成測試,生成測試報告。學生應交出的設計文件(論文):1.內容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設計論文;2.包括畢業(yè)設計論文、源程序等內容在內的畢業(yè)設計電子文檔及其它相關材料。</p><p>  C-S圖書銷售管理系統(tǒng)</p><p><b>

4、  摘 要</b></p><p>  隨著時代的進步,科技的發(fā)展,計算機不但逐漸步入尋常百姓家庭,成為人們日常生活中不可或缺的一部分,而且在工業(yè)、農業(yè)、商業(yè)等多領域起著巨大作用。計算機的廣泛應用對提高經(jīng)濟效益、生活效率、實現(xiàn)管理現(xiàn)代化、科學化、智能化等方面起到了舉足輕重的作用,并且取得了顯著效果。</p><p>  基于C/S的圖書銷售管理系統(tǒng)是專為圖書銷售單位而設計,它取

5、代了過去會計、出納的“賬本式”記錄與管理,在給工作人員帶來方便快捷的同時也大大提高了他們的工作效率,加快了管理步伐,避免了賬目混亂,任務繁重等問題,符合現(xiàn)代辦公的需求。</p><p>  本系統(tǒng)主要使用Java中的GUI(圖形用戶界面)和AWT編程,開發(fā)環(huán)境為Eclipse,數(shù)據(jù)庫采用MySQL5.0。整體框架采用三層架構模式,即顯示層、業(yè)務層、數(shù)據(jù)層,大大降低了程序的耦合性。系統(tǒng)的主要功能包括:銷售管理、庫存

6、管理、書本管理、種類管理、出版社管理五大功能模塊,方便快捷地幫助書店管理人員實現(xiàn)了對圖書進、存、銷三方面的管理。</p><p>  關鍵詞:圖書;銷售管理系統(tǒng);C/S結構</p><p>  Book sales & management system based on C/S</p><p><b>  Abstract</b>&l

7、t;/p><p>  With the rapid development of science and technology,the computer not only gradually into the ordinary people family, become an indispensable part of People's Daily life, and in many fields such

8、as industry, agriculture, business plays a big role. Computer is widely used to improve the economic benefit, the life of efficiency, realize modernization management, scientific, intelligent, etc has played a pivotal ro

9、le, and achieved significant effect.</p><p>  Book sales & management system based on C/S is specially designed for book sales unit, it has replaced the past record of accountant and cashier "books&

10、quot; and the management, the staff to bring convenient at the same time also greatly improve their work efficiency, quicken the steps of the management, to avoid the chaos accounts, the problem such as onerous, meeting

11、the needs of the modern office.</p><p>  This system is mainly used in Java GUI (graphical user interface) and AWT programming, development environment for Eclipse, using MySQL5.0 database. Overall framework

12、 USES the three-tier architecture model, namely the display layer, business layer, data layer, greatly reduces the coupling of the program. System's main features include: sales management, inventory management, book

13、s management, category management, press five big function module, convenient and quick to help bookstore managers rea</p><p>  Keywords: Book;Sales & Management;C / S structure</p><p><b

14、>  目 錄</b></p><p><b>  摘 要i</b></p><p>  Abstractii</p><p><b>  1 緒論1</b></p><p>  1.1 課題背景1</p><p>  1.2 目的和意義1&

15、lt;/p><p>  1.3 開發(fā)工具及技術1</p><p>  1.3.1 開發(fā)工具1</p><p>  1.3.2 開發(fā)語言2</p><p>  1.3.3 開發(fā)結構及模式3</p><p>  1.4 軟硬件需求3</p><p>  1.4.1 硬件需求3&l

16、t;/p><p>  1.4.2 軟件需求3</p><p><b>  2 需求分析4</b></p><p>  2.1 可行性分析4</p><p>  2.1.1 技術可行性4</p><p>  2.1.2 經(jīng)濟可行性4</p><p>  2.1

17、.3 操作可行性4</p><p>  2.1.4 法律可行性4</p><p>  2.2 系統(tǒng)流程圖4</p><p>  2.3 系統(tǒng)用戶用例圖5</p><p>  2.4 功能模塊需求分析5</p><p>  2.5 設計的基本思路6</p><p>  2.

18、6 性能需求6</p><p>  2.6.1 系統(tǒng)的易操作性6</p><p>  2.6.2 數(shù)據(jù)的正確性和完整性7</p><p>  2.6.3 數(shù)據(jù)的安全性7</p><p>  2.7 界面需求7</p><p>  3 系統(tǒng)分析與設計8</p><p>  

19、3.1 數(shù)據(jù)庫的分析與設計8</p><p>  3.1.1 數(shù)據(jù)庫的需求分析8</p><p>  3.1.2 數(shù)據(jù)庫的概念結構設計8</p><p>  3.1.3 數(shù)據(jù)庫的邏輯結構設計11</p><p>  3.2 連接數(shù)據(jù)庫的前期準備工作14</p><p>  3.2.1 編寫配置讀取

20、類14</p><p>  3.2.2 編寫JDBC操作類16</p><p>  3.2.3 創(chuàng)建數(shù)據(jù)轉換工具類17</p><p>  4 系統(tǒng)功能的實現(xiàn)19</p><p>  4.1 創(chuàng)建數(shù)據(jù)庫對象19</p><p>  4.2 管理員登陸頁面20</p><p>

21、;  4.3 設計父類21</p><p>  4.4 出版社管理模塊23</p><p>  4.5 書本管理模塊28</p><p>  4.6 銷售管理模塊35</p><p>  5 系統(tǒng)測試43</p><p>  5.1 系統(tǒng)測試目的與意義43</p><p>

22、;  5.2 測試過程43</p><p>  5.2.1 登錄模塊測試43</p><p>  5.2.2 銷售管理模塊測試44</p><p>  5.2.3 庫存管理模塊測試44</p><p>  5.2.4 書本管理模塊測試44</p><p><b>  結 論46<

23、/b></p><p><b>  參考文獻47</b></p><p><b>  致 謝48</b></p><p><b>  英文文獻原文49</b></p><p><b>  中文譯文55</b></p><

24、p><b>  1 緒論</b></p><p><b>  1.1 課題背景</b></p><p>  改革開放以來,我國經(jīng)濟迅速發(fā)展,科技日益更新,計算機以迅雷不及掩耳之勢覆蓋全球,大量實用軟件更是伴隨計算機語言產(chǎn)生而受到眾多領域的青睞。好的管理軟件能夠把大量的工作人員從繁重的手工工作中解脫出來,提高工作效率并減少錯誤的發(fā)生。調查

25、發(fā)現(xiàn),目前我國中小型書店仍采用手工方式對圖書進行管理記錄,不僅工作量大、效率低,而且還容易出現(xiàn)數(shù)量不清、賬目混亂等問題,與現(xiàn)代辦公要求格格不入。</p><p>  中小型書店最繁重的工作就是圖書進、存、銷三方面的工作,因此只需要設計一款簡單而實用的軟件,幫助書店工作人員輕松實現(xiàn)這三方面的工作?;靵y的界面,繁瑣的操作不僅難以達到輕松管理的目的,還容易使工作人員情緒暴躁,影響書店效益。因此,我的目標是做一款界面清晰

26、,操作方便的簡單管理軟件。</p><p>  1.2 目的和意義</p><p>  圖書銷售管理系統(tǒng)開發(fā)的目的是為圖書銷售單位提供圖書信息管理和提高圖書銷售管理工作的效率。 </p><p>  圖書銷售管理系統(tǒng)是一個圖書銷售單位不可缺少的部分,它的內容對于圖書銷售單位的決策者和管理者來說都至關重要,所以圖書銷售管理系統(tǒng)應該能夠為用戶提供充足的信息和

27、快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理數(shù)據(jù)信息,這種管理方式存在著許多缺點,如:效率低、工作量大,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。  </p><p>  作為計算機應用的一部分,使用計算機對圖書銷售信息進行管理,具有手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、壽命長、成本低等。這些優(yōu)點能夠極大地提高圖書

28、銷售管理工作的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。</p><p>  1.3 開發(fā)工具及技術</p><p>  本系統(tǒng)基于C/S結構設計,采用三層架構體系,編寫系統(tǒng)主要用到Java中的GUI(圖形用戶界面)和AWT編程,開發(fā)環(huán)境為Eclipse,數(shù)據(jù)庫采用MySQL5.0并以Navicat for MySQL作為輔助工具。下面分別對C/S模型、三層架構模式、GU

29、I、AWT編程、Eclipse、MySQL 5.0數(shù)據(jù)庫和Navicat for MySQL進行簡要介紹。</p><p>  1.3.1 開發(fā)工具</p><p>  (1) Eclipse</p><p>  Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),通過安裝不同的插件Eclipse可以支持不同的計算機語言,比如C

30、++和Python等開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE.</p><p>  Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎,包括Platform、JDT 和PDE。Eclipse

31、項目IBM發(fā)起,圍繞著Eclipse項目已經(jīng)發(fā)展成為了一個龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個開放源碼項目,它其實是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開放源碼,任何人都可以免費得到,并可以在此基礎上開發(fā)各自的

32、插件,因此越來越受人們關注。隨后還有包括Oracle在內的許多大公司也紛紛加入了該項目,Eclipse的目標是成為可進行任何語言開發(fā)的IDE集成者,使用者只需下載各種語言的插件即可。</p><p>  (2) MySQL 5.0</p><p>  MySQL 5.0是一個關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。Mysql是最流行的關系型數(shù)據(jù)庫管理

33、系統(tǒng),在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關系數(shù)據(jù)庫管理系統(tǒng))應用軟件之一。MySQL是一種關聯(lián)數(shù)據(jù)庫管理系統(tǒng),關聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內,這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了雙授權政策(本詞條“授權政策”),它分為社區(qū)版和商業(yè)版,由

34、于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。</p><p>  (3) Navicat for MySQL</p><p>  Navicat for MySQL是一款強大的 MySQL 數(shù)據(jù)庫管理和開發(fā)工具,它為專業(yè)開發(fā)者提供了一套強大的足夠尖端的工

35、具,但對于新用戶仍然易于學習。Navicat for MySQL 基于Windows平臺,為 MySQL 量身訂作,提供類似于 MySQL 的用管理界面工具。此解決方案的出現(xiàn),將解放 PHP、J2EE 等程序員以及數(shù)據(jù)庫設計者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。</p><p>  Navicat for MySQL 使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易

36、地創(chuàng)建、組織、存取和共享信息。 用戶可完全控制 MySQL 數(shù)據(jù)庫和顯示不同的管理資料,包括一個多功能的圖形化管理用戶和訪問權限的管理工具,方便將數(shù)據(jù)從一個數(shù)據(jù)庫轉移到另一個數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local),進行檔案備份。 Navicat for MySQL 支援 Unicode,以及本地或遠程 MySQL 服務器多連線,用戶可瀏覽數(shù)據(jù)庫、建立和刪除數(shù)據(jù)庫、編輯

37、數(shù)據(jù)、建立或執(zhí)行 SQL queries、管理用戶權限(安全設定)、將數(shù)據(jù)庫備份/復原、匯入/匯出數(shù)據(jù)(支援 CSV, TXT, DBF 和 XML 檔案種類)等。軟件與任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 數(shù)據(jù)種類等的規(guī)范。</p><p>  1.3.2 開發(fā)語言</p><p>  主要使用Java語言

38、中的GUI(圖形用戶界面)和AWT(抽象窗口工具包)編程。</p><p><b>  (1) GUI</b></p><p>  圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口),即人機交互圖形化用戶界面設計,是指采用圖形方式顯示的計算機操作用戶界面。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于

39、接受。</p><p><b>  (2) AWT</b></p><p>  抽象窗口工具包(Abstract Windowing Toolkit,縮寫為AWT)是Java的平臺獨立的窗口系統(tǒng)圖形和用戶界面器件工具包。AWT 是Java基礎類 (JFC)的一部分,為Java程序提供圖形用戶界面(GUI)的標準API。 AWT提供了JavaApplet和Java Ap

40、plication中可用的用戶圖形界面GUI中的基本組件(components)。由于Java是一種獨立于平臺的程序設計語言,但GUI卻往往是依賴于特定平臺的,Java采用了相應的技術使得AWT能提供給應用程序獨立于機器平臺的接口,這保證了同一程序的GUI在不同機器上運行具有類似的外觀。</p><p>  1.3.3 開發(fā)結構及模式</p><p><b>  (1) C/S

41、結構</b></p><p>  C/S 結構,即大家熟知的客戶機和服務器結構。它是軟件系統(tǒng)體系結構,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)都是Client/Server形式的兩層結構,由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的Web應用發(fā)展,Web和Client/Server 應用都可以進行同樣的業(yè)務處理,應

42、用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。這也就是目前應用系統(tǒng)的發(fā)展方向。</p><p>  (2) 三層架構模式</p><p>  三層架構模式即顯示層、業(yè)務邏輯層、數(shù)據(jù)層。其工作模式:顯示層往往面向操作者,主要用來接受數(shù)據(jù)、傳遞數(shù)據(jù)和顯示數(shù)據(jù);業(yè)務邏輯層主要是用來處理顯示層接收到的數(shù)據(jù)和數(shù)據(jù)庫中

43、的數(shù)據(jù);數(shù)據(jù)層主要用來對數(shù)據(jù)庫進行操作,其中包括常見的增、刪、改、查等操作。采用三層架構模式可以大大降低了程序的耦合性,符合現(xiàn)代軟件的標準。</p><p>  1.4 軟硬件需求</p><p>  1.4.1 硬件需求</p><p>  電腦:筆記本電腦或臺式電腦</p><p>  CPU:Pentium以上</p>

44、<p>  內存: 512M以上</p><p>  1.4.2 軟件需求</p><p>  操作系統(tǒng)版本:Windows XP /vista/Win7</p><p>  開發(fā)工具:Eclipse</p><p><b>  開發(fā)語言:Java</b></p><p><b

45、>  2 需求分析</b></p><p>  2.1 可行性分析</p><p>  可行性研究主要內容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟效益為核心,圍繞影響項目的各種因素,運用大量的數(shù)據(jù)資料論證擬建項目是否可行。對整個可行性研究提出綜合分析評價,指出優(yōu)缺點和建議以確定該項目是否可行。</p><p>  2.1.1 技術可行性<

46、;/p><p>  本系統(tǒng)開發(fā)工具是Eclipse和MySQL數(shù)據(jù)庫,開發(fā)語言是Java,java是一種面向對象編程語言,簡單易學而且靈活方便。數(shù)據(jù)庫的設計和操作是本系統(tǒng)設計的核心,但在Navicat for MySQL的幫助下能夠輕松便捷的對數(shù)據(jù)庫進行操作。此外,大學期間學習過數(shù)據(jù)庫操作語言,軟件測試,UML統(tǒng)一建模語言等課程使系統(tǒng)分析、設計和測試不再成為難題。因此,完成系統(tǒng)實現(xiàn)在技術上完全具有可行性。</p

47、><p>  2.1.2 經(jīng)濟可行性</p><p>  開發(fā)此項目用到的軟件都是開源的,為開發(fā)軟件節(jié)省了大量的金錢,達到了低成本的目的。另外,本系統(tǒng)對計算機配置的要求不高,幾乎每個家庭中可使用的電腦都能滿足。因此,開發(fā)該系統(tǒng)在經(jīng)濟上是完全可行的。</p><p>  2.1.3 操作可行性</p><p>  該系統(tǒng)是本著界面簡潔、操作方便

48、的目的進行開發(fā),主要目的是幫助圖書銷售商對圖書進行進、存、銷三方面管理。因此該系統(tǒng)在操作上具有功能簡單,操作簡潔的優(yōu)勢,完全可行。</p><p>  2.1.4 法律可行性</p><p>  由于在開發(fā)過程中所使用的軟件都是開源軟件,不存在侵權問題。此外,開發(fā)該系統(tǒng)的目的僅僅是作為一款管理軟件應用于圖書銷售單位,不存在與國家法律不符的目的綜上所述,該系統(tǒng)的開發(fā)在法律方面也是可行的。&

49、lt;/p><p>  2.2 系統(tǒng)流程圖</p><p>  圖2.1 系統(tǒng)流程圖</p><p>  如圖2.1所示,由于系統(tǒng)是C/S模式,所以無需注冊等操作,只需要在編程時將用戶名和密碼設定,如客戶對用戶名和密碼有特殊要求,由編程人員將客戶要求的用戶名和密碼事先輸入程序當中,如本系統(tǒng)的用戶名和密碼都為yujian,該數(shù)據(jù)已經(jīng)在數(shù)據(jù)庫的T_USER表事先存好。如果

50、客戶輸入錯誤,則要重新回到登錄頁面輸入正確的賬號密碼。如果輸入正確,則可以進入用戶操作頁面進行相應的操作。在進一系列的操作之后然后點擊關閉按鈕,即可退出系統(tǒng)。</p><p>  2.3 系統(tǒng)用戶用例圖</p><p>  系統(tǒng)只涉及圖書的進、存、銷三方面的功能,其所對應的功能模塊分別是圖書管理模塊、庫存管理模塊、銷售管理模塊。此外,為方便用戶在這三方面的操作更加簡潔增加了出版社管理模塊

51、,種類管理模塊,這樣做一方面能夠使用戶界面簡單易用,另一方面能夠使用戶在主要使用的三個重要界面有更多的選擇而不是去輸入,減少了錯誤發(fā)生的概率。</p><p>  管理員即能夠正確輸入用戶名和密碼的操作人員,且其享有全部權限。因此管理員用例圖十分清晰明了,如圖2.2。</p><p>  圖2.2 管理員用例圖</p><p>  圖2.2清晰明了的告訴我們用戶登錄

52、是前提,只有用戶經(jīng)過正確的身份驗證才可以操作本系統(tǒng)幾個最重要的操作頁面。</p><p>  2.4 功能模塊需求分析</p><p>  本系統(tǒng)本著界面簡潔大方,操作簡單的原則實現(xiàn)以下功能:</p><p>  1.系統(tǒng)界面清晰分明、簡單易用,管理人員能夠在短時間內熟練操作。</p><p>  2.管理員享有銷售管理、庫存管理、圖書管理

53、、出版社管理、種類管理五大權限。</p><p>  3.盡可能的讓用戶去選擇,而不是輸入,減少錯誤發(fā)生的概率。</p><p>  4.增加主要功能的快捷鍵,增加操作的簡易性。</p><p>  系統(tǒng)的功能結構圖,如圖2.3。</p><p>  圖2.3 系統(tǒng)功能模塊圖</p><p>  從圖2.3中可以看到,

54、系統(tǒng)分為六個模塊,分別是管理人員登錄模塊,銷售管理模塊,入庫管理模塊,圖書管理模塊,種類管理模塊和出版社管理模塊,其中登錄模塊并不與其它模塊相平行,登錄模塊只是決定操作人員是否有權限去操作其它五大模塊。</p><p>  2.5 設計的基本思路</p><p>  設計思路遵循以下幾點:</p><p>  1. 考慮到圖書銷售單位只是簡單的對圖書進行管理、記錄

55、,因此軟件采用C/S結構,C/S結構的優(yōu)點是客戶端響應速度快,能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務器。</p><p>  2. 采用三層架構模式。一方面能夠使開發(fā)人員的邏輯思維清晰,提高軟件開發(fā)效率,另一方面降低了程序的耦合性,例如本程序如果要開發(fā)成為B/S結構只需要改動業(yè)務邏輯層即可。</p><p>  3. 模塊化設計。模塊化設計要求將整個系統(tǒng)劃分

56、成基于小的模塊,有利于代碼的重載,簡化設計和實現(xiàn)過程。</p><p>  4. 效率第一。設計該系統(tǒng)的目的是讓大量工作人員從繁瑣的工作中解脫出來,因此本系統(tǒng)必須達到提高工作效率的目的。</p><p>  5.界面清晰明了,操作簡單。方便用戶使用,讓用戶能夠在最短時間輕松方便的適應系統(tǒng)的操作。</p><p>  7.系統(tǒng)設計不僅要功能完善還要突出重點。要符合設計

57、需求,在有可能改進的地方進行擴充,使系統(tǒng)更適應用戶的需要。</p><p><b>  2.6 性能需求</b></p><p>  2.6.1 系統(tǒng)的易操作性</p><p>  為使工作人員能夠輕松操作該系統(tǒng),需做到以下要求:</p><p>  1.操作界面不涉及跳轉,要操作的界面覆蓋已顯示的界面。</p

58、><p>  2.主要功能界面盡可能的讓用戶去選擇,而不是輸入。</p><p>  3.部分系統(tǒng)設計加入自動計算功能,且不可更改。</p><p>  4.在操作發(fā)生錯誤時出現(xiàn)友好提示。</p><p>  2.6.2 數(shù)據(jù)的正確性和完整性</p><p>  1.數(shù)據(jù)庫設計過程中明確哪些數(shù)據(jù)可以為空,哪些數(shù)據(jù)不能為空

59、。</p><p>  2.關系表中的相關數(shù)據(jù)必須明確統(tǒng)一。</p><p>  3.具有自動判斷功能,如銷售數(shù)量大于庫存數(shù)量時應給出友好的錯誤提示。</p><p>  4.具有自動加、減、乘功能,保證單價、總量等數(shù)據(jù)的正確性。</p><p>  5.交易日期根據(jù)系統(tǒng)時間而顯示、記錄,且不可更改。</p><p>

60、  2.6.3 數(shù)據(jù)的安全性</p><p>  只有被授權的管理人員,即知道賬戶和密碼的人才可進入系統(tǒng)。</p><p><b>  2.7 界面需求</b></p><p>  界面設計是整個設計很重要的一部分,好的界面不僅方便管理人員操作,還可以使操作人員有一個陽光的心情,提高工作人員工作效率,因此界面的設計必須滿足以下幾點要求:&l

61、t;/p><p><b>  1.簡易性</b></p><p>  界面的簡潔是讓用戶便于了解,便于使用,并能減少用戶發(fā)生錯誤選擇的可能性。</p><p><b>  2.用戶語言</b></p><p>  界面中要使用能反應用戶本身的語言,而不是程序員的語言。</p><p&

62、gt;<b>  3.記憶負擔最小化</b></p><p>  人腦不是電腦,在設計界面時必須要考慮大腦處理信息的限度。人類的短期記憶極不穩(wěn)定,且有限,24小時內存在25%的遺忘率。所以對用戶來說,瀏覽信息要比記憶更加重要。</p><p><b>  4.一致性</b></p><p>  一致性是每個優(yōu)秀界面都具備的

63、特點。界面的結構必須清晰且一致,與客戶的需求一致。</p><p><b>  5.清楚</b></p><p>  視覺上便于理解與使用。</p><p><b>  6.用戶熟悉程度</b></p><p>  用戶可通過已掌握的知識來使用界面,但不應超出一般常識。</p><

64、;p><b>  7.人性化</b></p><p>  高效率和用戶滿意度是人性化的體現(xiàn)。想用戶所想,做用戶所做,用戶總是按照他們自己的方法理解和使用。</p><p><b>  8.安全性</b></p><p>  用戶做出危險的選擇使有信息介入系統(tǒng)的提示。</p><p>  3

65、系統(tǒng)分析與設計</p><p>  3.1 數(shù)據(jù)庫的分析與設計</p><p>  數(shù)據(jù)庫是整個系統(tǒng)的各個部分能否緊密地結合在一起以及如何結合的關鍵所在,因此數(shù)據(jù)庫是系統(tǒng)的核心和基礎。的計算機信息系統(tǒng)以數(shù)據(jù)庫為核心,在數(shù)據(jù)庫管理系統(tǒng)的支持下,進行信息的收集、整理、存儲、檢索、更新、加工、統(tǒng)計和傳播等操作。數(shù)據(jù)庫設計的好壞直接影響到整個系統(tǒng)的質量和效率。</p><p&

66、gt;  數(shù)據(jù)庫的設計一般經(jīng)過需求分析、概念設計、邏輯設計、物理設計4個步驟。</p><p>  3.1.1 數(shù)據(jù)庫的需求分析</p><p>  首先可以確定需要一個用戶表,其中儲存的數(shù)據(jù)有用戶名和密碼,以作驗證之用。其次,系統(tǒng)相關的表,從最基礎開始,有出版社表、書的類型表、書表、入庫記錄表和銷售記錄表,其中,一條入庫記錄中涉及多本書,一條銷售記錄也涉及多本書,因此還需要書的入庫記錄

67、表和書的銷售記錄表,一條書的入庫記錄對應一本書,該條書的入庫記錄屬于某一條入庫記錄,可以理解成這是書與入庫記錄的關系表,同樣地,書的銷售記錄與書的入庫記錄一樣。</p><p>  3.1.2 數(shù)據(jù)庫的概念結構設計</p><p>  概念設計是指在數(shù)據(jù)分析的基礎上自底向上的建立整個系統(tǒng)的數(shù)據(jù)庫概念結構,從用戶的角度進行視圖設計,然后將視圖集成,最后對集成的結構分析優(yōu)化得到最后結果。&l

68、t;/p><p>  數(shù)據(jù)庫的概念結構設計采用實體—聯(lián)系(E-R)模型設計方法。E-R模型用E-R圖表示,E-R模型法的組成元素有:實體、屬性、聯(lián)系。下面簡單介紹這三種組成元素:</p><p>  1.實體(Entity):客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物,例如一名學生,一門課程等;也可以是抽象的概念或聯(lián)系,例如一次選課,一場競賽等。</p>&l

69、t;p>  2.屬性(Attribute):每個實體都有自己的一組特征或性質,這種用來描述實體的特征或性質稱為實體的屬性。例如,學生實體具有學號、姓名、性別等屬性。不同實體的屬性是不同的。實體屬性的某一組特定的取值(稱為屬性值)確定了一個特定的實體。例如,學號是0611001、姓名是王冬、性別是女等等,這些屬性值綜合起來就確定了“王冬”這名同學。屬性的可能取值范圍稱為屬性域,也稱為屬性的值域。例如,學號的域為8位整數(shù),姓名的域為字

70、符串集合,性別的域為(男,女)。實體的屬性值是數(shù)據(jù)庫中存儲的主要數(shù)據(jù)。</p><p>  3.聯(lián)系(Relation):現(xiàn)實世界中,事物內部以及事物之間不是孤立的,是有聯(lián)系的,這些聯(lián)系反映在信息世界中表現(xiàn)為實體內部的聯(lián)系和實體之間的聯(lián)系。</p><p>  概念設計的目標是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫概念結構,即概念模式。概念模式獨立于數(shù)據(jù)庫邏輯結構,獨立于數(shù)據(jù)庫的DBMS,不依賴

71、于計算機系統(tǒng)的,</p><p>  根據(jù)以上對數(shù)據(jù)庫的需求分析,并結合系統(tǒng)概念模型的特點及建立方法,建立E-R模型圖,其中用矩形表示實體,橢圓形表示屬性,棱形表示實體間關系。</p><p>  本系統(tǒng)概念設計圖有:</p><p>  圖3.1 管理員實體E-R圖</p><p>  圖3.1所示為管理員信息的E-R圖,其中包括的信息有I

72、D、用戶名和密碼,ID是隱藏列,作為主鍵。用戶名和密碼作為是否有權操作系統(tǒng)的驗證信息儲存在數(shù)據(jù)庫當中。</p><p>  圖3.2 出版社實體E-R圖</p><p>  圖3.2是出版社信息的E-R圖,主要包括出版社名稱、聯(lián)系人、聯(lián)系電話、簡介四方面,存儲這些信息的主要目的是方便圖書管理人員聯(lián)系出版社以進行進退貨的協(xié)商。</p><p>  圖3.3 書本信息實

73、體E-R圖</p><p>  圖3.3為書本信息的E-R圖,主要包括的信息有書名、作者、單價、縮略圖和庫存數(shù)量。書名、單價和作者是由操作人員輸入并儲存在數(shù)據(jù)庫當中的。庫存數(shù)量是當前書本的數(shù)目,當數(shù)目發(fā)生改變時,數(shù)據(jù)會自動更新。</p><p>  圖3.4 種類信息實體E-R圖</p><p>  圖3.4是種類信息的E-R圖,主要包括種類名稱、簡介兩部分信息。由

74、于種類管理頁面是作為圖書管理頁面的輔助頁面設計的,其數(shù)據(jù)庫中的信息也是為圖書管理信息設計的。</p><p>  圖3.5 入庫信息實體E-R圖</p><p>  圖3.5是入庫信息的E-R圖,因為庫存管理頁面有個按日期查詢入庫信息的功能,為此,需要設計一個記錄入庫日期的數(shù)據(jù)庫。</p><p>  圖3.6 交易信息實體E-R圖</p><p

75、>  圖3.6是交易信息的E-R圖,設計這樣一個數(shù)據(jù)的目的同設計入庫信息的目的是一樣的,都是為了方面管理人員進行查詢。</p><p>  圖3.7 書的入庫信息實體E-R圖</p><p>  如圖3.7,書的入庫信息不同于入庫信息,書的入庫信息包括入庫書本的名稱、入庫數(shù)量和相關的入庫記錄三方面的信息。入庫管理信息頁面中按日期查詢入庫記錄所查詢到的內容正是此數(shù)據(jù)中記錄的相關信息。&

76、lt;/p><p>  圖3.8 銷售信息實體E-R圖</p><p>  圖3.8是銷售信息的E-R圖,與圖3.7相似,這個數(shù)據(jù)庫的設計主要是保存銷售的書本、數(shù)量和當天的銷售記錄信息,其主要目的一方面是記錄,另一方面是方便管路人員查詢。</p><p>  3.1.3 數(shù)據(jù)庫的邏輯結構設計</p><p>  由于數(shù)據(jù)庫概念模型獨立于任何特定

77、的數(shù)據(jù)庫管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點進行轉換。即轉化為按計算機觀點處理的邏輯關系模型,E-R模型向關系數(shù)據(jù)庫模型轉換應遵循下列原則:</p><p>  1.每一個實體要轉換成一個關系</p><p>  2.所有的主鍵必須定義非空(NOT NULL)</p><p>  3.對于二元聯(lián)系應按照一對多、弱對實、一對一、多對多等聯(lián)系來定義外鍵

78、。</p><p>  根據(jù)E-R模型,圖書管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結構,下面是各數(shù)據(jù)表的詳細說明:</p><p>  1.管理員信息表只記錄賬戶與密碼,以便登錄用。表結構如表3.1所示。</p><p>  表3.1 管理員信息表(t_user)</p><p>  2.種類信息表主要是記錄了書的種類的基本信息,表結構如表3.2所示。&

79、lt;/p><p>  表3.2 書的種類信息表(t_book_type)</p><p>  3.出版社信息表主要是記錄了出版社的相關信息,表結構如圖3.3所示。</p><p>  表3.3 出版社信息表(t_publisher)</p><p>  4.書本信息表主要記錄了與書相關的所有內容,表結構如表3.4示。</p>&l

80、t;p>  表3.4 書本信息表(t_book)</p><p>  5.交易記錄表, 一個交易記錄包括多個書的銷售記錄, 一次交易可能有多本書,表結構如表3.5示。</p><p>  表3.5 書本交易信息表(t_sale_record)</p><p>  6.書的銷售記錄, 一條記錄對應一本書,表結構如表3.6示。</p><p&g

81、t;  表3.6 書本信息表(t_book_sale_record)</p><p>  7.入庫記錄表, 一次入庫會入多本書,表結構如表3.7所示。</p><p>  表3.7 入庫記錄表表(t_book_sale_record)</p><p>  8.書的入庫記錄表, 其中包括入庫的書、對應的入庫記錄、入庫數(shù)量等信息,表結構如表3.8所示。</p>

82、;<p>  表3.8 入庫記錄表表(t_book_in_record)</p><p>  3.2 連接數(shù)據(jù)庫的前期準備工作</p><p>  數(shù)據(jù)庫中的表已經(jīng)建好,在系統(tǒng)功能實現(xiàn)時只需要建立每個表相對應的類即可,要使客戶對書本的管理信息存入數(shù)據(jù)庫就必須將數(shù)據(jù)庫與程序聯(lián)系起來。為此,需要做一些工作將數(shù)據(jù)庫“嵌入”系統(tǒng)之中。</p><p>  3

83、.2.1 編寫配置讀取類</p><p>  連接數(shù)據(jù)庫就要先做數(shù)據(jù)庫相關的一些配置,例如對應數(shù)據(jù)庫的相關驅動、數(shù)據(jù)庫地址、用戶名和密碼,然后可以放到配置文件中,如果需要更換數(shù)據(jù)庫或者地址,只需要修改這份配置文件即可。</p><p>  建立配置文件jdbc.properties,內容如下:</p><p><b>  //JDBC驅動</b&g

84、t;</p><p>  jdbc.driver=com.mysql.jdbc.Driver</p><p><b>  //連接地址</b></p><p>  jdbc.url=jdbc:mysql://localhost:3306/book_system</p><p><b>  //數(shù)據(jù)庫用戶名<

85、;/b></p><p>  jdbc.user=yujian</p><p><b>  //密碼</b></p><p>  jdbc.pass=yujian</p><p>  建立好該文件后,再編寫類去讀取該文件,獲得所需要的值即可。用于讀取配置的PropertiesUtil類,代碼如下:</p>

86、;<p>  public class PropertiesUtil {</p><p>  //該記錄所對應的書的銷售數(shù)量</p><p>  private static Properties properties = new Properties();</p><p>  private static String CONFIG = "

87、/cfg/jdbc.properties";//配置文件的路徑</p><p>  //讀取資源文件, 設置輸入流</p><p>  private staitc InputStream is =propertiesUtil.class.</p><p>  getResourceAsStream(CONFIG);</p><p&

88、gt;  public static String JDBC_DRIVER; //數(shù)據(jù)庫驅動</p><p>  public static String JDBC_URL; //jdbc連接url</p><p>  public static String JDBC_USER; //數(shù)據(jù)庫用戶名</p><p>  public static String JD

89、BC_PASS; //數(shù)據(jù)庫密碼</p><p><b>  static {</b></p><p>  properties.load(is); //加載輸入流</p><p>  //獲得配置的各個屬性</p><p>  JDBC_DRIVER = properties.getProperty("jdb

90、c.driver");</p><p>  JDBC_URL = properties.getProperty("jdbc.url");</p><p>  JDBC_USER = properties.getProperty("jdbc.user");</p><p>  JDBC_PASS = propertie

91、s.getProperty("jdbc.pass");</p><p><b>  }</b></p><p><b>  }</b></p><p>  public class PropertiesUtil {</p><p>  //該記錄所對應的書的銷售數(shù)量</p&

92、gt;<p>  private static Properties properties = new Properties();</p><p>  private static String CONFIG = "/cfg/jdbc.properties";//配置文件的路徑</p><p>  //讀取資源文件, 設置輸入流</p>&l

93、t;p>  private staitc InputStream is =propertiesUtil.class.</p><p>  getResourceAsStream(CONFIG);</p><p>  public static String JDBC_DRIVER; //數(shù)據(jù)庫驅動</p><p>  public static Strin

94、g JDBC_URL; //jdbc連接url</p><p>  public static String JDBC_USER; //數(shù)據(jù)庫用戶名</p><p>  public static String JDBC_PASS; //數(shù)據(jù)庫密碼</p><p><b>  static {</b></p><p> 

95、 properties.load(is); //加載輸入流</p><p>  //獲得配置的各個屬性</p><p>  JDBC_DRIVER = properties.getProperty("jdbc.driver");</p><p>  JDBC_URL = properties.getProperty("jdbc.url&

96、quot;);</p><p>  JDBC_USER = properties.getProperty("jdbc.user");</p><p>  JDBC_PASS = properties.getProperty("jdbc.pass");</p><p><b>  }</b></p&g

97、t;<p><b>  }</b></p><p>  3.2.2 編寫JDBC操作類</p><p>  JDBC是Java Data Base Connectivity的簡稱,是Java中進行數(shù)據(jù)庫連接的技術。JDBC的API提供了標準統(tǒng)一的SQL數(shù)據(jù)存取接口,可以讓程序員不需要關心如何去連接不同的數(shù)據(jù)庫,只需為不同的數(shù)據(jù)庫提供不同的驅動,就可以達

98、到連接不同數(shù)據(jù)庫的要求。</p><p>  配置好了之后,開始著手編寫數(shù)據(jù)庫的操作類,首先肯定是幫我們進行數(shù)據(jù)庫連接,我們之前配置了連接的相關屬性,接著我們需要這個類幫我們提供查詢、執(zhí)行SQL等功能。確定好目標后,開始編寫。</p><p>  新建JDBCExecutor類,該類具有屬性如下:</p><p>  private static String DR

99、IVER = PropertiesUtil.JDBC_DRIVER; //獲得驅動</p><p>  private static String URL = PropertiesUtil.JDBC_URL; //獲得url</p><p>  //獲得連接數(shù)據(jù)庫的用戶名</p><p>  private static String USER = Properti

100、esUtil.JDBC_USER;</p><p>  //獲得連接數(shù)據(jù)庫的密碼</p><p>  private static String PASS = PropertiesUtil.JDBC_PASS;</p><p>  private Connection connection; //連接對象</p><p>  private

101、static JDBCExecutor jdbcExecutor; //維護一個本類型的對象</p><p>  private Statement stmt; //維護一個本類型的對象</p><p>  private static String DRIVER = PropertiesUtil.JDBC_DRIVER; //獲得驅動</p><p>  priv

102、ate static String URL = PropertiesUtil.JDBC_URL; //獲得url</p><p>  //獲得連接數(shù)據(jù)庫的用戶名</p><p>  private static String USER = PropertiesUtil.JDBC_USER;</p><p>  //獲得連接數(shù)據(jù)庫的密碼</p><

103、p>  private Connection connection; //連接對象</p><p>  private static String PASS = PropertiesUtil.JDBC_PASS; </p><p>  private static JDBCExecutor jdbcExecutor; //維護一個本類型的對象</p><p>

104、  private Statement stmt; //維護一個本類型的對象</p><p>  注:由于創(chuàng)建一個Connection對象需要耗費很大的資源,因此使用單態(tài)模式,讓JDBCExecutor類維護一個JDBCExecutor對象,可以在構造器中創(chuàng)建Connection,由于JDBCExecutor是單態(tài)的,因此可以保證在應用中只創(chuàng)建一個Connection。</p><p> 

105、 然后在JDBCExecutor的構造器中創(chuàng)建各個對象,再提供一個方法返回JDBCExecutor的實例。</p><p>  private JDBCExecutor() {</p><p>  //初始化JDBC驅動并讓驅動加載到jvm中</p><p>  Class.forName(DRIVER);</p><p><b>

106、  //創(chuàng)建數(shù)據(jù)庫連接</b></p><p>  connection = DriverManager.getConnection(URL, USER, PASS);</p><p>  //創(chuàng)建Statement對象</p><p>  stmt = connection.createStatement();</p><p>

107、<b>  }</b></p><p>  public static JDBCExecutor getJDBCExecutor() {</p><p>  //如果本類所維護jdbcExecutor屬性為空,則調用私有的構造器獲得實例</p><p>  if (jdbcExecutor == null) jdbcExecutor = new

108、 JDBCExecutor();</p><p>  return jdbcExecutor;</p><p><b>  }</b></p><p>  private JDBCExecutor() {</p><p>  //初始化JDBC驅動并讓驅動加載到jvm中</p><p>  Cla

109、ss.forName(DRIVER);</p><p><b>  //創(chuàng)建數(shù)據(jù)庫連接</b></p><p>  connection = DriverManager.getConnection(URL, USER, PASS);</p><p>  //創(chuàng)建Statement對象</p><p>  stmt = c

110、onnection.createStatement();</p><p><b>  }</b></p><p>  public static JDBCExecutor getJDBCExecutor() {</p><p>  //如果本類所維護jdbcExecutor屬性為空,則調用私有的構造器獲得實例</p><p&

111、gt;  if (jdbcExecutor == null) jdbcExecutor = new JDBCExecutor();</p><p>  return jdbcExecutor;</p><p><b>  }</b></p><p>  最后只需要編寫一些簡單查詢功能,并把查詢后的結果保存在一個對象中即可:</p>

112、<p>  public ResultSet executeQuery(String sql) {</p><p>  //利用Statement對象執(zhí)行參數(shù)的sql</p><p>  ResultSet result = stmt.executeQuery(sql);</p><p>  return result;</p><p

113、><b>  }</b></p><p>  public int executeUpdate(String sql) {</p><p>  int result = -1;</p><p><b>  //執(zhí)行SQL語句</b></p><p>  stmt.executeUpdate(s

114、ql);</p><p><b>  //獲得主鍵</b></p><p>  ResultSet rs = stmt.getGeneratedKeys();</p><p>  while(rs.next()) result = rs.getInt(1); //返回最后一個主鍵</p><p>  rs.close()

115、;</p><p>  return result;</p><p><b>  }</b></p><p>  3.2.3 創(chuàng)建數(shù)據(jù)轉換工具類</p><p>  DBCExecutor中提供了一個executeQuery方法,該方法返回ResultSet對象,需要對該結果集進行一些封裝。因此需要創(chuàng)建一個工具類,對該

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論