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

下載本文檔

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

文檔簡介

實 習(xí) 報 告課程名稱 JAVA課程設(shè)計 專業(yè)班級 姓 名 學(xué) 號 電氣與信息學(xué)院和諧 勤奮 求是 創(chuàng)新一、 課程設(shè)計目的1、綜合運用Java程序設(shè)計課程和其他先修課程的理論和知識,掌握面向?qū)ο蟪绦蛟O(shè)計的一般方法、常用技術(shù)及技巧,樹立良好的軟件設(shè)計思想,培養(yǎng)分析問題和解決實際問題的能力;2、學(xué)會從OOP程序設(shè)計的方法及要求出發(fā),認真分析題目,做好總體設(shè)計,根據(jù)要求科學(xué)地設(shè)計相關(guān)類及方法等,正確設(shè)計算法,合理安排界面,規(guī)范開發(fā)過程,仔細調(diào)試程序,做好設(shè)計總結(jié)。3、充分利用互聯(lián)網(wǎng)資源,提高學(xué)生獲取知識,研究知識,實踐知識的能力二、課程設(shè)計內(nèi)容 基于數(shù)據(jù)庫的管理信息系統(tǒng)設(shè)計及實現(xiàn)如:學(xué)籍管理系統(tǒng);成績管理系統(tǒng);圖書管理系統(tǒng);學(xué)生就業(yè)信息管理系統(tǒng)等。 主要設(shè)計內(nèi)容:根據(jù)題目需求設(shè)計數(shù)據(jù)庫,軟件應(yīng)具備如下功能點:主界面管理;信息的錄入/增加;刪除;修改;查找;統(tǒng)計等。三、課程設(shè)計要求 按課程設(shè)計指導(dǎo)書提供的課題,要求學(xué)生在自行完成各個操作環(huán)節(jié),并實現(xiàn)且達到舉一反三的目的,完成一個項目解決一類問題。要求學(xué)生能夠全面、深入理解和掌握,能夠進行簡單分析和判斷;能編寫出具有良好風(fēng)格的程序;掌握JAVA程序設(shè)計的基本技能和面向?qū)ο蟮母拍詈头椒ǎ慌囵B(yǎng)學(xué)生進行設(shè)計分析、設(shè)計方法、設(shè)計操作與測試、設(shè)計過程的觀察、理解和歸納能力的提高。四、需求分析圖書管理系統(tǒng)需要滿足兩方面的需求,這兩方面分別是圖書借閱者、圖書管理員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況。圖書管理員的功能最復(fù)雜,包括對圖書借閱者、圖書進行管理和維護,及系統(tǒng)狀態(tài)的查看、維護。圖書管理員功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和信息查看及維護。圖書管理員可以瀏覽、查詢、添加、刪除、修改圖書的基本信息。主要功能:本系統(tǒng)主要用于圖書信息管理,采用面向?qū)ο蟮脑O(shè)計思想,以菜單的形式進行各表單的調(diào)用,其功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。五、詳細設(shè)計在需求分析的基礎(chǔ)上,經(jīng)過逐步抽象、概括、分析、研討,本系統(tǒng)的實體有:用戶資料實體、圖書資料實體、借書統(tǒng)計實體、還書統(tǒng)計實體。用戶資料實體包含如下屬性,分別是用戶名,密碼,性別,系別。圖書資料實體包含如下屬性,分別是圖書編號,圖書名稱,作者,出版社,數(shù)量。六、邏輯設(shè)計將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為SQL Sever 2005數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。根據(jù)數(shù)據(jù)庫的需求分析和概念結(jié)構(gòu)設(shè)計,設(shè)計了名為library數(shù)據(jù)庫。數(shù)據(jù)庫由多個表格組成,各個表格的設(shè)計結(jié)果如下面表格所示:表1 圖書信息表列名數(shù)據(jù)類型長度可否為空書號char10NOLL書名char20NOLL作者char20NOLL出版社char30NOLL數(shù)量char10NOLL表2 用戶信息表列名數(shù)據(jù)類型長度可否為空用戶名char20NOLL密碼Char10NOLL性別Char10NOLL系別char10NOLL七、程序?qū)崿F(xiàn)1、程序流程圖如下: 系統(tǒng)主界面密碼是否正確?調(diào)用系統(tǒng)菜單 退出系統(tǒng) 驗證登錄口令2、詳細設(shè)計程序源代碼:主函數(shù):import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.TitledBorder;import java.awt.Font;public class MainWindow extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;static String loginName;static String loginNo;JLabel mlabel;JPanel jp=new JPanel(); /用來填放子模塊JMenuBar menu=new JMenuBar();JMenu m1=new JMenu(系統(tǒng)管理);JMenu m2=new JMenu(查詢管理);JMenu m3=new JMenu(書籍管理);JMenu m4=new JMenu(借閱管理);JMenuItem item11=new JMenuItem(登錄);JMenuItem item12=new JMenuItem(退出登錄);JMenuItem item13=new JMenuItem(退出系統(tǒng));JMenuItem item21=new JMenuItem(查詢圖書信息);JMenuItem item22=new JMenuItem(查詢讀者信息);JMenuItem item31=new JMenuItem(添加書籍);JMenuItem item32=new JMenuItem(刪除書籍);JMenuItem item41=new JMenuItem(借書);JMenuItem item42=new JMenuItem(還書);public MainWindow()super(圖書管理系統(tǒng));addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);Container c=getContentPane();setSize(400,300);c.add(menu);menu.add(m1);menu.add(m2);menu.add(m3);menu.add(m4); /系統(tǒng)管理菜單項m1.add(item11);m1.add(item12);m1.add(item13) ; item11.addActionListener(this);item12.addActionListener(this); item13.addActionListener(this); /查詢管理菜單項 m2.add(item21); m2.add(item22); item21.addActionListener(this); item22.addActionListener(this); /書籍管理菜單項 m3.add(item31); m3.add(item32); item31.addActionListener(this); item32.addActionListener(this); /借閱管理菜單項 m4.add(item41); m4.add(item42); item41.addActionListener(this); item42.addActionListener(this); m2.setEnabled(false); m3.setEnabled(false); m4.setEnabled(false);/菜單的放置以及窗口的顯示 setJMenuBar(menu); Font myFont=new Font(楷體_GB2312,Font.BOLD,40); mlabel=new JLabel( 圖書管理系統(tǒng)); mlabel.setFont(myFont); add(mlabel); public void actionPerformed(ActionEvent e)if(e.getSource()=item11)UserLogin login=new UserLogin(this);login.setVisible(true);if(e.getSource()=item12)setVisible(false);MainWindow mainFrame=new MainWindow();mainFrame.setLocation(400,150);mainFrame.setVisible(true);if(e.getSource()=item13)System.exit(1);if(e.getSource()=item21)FindBook findbook=new FindBook();findbook.setVisible(true);if(e.getSource()=item22)FindReader findreader=new FindReader();findreader.setVisible(true);if(e.getSource()=item31)AddBook addBook=new AddBook();addBook.setVisible(true);if(e.getSource()=item32)DeleteBook delBook=new DeleteBook();delBook.setVisible(true);if(e.getSource()=item41)BorrowBook borrowbook=new BorrowBook();borrowbook.setVisible(true);if(e.getSource()=item42)ReturnBook returnbook=new ReturnBook();returnbook.setVisible(true);public void setenabled(int right)if(right=1)m2.setEnabled(true);m3.setEnabled(true); m4.setEnabled(false); if(right=2) m2.setEnabled(true); m3.setEnabled(false); m4.setEnabled(true); /item22.setEnabled(false);public static void main (String args) MainWindow mainFrame=new MainWindow();mainFrame.setLocation(400,150);mainFrame.setVisible(true);/mainFrame.addWindowListener(new WindowListener();import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class AddBook extends JFrame implements ActionListener MainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JPanel pan1,pan2,pan3,pan4,pan5,pan6,pan7,pan8;JLabel bmsg=new JLabel( 添加圖書 );JLabel bfen=new JLabel( - );JLabel bname=new JLabel( 請輸入書名 :);JLabel bno=new JLabel( 請輸入索書號 :);JLabel bnum=new JLabel(請輸入書的數(shù)量:);JLabel author=new JLabel(請輸入書的作者:);JLabel publisher=new JLabel( 請輸入出版社 :);JTextField tname=new JTextField(10);JTextField tno=new JTextField(10);JTextField tnum=new JTextField(10);JTextField tauthor=new JTextField(10);JTextField tpublisher=new JTextField(10); /JTextArea jta=new JTextArea(20,30); JButton addbt=new JButton(添加);/JButton dbt=new JButton();JButton yesbt=new JButton(確定);JPanel p3=new JPanel();public AddBook()super(添加圖書); /Container c=getContentPane();pan1=new JPanel();pan2=new JPanel();pan3=new JPanel();pan4=new JPanel();pan5=new JPanel();pan6 =new JPanel();pan7=new JPanel();pan8 =new JPanel();pan1.add(bname);pan1.add(tname);pan2.add(bno);pan2.add(tno);pan3.add(bnum);pan3.add(tnum);pan4.add(author);pan4.add(tauthor);pan5.add(publisher);pan5.add(tpublisher);pan6.add(addbt);pan6.add(yesbt);pan7.add(bmsg);pan8.add(bfen);add(pan7);add(pan8);add(pan1);add(pan2);add(pan3);add(pan4);add(pan5);add(pan6);setLayout(new GridLayout(8,1);addbt.addActionListener(this);yesbt.addActionListener(this);setSize(500,300);setLocation(400,150);public void actionPerformed(ActionEvent e)String bname,bno,author,publisher;int bnum;if(e.getActionCommand()=確定)this.dispose();if(e.getActionCommand()=添加)bname=tname.getText();bno=tno.getText();author=tauthor.getText();publisher=tpublisher.getText();bnum=Integer.parseInt(tnum.getText();String sqlstr1=select bno from book;rs=db.getResult(sqlstr1);trywhile(rs.next()if(rs.getString(1).trim().equals(bno)JOptionPane.showMessageDialog(null,此書號已存在,請重新輸入索書號!);elsebreak;catch(Exception pe) pe.printStackTrace(); String sqlstr=insert into book (bno,bname,bnum,author,publisher) values (+bno+,+bname+,+bnum+,+author+,+publisher+);boolean result=db.updateSql(sqlstr);db.closeConnection();if(result)JOptionPane.showMessageDialog(null,添加書籍成功!);elseJOptionPane.showMessageDialog(null,添加書籍失敗!);import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class BorrowBook extends JFrame implements ActionListenerMainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JLabel lb1=new JLabel(請輸入證件號);JLabel lb2=new JLabel(請輸入索書號);JTextField jtf1=new JTextField(10);JTextField jtf2=new JTextField(10);JTextArea jta=new JTextArea(5,10);JButton bt=new JButton(確定);JButton bt1=new JButton(借閱);JPanel p1=new JPanel();JPanel p2=new JPanel();public BorrowBook()super(借閱圖書);Container c=getContentPane();p1.add(lb1);p1.add(jtf1);p1.add(lb2);p1.add(jtf2);p1.add(bt1);c.add(p1,BorderLayout.NORTH);p2.add(jta);p2.add(bt);c.add(p2,BorderLayout.SOUTH);bt.addActionListener(this);bt1.addActionListener(this);setSize(500,200);setLocation(400,150);public void actionPerformed(ActionEvent e)int bnum;String bname;if(e.getActionCommand()=確定)this.dispose();if(e.getActionCommand()=借閱)String bno=jtf2.getText();String sno=jtf1.getText();String sqlstr=select * from book where bno=+bno+;rs=db.getResult(sqlstr);tryrs.next();bname=rs.getString(2);bnum=rs.getInt(3);if(bnum!=0)&(mw.loginNo.trim().equals(sno)|(mw.loginName.trim().equals(admin) jta.setText();jta.append(借閱成功!n);bnum=bnum-1;String sqlstr1=update book set bnum=+bnum+where bno=+bno+;boolean result1=db.updateSql(sqlstr1);if(result1)jta.append(修改書籍信息表成功!n);String sqlstr2=insert into lendbook (sno,bno,bname,lenddate,returndate) values(+sno+,+bno+,+bname+,+20090601+,+20090701+);boolean result2=db.updateSql(sqlstr2);if(result2)jta.append(修改借書信息表成功!n);db.closeConnection();elsejta.setText();if(bnum=0) jta.append(此書已被借完!n);if(!(mw.loginNo.trim().equals(sno)|!(mw.loginName.trim().equals(admin) jta.append(請輸入正確的證件號!n);catch(Exception pe) pe.printStackTrace(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class BorrowInfo extends JFrame implements ActionListener MainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JLabel lb1=new JLabel(請輸入證件號);JTextField jtf1=new JTextField(10);JTextArea jta=new JTextArea(5,10);JButton bt=new JButton(確定);JButton bt1=new JButton(查詢);JPanel p1=new JPanel();JPanel p2=new JPanel();public BorrowInfo()super(查詢借閱信息);Container c=getContentPane();p1.add(lb1);p1.add(jtf1);p1.add(bt1);c.add(p1,BorderLayout.NORTH);p2.add(jta);p2.add(bt);c.add(p2,BorderLayout.SOUTH);bt.addActionListener(this);bt1.addActionListener(this);setSize(500,200);setLocation(400,150);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=確定)this.dispose();if(e.getActionCommand()=查詢)String sno=jtf1.getText();String sqlstr=select * from lendbook where sno=+sno+;rs=db.getResult(sqlstr);trywhile(rs.next()jta.append(rs.getString(4)+,+rs.getString(5)+,+rs.getString(6)+n);catch(Exception pe) pe.printStackTrace(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class DeleteBook extends JFrame implements ActionListener MainWindow mw=new MainWindow();DataBaseManger db=new DataBaseManger();ResultSet rs;JLabel bno=new JLabel(請輸入要刪除的圖書索引號:,SwingConstants.CENTER);JLabel L;JTextField tno=new JTextField(10);JTable table;/用來接收數(shù)據(jù)庫中返回的信息JButton chakan=new JButton(查看);JTextArea jta=new JTextArea(10,20);JButton delbt=new JButton(確定);JButton yesbt=new JButton(取消);JPanel p1=new JPanel();JPanel p2=new JPanel();public DeleteBook()super(刪除圖書);Container c=getContentPane();p1.add(bno);p1.add(tno);c.add(p1,BorderLayout.NORTH);p2.add(delbt);p2.add(yesbt);p1.add(chakan);p1.add(jta);c.add(p2,BorderLayout.SOUTH);delbt.addActionListener(this);yesbt.addActionListener(this);chakan.addActionListener(this);setSize(400,300);setLocation(400,150);JPanel p=new JPanel();/用來放兩個表p.setLayout(new BorderLayout();public void actionPerformed(ActionEvent e)String bno;if(e.getActionCommand()=查看)String txt_bno=tno.getText();String sqlstr;sqlstr=select * from book where bno=+txt_bno+;rs=db.getResult(sqlstr);tryjta.setText();if(rs.next()jta.append(索書號為:+rs.getString(1)+,+書名為:+rs.getString(2)+,+現(xiàn)有數(shù)量為:+rs.getString(3)+n);jta.append(作者為:+rs.getString(4)+,+出版社為:+rs.getString(5);elsejta.append(對不起,沒有您要找的書籍!); catch(Exception pe) pe.printStackTrace(); if(e.getActionCommand()=取消)this.dispose();if(e.getActionCommand()=確定)bno=tno.getText();String sqlstr=delete bno from book where bno=+bno+; boolean result=db.updateSql(sqlstr); db.closeConnection(); if(result)JOptionPane.showMessageDialog(null,刪除書籍成功!); elseJOptionPane.showMessageDialog(null,刪除書籍失敗!); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;public class FindBook extends JFrame implements ActionListenerDataBaseManger db=new DataBaseManger();ResultSet rs;JLabel select=new JLabel(請輸入書名或者索書號);JTextField jtf=new JTextField(20);JPanel p1=new JPanel();JPanel p2=new JPanel();JLabel lb=new JLabel(書籍信息);JButton findbt=new JButton(查詢);JButton yesbt=new JButton(確定);JTextArea jta=new JTextArea(10,20);public FindBook()super(查詢書籍信息);Container c=getContentPane();p1.add(select);p1.add(jtf);p1.add(findbt);c.add(p1,BorderLayout.NORTH);p2.add(lb);p2.add(jta);p2.add(yesbt);c.add(p2,BorderLayout.SOUTH);yesbt.addActionListener(this);findbt.addActionListener(this);setSize(500,300);setVisible(true);setLocation(400,150);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=確定)this.dispose();if(e.getActionCommand()=查詢)String bname=jtf.getText();String bno=jtf.getText();String sqlstr;sqlstr=select * from book where bname=+bname+ or bno=+bno+;rs=db.getResult(sqlstr);tryjta.setText();if(rs.next()jta.append(索書號為:+rs.getString(1)+,+書名為:+rs.getString(2)+,+現(xiàn)有數(shù)量為:+rs.getString(3)+n);jta.append(作者為:+rs.getString(4)+,+出版社為:+rs.getString(5);elsejta.append(對不起,沒有您要找的書籍!); catch(Exception pe) pe.printStackTrace(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.sql.*;import java.lang.String;public class FindReader extends JFrame implements ActionListenerDataBaseManger db=new DataBaseManger();MainWindow mw=new MainWindow();ResultSet rs;JLabel select=new JLabel(請輸入證件號);JTextField jtf=new JTextField(10);JPanel p1=new JPanel();JPanel p2=new JPanel();JLabel lb=new JLabel(讀者信息);JButton findbt=new JButton(查詢);JButton yesbt=new JButton(確定);JTextArea jta=new JTextArea(10,20);public FindReader()super(查詢讀者信息);Container c=getContentPane();p1.add(select);p1.add(jtf);p1.add(findbt);c.add(p1,BorderLayout.NORTH);p2.add(lb);p2.add(jta);p2.add(yesbt);c.add(p2,BorderLayout.SOUTH);yesbt.addActionListener(this);findbt.addActionListener(this);setSize(500,300);setVisible(true);setLocation(400,150);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=確定)this.dispose();if(e.getActionCommand()=查詢)String sno=jtf.getText();String sqlstrR;if(mw.loginNo.trim().equals(sno)|(mw.loginName.trim().equals(admin)sqlstrR=select * from reader where sno=+sno+;rs=db.getResult(sqlstrR);tryrs.next();jta.setText();jta.append(學(xué)號為:+rs.getString(1)+, +姓名為:+rs.getString(2)+,+性別為:+rs.getString(3)+n);jta.append(年齡為:+rs.getString(4)+, +密碼為:+rs.getString(5)+,+ 學(xué)院為:+rs.getString(6)+n);String sqlstr=select * from lendbook where sno=+sno+; rs=db.getResult(sqlstr); try while(rs.next() jta.append(rs.getString(3)+,+借書時間:+rs.getString(4)+,+應(yīng)還書時間:+rs.getString(5)+n); catch(Exception pe) pe.printStackTrace(); catch(Exception pe) pe.printStackTrace(); elseJOptionPane.showMessageDialog(null,請輸入正確的證件號!); import java.awt.*;import j

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論