




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭州輕工業(yè)學(xué)院本科數(shù)據(jù)庫(kù)課程設(shè)計(jì)總結(jié)報(bào)告設(shè)計(jì)題目:食堂消費(fèi)管理系統(tǒng)學(xué)生姓名:系 別:專 業(yè):班 級(jí):學(xué) 號(hào):指導(dǎo)教師:2011 年 11月 20 日鄭州輕工業(yè)學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書題目 食堂消費(fèi)管理系統(tǒng) 專業(yè)、班級(jí) 學(xué)號(hào) 姓名 主要內(nèi)容:系統(tǒng)數(shù)據(jù)初始化;餐卡基本信息錄入與修改;職工工資標(biāo)準(zhǔn)基本設(shè)定;員工工資查詢;系統(tǒng)用戶設(shè)定,密碼修改等。基本要求:立足于高校工資管理的實(shí)際事務(wù),開發(fā)具有價(jià)值的工資管理專用軟件,實(shí)現(xiàn)工資管理自動(dòng)化,提高工作效率,減少手工工作方式難以避免的數(shù)據(jù)錯(cuò)漏。主要參考資料等:數(shù)據(jù)庫(kù)系統(tǒng)概論 作者:王珊 薩師煊 出版社:高等教育出版社SQL Server2005中文版關(guān)
2、系數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)踐教程作者:周峰 出版社:電子工業(yè)出版社。SQL Server數(shù)據(jù)庫(kù)開發(fā)實(shí)例精粹 作者:徐國(guó)智 汪孝宜 等 出版社:電子工業(yè)出版社。完 成 期 限: 兩周 指導(dǎo)教師簽名: 課程負(fù)責(zé)人簽名: 年 月 日目錄課 程 設(shè) 計(jì) 任 務(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ù)庫(kù)的概念設(shè)計(jì)82.1系統(tǒng)的概念模型:82.2 將概念模型轉(zhuǎn)換成關(guān)系模型102.2.1將E-R模型轉(zhuǎn)換為關(guān)系模式102.2.2 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì):122.2.3實(shí)現(xiàn)數(shù)據(jù)完整性:153.開發(fā)工具164.1基本流程圖16數(shù)據(jù)庫(kù)設(shè)計(jì)174.
3、2總體結(jié)構(gòu)和外部模塊175詳細(xì)設(shè)計(jì)185.1表的設(shè)計(jì)185.2關(guān)系模式設(shè)計(jì)195.3存儲(chǔ)過(guò)程設(shè)計(jì)和部分sql語(yǔ)句代碼195.4關(guān)鍵代碼及操作20程序?qū)崿F(xiàn)部分29對(duì)本設(shè)計(jì)的簡(jiǎn)單評(píng)述,總結(jié)34參考文獻(xiàn)34食堂消費(fèi)管理系統(tǒng)1.需求分析1.1系統(tǒng)目標(biāo):實(shí)現(xiàn)一個(gè)食堂消費(fèi)管理系統(tǒng),完成餐卡信息管理,餐卡信息查詢,窗口信息管理,餐卡消費(fèi)管理和窗口信息查詢等功能。1.2系統(tǒng)功能需求:本系統(tǒng)管理員能夠?qū)Σ涂ㄐ畔⒃黾?,修改,查詢,刪除等。 功能劃分:用戶通過(guò)身份驗(yàn)證后進(jìn)入主界面。主界面為超級(jí)用戶提供5項(xiàng)選擇:餐卡辦理,餐卡掛失,餐卡充值,餐卡解除掛失,餐卡查詢。功能描述:l 餐卡辦理:管理員通過(guò)插入表和更新表來(lái)為
4、餐卡使用人員辦理新卡。新生報(bào)到時(shí),學(xué)生要到管理員那里辦理新卡,管理員通過(guò)插入表信息來(lái)辦理。當(dāng)卡主的卡丟失或損壞且確定要辦理新卡時(shí),管理員通過(guò)更新表的信息來(lái)辦理新卡。l 餐卡掛失當(dāng)學(xué)生的餐卡找不到但是不能確定還能否找到時(shí),學(xué)生可以到擦卡管理員那里去掛失。管理員通過(guò)修改表的信息暫時(shí)禁用此卡。l 餐卡解除掛失學(xué)生找到丟失的餐卡后,可以到管理員那里解除掛失。管理員通過(guò)修改表的信息讓此卡能從新使用。l 餐卡充值餐卡余額不足時(shí),學(xué)生可能無(wú)法到食堂消費(fèi),此時(shí)要到管理員那里充值。管理員通過(guò)修改表的信息為餐卡充值。l 餐卡查詢就餐時(shí)可能出現(xiàn)刷錯(cuò)卡的情況,當(dāng)刷錯(cuò)卡但是刷卡人員沒有注意到時(shí)兩方就會(huì)產(chǎn)糾紛,這時(shí)要到餐
5、卡管理員那里查詢消費(fèi)情況。1.3開發(fā)工具:該綜合教務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)采用了Microsoft的SQL Server2000企業(yè)版,前臺(tái)應(yīng)用程序采用了Java編寫。1.4系統(tǒng)的數(shù)據(jù)流圖:了解用戶的應(yīng)用要求,使用信息流程圖分析應(yīng)用系統(tǒng)中的信息流。食堂消費(fèi)管理系統(tǒng)的簡(jiǎn)單信息流如下。(1)系統(tǒng)的上下文數(shù)據(jù)流圖如圖5-381.5 數(shù)據(jù)字典數(shù)據(jù)項(xiàng)名:學(xué)生編號(hào)說(shuō)明: 標(biāo)識(shí)每個(gè)學(xué)生身份類型: CHAR長(zhǎng)度: 7別名: 學(xué)號(hào)取值范圍:970000979999數(shù)據(jù)流名:選課申請(qǐng)說(shuō)明: 由學(xué)生的個(gè)人信息,欲選課程信息組成選課申請(qǐng)來(lái)自過(guò)程:無(wú)流至過(guò)程:身份驗(yàn)證數(shù)據(jù)結(jié)構(gòu):學(xué)生個(gè)人信息 欲選課信息數(shù)據(jù)結(jié)構(gòu):學(xué)生個(gè)人信息說(shuō)明:
6、 說(shuō)明了學(xué)生的個(gè)人情況。組成: 帳號(hào) 密碼數(shù)據(jù)存儲(chǔ):上課時(shí)間信息說(shuō)明: 說(shuō)明了每門課的上課時(shí)間,一門課可以有多個(gè)上課時(shí)間,同一時(shí)間可以有多門課程在上課。輸出數(shù)據(jù)流:課程上課時(shí)間數(shù)據(jù)描述:課程編號(hào) 上課時(shí)間數(shù)量: 每學(xué)期2030個(gè)存取方式:隨機(jī)存取處理過(guò)程:身份驗(yàn)證說(shuō)明: 對(duì)學(xué)生輸入的帳號(hào),密碼進(jìn)行驗(yàn)證,確定正確,得到相應(yīng)的學(xué)生編號(hào)。輸入: 學(xué)生帳號(hào) 密碼 選課的課程編號(hào)輸出: 學(xué)生編號(hào) 選課的課程編號(hào)2數(shù)據(jù)庫(kù)的概念設(shè)計(jì)2.1系統(tǒng)的概念模型:上圖是食堂消費(fèi)管理的概念模型的E/R圖,該系統(tǒng)涉及的實(shí)體集有:管理員實(shí)體集:具有屬性賬號(hào),工號(hào)ID和密碼。餐卡實(shí)體集:具有屬性卡號(hào),是否掛失和金額??ㄖ鲗?shí)體
7、集:具有屬性卡號(hào),證件號(hào)和姓名。窗口實(shí)體集:具有屬性窗口號(hào)和機(jī)器號(hào)。窗口負(fù)責(zé)人實(shí)體集:具有屬性姓名,年齡和性別。菜實(shí)體集:具有屬性菜名,價(jià)格和種類。廚師實(shí)體集:具有屬性姓名,年齡和性別。一個(gè)管理員可以管理多張餐卡,所以管理員和餐卡之間的管理聯(lián)系是1:n的聯(lián)系。一張餐卡只屬于一個(gè)卡主,每個(gè)卡主只有一張餐卡,所以餐卡與卡主之間的聯(lián)系是1:1的聯(lián)系。一個(gè)卡主可以到多個(gè)窗口消費(fèi),多個(gè)卡主可以到一個(gè)窗口消費(fèi),所以卡主與窗口之間的聯(lián)系是n:m的聯(lián)系。一個(gè)窗口可以出售多種菜,每種菜也可以被多個(gè)窗口出售,所以窗口與菜之間的聯(lián)系是m:n的聯(lián)系。2.2 將概念模型轉(zhuǎn)換成關(guān)系模型2.2.1將E-R模型轉(zhuǎn)換為關(guān)系模式
8、 (1) 管理員實(shí)體集可以轉(zhuǎn)換為關(guān)系:管理員(賬號(hào),ID,密碼) (2) 餐卡實(shí)體集可以轉(zhuǎn)換為關(guān)系餐卡(卡號(hào),是否掛失,金額) (3) 卡主實(shí)體可以轉(zhuǎn)換為關(guān)系卡主(證件號(hào),姓名)(4)窗口實(shí)體可以轉(zhuǎn)換為關(guān)系 窗口(窗口號(hào),機(jī)器號(hào))(5)窗口負(fù)責(zé)人實(shí)體可以轉(zhuǎn)換為關(guān)系 窗口負(fù)責(zé)人(姓名,性別,性別)(6)菜實(shí)體可以轉(zhuǎn)換為關(guān)系 菜(菜名,價(jià)格,種類)(7)廚師實(shí)體可以轉(zhuǎn)換為關(guān)系 廚師(姓名,性別,年齡) (8) 卡主與餐卡之間的聯(lián)系是1:1的聯(lián)系,所以沒有必要為其建立一個(gè)關(guān)系,可以通過(guò)擴(kuò)展卡主關(guān)系來(lái)表示:卡主(證件號(hào),姓名,卡號(hào)) (9) 管理員,餐卡之間的操作聯(lián)系可以轉(zhuǎn)換為關(guān)系: 操作(ID,卡號(hào)
9、) (10) 餐卡和窗口之間的消費(fèi)聯(lián)系可以轉(zhuǎn)化為關(guān)系: 消費(fèi)(卡號(hào),窗口號(hào)) (11)窗口和菜之間的出售聯(lián)系可以轉(zhuǎn)化為關(guān)系: 出售(窗口號(hào),菜名)(12)菜和廚師之間的烹飪聯(lián)系可以轉(zhuǎn)換為關(guān)系 烹飪(菜名,姓名) 這里的姓名是指廚師姓名。2.2.2 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì):把關(guān)系模型轉(zhuǎn)化為表結(jié)構(gòu):管理員信息表:定義如下:域名含義數(shù)據(jù)類型長(zhǎng)度例子備注ID管理員工號(hào)Char512345主碼賬號(hào)管理員賬號(hào)Char512345密碼管理員密碼Char523456餐卡信息表:定義如下:域名含義數(shù)據(jù)類型長(zhǎng)度例子備注卡號(hào)餐卡卡號(hào)Char12540907010238主碼是否掛失掛失情況0金額餐卡余額Int100.00卡
10、主信息表:域名含義數(shù)據(jù)類型長(zhǎng)度例子備注證件號(hào)卡主的證件號(hào)Char512345主鍵姓名卡主姓名Char12張三卡號(hào)卡主的擦卡卡號(hào)Char12540907010152窗口信息表域名含義數(shù)據(jù)類型長(zhǎng)度例子備注窗口號(hào)食堂窗口編號(hào)Int11主鍵機(jī)器號(hào)食堂刷卡機(jī)編號(hào)Int29窗口負(fù)責(zé)人信息表域名含義數(shù)據(jù)類型長(zhǎng)度例子備注姓名窗口負(fù)責(zé)人的姓名Char12張義坤主鍵年齡窗口負(fù)責(zé)人的年齡Int226性別窗口負(fù)責(zé)人的性別Char2男菜信息表域名含義數(shù)據(jù)類型長(zhǎng)度例子備注菜名窗口所賣菜式的菜名Char30酸辣白菜主鍵菜價(jià)某種菜的價(jià)錢Int1.50類別是否為該窗口的特色菜Char2否廚師信息表域名含義數(shù)據(jù)類型長(zhǎng)度例子備注姓
11、名廚師的姓名Char12張義坤主鍵性別廚師的性別Int226年齡廚師的年齡Char2男2.2.3實(shí)現(xiàn)數(shù)據(jù)完整性:通過(guò)各種約束,缺省,規(guī)則和觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的完整性。由于食堂消費(fèi)管理系統(tǒng)的重要性,和各個(gè)數(shù)據(jù)之間的復(fù)雜相關(guān)性,保證數(shù)據(jù)的完整性顯得更為重要。不能讓用戶隨意的刪除,修改數(shù)據(jù)。(1) 各種外碼約束保證數(shù)據(jù)的完整性,不能隨意刪除。外碼的設(shè)置在上面數(shù)據(jù)庫(kù)建表時(shí)已經(jīng)提到。(2) 主碼約束保證實(shí)體的完整性,主碼的設(shè)置在上面數(shù)據(jù)庫(kù)建表時(shí)也已經(jīng)提到了。(3) 創(chuàng)建規(guī)則保證年齡在18歲到35歲之間,不會(huì)輸入錯(cuò)誤數(shù)據(jù)。3.開發(fā)工具本該綜合教務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)采用了Microsoft的SQL Server200
12、0企業(yè)版,前臺(tái)應(yīng)用程序采用了Java編寫。4.1基本流程圖數(shù)據(jù)庫(kù)設(shè)計(jì)4.2總體結(jié)構(gòu)和外部模塊 5詳細(xì)設(shè)計(jì)5.1表的設(shè)計(jì) 本系統(tǒng)主要包括以下幾個(gè)表: 管理員的登錄信息,窗口管理人員的信息,學(xué)生的基本信息表,學(xué)生所持卡號(hào)的詳細(xì)信息,每張卡對(duì)應(yīng)的消費(fèi)信息,窗口的信息,窗口的消費(fèi)信息表,菜的信息。5.2關(guān)系模式設(shè)計(jì)在數(shù)據(jù)庫(kù)的設(shè)計(jì)的時(shí)候,考慮到現(xiàn)實(shí)中無(wú)法進(jìn)行透支消費(fèi)等,進(jìn)行了防止誤操作的控制,比如消費(fèi)金額如果超過(guò)一定數(shù)量將限制消費(fèi),無(wú)法消費(fèi)價(jià)格超過(guò)余額的物品。其中使用到了觸發(fā)器的操作。5.3存儲(chǔ)過(guò)程設(shè)計(jì)和部分sql語(yǔ)句代碼由于存儲(chǔ)過(guò)程不像解釋執(zhí)行的sql語(yǔ)句一樣在提出操作請(qǐng)求時(shí)才進(jìn)行語(yǔ)法分析和優(yōu)化操作,
13、因而運(yùn)行效率高,它提供了在服務(wù)器端快速執(zhí)行sql語(yǔ)句的有效途徑.存儲(chǔ)過(guò)程降低了客戶機(jī)和服務(wù)器之間的通行量,方便實(shí)施企業(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ù)庫(kù)的連接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();對(duì)數(shù)據(jù)庫(kù)的全部操作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時(shí)候返回失敗/查詢所有的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下面的所有消費(fèi)記錄并且最后以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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 船舶保養(yǎng)考試題及答案
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職法學(xué)考前沖刺試卷A卷含答案
- 小升初科學(xué)測(cè)試題及答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)能力檢測(cè)試卷B卷附答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)??寄M試題(全優(yōu))
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)基礎(chǔ)試題庫(kù)和答案要點(diǎn)
- 社保知識(shí)培訓(xùn)課件北京
- 語(yǔ)文小說(shuō)文本解讀技巧訓(xùn)練教案:以小說(shuō)圍城為例
- 辦公室人員基本信息表
- 寫作技巧大揭秘:高中語(yǔ)文作文指導(dǎo)課程教案
- 2025年共青科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)完整版
- 2025年上半年潛江市城市建設(shè)發(fā)展集團(tuán)招聘工作人員【52人】易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 統(tǒng)編版語(yǔ)文二年級(jí)下冊(cè)15古詩(shī)二首 《曉出凈慈寺送林子方》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 旅游電子商務(wù)(第2版) 課件全套 周春林 項(xiàng)目1-8 電子商務(wù)概述-旅游電子商務(wù)數(shù)據(jù)挖掘
- 2025年安徽警官職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案
- 廣東廣東省錢幣學(xué)會(huì)招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2025年福建省中職《英語(yǔ)》學(xué)業(yè)水平考試核心考點(diǎn)試題庫(kù)500題(重點(diǎn))
- 【課件】自然環(huán)境課件-2024-2025學(xué)年七年級(jí)地理下冊(cè)人教版
- 2025年河北省職業(yè)院校技能大賽智能節(jié)水系統(tǒng)設(shè)計(jì)與安裝(高職組)考試題庫(kù)(含答案)
- 2025-2030年中國(guó)蒸發(fā)器冷凝器行業(yè)發(fā)展?fàn)顩r及前景趨勢(shì)分析報(bào)告
- 2024年江西環(huán)境工程職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論