數(shù)據(jù)庫課程設(shè)計報告圖書管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設(shè)計報告圖書管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設(shè)計報告圖書管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設(shè)計報告圖書管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設(shè)計報告圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、word數(shù)據(jù)庫原理課程設(shè)計報 告 書課 題 名 圖書信息管理系統(tǒng) 指導(dǎo)教師 日 期 目 錄一、前言.2二、概述.22.1開發(fā)目的.2三、需求分析.23.1可行性分析.23.1.1技術(shù)可行性.23.1.2經(jīng)濟可行性.33.1.3管理可行性.33.2系統(tǒng)目標.33.3系統(tǒng)應(yīng)該具備的功能.33.4系統(tǒng)結(jié)構(gòu)圖.44、 概念設(shè)計.55、 邏輯設(shè)計.96、 物理設(shè)計.95.1表命令.95.2表結(jié)構(gòu)圖.137、 代碼實現(xiàn).136.1數(shù)據(jù)庫連接.136.2增加一條圖書記錄.146.3刪除一條圖書記錄.166.4修改一條圖書記錄.176.5查詢一條圖書記錄.18八、結(jié)束語.22前言近年來,隨著我國市場經(jīng)濟的迅速

2、開展和人們生活水平的不斷提高,以及計算機的普及使用,圖書館藏書的數(shù)目逐漸增大,這也是挑戰(zhàn)了圖書管理方面的技術(shù),以前的人工管理方式已經(jīng)不再適應(yīng)現(xiàn)在的環(huán)境,取而代之的是先進的圖書管理系統(tǒng),提高了圖書館的工作效率,為想要借書和還書的人提供更好的效勞。1、概述1.1 開發(fā)目的 圖書信息管理工作面對大量的可模塊化處理的信息,是當今信息革命的一個重要陣地。我們小組開發(fā)圖書管理信息系統(tǒng)就是采用現(xiàn)代化的信息管理方式代替手工管理方式,提高圖書管理工作效率,做到信息的標準管理,科學(xué)統(tǒng)計和快速查詢,讓圖書館更好的為學(xué)校、社會效勞。2、需求分析2.1可行性分析技術(shù)可行性 就技術(shù)力量來說,我們小組可以完成此次開發(fā)工作。

3、開發(fā)過程中會出現(xiàn)許多問題,有我們預(yù)想之中的,也有一些沒有在我們預(yù)想中,但我們有信心克服一切困難。我們小組各成員已經(jīng)學(xué)習(xí)了MySQL,SQL,對網(wǎng)絡(luò)技術(shù)和操作系統(tǒng)也有系統(tǒng)的了解,熟悉計算機原理,能解決常見的硬件故障和硬件選擇。經(jīng)濟可行性 目標系統(tǒng)開發(fā)需求比擬低,加上具有成熟的軟硬件環(huán)境,所以在軟硬件的支出上十分有限。而且,目標系統(tǒng)并不是十分的復(fù)雜,開發(fā)的周期較短,人員有限。當系統(tǒng)開發(fā)完實際運行后,將很大程度上提高計算機的功能,在為使用者帶來便利的同時也為系統(tǒng)的進一步推廣創(chuàng)造了條件。管理可行性整個系統(tǒng)由于是自行開發(fā),自行使用,所以很方便管理使用。2.2系統(tǒng)目標圖書管理信息系統(tǒng)是典型的信息管理系統(tǒng),

4、其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強,數(shù)據(jù)平安性好的庫。而對于后者那么要求應(yīng)用程序功能完備,易使用等特點。系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)各種信息的系統(tǒng)化,標準化和自動化。2.3 系統(tǒng)應(yīng)該具備的功能讀者根本信息的輸入,包括借書證編號、讀者姓名、讀者性別等。讀者根本信息的查詢、修改,包括讀者借書證編號、讀者姓名、讀者性別等。書籍類別標準的制定、類別信息的輸入,包括類別編號、類別名稱。書籍類別信息的查詢、修改,包括類別編號、類別名稱。書籍庫存信息的輸入,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期、登記日期。書籍庫存

5、信息的查詢,修改,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期登記日期等。借書信息的輸入,包括讀者借書證編號、書籍編號、借書日期。借書信息的查詢、修改,包括借書證編號、借書證編號、讀者姓名、書籍編號、書籍名稱、借書日期等。還書信息的輸入,包括借書證編號、書籍編號、還書日期。 還書信息的查詢和修改,包括還書讀者借書證編號、讀者姓名、書籍編號、書籍名稱、借書日期、還書日期等。超期還書罰款輸入,還書超出期限包括超出期限還書的讀者借書證號,書籍編號,罰款金額。超期還書罰款查詢,刪除,包括讀者借書證編號、讀者姓名、書籍編號、書籍名稱,罰款金額等。管理員管理:包括創(chuàng)立讀者用戶信息、刪除

6、讀者用戶信息、添加圖書信息、刪除圖書信息。超級管理員管理:包括創(chuàng)立管理員用戶信息、刪除管理員用戶信息、創(chuàng)立讀者用戶信息、刪除讀者用戶信息、添加圖書信息、刪除圖書信息。2.4 系統(tǒng)結(jié)構(gòu)圖根據(jù)需求分析,圖書信息管理系統(tǒng)的結(jié)構(gòu)圖如下:圖書管理系統(tǒng)借還書子系統(tǒng)查詢子系統(tǒng)管理子系統(tǒng)圖書類管理圖書管理讀者管理逾期圖書管理管理員管理直接查詢多條件查詢借 書還 書幫助子系統(tǒng)登錄子系統(tǒng)3、概念設(shè)計所要實現(xiàn)的功能設(shè)計,可能建立它們之間的關(guān)系,進而實現(xiàn)邏輯結(jié)構(gòu)功能。圖書管理信息系統(tǒng)可以劃分的實體有:書籍類別信息實體、讀者信息實體、書籍信息實體、借閱記錄信息實體,歸還記錄信息實體。用E-R圖一一描述這些實體。類別實體

7、圖:書籍類別類別編號類別名稱讀者信息實體圖:讀者讀者姓名讀者性別讀者種類e登記時間讀者借書證編號可借書數(shù)已借書數(shù)逾期未還書數(shù)管理員實體圖管理員管理員姓名管理員編號管理員密碼管理員權(quán)限超級管理員實體圖超級管理員管理員姓名管理員編號管理員密碼管理員權(quán)限書籍實體圖:書籍書籍編號書籍名稱書籍類別編號書籍作者出版時間收錄時間是否被借出版社借閱記錄息信實體圖:讀者借書證編號書籍類別編號借閱時間隔借閱記錄信息歸還記錄信息實體圖:歸還記錄信息讀者借書證編號書籍類別編號歸還時間隔罰款信息實體圖:書籍類別編號罰款信息實體實體罰款金額讀者姓名讀者借書證編號書籍名稱借閱時間隔總的信息實體E-R圖:11n信息登記讀者書

8、籍書類別歸還借閱罰款罰款信息還書信息借閱信息實體mnmnmnn1m創(chuàng)立1管理nnn管理m管理員超級管理員創(chuàng)立1mn出具罰款單4、邏輯設(shè)計(1)書籍類別類別編號,類別名(2)讀者借書證編號,讀者姓名,讀者性別,讀者種類,登記時期, 可借書數(shù) ,已借書數(shù),逾期未還書數(shù)(3) 管理員(管理員編號,管理員姓名,管理員密碼,管理員權(quán)限)(4) 超級管理員(管理員編號,管理員姓名,管理員密碼,管理員權(quán)限)(5)書籍書籍編號,書籍名稱,書籍類別,書記作者,出版社名稱, 出版日期,登記日期(6)借閱借書證編號,書籍編號,讀者借書時間(7)還書借書證編號,書籍編號,讀者還書時間(8)罰款借書證編號,讀者姓名,借

9、書證編號,書籍編號,讀者借書 時間5、 物理設(shè)計表命令:1創(chuàng)立數(shù)據(jù)庫CREATE DATABASE librarysystemON ( NAME = librarysystem, FILENAME = 'd:librarysystem.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = 'library', FILENAME = 'e:librarysystem.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )2書本類別

10、表建立create table book_style( bookstyleno varchar(30) primary key, bookstyle varchar(30)3創(chuàng)立書庫表create table system_books( bookid varchar(20) primary key, bookname varchar(30) Not null, bookstyleno varchar(30) Not null, bookauthor varchar(30), bookpub varchar(30) , bookpubdate datetime, bookindate datet

11、ime , isborrowed bit, foreign key (bookstyleno) references book_style (bookstyleno),)4借書證表建立create table system_readers ( readerid varchar(9)primary key, readername varchar(9)not null , readersex varchar(2) not null, readertype varchar(10), regdate datetime,booktotal int,borrowednum int,overduenoret

12、urnnum int )5借書記錄表建立create table borrow_record( bookid varchar(20) primary key, readerid varchar(9), borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid),)6還書記錄表建立create table return_record( bookid varchar(20) primary k

13、ey, readerid varchar(9), returndate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid) 7罰款單表建立create table reader_fee( readerid varchar(9)not null, readername varchar(9)not null , bookid varchar(20) primary key, bookname varchar

14、(30) Not null, bookfee smallmoney, borrowdate datetime, foreign key (bookid) references system_books(bookid), foreign key (readerid) references system_readers(readerid)(8) 管理員表建立create table system_Administrator ( administratorid varchar(9)primary key, administratorname varchar(9)not null , administ

15、ratorpassword varchar(2) not null, administratorpermission varchar(10) )(9) 索引的創(chuàng)立create index bookstyle_index_style on book_style(bookstyle)create index borrow_record_index_readerid on borrow_record(readerid)create index reader_fee_index_readerid on reader_fee (readerid)create index return_record_in

16、dex_readerid on return_record(readerid)create index system_books_index_bookname on system_books(bookname)create index system_books_index_styleno on system_books(bookstyleno)create index system_books_index_bookauthor on system_books(bookauthor)表3-1 book_sytle 書籍類別信息表表中列名數(shù)據(jù)類型可否為空說明bookstylenovarcharno

17、t null(主鍵)種類編號bookstyleVarcharnot null種類名稱表3-2system_readers讀者信息表格表中列名數(shù)據(jù)類型可否為空說明readeridvarcharnot null(主鍵)讀者借書證號readernamevarcharnot null讀者姓名readersexvarcharnot null讀者性別readertypevarcharnot null讀者種類regdatedatetimenull登記日期booktotalintnull可借書數(shù)borrowednumintnull已借書數(shù)overduenoreturnnumintnull逾期未還書數(shù)表3-3s

18、ystem_book書籍信息表表中列名數(shù)據(jù)類型可否為空說明bookidVarcharNot null(主鍵)書籍編號booknameVarcharNot null書籍名稱續(xù)表3-3bookstyleVarcharNot null書籍類別bookauthorVarcharNot null書籍作者bookpubVarcharNull出版社名稱bookpubdateDatetimeNull出版日期bookindateDatetimeNull登記日期isborrowedBitNot Null是否被借出表3-4borrow_record 借閱記錄信息表表中列名數(shù)據(jù)類型可否為空說明readeridVarc

19、harNot null(外主鍵)讀者借閱證編號bookidVarcharNot null(外主鍵)書籍編號borrowdateDatetimeNot null讀者借書時間表3-5return_record 借閱記錄信息表表中列名數(shù)據(jù)類型可否為空說明readernameVarcharNot null(外主鍵)讀者借閱證編號readeridVarcharNot null(外主鍵)書籍編號returndatedatetimeNot null讀者還書時間表3-6reader_fee 罰款記錄信息表表中列名數(shù)據(jù)類型可否為空說明readeridvarcharNot null讀者借書證編號readernam

20、evarcharNot null讀者姓名bookidvarcharNot null(外主鍵)書籍編號booknamevarcharNot null書籍名稱bookfeeSmallmoneyNot Null罰款金額borrowdatedatetimeNot Null借閱時間表3-7system_Administrator管理員信息表表中列名數(shù)據(jù)類型可否為空說明administratoridvarcharnot null(主鍵)管理員編號administratornamevarcharnot null管理員姓名administratorpasswordvarcharnot null管理員密碼adm

21、inistratorpermissionvarcharnot null管理員權(quán)限表3-8 system_Super_Administrator管理員信息表表中列名數(shù)據(jù)類型可否為空說明superadministratoridvarcharnot null(主鍵)管理員編號superadministratornamevarcharnot null管理員姓名superadministratorpasswordvarcharnot null管理員密碼superadministratorpermissionvarcharnot null管理員權(quán)限表結(jié)構(gòu)圖:6、代碼實現(xiàn)1數(shù)據(jù)庫的連接: import ja

22、va.sql.*; import javax.swing.JOptionPane; public class Query public static Connection conection = null; static Connection getConnection()/連接 MySQL 數(shù)據(jù)庫 try Class.forName("org.gjt.mm.mysql.Driver");/加載驅(qū)動 conection = DriverManager.getConnection(/連接字符串 "jdbc:mysql:/localhost:3306/book&quo

23、t;,"root","123"); System.out.println("數(shù)據(jù)庫連接成功"); catch(java.lang.ClassNotFoundException classnotfound) classnotfound.printStackTrace();/驅(qū)動未找到 catch(java.sql.SQLException sql) sql.printStackTrace();/SQL 執(zhí)行時發(fā)生異常,打印棧信息 return conection; 2增加一條圖書記錄:public static boolean Inse

24、rt(Book aBook) Connection connect=getConnection();/得到連接 boolean res=false; try Statement stmt = connect.createStatement();/查詢集 String sql = "select * from book where BID='"+aBook.getBID()+"'" ResultSet rs=stmt.executeQuery(sql);/執(zhí)行 SQL 命令,返回結(jié)果集 if (rs.next()/圖書編號存在 res=fa

25、lse; JOptionPane.showMessageDialog(null,"學(xué)生信息插入失敗,該 學(xué)生 ID 號已存在","警告",JOptionPane.WARNING_MESSAGE); rs.close(); stmt.close(); else /不存在 String sqlString="insert into book values('"+aBook.getBID()+"','"+aBook.getBname()+"','"+aBook.

26、getBauthor()+"','"+aBook.getPress()+"','"+aBook.getBinfo()+"','"+aBook.getYear()+"-"+aBook.getMonth()+"-"+aBook.getDay()+"','"+ aBook.getBclass()+"')" res =stmt.execute(sqlString); res=true; if(

27、res) JOptionPane.showMessageDialog(null," 圖 書 信 息 插 入 成 功","成功",JOptionPane.INFORMATION_MESSAGE); rs.close(); else res=false; JOptionPane.showMessageDialog(null,"圖書信息插入失敗", "警告",JOptionPane.WARNING_MESSAGE); rs.close(); catch (SQLException e) /捕獲異常 res=false;

28、System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); return res; 3刪除一條圖書記錄:public static boolean delBook(String bid) Connection connect=getConnection(); boolean res=false; try Statement stmt = connect.createStatement(); String sql = "select * from book where Bid='

29、"+bid+"'" ResultSet rs=stmt.executeQuery(sql); if (rs.next() String sqlString="delete from book where Bid='"+bid+"'" stmt.executeUpdate(sqlString); JOptionPane.showMessageDialog(null,"圖書信息刪除成功", "成功",JOptionPane.INFORMATION_MESSAGE);

30、 res=true; rs.close(); stmt.close(); else JOptionPane.showMessageDialog(null,"圖書信息刪除失敗,該 圖書 ID 號不存在","警告",JOptionPane.WARNING_MESSAGE); res=false; rs.close(); stmt.close(); catch (SQLException e) JOptionPane.showMessageDialog(null,"圖書信息刪除失敗", "成功",JOptionPane.

31、INFORMATION_MESSAGE); res=false;System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); return res; 4修改圖書信息: public static boolean modifyBook(Book oldBook) Connection connect=getConnection(); boolean flag=false; try Statement stmt = connect.createStatement(); /查詢集 String sqlS

32、tring="update book set Bname='"+oldBook.getBname()+"',Bauthor='"+oldBook.getBauthor() +"', Press='"+oldBook.getPress()+"', BInfo='"+oldBook.getBinfo()+"',BDate='"+oldBook.getYear()+"-"+oldBook.getMonth()+

33、"-"+oldBook.getDay()+"',Bclass='"+oldBook.getBclass()+"' where BID='"+oldBook.getBID()+"'" stmt.executeUpdate(sqlString); JOptionPane.showMessageDialog(null,"圖書信息修改成功", "成功",JOptionPane.INFORMATION_MESSAGE); flag=true; c

34、atch (SQLException e) /捕獲錯誤 JOptionPane.showMessageDialog(null,"圖書信息修改失敗", "警告",JOptionPane.WARNING_MESSAGE);flag=false; System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); return flag; 5修改一條圖書記錄并將結(jié)果用表格顯示出來:public javax.swing.ListSelectionModel; javax.

35、swing.RowSorter; javax.swing.table.DefaultTableModel; javax.swing.table.TableRowSorter; class BookInfoQuery extends JFrame BorderLayout borderLayout1 = new BorderLayout();/布局方式 JSplitPane jSplitPane1 = new JSplitPane();/分割面板 JScrollPane jScrollPane1 = new JScrollPane();/滾動面板,用于放置表格 JPanel jPanel1 =

36、new JPanel();/面板 JTable jTable1 = new JTable();/表格DefaultTableModel tablemodel = null;/默認表格模型 JPanel jPanel3 = new JPanel();/面板 GridLayout gridLayout1 = new GridLayout();/ 網(wǎng)格布局方式 JButton jBexit = new JButton();/退出按鈕 ListSelectionModel selectionMode=null; public BookInfoQuery(String bID,String bname,

37、String bauthor, String press,String bInfo,String year,String month,String day,String bclass) getContentPane().setLayout(borderLayout1);/設(shè)置布局方式 String name = "圖書編號","圖書名稱","作者","出版社","圖書簡介 ","出版時間", "類別" String sqlStr = "selec

38、t * from book where Year(BDate)>1900" if(bID!=null)/查詢時如果編號不為空 sqlStr+=" and BID='"+bID+"'" if(bname!=null)/查詢時如果圖書名不為空 sqlStr+=" and Bname like '%"+bname+"%'"/模糊查詢 if(bauthor!=null)/查詢時如果作者不為空 sqlStr+=" and Bauthor like'%"

39、;+bauthor+"%'"/模糊查詢 if(press!=null)/查詢時如果出版社不為空 sqlStr+=" and Press like '%"+press+"%'"/模糊查詢 if(bInfo!=null)/查詢時如果圖書信息不為空 sqlStr+=" and Binfo like '%"+bInfo+"%'"/模糊查詢 if(year!=null)/出版年份不為空 sqlStr+=" and Year(BDate)"+yea

40、r+" "/按條件查詢 if(month!=null)/出版月份不為空 sqlStr+=" and Month(BDate)"+month+" "/按條件查詢 if(day!=null)/出版日不為空 sqlStr+=" and Day(BDate)"+day+" "/按條件查詢 if(bclass!=null)/ 圖書類別不為空 sqlStr+=" and Bclass like '%"+bclass+"%'"/模糊查詢 sqlStr+=

41、" order by BDate desc"/按出版日期降序排序 ToTable bdt = new ToTable(); tablemodel = bdt.getTableModel(name,sqlStr); jTable1.setModel(tablemodel); jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMN S);/讓其它的列也跟隨變動 jTable1.setEnabled(true);/設(shè)置表格可用 jTable1.setCellSelectionEnabled(true); jTa

42、ble1.setBackground(Color.pink);/設(shè)置表格背景顏色 selectionMode=jTable1.getSelectionModel();selectionMode.setSelectionMode(ListSelectionModel.SINGLE_SELEC TION); jTable1.setRowHeight(24);/設(shè)置表格高度 RowSorter<DefaultTableModel> sorter TableRowSorter<DefaultTableModel>(tablemodel)= newjTable1.setRowSorter(sorter);/表格排序過濾 jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); jScrollPane1.setVerticalScrollBarPolicy(JScrollPa

溫馨提示

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

評論

0/150

提交評論