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

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄一系統(tǒng)需求分析(1)系統(tǒng)概述.(2)系統(tǒng)目標.(3)可行性分析.(4)系統(tǒng)分析.二數(shù)據(jù)庫設(shè)計部分(1)數(shù)據(jù)流圖(2)表設(shè)計及結(jié)構(gòu)(3)用T-SQL語句創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表以及添加數(shù)據(jù) 1.創(chuàng)建數(shù)據(jù)庫代碼: 2.創(chuàng)建表代碼: 3.詳細設(shè)計三 實驗總結(jié)及體會四 參考文獻一需求分析1.系統(tǒng)概述現(xiàn)如今圖書銷售行業(yè)發(fā)展迅速,大大小小的書店到處可見,特別是一些發(fā)展較大的書城采用大規(guī)模的連鎖經(jīng)營方式。隨著規(guī)模的擴大傳統(tǒng)的圖書管理已經(jīng)不能適應發(fā)展的需要。圖書管理工作繁瑣,銷售頻繁,包含大量的信息數(shù)據(jù),因此就需要一個完善的圖書銷售管理系統(tǒng)來實現(xiàn)對這些數(shù)據(jù)的有效管理。本系統(tǒng)主要任務就是

2、對書店、圖書、顧客、銷售信息、查詢進行統(tǒng)一管理,滿足各類用戶的需求。本系統(tǒng)在功能上要實現(xiàn)書店基本信息管理功能,圖書銷售功能,圖書采購功能,財務管理工能。開發(fā)背景:我們對世面上的書城如新華書店和學校里的小書店進行了初步的了解,發(fā)現(xiàn)其業(yè)務主要是集中在對圖書的管理和圖書的銷售和退貨上。對圖書的管理工作量較大,采用手工的方式還容易出錯,并且不能滿足顧客對圖書的詳細的查詢功能。本系統(tǒng)在設(shè)計中考慮和克服了上訴的諸多問題,增強了實用性。2.系統(tǒng)目標圖書銷售管理系統(tǒng)就是要求圖書管理人員通過該系統(tǒng)對圖書、顧客、管理員、購買信息等進行統(tǒng)一管理,從而實現(xiàn)功能上的銷售圖書、退還圖書、庫存量以及信息查詢。這就要求管理人

3、員能夠?qū)?shù)據(jù)庫熟悉操作而簡單的表查詢、觸發(fā)器的建立、存儲過程的建立以及用戶自定義函數(shù)的建立等等這些管理數(shù)據(jù)庫的方法都能對圖書館里系統(tǒng)的管理起到事半功倍的效果。3.系統(tǒng)可行性分析系統(tǒng)現(xiàn)階段的發(fā)展過程中,利用現(xiàn)有人力和物力是完全具備能力開發(fā)出來的,作為階段性產(chǎn)品,日后的發(fā)展空間大,實現(xiàn)方法簡單容易。本系統(tǒng)采用java和SQL Sever相結(jié)合的方法來實現(xiàn)。由于圖書銷售的普及,許多都要求使用計算機進行管理,并且實際中也有系統(tǒng)的使用。所以本系統(tǒng)的使用市場非常的廣闊,易于推廣和普及到現(xiàn)實中應用。所以本系統(tǒng)在市場應用上是完全可行 4.系統(tǒng)分析(1)圖書銷售管理系統(tǒng)功能結(jié)構(gòu)圖:由于管理員是本系統(tǒng)的主要的使用

4、者所以其涉及的活動較多。圖書管理是指對圖書信息的錄入、更新、修改和刪除。查詢圖書信息是在銷售圖書時進行的,以了解是否有該圖書和庫存等信息。二 數(shù)據(jù)庫設(shè)計部分1.數(shù)據(jù)流圖(1)第一層數(shù)據(jù)流圖:(2)第二層數(shù)據(jù)流圖(3)第三層數(shù)據(jù)流圖銷售細化購買細化財務細化(2) 表設(shè)計1.需要的表有:圖書信息表,供應商信息表,書店信息表,顧客信息表,書店員工表,進貨表等。 2.以下為各表的表結(jié)構(gòu)(1)圖書庫存信息表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明圖書編號char12×無主鍵圖書名nvarchar20×無圖書價格char20無庫存量Char20無(2)供應商信息表結(jié)構(gòu)列名數(shù)據(jù)類型長度

5、是否允許為空默認值說明供應書號char12×無主鍵出版社char12×無供應商姓名char8×無供應商電話char12×否(3)書店信息表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明書店編號char10×無主鍵負責人編號char20×無書店名char12無(4)顧客信息表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明顧客編號char10×無主鍵顧客姓名char8×無顧客電話char12×無(5)書店員工表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明員工編號char10×無主鍵員工姓名char12

6、5;無員工性別char4×無員工電話char12無(6)書店進貨表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明圖書書號char12×無外鍵書店編號nvarchar10×無外鍵進貨日期datetime×無進貨量char100是(7)書店發(fā)貨表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明圖書書號char12×無外鍵書店編號nvarchar10×無外鍵發(fā)貨日期datetime×無發(fā)貨量char100是(8)顧客退貨表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明圖書書號char12×無外鍵書店編號nvarchar10×

7、無外鍵退貨日期datetime×無退貨量char100是(9)顧客訂貨表結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空默認值說明顧客編號char10×無外鍵圖書編號char12×無外鍵圖書價格Char20無庫存量char100×無銷售量char50無(3) 用T-SQL語句創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表以及添加數(shù)據(jù)1.創(chuàng)建數(shù)據(jù)庫代碼: create database 圖書銷售管理系統(tǒng)on primary(name=tsxsgl_dat, filename='f:數(shù)據(jù)庫tsxsgl_dat.mdf',size=10mb,maxsize=20mb,filegrowth

8、=2mb),filegroup圖書銷售管理系統(tǒng)(name=tsxsgl_data, filename='f:數(shù)據(jù)庫tsxsgl_data.ndf',size=5mb,maxsize=10mb,filegrowth=1mb)log on(name=tsxsgl_log, filename='f:數(shù)據(jù)庫tsxsgl_log.ldf',size=5mb,maxsize=10mb,filegrowth=1mb)go2.創(chuàng)建表代碼create table 圖書庫存信息(圖書編號 char(12) not null primary key,圖書名 nvarchar(20)

9、not null,圖書價格 char(20) null,庫存量 char(20) null)insert into 圖書庫存信息 values('00001','紅樓夢', '18','100') insert into 圖書庫存信息 values('00002','圍城', '22','34') insert into 圖書庫存信息 values('00003','英語四級詞匯', '30','123'

10、) insert into 圖書庫存信息 values('00004','電子技術(shù)基礎(chǔ)', '33','78') insert into 圖書庫存信息 values('00005','計算機組成原理', '12','55') create table 顧客信息(顧客編號 char(10) not null primary key,顧客姓名 char(8) not null ,顧客電話 char(12) not null)insert into 顧客信息 values(

11、'1001','田令', '') insert into 顧客信息 values('1002','劉子', '') insert into 顧客信息 values('1003','張偉', '') insert into 顧客信息 values('1004','李全文', '') insert into 顧客信息 values('1005','王萬', ''

12、) insert into 顧客信息 values('1006','高寒', '') create table 供應商信息(供應書號 char(12)not null primary key, 出版社 char(12) not null,供應商姓名 char(8) not null,供應商電話 char(12) not null)insert into 供應商信息 values('001','延邊出版社', '李明','') insert into 供應商信息 values('

13、;002','延邊出版社', '李明','') insert into 供應商信息 values('003','吉林出版社', '李明','') insert into 供應商信息 values('004','教育出版社', '李明','') insert into 供應商信息 values('005','教育出版社', '李明','') inser

14、t into 供應商信息 values('006','青華出版社', '李明','') insert into 供應商信息 values('007','青華出版社', '張華','') insert into 供應商信息 values('008','青華出版社', '張華','') insert into 供應商信息 values('009','廣州出版社', '張

15、華','') insert into 供應商信息 values('010','廣州出版社', '李明','')create table 書店信息(書店號 char(10) not null primary key,負責人編號 char(20)not null,書店名 char(12) null)insert into 書店信息 values('0001','101', '新華書店') insert into 書店信息 values('0002'

16、,'102', '新華書店') insert into 書店信息 values('0003','103', '新華書店') insert into 書店信息 values('0004','104', '新華書店') insert into 書店信息 values('0005','105', '新華書店') insert into 書店信息 values('0006','106', '

17、;新華書店') create table 顧客訂貨貨表(圖書編號 char(12) not null,書店號 nvarchar(10) not null,訂貨日期 datetime not null,訂貨量 char(100) null,)insert into 顧客訂貨貨表 values('01','0001', '','100') insert into 顧客訂貨貨表 values('02','0001', '','120') insert into 顧客

18、訂貨貨表 values('03','0006', '','100') insert into 顧客訂貨貨表 values('04','0006', '','100')insert into 顧客訂貨貨表 values('05','0005', '','200') create table 書店發(fā)貨表(圖書編號 char(12) not null,書店號 nvarchar(10) not null,發(fā)貨日期

19、 datetime not null,發(fā)貨量 char(100) null,)insert into 書店發(fā)貨表 values('01','0001', '','100') insert into 書店發(fā)貨表 values('02','0001', '','120') insert into 書店發(fā)貨表 values('03','0006', '','100') insert into 書店發(fā)貨表 val

20、ues('04','0006', '','100')insert into 書店發(fā)貨表 values('05','0005', '','200') create table 書店進貨表(圖書編號 char(12) not null,書店號 nvarchar(10) not null,進貨日期 datetime not null,進貨量 char(100) null,)insert into 書店進貨表 values('01','0001'

21、;, '','100') insert into 書店進貨表 values('02','0001', '','120') insert into 書店進貨表 values('03','0006', '','100') insert into 書店進貨表 values('04','0006', '','100')insert into 書店進貨表 values('05

22、','0005', '','200') create table 供應商發(fā)貨表(圖書編號 char(12)not null,供應商編號 char(10) not null,圖書價格 char(20)null,庫存量 char(100) not null,銷售量 char(50) null)insert into 供應商發(fā)貨表 values('01','1001', '18','100','1') insert into 供應商發(fā)貨表 values('0

23、2','1001', '22','34','2') insert into 供應商發(fā)貨表 values('03','1006', '30','123','2') insert into 供應商發(fā)貨表 values('04','1006', '33','78','2')insert into 供應商發(fā)貨表 values('05','1005&#

24、39;, '12','55','3') create table 書店員工信息(員工編號 char(10) not null primary key,員工姓名 char(12) not null,員工性別 char(4) not null,員工電話 char(12) null)insert into 書店員工信息 values('11001','田偉','男', '') insert into 書店員工信息 values('11002','劉令', &

25、#39;男','') insert into 書店員工信息 values('11003','張子', '女','') insert into 書店員工信息 values('11004','李陽', '男','') insert into 書店員工信息 values('11005','王全', '男','') insert into 書店員工信息 values('11006&

26、#39;,'高萬', '女','') 為進貨表創(chuàng)建觸發(fā)器trig_orders_insert,當進貨表中增加一條記錄時觸動觸發(fā)器,更新庫存圖書中的圖書數(shù)量及相關(guān)信息。create trigger trig_orders_inserton 進貨表for insertasdeclare 圖書編號 varchar(13),num intselect 圖書編號 =ISBN,num=stock_num from insertedupdate book set num=num+numwhere 圖書編號=圖書編號為進貨表創(chuàng)建存儲過程showBidPrice,

27、當輸入書名時輸出報價單,供操作人員選擇go /*進貨*/create procedure showBidPrice bname varchar(20)asdeclare num intselect * from 供應商信息表 where 圖書編號=(select ISBN from book where 圖書名=圖書名)exec showBidPrice '數(shù)據(jù)庫原理'3.詳細設(shè)計該系統(tǒng)采用java連接SQL數(shù)據(jù)庫的方式,使用圖形用戶界面,主要實現(xiàn)圖書增刪改等功能。下面具體對各模塊進行介紹。1 登錄模塊及主界面登陸框流程圖如下圖所示,單擊某個按鈕就能彈出面 系統(tǒng)登錄界面在按按鈕

28、“操作數(shù)據(jù)庫”后就會出現(xiàn)下圖,在根據(jù)提示操作2.實現(xiàn)界面的java代碼為:import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*; public class Example public static void main(String args ) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch(ClassNotFoundException e) System.out.println("&qu

29、ot;+e); DatabaseWin win=new DatabaseWin(); class DatabaseWin extends JFrame implements ActionListener/主窗口 JMenuBar menubar; JMenu menu; JMenuItem itemShow,itemUpdate,itemInsert,itemDelete; ShowRecord showRecord; ModifyRecord modifyRecord; InsertRecord insertRecord; DeleteRecord deleteRecord ; Databa

30、seWin() menubar=new JMenuBar(); menu=new JMenu("操作數(shù)據(jù)庫"); itemShow=new JMenuItem("顯示記錄"); itemUpdate=new JMenuItem("更新記錄"); itemInsert=new JMenuItem("增加記錄"); itemDelete=new JMenuItem("刪除記錄"); itemShow.addActionListener(this); itemUpdate.addActionListe

31、ner(this); itemInsert.addActionListener(this); itemDelete.addActionListener(this); menu.add(itemShow); menu.add(itemUpdate); menu.add(itemInsert); menu.add(itemDelete); menubar.add(menu); showRecord=new ShowRecord("顯示記錄對話框"); modifyRecord=new ModifyRecord("修改記錄對話框"); insertRecord

32、=new InsertRecord("增加記錄對話框"); deleteRecord=new DeleteRecord("刪除記錄對話框"); setJMenuBar(menubar); setBounds(100,100,370,250); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) if(e.getSource()=itemShow) showRecord.setVisible(

33、true); else if(e.getSource()=itemUpdate) modifyRecord.setVisible(true); else if(e.getSource()=itemInsert) insertRecord.setVisible(true); else if(e.getSource()=itemDelete) deleteRecord.setVisible(true); class ShowRecord extends JDialog implements ActionListener/負責顯示記錄的類 JTable table; Object a; Object

34、 name="圖書編號","圖書名","圖書價格","庫存量" JButton showRecord; Connection con; Statement sql; ResultSet rs; ShowRecord(String title) setTitle(title); showRecord=new JButton("顯示記錄"); showRecord.addActionListener(this); add(showRecord,BorderLayout.NORTH); setBoun

35、ds(200,60,400,250); public void actionPerformed(ActionEvent e) try con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery("SELECT * FROM 圖書信息"); rs.las

36、t(); int lastNumber=rs.getRow(); a=new ObjectlastNumber6; int k=0; rs.beforeFirst(); while(rs.next() ak0=rs.getString(1); ak1=rs.getString(2); ak2=rs.getString(3); ak3=rs.getString(4); ak4=rs.getString(5); ak5=rs.getString(6); k+; con.close(); catch(SQLException ee) System.out.println(ee); table=new

37、 JTable(a,name); getContentPane().removeAll(); add(showRecord,BorderLayout.NORTH); add(new JScrollPane(table),BorderLayout.CENTER); validate(); class ModifyRecord extends JDialog implements ActionListener /負責更新記錄的類 JLabel hintLabel; JTextField inputNumber; Object name="圖書編號","圖書名"

38、;,"圖書價格","庫存量" Object a=new Object16; JTable table; JButton enterModify; Connection con; Statement sql; ResultSet rs; String num; ModifyRecord(String s) setTitle(s); hintLabel=new JLabel("圖書編號(回車確認):"); inputNumber=new JTextField(20); table=new JTable(a,name); enterModi

39、fy=new JButton("更新記錄"); setLayout(null); Box baseBox=Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(inputNumber); baseBox.add(new JScrollPane(table); baseBox.add(enterModify); add(baseBox); baseBox.setBounds(10,40,600,38); inputNumber.addActionListener(this); enterModify.ad

40、dActionListener(this); setBounds(20,60,700,200); public void actionPerformed(ActionEvent e) if(e.getSource()=inputNumber) try num=inputNumber.getText().trim(); con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(); rs=sql.executeQuery("

41、;SELECT * FROM 圖書信息 WHERE 圖書編號='"+num+"'"); boolean boo=rs.next(); if(boo=false) JOptionPane.showMessageDialog (this,"圖書編號不存在","提示",JOptionPane.WARNING_MESSAGE); else a00=rs.getString(1); a01=rs.getString(2); a02=rs.getString(3); a03=rs.getString(4); a04=rs

42、.getString(5); table.repaint(); con.close(); catch(SQLException ee) System.out.println(ee); if(e.getSource()=enterModify) try con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(); sql.executeUpdate ("UPDATE 圖書信息 SET 圖書信息='"+a

43、00+ "',ADDRESS='"+a01+ "',IN_AMOUNT='"+a02+ "',OUT_AMOUNT='"+a03+"',REMAIN_AMOUNT='"+a04+"'WHERE 圖書編號='"+num+"'"); JOptionPane.showMessageDialog (this,"更新成功","成功",JOptionPane.P

44、LAIN_MESSAGE); con.close(); catch(SQLException ee) JOptionPane.showMessageDialog (this,"更新失敗"+ee,"失敗",JOptionPane.ERROR_MESSAGE); class InsertRecord extends JDialog implements ActionListener /負責增加記錄的類 JLabel hintLabel; Object name="圖書編號","圖書名","圖書價格"

45、,"庫存量" Object a=new Object16; JTable table; JButton enterInsert; Connection con; Statement sql; ResultSet rs; String num; InsertRecord(String s) setTitle(s); hintLabel=new JLabel("輸入新記錄:"); table=new JTable(a,name); enterInsert=new JButton("增加新記錄"); setLayout(null); Box

46、 baseBox=Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(new JScrollPane(table); baseBox.add(enterInsert); add(baseBox); baseBox.setBounds(10,40,600,38); enterInsert.addActionListener(this); setBounds(120,160,700,200); public void actionPerformed(ActionEvent e) try con=DriverManager.g

47、etConnection("jdbc:odbc:hello","",""); sql=con.createStatement(); int k=sql.executeUpdate ("INSERT INTO 圖書信息 VALUES('"+ a00+"','"+a01+"','"+a02+"','"+a03+"','"+a04+"')");

48、 if(k=1) JOptionPane.showMessageDialog (this,"增加記錄成功","成功",JOptionPane.PLAIN_MESSAGE); con.close(); catch(SQLException ee) JOptionPane.showMessageDialog (this,"增加記錄失敗"+ee,"失敗",JOptionPane.ERROR_MESSAGE); class DeleteRecord extends JDialog implements ActionList

49、ener/負責刪除記錄的類 JLabel hintLabel; JTextField inputNumber; Object name="圖書編號","圖書名","圖書價格","庫存量" Object a=new Object14; JTable table; JButton enterModify; Connection con; Statement sql; ResultSet rs; String num; DeleteRecord(String s) setTitle(s); hintLabel=new JLabel("圖書編號(回車確認):"); inputNumber=new JTextField(20); table=new JTable(a,name); enterModify=new JButton("刪除記錄"); setLayout(null); Box baseBox=Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(inputNumber); baseBox.add(new JS

溫馨提示

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

評論

0/150

提交評論