食堂消費管理系統(tǒng)_第1頁
食堂消費管理系統(tǒng)_第2頁
食堂消費管理系統(tǒng)_第3頁
食堂消費管理系統(tǒng)_第4頁
食堂消費管理系統(tǒng)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州輕工業(yè)學(xué)院本科數(shù)據(jù)庫課程設(shè)計總結(jié)報告設(shè)計題目:食堂消費管理系統(tǒng)學(xué)生姓名:系 別:專 業(yè):班 級:學(xué) 號:指導(dǎo)教師:2011 年 11月 20 日鄭州輕工業(yè)學(xué)院課 程 設(shè) 計 任 務(wù) 書題目 食堂消費管理系統(tǒng) 專業(yè)、班級 學(xué)號 姓名 主要內(nèi)容:系統(tǒng)數(shù)據(jù)初始化;餐卡基本信息錄入與修改;職工工資標(biāo)準(zhǔn)基本設(shè)定;員工工資查詢;系統(tǒng)用戶設(shè)定,密碼修改等?;疽螅毫⒆阌诟咝9べY管理的實際事務(wù),開發(fā)具有價值的工資管理專用軟件,實現(xiàn)工資管理自動化,提高工作效率,減少手工工作方式難以避免的數(shù)據(jù)錯漏。主要參考資料等:數(shù)據(jù)庫系統(tǒng)概論 作者:王珊 薩師煊 出版社:高等教育出版社SQL Server2005中文版關(guān)

2、系數(shù)據(jù)庫基礎(chǔ)與實踐教程作者:周峰 出版社:電子工業(yè)出版社。SQL Server數(shù)據(jù)庫開發(fā)實例精粹 作者:徐國智 汪孝宜 等 出版社:電子工業(yè)出版社。完 成 期 限: 兩周 指導(dǎo)教師簽名: 課程負責(zé)人簽名: 年 月 日目錄課 程 設(shè) 計 任 務(wù) 書21.需求分析41.1系統(tǒng)目標(biāo):41.2系統(tǒng)功能需求:41.3開發(fā)工具:51.4系統(tǒng)的數(shù)據(jù)流圖:51.5 數(shù)據(jù)字典62數(shù)據(jù)庫的概念設(shè)計82.1系統(tǒng)的概念模型:82.2 將概念模型轉(zhuǎn)換成關(guān)系模型102.2.1將E-R模型轉(zhuǎn)換為關(guān)系模式102.2.2 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計:122.2.3實現(xiàn)數(shù)據(jù)完整性:153.開發(fā)工具164.1基本流程圖16數(shù)據(jù)庫設(shè)計174.

3、2總體結(jié)構(gòu)和外部模塊175詳細設(shè)計185.1表的設(shè)計185.2關(guān)系模式設(shè)計195.3存儲過程設(shè)計和部分sql語句代碼195.4關(guān)鍵代碼及操作20程序?qū)崿F(xiàn)部分29對本設(shè)計的簡單評述,總結(jié)34參考文獻34食堂消費管理系統(tǒng)1.需求分析1.1系統(tǒng)目標(biāo):實現(xiàn)一個食堂消費管理系統(tǒng),完成餐卡信息管理,餐卡信息查詢,窗口信息管理,餐卡消費管理和窗口信息查詢等功能。1.2系統(tǒng)功能需求:本系統(tǒng)管理員能夠?qū)Σ涂ㄐ畔⒃黾樱薷?,查詢,刪除等。 功能劃分:用戶通過身份驗證后進入主界面。主界面為超級用戶提供5項選擇:餐卡辦理,餐卡掛失,餐卡充值,餐卡解除掛失,餐卡查詢。功能描述:l 餐卡辦理:管理員通過插入表和更新表來為

4、餐卡使用人員辦理新卡。新生報到時,學(xué)生要到管理員那里辦理新卡,管理員通過插入表信息來辦理。當(dāng)卡主的卡丟失或損壞且確定要辦理新卡時,管理員通過更新表的信息來辦理新卡。l 餐卡掛失當(dāng)學(xué)生的餐卡找不到但是不能確定還能否找到時,學(xué)生可以到擦卡管理員那里去掛失。管理員通過修改表的信息暫時禁用此卡。l 餐卡解除掛失學(xué)生找到丟失的餐卡后,可以到管理員那里解除掛失。管理員通過修改表的信息讓此卡能從新使用。l 餐卡充值餐卡余額不足時,學(xué)生可能無法到食堂消費,此時要到管理員那里充值。管理員通過修改表的信息為餐卡充值。l 餐卡查詢就餐時可能出現(xiàn)刷錯卡的情況,當(dāng)刷錯卡但是刷卡人員沒有注意到時兩方就會產(chǎn)糾紛,這時要到餐

5、卡管理員那里查詢消費情況。1.3開發(fā)工具:該綜合教務(wù)系統(tǒng)的數(shù)據(jù)庫采用了Microsoft的SQL Server2000企業(yè)版,前臺應(yīng)用程序采用了Java編寫。1.4系統(tǒng)的數(shù)據(jù)流圖:了解用戶的應(yīng)用要求,使用信息流程圖分析應(yīng)用系統(tǒng)中的信息流。食堂消費管理系統(tǒng)的簡單信息流如下。(1)系統(tǒng)的上下文數(shù)據(jù)流圖如圖5-381.5 數(shù)據(jù)字典數(shù)據(jù)項名:學(xué)生編號說明: 標(biāo)識每個學(xué)生身份類型: CHAR長度: 7別名: 學(xué)號取值范圍:970000979999數(shù)據(jù)流名:選課申請說明: 由學(xué)生的個人信息,欲選課程信息組成選課申請來自過程:無流至過程:身份驗證數(shù)據(jù)結(jié)構(gòu):學(xué)生個人信息 欲選課信息數(shù)據(jù)結(jié)構(gòu):學(xué)生個人信息說明:

6、 說明了學(xué)生的個人情況。組成: 帳號 密碼數(shù)據(jù)存儲:上課時間信息說明: 說明了每門課的上課時間,一門課可以有多個上課時間,同一時間可以有多門課程在上課。輸出數(shù)據(jù)流:課程上課時間數(shù)據(jù)描述:課程編號 上課時間數(shù)量: 每學(xué)期2030個存取方式:隨機存取處理過程:身份驗證說明: 對學(xué)生輸入的帳號,密碼進行驗證,確定正確,得到相應(yīng)的學(xué)生編號。輸入: 學(xué)生帳號 密碼 選課的課程編號輸出: 學(xué)生編號 選課的課程編號2數(shù)據(jù)庫的概念設(shè)計2.1系統(tǒng)的概念模型:上圖是食堂消費管理的概念模型的E/R圖,該系統(tǒng)涉及的實體集有:管理員實體集:具有屬性賬號,工號ID和密碼。餐卡實體集:具有屬性卡號,是否掛失和金額??ㄖ鲗嶓w

7、集:具有屬性卡號,證件號和姓名。窗口實體集:具有屬性窗口號和機器號。窗口負責(zé)人實體集:具有屬性姓名,年齡和性別。菜實體集:具有屬性菜名,價格和種類。廚師實體集:具有屬性姓名,年齡和性別。一個管理員可以管理多張餐卡,所以管理員和餐卡之間的管理聯(lián)系是1:n的聯(lián)系。一張餐卡只屬于一個卡主,每個卡主只有一張餐卡,所以餐卡與卡主之間的聯(lián)系是1:1的聯(lián)系。一個卡主可以到多個窗口消費,多個卡主可以到一個窗口消費,所以卡主與窗口之間的聯(lián)系是n:m的聯(lián)系。一個窗口可以出售多種菜,每種菜也可以被多個窗口出售,所以窗口與菜之間的聯(lián)系是m:n的聯(lián)系。2.2 將概念模型轉(zhuǎn)換成關(guān)系模型2.2.1將E-R模型轉(zhuǎn)換為關(guān)系模式

8、 (1) 管理員實體集可以轉(zhuǎn)換為關(guān)系:管理員(賬號,ID,密碼) (2) 餐卡實體集可以轉(zhuǎn)換為關(guān)系餐卡(卡號,是否掛失,金額) (3) 卡主實體可以轉(zhuǎn)換為關(guān)系卡主(證件號,姓名)(4)窗口實體可以轉(zhuǎn)換為關(guān)系 窗口(窗口號,機器號)(5)窗口負責(zé)人實體可以轉(zhuǎn)換為關(guān)系 窗口負責(zé)人(姓名,性別,性別)(6)菜實體可以轉(zhuǎn)換為關(guān)系 菜(菜名,價格,種類)(7)廚師實體可以轉(zhuǎn)換為關(guān)系 廚師(姓名,性別,年齡) (8) 卡主與餐卡之間的聯(lián)系是1:1的聯(lián)系,所以沒有必要為其建立一個關(guān)系,可以通過擴展卡主關(guān)系來表示:卡主(證件號,姓名,卡號) (9) 管理員,餐卡之間的操作聯(lián)系可以轉(zhuǎn)換為關(guān)系: 操作(ID,卡號

9、) (10) 餐卡和窗口之間的消費聯(lián)系可以轉(zhuǎn)化為關(guān)系: 消費(卡號,窗口號) (11)窗口和菜之間的出售聯(lián)系可以轉(zhuǎn)化為關(guān)系: 出售(窗口號,菜名)(12)菜和廚師之間的烹飪聯(lián)系可以轉(zhuǎn)換為關(guān)系 烹飪(菜名,姓名) 這里的姓名是指廚師姓名。2.2.2 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計:把關(guān)系模型轉(zhuǎn)化為表結(jié)構(gòu):管理員信息表:定義如下:域名含義數(shù)據(jù)類型長度例子備注ID管理員工號Char512345主碼賬號管理員賬號Char512345密碼管理員密碼Char523456餐卡信息表:定義如下:域名含義數(shù)據(jù)類型長度例子備注卡號餐卡卡號Char12540907010238主碼是否掛失掛失情況0金額餐卡余額Int100.00卡

10、主信息表:域名含義數(shù)據(jù)類型長度例子備注證件號卡主的證件號Char512345主鍵姓名卡主姓名Char12張三卡號卡主的擦卡卡號Char12540907010152窗口信息表域名含義數(shù)據(jù)類型長度例子備注窗口號食堂窗口編號Int11主鍵機器號食堂刷卡機編號Int29窗口負責(zé)人信息表域名含義數(shù)據(jù)類型長度例子備注姓名窗口負責(zé)人的姓名Char12張義坤主鍵年齡窗口負責(zé)人的年齡Int226性別窗口負責(zé)人的性別Char2男菜信息表域名含義數(shù)據(jù)類型長度例子備注菜名窗口所賣菜式的菜名Char30酸辣白菜主鍵菜價某種菜的價錢Int1.50類別是否為該窗口的特色菜Char2否廚師信息表域名含義數(shù)據(jù)類型長度例子備注姓

11、名廚師的姓名Char12張義坤主鍵性別廚師的性別Int226年齡廚師的年齡Char2男2.2.3實現(xiàn)數(shù)據(jù)完整性:通過各種約束,缺省,規(guī)則和觸發(fā)器實現(xiàn)數(shù)據(jù)的完整性。由于食堂消費管理系統(tǒng)的重要性,和各個數(shù)據(jù)之間的復(fù)雜相關(guān)性,保證數(shù)據(jù)的完整性顯得更為重要。不能讓用戶隨意的刪除,修改數(shù)據(jù)。(1) 各種外碼約束保證數(shù)據(jù)的完整性,不能隨意刪除。外碼的設(shè)置在上面數(shù)據(jù)庫建表時已經(jīng)提到。(2) 主碼約束保證實體的完整性,主碼的設(shè)置在上面數(shù)據(jù)庫建表時也已經(jīng)提到了。(3) 創(chuàng)建規(guī)則保證年齡在18歲到35歲之間,不會輸入錯誤數(shù)據(jù)。3.開發(fā)工具本該綜合教務(wù)系統(tǒng)的數(shù)據(jù)庫采用了Microsoft的SQL Server200

12、0企業(yè)版,前臺應(yīng)用程序采用了Java編寫。4.1基本流程圖數(shù)據(jù)庫設(shè)計4.2總體結(jié)構(gòu)和外部模塊 5詳細設(shè)計5.1表的設(shè)計 本系統(tǒng)主要包括以下幾個表: 管理員的登錄信息,窗口管理人員的信息,學(xué)生的基本信息表,學(xué)生所持卡號的詳細信息,每張卡對應(yīng)的消費信息,窗口的信息,窗口的消費信息表,菜的信息。5.2關(guān)系模式設(shè)計在數(shù)據(jù)庫的設(shè)計的時候,考慮到現(xiàn)實中無法進行透支消費等,進行了防止誤操作的控制,比如消費金額如果超過一定數(shù)量將限制消費,無法消費價格超過余額的物品。其中使用到了觸發(fā)器的操作。5.3存儲過程設(shè)計和部分sql語句代碼由于存儲過程不像解釋執(zhí)行的sql語句一樣在提出操作請求時才進行語法分析和優(yōu)化操作,

13、因而運行效率高,它提供了在服務(wù)器端快速執(zhí)行sql語句的有效途徑.存儲過程降低了客戶機和服務(wù)器之間的通行量,方便實施企業(yè)規(guī)則.insert into card_id_table values(000001,23.4,1)insert into cai_id_table values(1,麻辣雞絲,1,1,6.5)delete from cai_id_table where cai_name=麻辣雞絲insert into cooker_id_table values(1,張胖子,男,33)insert into window_id_table values(1,2,麻辣雞絲)insert int

14、o window_manager_id_table values(2,張胖子,123)insert into xiaofei_id_table select * from xiaofei_id_table where cardid=0000015.4關(guān)鍵代碼及操作數(shù)據(jù)庫的連接package com.gp.connectdb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLE

15、xception;public class LianJie public static Connection getConnection() throws ClassNotFoundException,SQLException Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);Connection conn = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=shitang, sa,gp);return conn;public s

16、tatic PreparedStatement getPreparedStatement(String sql)throws SQLException, ClassNotFoundException return getConnection().prepareStatement(sql);public static ResultSet getResultSet(String sql) throws SQLException,ClassNotFoundException return getPreparedStatement(sql).executeQuery();public static i

17、nt executeDelete(String sql) throws SQLException,ClassNotFoundException return getPreparedStatement(sql).executeUpdate();對數(shù)據(jù)庫的全部操作package com.gp.util;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.gp.connectdb.*;import com.gp.javabe

18、an.*;public class Alloperate /所有的返回狀態(tài)都是int,當(dāng)為1是返回成功,當(dāng)為0時候返回失敗/查詢所有的cardid,username,cash,并且最后以cardBean的list返回public List list(String str)List list=new ArrayList();try ResultSet rs=LianJie.getResultSet(select * from +str);while(rs.next()CardBean card=new CardBean();card.setCardid(rs.getString(cardid);

19、card.setCash(rs.getFloat(cash);card.setUsername(rs.getString(username);list.add(card); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return list;/查詢cardid下面的卡的信息(用戶名,余額)public float show(String cardid)float ret = 0;try ResultSet rs=LianJie.getResult

20、Set(select * from cardinfo where cardid =+cardid+);while(rs.next()ret=rs.getFloat(cash); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return ret;/查詢cardid下面的所有消費記錄并且最后以O(shè)pBean的LIST返回public List listlist(String str)List list=new ArrayList();try Resul

21、tSet rs=LianJie.getResultSet(select * from cardop where cardid=+str+);while(rs.next()OpBean op=new OpBean();op.setDate(rs.getString(optime);op.setOp(rs.getFloat(op);list.add(op); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return list;/扣除cardid為ca

22、sh的余額public int chuli(float dao,String cardid)int ret=0;try ret = LianJie.executeDelete(update cardinfo set cash=+dao+where cardid=+cardid+); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return ret;/清除cardid下面的所有記錄public int clearcard(String cardid

23、)int ret1=0 ,ret2=0;try ret1 = LianJie.executeDelete(delete from cardinfo where cardid = +cardid+);ret2 = LianJie.executeDelete(delete from cardop where cardid = +cardid+); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (ClassNotFoundException e) / TODO Auto-gener

24、ated catch blocke.printStackTrace();return ret1+ret2 ;/添加cardidpublic int addcard(String cardid, String username)int ret =0;try ret=LianJie.executeDelete(insert into cardinfo (cardid , username,cash)values(+cardid+,+username+,0); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();return ret;/添加c

溫馨提示

  • 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

提交評論