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

下載本文檔

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

文檔簡介

某輕工業(yè)學院本科

數(shù)據(jù)庫課程設計總結報告20日20日2011年11月某輕工業(yè)學院課程設計任務書題目 食堂消費管理系統(tǒng) 專業(yè)、班級學號某主要內(nèi)容:系統(tǒng)數(shù)據(jù)初始化;餐卡基本信息錄入與修改;職工工資標準基本設定;員工工資查詢;系統(tǒng)用戶設定,密碼修改等。基本要求:立足于高校工資管理的實際事務,開發(fā)具有價值的工資管理專用軟件,實現(xiàn)工資管理自動化,提高工作效率,減少手工工作方式難以避免的數(shù)據(jù)錯漏。主要參考資料等:《數(shù)據(jù)庫系統(tǒng)概論》作者:王珊薩師煊:高等教育《SQLServer2005中文版關系數(shù)據(jù)庫基礎與實踐教程》作者:周峰:電子工業(yè)?!禨QLServer數(shù)據(jù)庫開發(fā)實例精粹》作者:徐國智汪孝宜等:電子工業(yè)。完成期限: 兩周指導教師簽名:課程負責人簽名:年月日目錄課程設計任務書21.需求分析41.1系統(tǒng)目標:4系統(tǒng)功能需求:41.3開發(fā)工具:51.4系統(tǒng)的數(shù)據(jù)流圖:51.5數(shù)據(jù)字典62數(shù)據(jù)庫的概念設計82.1系統(tǒng)的概念模型:82.2將概念模型轉換成關系模型102.2.1將E-R模型轉換為關系模式10數(shù)據(jù)庫表結構設計:122.2.3實現(xiàn)數(shù)據(jù)完整性:153.開發(fā)工具164.1基本流程圖16數(shù)據(jù)庫設計17總體結構和外部模塊175詳細設計185.1表的設計18關系模式設計195.3存儲過程設計和部分sql語句代碼195.4關鍵代碼及操作20程序實現(xiàn)部分29對本設計的簡單評述,總結34參考文獻34食堂消費管理系統(tǒng)1.需求分析1.1系統(tǒng)目標:實現(xiàn)一個食堂消費管理系統(tǒng),完成餐卡信息管理,餐卡信息查詢窗口信息管理,餐卡消費管理和窗口信息查詢等功能。1.2系統(tǒng)功能需求:本系統(tǒng)管理員能夠對餐卡信息增加,修改,查詢,刪除等。功能劃分:用戶通過身份驗證后進入主界面。主界面為超級用戶提供5項選擇:餐卡辦理,餐卡掛失,餐卡充值,餐卡解除掛失,餐卡查詢。功能描述:?餐卡辦理:管理員通過插入表和更新表來為餐卡使用人員辦理新卡。新生報到時,學生要到管理員那里辦理新卡,管理員通過插入表信息來辦理。當卡主的卡丟失或損壞且確定要辦理新卡時,管理員通過更新表的信息來辦理新卡。餐卡掛失當學生的餐卡找不到但是不能確定還能否找到時,學生可以到擦卡管理員那里去掛失。管理員通過修改表的信息暫時禁用此卡。餐卡解除掛失學生找到丟失的餐卡后,可以到管理員那里解除掛失。管理員通過修改表的信息讓此卡能從新使用。?餐卡充值餐卡余額不足時,學生可能無法到食堂消費,此時要到管理員那里充值。管理員通過修改表的信息為餐卡充值。?餐卡查詢就餐時可能出現(xiàn)刷錯卡的情況,當刷錯卡但是刷卡人員沒有注意到時兩方就會產(chǎn)糾紛,這時要到餐卡管理員那里查詢消費情況。1.3開發(fā)工具:該綜合教務系統(tǒng)的數(shù)據(jù)庫采用了Microsoft的SQLServer2000企業(yè)版,前臺應用程序采用了Java編寫。1.4系統(tǒng)的數(shù)據(jù)流圖:了解用戶的應用要求,使用信息流程圖分析應用系統(tǒng)中的信息流。食堂消費管理系統(tǒng)的簡單信息流如下。(1)系統(tǒng)的上下文數(shù)據(jù)流圖如圖5-38

1.5數(shù)據(jù)字典數(shù)據(jù)項名:學生編號說明:標識每個學生身份類型:CHAR長度:7別名:學號取值X圍:970000-979999數(shù)據(jù)流名:選課申請說明:由學生的個人信息,欲選課程信息組成選課申請來自過程:無流至過程:身份驗證數(shù)據(jù)結構:學生個人信息欲選課信息數(shù)據(jù)結構:學生個人信息說明:說明了學生的個人情況。組成:某密碼數(shù)據(jù)存儲:上課時間信息說明:說明了每門課的上課時間,一門課可以有多個上課時間,同一時間可以有多門課程在上課。輸出數(shù)據(jù)流:課程上課時間數(shù)據(jù)描述:課程編號上課時間數(shù)量: 每學期20-30個存取方式:隨機存取處理過程:身份驗證說明:對學生輸入的某,密碼進行驗證,確定正確,得到相

應的學生編號。輸入:學生某密碼選課的課程編號輸出:學生編號選課的課程編號2數(shù)據(jù)庫的概念設計2.1系統(tǒng)的概念模型:-ID密碼卡號管理員是否金額掛失金額、、/餐卡卡主消費-操窗口 機器號 號菜名價格種類y—出售證牛姓名-ID密碼卡號管理員是否金額掛失金額、、/餐卡卡主消費-操窗口 機器號 號菜名價格種類y—出售證牛姓名上限卡號金額-窗口一:菜窗口負主A廚師責人~7— 姓名年齡性別姓名年齡性別

姓名年齡性別姓名年齡性別上圖是食堂消費管理的概念模型的E/R圖,該系統(tǒng)涉及的實體集有:管理員實體集:具有屬性賬號,工號ID和密碼。餐卡實體集:具有屬性卡號,是否掛失和金額??ㄖ鲗嶓w集:具有屬性卡號,證件號和某。窗口實體集:具有屬性窗口號和機器號。窗口負責人實體集:具有屬性某,年齡和性別。菜實體集:具有屬性菜名,價格和種類。廚師實體集:具有屬性某,年齡和性別。管理員窗口管

理人員管理員11窗口卡主廚師m11窗口卡主廚師m一個管理員可以管理多X餐卡,所以管理員和餐卡之間的管理聯(lián)系是1:n的聯(lián)系。一X餐卡只屬于一個卡主,每個卡主只有一X餐卡,所以餐卡與卡主之間的聯(lián)系是1:1的聯(lián)系。一個卡主可以到多個窗口消費,多個卡主可以到一個窗口消費,所以卡主與窗口之間的聯(lián)系是n:m的聯(lián)系。一個窗口可以出售多種菜,每種菜也可以被多個窗口出售,所以窗口與菜之間的聯(lián)系是m:n的聯(lián)系。2.2將概念模型轉換成關系模型2?2?1將E-R模型轉換為關系模式(1) 管理員實體集可以轉換為關系管理員(賬號,ID,密碼)(2) 餐卡實體集可以轉換為關系餐卡(卡號,是否掛失,金額)(3) 卡主實體可以轉換為關系卡主(證件號,某)(4)窗口實體可以轉換為關系窗口(窗口號,機器號)(5)窗口負責人實體可以轉換為關系窗口負責人(某,性別,性別)(6)菜實體可以轉換為關系菜(菜名,價格,種類)(7)廚師實體可以轉換為關系廚師(某,性別,年齡)(8) 卡主與餐卡之間的聯(lián)系是1:1的聯(lián)系,所以沒有必要為其建立一個關系,可以通過擴展卡主關系來表示:卡主(證件號,某,卡號)(9) 管理員,餐卡之間的操作聯(lián)系可以轉換為關系:操作(ID,卡號)(10) 餐卡和窗口之間的消費聯(lián)系可以轉化為關系:消費(卡號,窗口號)(11) 窗口和菜之間的出售聯(lián)系可以轉化為關系:出售(窗口號,菜名)12)菜和廚師之間的烹飪聯(lián)系可以轉換為關系烹飪(菜名,某)這里的某是指廚師某2.2.2數(shù)據(jù)庫表結構設計:把關系模型轉化為表結構:管理員信息表:定義如下:域名含義數(shù)據(jù)類型長度例子備注ID管理員工號Char512345主碼賬號管理員賬號Char512345密碼管理員密碼Char523456餐卡信息表:定義如下:域名含義數(shù)據(jù)類型長度例子備注

卡號餐卡卡號Char12540907010238主碼是否掛失掛失情況0金額餐卡余額Int100.00卡主信息表:域名含義數(shù)據(jù)類型長度例子備注證件號卡主的證件號Char512345主鍵某卡主某Char12X三卡號卡主的擦卡卡號Char12540907010152窗口信息表域名含義數(shù)據(jù)類型長度例子備注窗口號食堂窗口編號Int11主鍵

機器號食堂刷卡機編號Int29窗口負責人信息表域名含義數(shù)據(jù)類型長度例子備注某窗口負責人的某Char12X義坤主鍵年齡窗口負責人的年齡Int226性別窗口負責人的性別Char2男菜信息表域名含義數(shù)據(jù)類型長度例子備注菜名窗口所賣菜式的菜名Char30酸辣白菜主鍵菜價某種菜的價錢Int1.50類別是否為該Char2否窗口的特色菜廚師信息表域名含義數(shù)據(jù)類型長度例子備注某廚師的某Char12X義坤主鍵性別廚師的性別Int226年齡廚師的年齡Char2男2.2.3實現(xiàn)數(shù)據(jù)完整性:通過各種約束,缺省,規(guī)則和觸發(fā)器實現(xiàn)數(shù)據(jù)的完整性。由于食堂消費管理系統(tǒng)的重要性,和各個數(shù)據(jù)之間的復雜相關性,保證數(shù)據(jù)的完整性顯得更為重要。不能讓用戶隨意的刪除,修改數(shù)據(jù)。(1) 各種外碼約束保證數(shù)據(jù)的完整性,不能隨意刪除。外碼的設置在上面數(shù)據(jù)庫建表時已經(jīng)提到。(2) 主碼約束保證實體的完整性,主碼的設置在上面數(shù)據(jù)庫建表時也已經(jīng)提到了。(3) 創(chuàng)建規(guī)則保證年齡在18歲到35歲之間,不會輸入錯誤數(shù)

據(jù)。3.開發(fā)工具本該綜合教務系統(tǒng)的數(shù)據(jù)庫采用了Microsoft的SQLServer2000企業(yè)版,前臺應用程序采用了Java編寫。4.1基本流程圖卡主開始h.管理員登錄 ?<N選^

服務關閉N_繼續(xù).執(zhí)^行操作數(shù)據(jù)庫設計數(shù)據(jù)庫4.2總體結構和外部模塊賬戶驗證模塊主 模!塊5詳細設計5.1表的設計本系統(tǒng)主要包括以下幾個表:管理員的登錄信息,窗口管理人員的信息,學生的基本信息表,學生所持卡號的詳細信息,每X卡對應的消費信息,窗口的信息,窗口的消費信息表,菜的信息。5.2關系模式設計」弋所有5U)rIa±ii^_nEmrlachitipjmlJPCBO1109332...Qw-ry]. 」弋所有5U)rIa±ii^_nEmrlachitipjmlJPCBO1109332...Qw-ry]. 僅藻'~表一Ibu.Xi JjJ■已1SBf出和所砲XiMfet.ff■iMncfciw」T■:oijd制:^KHofeiti[ncZUwindowJtiZZI^indoHjriandrprJdl^hdoMjzai%所有珈caMdcal_nairiewmdow_id忙wirdowca叫斯砂IcookerIdcookEr_narnacookersew_氣所育列)wixtowimanaocrJd_undow_manager_narTiBwndowmaraerDnd.I"Hl I刖Qi=?= IR山I-HrKTflt-WI-t*HFlORFI I豐 1才_(在數(shù)據(jù)庫的設計的時候,考慮到現(xiàn)實中無法進行透支消費等,進行了防止誤操作的控制,比如消費金額如果超過一定數(shù)量將限制消費,無法消費價格超過余額的物品。其中使用到了觸發(fā)器的操作。5?3存儲過程設計和部分sql語句代碼由于存儲過程不像解釋執(zhí)行的sql語句一樣在提出操作請求時才進行語法分析和優(yōu)化操作,因而運行效率高,它提供了在服務器端快速執(zhí)行sql語句的有效途徑.存儲過程降低了客戶機和服務器之間的通行量,方便實施企業(yè)規(guī)則.insertintocard_id_tablevalues('000001',23.4,1)insertintocaiidtablevalues(1,'麻辣雞絲

',1,1,6.5)deletefromcaiidtablewherecainame='麻辣雞絲'insertintocookeridtablevalues(1,'X胖子','男','33')insertintowindowidtablevalues(1,2,'麻辣雞絲')insertintowindowmanageridtablevalues(2,'X胖子','123')insertintoxiaofeiidtableselect*fromxiaofei_id_tablewherecardid='0000015.4關鍵代碼及操作數(shù)據(jù)庫的連接package.gp.connectdb;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassLianJie{publicstaticConnectiongetConnection()throwsClassNotFoundException,SQLException{Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");Connectionconn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=shitang","sa","gp");returnconn;}publicstaticPreparedStatementgetPreparedStatement(Stringsql)throwsSQLException,ClassNotFoundException{returngetConnection().prepareStatement(sql);}publicstaticResultSetgetResultSet(Stringsql)throwsSQLException,ClassNotFoundException{returngetPreparedStatement(sql).executeQuery();}publicstaticintexecuteDelete(Stringsql)throwsSQLException,ClassNotFoundException{returngetPreparedStatement(sql).executeUpdate();}}對數(shù)據(jù)庫的全部操作package.gp.util;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;import.gp.connectdb.*;import.gp.javabean.*;publicclassAlloperate{〃所有的返回狀態(tài)都是int,當為1是返回成功,當為0時候返回失敗〃查詢所有的cardid,username,cash,并且最后以cardBean的list返回publicList<CardBean>list(Stringstr){List<CardBean>list=newArrayList<CardBean>();try{ResultSetrs=LianJie.getResultSet("select*from"+str);while(rs.next()){CardBeancard=newCardBean();card.setCardid(rs.getString("cardid"));card.setCash(rs.getFloat("cash"));card.setUsername(rs.getString("username"));list.add(card);}}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}returnlist;}//查詢cardid下面的卡的信息(用戶名,余額)publicfloatshow(Stringcardid){floatret=0;try{ResultSetrs=LianJie.getResultSet("select*fromcardinfowherecardid='"+cardid+"'");while(rs.next()){ret=rs.getFloat("cash");}}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}returnret;}〃查詢cardid下面的所有消費記錄并且最后以OpBean的LIST返回publicList<OpBean>listlist(Stringstr){List<OpBean>list=newArrayList<OpBean>();try{ResultSetrs=LianJie.getResultSet("select*fromcardopwherecardid='"+str+"'");while(rs.next()){OpBeanop=newOpBean();op.setDate(rs.getString("optime"));op.setOp(rs.getFloat("op"));;list.add(op);}}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}returnlist;}//扣除cardid為cash的余額publicintchuli(floatdao,Stringcardid){intret=0;try{ret=LianJie.executeDelete("updatecardinfosetcash='"+dao+"'wherecardid='"+cardid+"'");}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}returnret;}//清除cardid下面的所有記錄publicintclearcard(Stringcardid){intret1=0,ret2=0;try{ret1=LianJie.executeDelete("deletefromcardinfowherecardid='"+cardid+"'");ret2=LianJie.executeDelete("deletefromcardopwherecardid='"+cardid+"'");

}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnret1+ret2;}//添加cardidpublicintaddcard(Stringcardid,Stringusername){intret=0;(cardid,try(cardid,ret=LianJie.executeDelete("insertintocardinfousername,cash)values('"+cardid+"','"+username+"','0')");}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();returnret;}//添加cardid的消費記錄publicintaddop(Stringcardid,floatdao,Stringstr){intret=0;try{ret=LianJie.executeDelete("insertintocardop(cardid,op,optime)values('"+cardid+"','"+dao+"','"+str+"')");}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnret;}}程序實現(xiàn)部分用戶首頁:3://localhost/st/indeM.jsp全部的持卡人物餐卡管理登陸卡號持卡者余額操作1111張飛3.12.0肴莊消費2222趙云1021.0營]3333關羽390.0登陸消費4444曹操258.0晉5555馬超468.0陸消費6666貝多芬S359.0晉|菇稍費登陸后的消費頁面:兀幷l口編福世]卷看[朝収瞞〔①丄貝LU.帶助1旦:&后退中地址(Q) http://localhost/st/xiaofei.jsp?cardid=1111◎”岡園辺尸&后退中地址(Q) http://localhost/st/xiaofei.jsp?cardid=1111用戶1111進行消費操作輸入消費的金額;遽『"誦窗解"用戶1111卡上的原余額是:3(30;0'扌二除必0元消費成功!還剩下288.0人民幣返回首頁纟墜猛查看消費記錄口伽匚alhost/stjcakan.jsp>cardid=11111111的消費操作情況如下進/岀賬操作金額操作日期存入123.02011-1蚤0413:12:56156存入,123.0 ]2011-12-0413:12:0320?存入?123.02011-12-0413:12:1640&消費-12.0;2011-12-0413:1246.328洽費-23.02011-12-0413:12:53.843消費-123.02011-12-0415:12:19187消費-10.0.[2011-12-0413:12:02015消費-12.0;2011-12-0414:12%687存人123.02011-1^0621:12:3270J捎費-12.0[.2011-12-2213:12:31906消費-12.0...2011-12-2213:12:46687去消費去用戸首頁:alhost/st/login.jsp ' 用戶登錄管理登陸后的頁面(可以直接進行刪除和更改操作)b0寸兇圍45R搜索戲收藏夾<ittp;//localho5t/5t/admin,jsp全部的人物添加卡卡號持卡者操作1111張飛M.o注銷充價2222趙云W21.0注銷充值3jj3關羽i390:04444曹操238.0注銷充值555J馬超468:0注銷充值66W貝多芬8-359.0注銷充值對人物的添加操作

援索收藏夾奩:0后退-O>0園Q援索收藏夾奩:地址(①暑http:7Jlocalhost/st/^ddcardjsp輸入卡號;m輸入持卡人姓名壬馬克思I確認漆■加尊2.2i地址(R)閽http://localho5t/5t/addcardpro.j5p和馬禍數(shù)據(jù)插入成功返回首頁查看結果吧I繼繕添加用戶

表-dbi3.cardinfo摘要cardidusernamecashI-rm張飛288理2趙云LQZ13335''關羽3904444曹操23'85555馬超468&666貝多芬晞g■7777馬克思123'.*4WA/L'HA/LUILi=J翌回 表_dbo.cardop-dbo.car

溫馨提示

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

評論

0/150

提交評論