圖書銷售管理系統(tǒng)--數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  數(shù)據(jù)庫(kù)原理及應(yīng)用</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p><b>  圖書銷售管理系統(tǒng)</b></p><p>  學(xué)校: </p><p>  專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)

2、 </p><p>  班級(jí): 10計(jì)算機(jī)(2)班 </p><p>  姓名: </p><p>  學(xué)號(hào): </p><p><b>  2012年6月</b></p><p>

3、<b>  課程設(shè)計(jì)任務(wù)書</b></p><p><b>  摘要:</b></p><p>  隨著信息時(shí)代的到來,IT產(chǎn)業(yè)和Internet獲得了飛速發(fā)展,計(jì)算機(jī)應(yīng)用已滲透到了各個(gè)領(lǐng)域,網(wǎng)絡(luò)應(yīng)用越來越普遍,而且走進(jìn)了千家萬(wàn)戶,網(wǎng)絡(luò)銷售應(yīng)運(yùn)而生,而圖書銷售就是其中之一。傳統(tǒng)的圖書銷售僅僅局限于一小塊地方且人力與物力過多浪費(fèi),而網(wǎng)絡(luò)圖書銷售則面

4、向全中國(guó),甚至全世界而且管理方便。網(wǎng)絡(luò)圖書銷售具有面向范圍廣,價(jià)格優(yōu)惠,種類齊全,購(gòu)買方便等特點(diǎn)。本圖書銷售管理系統(tǒng)的開發(fā)語(yǔ)言是JAVA,開發(fā)環(huán)境是Visual Studio 2008,數(shù)據(jù)庫(kù)采用SQL Server 2005。 </p><p><b>  1 需求分析</b></p>

5、<p><b>  1.1 系統(tǒng)目標(biāo)</b></p><p>  設(shè)計(jì)出一個(gè)能夠查詢圖書銷售管理信息查詢的平臺(tái)。</p><p><b>  1.2 功能劃分</b></p><p>  圖書銷售管理系統(tǒng)包括登錄、圖書入庫(kù)、添加圖書、刪除圖書、圖書信息修改、圖書信息查詢、銷售圖書等功能。 </p&g

6、t;<p><b>  2 概念設(shè)計(jì)</b></p><p>  本系統(tǒng)規(guī)劃出的實(shí)體有:管理員實(shí)體、圖書入庫(kù)信息實(shí)體、圖書添加信息實(shí)體、圖書刪除信息實(shí)體、圖書信息查詢實(shí)體、圖書銷售信息實(shí)體,它們之間的關(guān)系如下圖所示。</p><p>  2.1 圖書銷售管理系統(tǒng)概念設(shè)計(jì)。。</p><p>  圖書銷售系統(tǒng)E-R圖</p

7、><p>  2.2 各實(shí)體的E-R圖</p><p>  2.2.1 圖書入庫(kù)信息系統(tǒng)E-R圖</p><p>  2.2.2 圖書刪除系統(tǒng)E-R圖</p><p>  2.2.3 圖書信息查詢系統(tǒng)E-R圖</p><p>  2.2.4 圖書銷售系統(tǒng)E-R圖</p><p><b> 

8、 分析:</b></p><p>  一個(gè)管理員可以購(gòu)買多本圖書,一本圖書只能被一個(gè)管理員購(gòu)買,所以是1:N的關(guān)系;一個(gè)管理員可以刪除多本圖書,一本圖書只能被一個(gè)管理員刪除,所以是1:N的關(guān)系;一個(gè)管理員可以查詢多本圖書信息,一本圖書可以被多個(gè)管理員查詢,所以是M:N的關(guān)系;一個(gè)管理員可以銷售多本圖書,一本圖書只能被一個(gè)管理員銷售,所以是1:N的關(guān)系。</p><p>  3.

9、 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)</p><p>  表3.1 圖書入庫(kù)信息表</p><p>  表3.2 圖書刪除信息表</p><p>  表3.3 管理員信息表</p><p>  表3.4 圖書信息查詢表</p><p>  表3.5圖書銷售信息表</p><p><b>  應(yīng)用程

10、序設(shè)計(jì)</b></p><p>  4.1應(yīng)用程序流程圖</p><p>  圖4.1應(yīng)用程序流程圖</p><p>  4.2 圖書銷售系統(tǒng)功能模塊圖</p><p><b>  5 編程實(shí)現(xiàn)</b></p><p>  5.1 運(yùn)行系統(tǒng),顯示系統(tǒng)登陸界面,如圖5.1所示。<

11、;/p><p>  圖5.1 系統(tǒng)登陸</p><p>  進(jìn)入圖書銷售系統(tǒng),顯示主界面,如圖5.2所示。</p><p><b>  圖5.2 主界面</b></p><p>  5.3 進(jìn)入圖書入庫(kù)系統(tǒng),如圖5.3所示。</p><p>  圖5.3 圖書入庫(kù)信息</p>&

12、lt;p>  5.4 進(jìn)入圖書信息修改系統(tǒng),如圖5.4所示。</p><p>  圖5.4 圖書修改信息</p><p>  5.5 進(jìn)入刪除圖書信息系統(tǒng),如圖5.5所示。</p><p>  圖5.5 圖書刪除系統(tǒng)</p><p>  5.6 進(jìn)入圖書信息查詢系統(tǒng),如圖所示。</p><p>  圖5.7

13、 圖書查詢系統(tǒng)</p><p>  5.7 進(jìn)入圖書銷售系統(tǒng),如圖所示。</p><p><b>  源程序:</b></p><p><b>  圖書銷售:</b></p><p>  public class Book_Sale extends Frame implements Action

14、Listener{</p><p>  JFrame Book_Sale_Window;</p><p>  Label LB_Print = new Label("請(qǐng)輸入要銷售的圖書信息");</p><p>  JLabel JL_BookName = new JLabel();</p><p>  TextField

15、 TF_BookName = new TextField();</p><p>  JLabel JL_Autor = new JLabel();</p><p>  TextField TF_Autor = new TextField();</p><p>  JLabel JL_Pres = new JLabel();</p><p> 

16、 TextField TF_Pres = new TextField();</p><p>  JLabel JL_PublicationDate = new JLabel();</p><p>  TextField TF_PublicationDate = new TextField();</p><p>  JLabel JL_Pricing = new J

17、Label();</p><p>  TextField TF_Pricing = new TextField();</p><p>  JLabel JL_Book_Sell_Num = new JLabel();</p><p>  TextField TF_Book_Sell_Num = new TextField();</p><p&g

18、t;  Button Btn_ok = new Button("確 定");</p><p>  Button Btn_exit = new Button("返 回");</p><p>  String Str_BookName = new String(); </p><p>  String Str_Autor

19、= new String(); </p><p>  String Str_Pres = new String();</p><p>  String Str_PublicationDate = new String();</p><p>  String Str_Pricing = new String();</p><p> 

20、 int Buy_Num,Store_Num; </p><p>  String Parameter_BookName = new String();//申請(qǐng)Parameter_BookName用來保存?zhèn)鬟f過來的BookName參數(shù)</p><p>  Book_Sale(){</p><p>  Parameter_BookName = Str_Bo

21、okName;//獲取參數(shù)</p><p>  Book_Sale_Window = new JFrame("圖書銷售");</p><p>  Book_Sale_Window.setBounds(650,160,400,350);</p><p>  Book_Sale_Window.setLayout(null);</p>&

22、lt;p>  Book_Sale_Window.add(LB_Print);</p><p>  LB_Print.setBounds(140,10,150,20);</p><p>  JL_BookName.setText("書 名:");</p><p>  JL_BookName.add(TF_BookName);</p&g

23、t;<p>  JL_BookName.setBounds(30,30,100,40);</p><p>  TF_BookName.setBounds(100,7,220,25);</p><p>  JL_Autor.setText("作 者:");</p><p>  JL_Autor.add(TF_Autor);<

24、/p><p>  JL_Autor.setBounds(30,70,100,40);</p><p>  TF_Autor.setBounds(100,7,220,25);</p><p>  JL_Pres.setText("出 版 社:");</p><p>  JL_Pres.add(TF_Pres);</p>

25、;<p>  JL_Pres.setBounds(30,110,100,40);</p><p>  TF_Pres.setBounds(100,7,220,25);</p><p>  JL_PublicationDate.setText("出 版 日 期:");</p><p>  JL_PublicationDate.add(

26、TF_PublicationDate);</p><p>  JL_PublicationDate.setBounds(30,150,100,40);</p><p>  TF_PublicationDate.setBounds(100,7,220,25);</p><p>  JL_Pricing.setText("定 價(jià):");</p

27、><p>  JL_Pricing.add(TF_Pricing);</p><p>  JL_Pricing.setBounds(30,190,100,40);</p><p>  TF_Pricing.setBounds(100,7,220,25);</p><p>  JL_Book_Sell_Num.setText("銷 售 數(shù)

28、 量:");</p><p>  JL_Book_Sell_Num.add(TF_Book_Sell_Num);</p><p>  JL_Book_Sell_Num.setBounds(30,230,100,40);</p><p>  TF_Book_Sell_Num.setBounds(100,7,220,25);</p><p&

29、gt;  Book_Sale_Window.add(JL_BookName);</p><p>  Book_Sale_Window.add(JL_Autor);</p><p>  Book_Sale_Window.add(JL_Pres);</p><p>  Book_Sale_Window.add(JL_PublicationDate);</p>

30、<p>  Book_Sale_Window.add(JL_Pricing);</p><p>  Book_Sale_Window.add(JL_Book_Sell_Num);</p><p>  Book_Sale_Window.add(Btn_ok);</p><p>  Book_Sale_Window.add(Btn_exit);</

31、p><p>  Btn_ok.setBounds(90,270,65,30);</p><p>  Btn_exit.setBounds(250,270,65,30);</p><p>  Btn_ok.addActionListener(this);</p><p>  Btn_exit.addActionListener(this);&

32、lt;/p><p>  Book_Sale_Window.setVisible(true);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  PreparedStatement pstmt=null;<

33、;/p><p>  ResultSet rs= null;</p><p>  if(e.getSource()==Btn_exit)</p><p>  Book_Sale_Window.dispose();</p><p>  if(e.getSource()==Btn_ok){</p><p>  Str_BookN

34、ame = TF_BookName.getText();</p><p>  Str_Autor = TF_Autor.getText();</p><p>  Str_Pres = TF_Pres.getText();</p><p>  Str_PublicationDate = TF_PublicationDate.getText();</p>

35、<p>  Str_Pricing = TF_Pricing.getText();</p><p>  Buy_Num = Integer.parseInt(TF_Book_Sell_Num.getText());</p><p>  if(Str_BookName.length()>0){</p><p>  Connection con;<

36、/p><p>  Statement stmt;</p><p>  String query;</p><p>  String query_end;</p><p>  String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";</p>

37、;<p>  String myurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Book";//連接數(shù)據(jù)庫(kù)里的庫(kù)</p><p>  String user="sa";</p><p>  String password= "people";&l

38、t;/p><p>  query="UPDATE Books SET ";</p><p>  try</p><p><b>  {</b></p><p>  Class.forName(dbClassName).newInstance();</p&g

39、t;<p>  con=DriverManager.getConnection(myurl,user,password);</p><p>  stmt = con.createStatement();</p><p>  pstmt=con.prepareStatement("'select * from Book where BookName='

40、"+ Parameter_BookName);</p><p>  rs=pstmt.executeQuery();</p><p>  if(rs.next()){</p><p>  Store_Num = rs.getInt("BookLeft");</p><p><b>  }</b&g

41、t;</p><p>  stmt.executeUpdate(query+"BookName='"+Str_BookName+"' WHERE BookName='"+Parameter_BookName+"'");</p><p>  query_end="' WHERE Bo

42、okName='"+Str_BookName+"'";</p><p>  if(Str_Autor.length()>0)</p><p>  stmt.executeUpdate(query+"Autor='"+Str_Autor+query_end);</p><p>

43、;  if(Str_Pres.length()>0)</p><p>  stmt.executeUpdate(query+"Pres='"+Str_Pres+query_end);</p><p>  if(Str_PublicationDate.length()>0)</p><p>  stmt.execu

44、teUpdate(query+"PublicationDate='"+Str_PublicationDate+query_end);</p><p>  if(Str_Pricing.length()>0)</p><p>  stmt.executeUpdate(query+"Pricing='"+Str_Pri

45、cing+query_end);</p><p>  if(Buy_Num <= Store_Num)</p><p>  stmt.executeUpdate(query+"BookLeft='"+(Store_Num-Buy_Num)+query_end);</p><p>  JOptionPane

46、.showMessageDialog(Book_Sell_Management.this,"銷售成功!!");</p><p>  Book_Sale_Window.dispose();</p><p>  stmt.close();</p><p>  con.close();</p><p>  }catch(Exce

47、ption ex){ //數(shù)據(jù)庫(kù)的錯(cuò)誤處理</p><p>  System.err.println("Exception:"+ex.getMessage());</p><p><b>  }</b></p><p><b>  }</b></p><p>  el

48、se if(Buy_Num > Store_Num){</p><p>  JOptionPane.showMessageDialog(Book_Sell_Management.this,"庫(kù)存不足,銷售失敗");</p><p><b>  }</b></p><p><b>  else</b>

49、;</p><p>  JOptionPane.showMessageDialog(Book_Sell_Management.this,"請(qǐng)輸入書名。");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }

50、</b></p><p><b>  版本信息:</b></p><p>  public class Verison extends JFrame implements ActionListener{</p><p>  JFrame Verison_Window;//定義版本信息組件</p><p>  

51、Button btn_exit = new Button("返 回");</p><p>  Container con;</p><p>  JLabel lab_head;</p><p>  JLabel lab_name;</p><p>  JLabel lab_maker;</p><p&

52、gt;  JLabel lab_ma;</p><p>  JLabel lab_zhang;</p><p>  JLabel lab_bai;</p><p>  Verison(){</p><p>  Verison_Window = new JFrame("關(guān)于");//初始化組件并進(jìn)行設(shè)置</p>

53、<p>  Verison_Window.setBounds(450,220,330,220);</p><p>  con = Verison_Window.getContentPane();</p><p>  con.setLayout(null);</p><p>  lab_name = new JLabel("數(shù)據(jù)庫(kù)原理及應(yīng)用&qu

54、ot;);</p><p>  lab_name.setBounds(115,0,110,30);</p><p>  lab_head = new JLabel("課程設(shè)計(jì) -- 圖書銷售管理系統(tǒng)");</p><p>  lab_head.setBounds(80,20,180,30);</p><p>  lab_m

55、aker = new JLabel("制作人:");</p><p>  lab_maker.setBounds(60,50,80,30);</p><p>  lab_ma = new JLabel("10計(jì)科2班 1010311209 馬強(qiáng)");</p><p>  lab_ma.setBounds(80,70,1

56、80,30);</p><p>  lab_zhang = new JLabel("10計(jì)科2班 1010311222 張露");</p><p>  lab_zhang.setBounds(80,90,180,30);</p><p>  lab_bai = new JLabel("10計(jì)科2班 1010311223

57、白雪峰");</p><p>  lab_bai.setBounds(80,110,190,30);</p><p>  con.add(lab_head);//將所有組件添加到容器中</p><p>  con.add(lab_name); </p><p>  con.add(lab_maker);</p><

58、;p>  con.add(lab_ma);</p><p>  con.add(lab_zhang);</p><p>  con.add(lab_bai);</p><p>  con.add(btn_exit);</p><p>  btn_exit.setBounds(230,150,55,25);</p><

59、p>  btn_exit.addActionListener(this); //對(duì)返回按鈕設(shè)置監(jiān)聽</p><p>  Verison_Window.setVisible(true);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){<

60、/p><p>  if(e.getSource() == btn_exit)</p><p>  Verison_Window.dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  主窗口:&l

61、t;/b></p><p>  public class Landed extends Frame implements ActionListener{</p><p>  /*創(chuàng)建用戶登陸窗口所需組件*/</p><p>  JFrame Log_In_Window;//創(chuàng)建登陸窗口</p><p>  Container con;/

62、/創(chuàng)建登錄窗口容器 </p><p>  JLabel user;//創(chuàng)建容器</p><p>  JLabel pass;</p><p>  Button btn_enter = new Button("登 陸");//創(chuàng)建按鈕組件</p><p>  Button btn_exit = new Button(&q

63、uot;退 出");</p><p>  TextField username = new TextField();//創(chuàng)建文字輸入組件</p><p>  TextField password = new TextField();</p><p>  /*對(duì)窗口進(jìn)行排列*/</p><p>  Landed() {</p&

64、gt;<p>  Log_In_Window = new JFrame("登錄系統(tǒng)");</p><p>  Log_In_Window.setBounds(500,300,350,200);</p><p>  con = Log_In_Window.getContentPane();</p><p>  con.setLayou

65、t(null); //令登錄窗口默認(rèn)排列為空</p><p>  /*排列賬號(hào)組件*/</p><p><b>  {</b></p><p>  user=new JLabel(); </p><p>  user.setText("賬 號(hào):");

66、 </p><p>  user.setBounds(60, 30, 77, 25); </p><p>  user.add(username); </p><p>  username.setBounds(77,0, 140, 22);</p><p><b>  }</b></

67、p><p>  /*排列密碼組件*/</p><p><b>  {</b></p><p>  pass=new JLabel(); </p><p>  pass.setText("密 碼:"); </p><p>  pass.s

68、etBounds(60, 70, 70, 25); </p><p>  pass.add(password); </p><p>  password.setBounds(77,0, 140, 22);</p><p>  password.setEchoChar('*'); </p><

69、;p><b>  }</b></p><p>  /*組件添加至容器中*/</p><p><b>  {</b></p><p>  con.add(user);</p><p>  con.add(pass);</p><p>  con.add(btn_enter

70、);</p><p>  con.add(btn_exit);</p><p><b>  }</b></p><p>  btn_enter.setBounds(80,120,60,25);//按鈕顯示坐標(biāo)和大小</p><p>  btn_exit.setBounds(190,120,60,25);</p

71、><p>  btn_exit.addActionListener(this); //對(duì)按鈕添加監(jiān)聽</p><p>  btn_enter.addActionListener(this);</p><p>  Log_In_Window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//定義登錄界面按鈕作用</

72、p><p>  Log_In_Window.setVisible(true); //顯示登陸界面</p><p><b>  }</b></p><p><b>  /*按鈕的監(jiān)聽*/</b></p><p>  public void actionPerformed(ActionEvent e){&

73、lt;/p><p>  if(e.getSource() == btn_exit) //退出按鈕的操作</p><p>  System.exit(0);</p><p>  if(e.getSource() == btn_enter){ //登陸按鈕的操作</p><p>  String UserName = username.getTex

74、t(); //獲取用戶名、密碼文本框里的數(shù)據(jù)</p><p>  String PassWord = password.getText();</p><p>  if(Log_in_Check(UserName,PassWord)){ //通過Verification方法進(jìn)行驗(yàn)證輸入的用戶名、密碼是否正確</p><p>  JOptionPane.showM

75、essageDialog(Book_Sell_Management.this,"登 錄 成 功");//正確則提示登錄成功</p><p>  Log_In_Window.dispose();//關(guān)閉用戶登陸界面</p><p>  new Management();//創(chuàng)建用戶管理界面</p><p><b>  }</b>

76、;</p><p><b>  else { </b></p><p>  JOptionPane.showMessageDialog(Book_Sell_Management.this,"密 碼 錯(cuò) 誤");//否則提示密碼錯(cuò)誤</p><p><b>  }</b></p><p

77、><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*檢查用戶密碼*/</p><p>  public boolean Log_in_Check(String UserName,String P

78、assWord){</p><p>  boolean flag=false; //標(biāo)志</p><p>  Connection con; </p><p>  Statement stmt;</p><p>  String query;</p><p>  String dbClassName = &quo

79、t;com.microsoft.jdbc.sqlserver.SQLServerDriver";</p><p>  String myurl = "jdbc:microsoft:sqlserver://localhost:1433;" +</p><p>  "DatabaseName=Book";//連接數(shù)據(jù)庫(kù)里的庫(kù)</p>

80、<p>  String user = "sa"; //連接數(shù)據(jù)庫(kù)的 用戶名</p><p>  String password = "people";//連接數(shù)據(jù)庫(kù)的 密 碼</p><p>  query = "SELECT username,pass_word FROM UserTable WHERE UserN

81、ame='"+UserName+"' and Pass_Word='"+PassWord+"'";//數(shù)據(jù)庫(kù)sql server 2000查詢語(yǔ)句</p><p>  try{ //數(shù)據(jù)庫(kù)的操作</p><p>  Class.forName(dbClassName).newInstance();</p

82、><p>  con = DriverManager.getConnection(myurl,user,password);</p><p>  stmt = con.createStatement();</p><p>  ResultSet rs = stmt.executeQuery(query);</p><p>  while(rs.n

83、ext()){ //rs.next是遍歷數(shù)據(jù)庫(kù)中所有返回的方法</p><p>  flag = true; </p><p><b>  }</b></p><p>  stmt.close();</p><p>  con.close();</p><p&g

84、t;  }catch(Exception ex){ //數(shù)據(jù)庫(kù)的錯(cuò)誤處理</p><p>  System.err.println("Exception:"+ex.getMessage());</p><p><b>  }</b></p><p>  return flag;</p>

85、<p><b>  }</b></p><p><b>  課程設(shè)計(jì)總結(jié):</b></p><p>  這次我做的程序設(shè)計(jì),一開始原以為它很難,很多控件以前都沒學(xué)過,經(jīng)過這些天的實(shí)踐,感覺并不像想象中的那么難。通過查閱資料,我對(duì)一些控件有了一定的了解,所以并不像想象中那么難。在這幾的時(shí)間內(nèi),我通過看相關(guān)的書籍和上網(wǎng)查資料,復(fù)習(xí)了一下本學(xué)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論