超市會(huì)員購(gòu)物系統(tǒng)_第1頁(yè)
超市會(huì)員購(gòu)物系統(tǒng)_第2頁(yè)
超市會(huì)員購(gòu)物系統(tǒng)_第3頁(yè)
超市會(huì)員購(gòu)物系統(tǒng)_第4頁(yè)
超市會(huì)員購(gòu)物系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 安陽(yáng)師范學(xué)院 數(shù)據(jù)庫(kù)實(shí)用技術(shù)課外實(shí)踐· 數(shù)據(jù)庫(kù)實(shí)用技術(shù)課外實(shí)踐報(bào)告項(xiàng) 目 名 稱: 超市會(huì)員購(gòu)物系統(tǒng) 所 在 班 級(jí): 級(jí)本信管班 小 組 成 員: 指 導(dǎo) 教 師: 起 止 時(shí) 間: 12月10日12月30日 項(xiàng)目基本信息項(xiàng)目名稱超市會(huì)員購(gòu)物系統(tǒng)項(xiàng)目簡(jiǎn)介該系統(tǒng)可實(shí)現(xiàn)管理員對(duì)商品的信息進(jìn)行增刪改查的功能,也可修改其密碼,管理員也可對(duì)會(huì)員進(jìn)行管理工作。對(duì)于會(huì)員,本系統(tǒng)可實(shí)現(xiàn)對(duì)商品的信息進(jìn)行查詢以及商品的購(gòu)買,也可修改自己的密碼。小組成員任務(wù)分工xx負(fù)責(zé)數(shù)據(jù)庫(kù)的創(chuàng)建及數(shù)據(jù)的錄入。xx負(fù)責(zé)系統(tǒng)設(shè)計(jì)和源代碼編寫(xiě)。xx負(fù)責(zé)系統(tǒng)調(diào)試、維護(hù)工作。xx負(fù)責(zé)word、PPT制作。一、 問(wèn)題描述及分析

2、1.1 背景從20世紀(jì)90年代后期特別是近幾年,我國(guó)的超市產(chǎn)業(yè)飛速發(fā)展,其經(jīng)營(yíng)模式更為復(fù)雜,舊的管理體制已經(jīng)無(wú)法適應(yīng)超市的發(fā)展,這就迫切的需要引進(jìn)新的管理技術(shù)。超市的數(shù)據(jù)和業(yè)務(wù)越來(lái)越龐大,而計(jì)算機(jī)就是一種高效的管理系統(tǒng),這就需要我們把超市的管理與計(jì)算機(jī)結(jié)合起來(lái),從而超市管理系統(tǒng)應(yīng)運(yùn)而生。依靠現(xiàn)代化的計(jì)算機(jī)信息處理技術(shù)來(lái)管理超市,節(jié)省了大量的人力、物力,改善了員工的并且能夠快速反映出商品的進(jìn)、銷、存等狀況和各種反饋信息分析,使管理人員快速對(duì)市場(chǎng)的變化做出相應(yīng)的決策,加快超市經(jīng)營(yíng)管理效率。網(wǎng)絡(luò)購(gòu)物也隨之越來(lái)越運(yùn)用廣泛,本系統(tǒng)也借鑒了網(wǎng)絡(luò)購(gòu)物的一些功能。1.2 數(shù)據(jù)需求 (1)會(huì)員的信息。(2)商品

3、的信息。(3)管理員的信息。(4)供貨商信息。1.3 事務(wù)需求 保證PREFERENTIAL表的商品號(hào)、商品名、價(jià)格于購(gòu)物表的一致性,另外保證member表與購(gòu)物表里會(huì)員號(hào)的一致性。保證會(huì)員信息和購(gòu)物表信息的持久性。1.4 安全性體現(xiàn)在用戶和管理員登錄系統(tǒng)時(shí),設(shè)置了權(quán)限,然后在數(shù)據(jù)庫(kù)中創(chuàng)建了備份。對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行了約束。二、解決方案 ( 或數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì) ) 2.1 E-R 模型設(shè)計(jì)訂單查看管理員 管理會(huì)員購(gòu)買商品 修改 修改密碼 管理會(huì)員號(hào)密碼姓名電話地址密碼賬號(hào)商品號(hào)商品名種類原價(jià)折扣折扣后價(jià)積分要求會(huì)員號(hào)商品號(hào)商品名價(jià)格地址電話接收人姓名時(shí)間 管理供貨商供貨商號(hào)名稱聯(lián)系人電話地址信譽(yù)

4、供應(yīng)mnmnmnnmmnnm2.2 數(shù)據(jù)字典 ADMINISTRATOR(管理員登錄表)字段名數(shù)據(jù)類型主鍵是否為空其它約束賬號(hào)Varchar(10)是否UNIQUE密碼Varchar(20)否否MEMBER(會(huì)員登錄表)字段名數(shù)據(jù)類型主鍵是否為空其它約束用戶名Varchar(10)是否UNIQUE密碼Varchar(20)否否姓名Varchar(6)否否電話Varchar(11)否否積分Bigint否否備注nvarchar(50)否是PREFERENTIAL(商品表)字段名數(shù)據(jù)類型主鍵是否為空其它約束商品號(hào)Varchar(20)是否Unique商品名Varchar(30)否否種類Varchar

5、(10)否否原價(jià)Money否是折扣Float否否折扣后價(jià)Money否是積分要求Bigint否否購(gòu)物表字段名數(shù)據(jù)類型主鍵是否為空其它約束會(huì)員號(hào)Varchar(10)否否商品號(hào)Varchar(20)否否商品名Varchar(30)否否價(jià)格Money否否地址Varchar(30)否是電話Varchar(11)否是接收人電話Varchar(10)否是時(shí)間Date否是供貨商表字段名數(shù)據(jù)類型主鍵是否為空其它約束供貨商號(hào)Varchar(10)是否Unique名稱Varchar(20)否否聯(lián)系人Varchar(10)否否電話Varchar(11否是地址Varchar(20)否是信譽(yù)Varchar(10)否是備

6、注Varchar(50)否是進(jìn)貨表字段名數(shù)據(jù)類型主鍵是否為空其它約束供貨商號(hào)varchar(10)是否UNIQUE商品號(hào)varchar(20)否否商品名varchar(30)否否進(jìn)貨數(shù)量Int否是2.3系統(tǒng)數(shù)據(jù)流分析自助查詢系統(tǒng)用戶用戶輸入信息輸出信息庫(kù)文件管理員三、系統(tǒng)實(shí)現(xiàn) 3.1 開(kāi)發(fā)環(huán)境 本系統(tǒng)開(kāi)發(fā)是運(yùn)用內(nèi)存為2G,32位操作系統(tǒng),處理器為Inter(R)Core(TM)i3-2310M CPUx2.10GHz.本系統(tǒng)采用T-SQL和Microsoft Visual C#2008語(yǔ)言,可應(yīng)用于windows XP、Windows 7.3.2 系統(tǒng)流程圖 開(kāi)始登陸界面管理員管理員登錄登錄成

7、功否是是管理商品查看訂單管理會(huì)員結(jié)束修改密碼會(huì)員登錄登錄成功查看商品購(gòu)買商品是管理供應(yīng)商  3.3 系統(tǒng)功能模塊及結(jié)構(gòu)描述   現(xiàn)對(duì)系統(tǒng)各功能模塊進(jìn)行詳細(xì)分解。1. 系統(tǒng)登錄模塊:該模塊用于管理員及用戶的登錄;2. 管理員管理模塊:管理員可以通過(guò)該模塊對(duì)商品進(jìn)行增刪改查、會(huì)員信息的管理以及對(duì)會(huì)員訂單的查詢;3. 會(huì)員查詢模塊:該模塊可以為會(huì)員提供商品折扣信息;4. 會(huì)員購(gòu)買商品模塊:用戶可以通過(guò)該模塊進(jìn)行商品選購(gòu);5. 修改密碼模塊:管理員及會(huì)員可以通過(guò)該模塊修改密碼;6. 管理供應(yīng)商模塊:管理員可以通過(guò)此系統(tǒng)管理供應(yīng)商。7. 進(jìn)貨模塊:管理員可以通過(guò)此模塊按條件查詢商品的

8、剩余量,進(jìn)行合理的進(jìn)貨。超市會(huì)員購(gòu)物系統(tǒng)管理員管理增加優(yōu)惠商品刪除優(yōu)惠商品查看訂單會(huì)員管理修改優(yōu)惠商品系統(tǒng)管理登錄系統(tǒng)取消登錄會(huì)員管理查看商品購(gòu)買物品修改密碼修改密碼管理供應(yīng)商進(jìn)貨 功能模塊圖3.4 系統(tǒng)調(diào)試 系統(tǒng)的測(cè)試的主要任務(wù)是發(fā)現(xiàn)并排除在分析、設(shè)計(jì)、編程各階段中產(chǎn)生的各種類型的錯(cuò)誤,以得到可使用的軟件系統(tǒng)。3.4.1 登錄模塊測(cè)試使用本系統(tǒng)時(shí),先從登錄界面登錄,根據(jù)登陸身份的不同,可以登錄到達(dá)不同的界面,在商家界面的界面里有系統(tǒng)的功能模塊及模塊下的子模塊,直接輸入即可進(jìn)入處理界面。3.4.2 管理員管理模塊測(cè)試信息處理模塊就是以添加、修改和刪除信息的功能為主,在信息界面中的文本框中輸入正

9、確的信息,點(diǎn)擊修改就可以把數(shù)據(jù)庫(kù)中的信息更新,達(dá)到修改目的。點(diǎn)擊刪除按鈕就可以把該條信息刪除。點(diǎn)擊添加就可以把新信息添加到數(shù)據(jù)庫(kù)中。處理模塊能讓商家更快的修改優(yōu)惠項(xiàng)的信息,大大減少了工作時(shí)間。該模塊還能進(jìn)行會(huì)員管理,在信息界面對(duì)輸入正確的信息就能對(duì)會(huì)員基本信息進(jìn)行查看。在文本框中修改會(huì)員信息,點(diǎn)擊修改就能達(dá)到修改的目的。此外,點(diǎn)擊查詢訂單選項(xiàng)能夠進(jìn)入到會(huì)員訂單查詢界面,點(diǎn)擊查看按鈕,用戶訂單的所有信息就能夠清楚地看到,可以讓管理員及時(shí)地看到用戶訂單。3.4.3 會(huì)員查詢模塊測(cè)試在會(huì)員查詢?cè)O(shè)計(jì)界面里,直接點(diǎn)擊查詢?nèi)啃畔⑦x項(xiàng)即可看到所有折扣商品的信息,還可以分成不同方式的查詢,按類別查詢是對(duì)不同

10、類型的商品進(jìn)行查詢;點(diǎn)擊按折扣查詢時(shí),可以看到相同折扣的商品有哪些;點(diǎn)擊按積分要求查詢,可以清楚的看到各種折扣商品的折扣對(duì)象。為了方便用戶的購(gòu)買,在用戶查詢優(yōu)惠項(xiàng)后可以直接進(jìn)行商品的購(gòu)買,方便買家的商品購(gòu)買。3.4.4 進(jìn)貨模塊測(cè)試 在進(jìn)貨界面中,點(diǎn)擊按庫(kù)存查看商品余量,管理員可以查看各個(gè)有可能需要進(jìn)貨的商品,然后根據(jù)需要進(jìn)行購(gòu)買活動(dòng)。四、使用說(shuō)明本系統(tǒng)只適合管理員和會(huì)員兩個(gè)身份的人使用,管理員輸入賬號(hào)、密碼點(diǎn)擊登錄可進(jìn)入管理員管理界面,增加商品時(shí),管理員需要填入下面框內(nèi)的信息然后點(diǎn)擊增加商品按鈕即可添加商品。刪除商品時(shí),管理員只需輸入要?jiǎng)h除商品的商品號(hào)即可。修改商品時(shí),輸入要修改商品的商品號(hào)

11、,然后在修改它的其它項(xiàng)即可。點(diǎn)擊刷新列表就可查詢所有的商品。點(diǎn)擊修改密碼,即可進(jìn)入管理員修改密碼的界面,在修改密碼時(shí)只需要輸入帳號(hào),然后輸入兩次修改后的密碼,點(diǎn)擊確認(rèn)重置就可。在管理員管理界面點(diǎn)擊管理會(huì)員按鈕,即可進(jìn)入管理會(huì)員界面。在管理會(huì)員界面有查看、添加、修改、退出按鈕,產(chǎn)看按鈕用于查看會(huì)員的信息,添加按鈕用于添加新的會(huì)員,修改按鈕用于修改會(huì)員的基本信息,這兩個(gè)按鈕的用法和增加商品、修改商品按鈕的用法相似。在管理員管理界面,點(diǎn)擊查看訂單按鈕,即可進(jìn)入查看訂單界面,其中的查看所有的按鈕用于查看所有人的訂單。若不想查看所有的訂單,可按照時(shí)間、地址條件進(jìn)行查詢,當(dāng)在地址框內(nèi)輸入地址,然后再點(diǎn)擊查

12、看,即可看到在此地址的所有訂單,在時(shí)間框內(nèi)輸入時(shí)間,再點(diǎn)擊查看,即可查看在此時(shí)間訂貨的信息。會(huì)員輸入會(huì)員號(hào)、密碼點(diǎn)擊登錄可進(jìn)入會(huì)員查詢界面,在會(huì)員查詢?cè)O(shè)計(jì)界面里,直接點(diǎn)擊查詢?nèi)啃畔⑦x項(xiàng)即可看到所有折扣商品的信息,還可以分成不同方式的查詢,按類別查詢是對(duì)不同類型的商品進(jìn)行查詢;點(diǎn)擊按折扣查詢時(shí),可以看到相同折扣的商品有哪些;點(diǎn)擊按積分要求查詢,可以清楚的看到各種折扣商品的折扣對(duì)象。為了方便用戶的購(gòu)買,在用戶查詢優(yōu)惠項(xiàng)后可以直接進(jìn)行商品的購(gòu)買,方便買家的商品購(gòu)買。當(dāng)在會(huì)員查詢界面點(diǎn)擊按鈕購(gòu)買商品時(shí),即可進(jìn)入購(gòu)買物品界面,再次界面會(huì)員可以根據(jù)自己的需求,填入您所想要的商品的商品號(hào),然后輸入接收人地

13、址,接收人電話、接收人姓名、日期然后點(diǎn)擊添加,您所選得商品就可加入到您的購(gòu)物表中,不需要輸入商品名和價(jià)格,系統(tǒng)會(huì)根據(jù)您的商品號(hào),自動(dòng)的給您匹配好,如果您要選多種商品時(shí),接收人地址,接收人電話、接收人姓名、日期只需要在選第一個(gè)商品時(shí)輸入即可。選完您所要的物品,點(diǎn)擊下面的查看按鈕,就可查看您的訂單,另外注明,在您選物品時(shí),最好點(diǎn)擊一下清除按鈕,此按鈕的功能是清除您原來(lái)選的商品,也可用于取消訂單。點(diǎn)擊總計(jì)按鈕,可查看您所選物品的總價(jià)格。在會(huì)員查看界面點(diǎn)擊修改密碼,即可進(jìn)入會(huì)員修改密碼的界面,在修改密碼時(shí)只需要輸入會(huì)員號(hào),然后輸入兩次修改后的密碼,點(diǎn)擊確認(rèn)重置就可。點(diǎn)擊返回登錄界面即可進(jìn)入最先的登錄界

14、面。在管理進(jìn)貨商界面,點(diǎn)擊查看供貨商信息就可查詢所有的供貨商信息,在增加供貨商時(shí),需要先輸入下面框內(nèi)的信息,然后點(diǎn)擊增加供貨商即可。刪除供貨商時(shí),只需要輸入供貨商號(hào)即可。修改時(shí),除了供貨商號(hào)不能修改,其余的都可先在框內(nèi)填入信息,然后點(diǎn)擊修改供應(yīng)商即可修改。在此界面點(diǎn)擊返回上一界面即可進(jìn)入到管理員管理界面1.點(diǎn)擊退出即可退出系統(tǒng)。在進(jìn)貨界面中,點(diǎn)擊按庫(kù)存查看商品余量,管理員可以查看各個(gè)有可能需要進(jìn)貨的商品,然后根據(jù)需要進(jìn)行購(gòu)買活動(dòng)。五、問(wèn)題及解決方法問(wèn)題一:在登陸時(shí)密碼總是顯示出來(lái)?解決方法:修改了txtPwd的PasswordChar屬性。如圖:。結(jié)果:當(dāng)管理員或者會(huì)員輸入密碼時(shí),密碼不會(huì)顯示

15、出來(lái)而是以*的形式顯示,保證了密碼的安全性。登陸時(shí)如下圖:?jiǎn)栴}二:當(dāng)在寫(xiě)代碼是,數(shù)據(jù)庫(kù)與c#連接語(yǔ)句要重復(fù)寫(xiě)好多次?解決方法:新增了一個(gè)DBHelper類,類中寫(xiě)了打開(kāi)數(shù)據(jù)庫(kù),連接數(shù)據(jù)庫(kù),關(guān)閉數(shù)據(jù)庫(kù)的所有語(yǔ)句。代碼如下:namespace 超市會(huì)員購(gòu)物系統(tǒng)1 class DBHelper private string connStr = null; private SqlConnection connection; public DBHelper(string connStr) this.connStr = connStr; connection = new SqlConnection(con

16、nStr); public void DBopen() try if (connection.State = ConnectionState.Broken)/如果連接對(duì)象的狀態(tài)時(shí)Broken,那么必須先關(guān)閉連接,才能去打開(kāi),直接打開(kāi)會(huì)出現(xiàn)異常 connection.Close(); connection.Open(); catch (Exception ex) throw ex; public void DBClose() this.connection.Close(); public string SplExecuteScalar(string sql) try this.DBopen();

17、 SqlCommand cmd = new SqlCommand(sql, this.connection); return cmd.ExecuteScalar().ToString(); catch (Exception ex) throw ex; finally this.DBClose(); public int SqlExecuteNonQuery(string sql) try this.DBopen(); SqlCommand cmd = new SqlCommand(sql, this.connection); return cmd.ExecuteNonQuery(); catc

18、h (Exception ex) throw ex; finally this.DBClose(); public DataSet GetDataSet(string sql) try this.DBopen(); DataSet ds = new DataSet();/創(chuàng)建dataset對(duì)象 SqlDataAdapter sda = new SqlDataAdapter(sql, this.connection);/創(chuàng)建Ssql適配器 sda.Fill(ds); return ds; catch (Exception ex) throw ex; finally this.DBClose();

19、 結(jié)果:在每次要連接數(shù)據(jù)庫(kù)時(shí)只需要寫(xiě)一句代碼就可以,節(jié)約了大量的時(shí)間,也是代碼看著簡(jiǎn)潔、易懂。 代碼是:DBHelper db = new DBHelper("server=.;initialcatalog=MARKET;integrated security=true");問(wèn)題三:在管理會(huì)員界面,當(dāng)管理員增加新的會(huì)員的時(shí)候,會(huì)有密碼的設(shè)置,如果密碼是管理員隨便輸入的,這樣會(huì)不好管理會(huì)員的信息?解決方法:當(dāng)添加新的會(huì)員時(shí),我們默認(rèn)了會(huì)員的密碼是123,積分是0,因此在添加時(shí)就不用輸入會(huì)員的密碼和積分。默認(rèn)會(huì)員密碼和積分的代碼是:textBox2.Text = "1

20、23" textBox4.Text = "0"注:textBox2是密碼框,textBox4是積分框。結(jié)果:避免了管理員一次次的輸入密碼和積分,節(jié)省了時(shí)間,使工作效率得到了提高。輸入時(shí)如下圖:然后點(diǎn)擊添加按鈕即可。問(wèn)題四:在修改密碼時(shí),如果在讓用戶重新輸入一遍帳號(hào)和原密碼,好像是不需要的,因?yàn)橹挥凶约旱顷懞蟛拍苄薷淖约旱拿艽a,因此原密碼是不需要確認(rèn)的。解決方法:在修改密碼界面只設(shè)計(jì)了三個(gè)輸入框,用戶名、新密碼、確認(rèn)密碼,而且用戶名是通過(guò)窗體傳值來(lái)設(shè)計(jì)的,而且設(shè)計(jì)時(shí)用戶名框內(nèi)傳來(lái)的值是不能修改的,這樣就避免了會(huì)有人修改別人的密碼。窗體傳值的代碼如下:上一界面的代碼:

21、string txtValue1 = this.label8.Text; 修改密碼 a = new 修改密碼(txtValue1); a.Show(); this.label8.Text = a.returnValue;在修改密碼界面的代碼:public string returnValue; public 修改密碼(string txtValue1) InitializeComponent(); this.textBox1.Text = txtValue1; 結(jié)果:用戶只需要填寫(xiě)新密碼和確認(rèn)密碼兩個(gè)框內(nèi)的值就可。問(wèn)題五:如何體現(xiàn)sql語(yǔ)言的靈活性、完整性和安全性?解決方法:創(chuàng)建了兩個(gè)簡(jiǎn)單的存

22、儲(chǔ)過(guò)程。代碼如下:create procedure cxgwbasselect * from 購(gòu)物表create procedure cxspasselect * from PREFERENTIAL并且在管理員查看商品時(shí)調(diào)用了存儲(chǔ)過(guò)程:string sql = "execute cxsp"問(wèn)題六:如何讓會(huì)員查詢方便?解決方法:在會(huì)員查詢界面設(shè)計(jì)了可以按照不同的方面進(jìn)行查詢,有可以查看所有的商品,有按照類別進(jìn)行查看,有按照積分進(jìn)行查看,有按照折扣進(jìn)行查看。結(jié)果:大大節(jié)省了會(huì)員的時(shí)間,使他們可以按照自己的需求按照不同的方面進(jìn)行查看自己需要的商品。問(wèn)題七:如何使會(huì)員在購(gòu)買商品時(shí)方

23、便?解決方法:我們?cè)O(shè)計(jì)的是只要用戶輸入商品號(hào),然后商品名和價(jià)格就不用自己輸入了,在這里我們是創(chuàng)建了個(gè)視圖而且在輸入接收人姓名、接收人電話、接收人地址、日期給了會(huì)員只需要在第一次購(gòu)買的時(shí)候輸入即可。創(chuàng)建視圖的代碼是:create view dc_spasselect 商品號(hào),商品名,折扣后價(jià) from PREFERENTIAL在c#用時(shí)的代碼是:sql = "select 商品名,折扣后價(jià) from dc_sp where 商品號(hào)='" + textBox1.Text.Trim() + "'" DataTable dt = db.GetDa

24、taSet(sql).Tables0; textBox2.Text = dt.Rows00.ToString(); textBox3.Text = dt.Rows01.ToString();(注:textBox2是商品名書(shū)寫(xiě)框,textBox3是價(jià)格的書(shū)寫(xiě)框)問(wèn)題八:計(jì)算總計(jì)時(shí)怎么使會(huì)員只計(jì)算這次的點(diǎn)餐?解決方法:在購(gòu)物界面增加了一個(gè)清除界面,用于用戶清除自己原來(lái)的頂?shù)奈锲罚⑶医o與提醒。清除的代碼:string sql = "delete from 購(gòu)物表 where 會(huì)員號(hào)='" + textBox4.Text + "'"問(wèn)題九:如何

25、使購(gòu)物表的商品號(hào)改變時(shí)preferential的商品號(hào)也改變?解決方法:定義了一個(gè)觸發(fā)器,觸發(fā)器代碼是:create trigger preferential_updateon preferential after updateasbegindeclare xold_sph varchar(10),xnew_sph varchar(10)select xold_sph=商品號(hào) from deletedselect xnew_sph=商品號(hào) from insertedupdate 購(gòu)物表 set 商品號(hào)=xnew_sph where 商品號(hào)=xold_sphend問(wèn)題十:當(dāng)會(huì)員購(gòu)買完商品后,如何

26、是preferential表的庫(kù)存量也減少?解決方法:在sql中定義了個(gè)當(dāng)購(gòu)物表的份數(shù)增加后,preferential表的庫(kù)存量相應(yīng)的減少。代碼是:use MARKETgocreate trigger gwb_preon 購(gòu)物表 after insertasbegindeclare xsph varchar(20),xspm varchar(30)declare xfs intselect xsph=商品號(hào),xspm=商品名 from insertedselect xfs=份數(shù) from 購(gòu)物表 where 商品號(hào)=xsphupdate PREFERENTIAL set 庫(kù)存=(庫(kù)存-xfs)

27、 where 商品號(hào)=xsphprint'修改成功'end問(wèn)題十一:根據(jù)老師的建議,我們又增加了進(jìn)貨界面,管理供貨商界面;在數(shù)據(jù)庫(kù)中建了供貨商表和進(jìn)貨表。進(jìn)貨界面圖:在此界面為了使管理員更好的進(jìn)行進(jìn)貨活動(dòng),我們?cè)黾恿税凑諑?kù)存查看商品余量的按鈕,管理員可以按照余量進(jìn)行進(jìn)貨。而且當(dāng)輸入進(jìn)貨數(shù)量是有在sql中添加了個(gè)觸發(fā)器,使preferential表中相應(yīng)的庫(kù)存也增加:代碼如下:use MARKETgocreate trigger jhb_preon 進(jìn)貨表 after insertasbegindeclare xsph varchar(20),xspm varchar(30)de

28、clare xjhsl intselect xsph=商品號(hào),xspm=商品名 from insertedselect xjhsl=進(jìn)貨數(shù)量 from 進(jìn)貨表 where 商品號(hào)=xsphupdate PREFERENTIAL set 庫(kù)存=(庫(kù)存+xjhsl) where 商品號(hào)=xsphprint'修改成功'end管理供貨商界面圖:進(jìn)貨表設(shè)計(jì):供貨商表設(shè)計(jì):。六、課外實(shí)踐總結(jié)回顧該系統(tǒng)從選題,到設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試等,論文的撰寫(xiě),這系列連貫的過(guò)程,感想頗多,收獲也很多。大致的總結(jié)幾點(diǎn),如下:1設(shè)計(jì)開(kāi)發(fā)一個(gè)軟件,首先要了解所涉及到行業(yè)的現(xiàn)狀,一定要想辦法進(jìn)行行業(yè)調(diào)研,從不同途

29、徑獲取該行業(yè)的專業(yè)知識(shí)。合理安排系統(tǒng)設(shè)計(jì)開(kāi)發(fā)時(shí)間,進(jìn)行實(shí)際開(kāi)發(fā)會(huì)發(fā)現(xiàn)需求分析與系統(tǒng)設(shè)計(jì)占主要的時(shí)間,如果前面的工作做好了,編碼實(shí)現(xiàn)占用的時(shí)間很短。所以我們要借助軟件工程的思想-對(duì)軟件開(kāi)發(fā)過(guò)程進(jìn)行控制。2. 在開(kāi)發(fā)一個(gè)系統(tǒng)時(shí),前期的分析準(zhǔn)備工作非常的重要。對(duì)于系統(tǒng)的需求要明確,這樣才能做到有的放矢。特別是對(duì)于系統(tǒng)中數(shù)據(jù)的存儲(chǔ)和重要算法的設(shè)計(jì),設(shè)計(jì)的不好會(huì)出現(xiàn)大量的冗余,不僅浪費(fèi)存儲(chǔ)空間,還影響查詢效率。3.在設(shè)計(jì)的初期,對(duì)一個(gè)功能模塊的設(shè)計(jì),要想出兩種或兩種以上方案,這樣可以進(jìn)行比較,從而獲得更佳的設(shè)計(jì)方案,設(shè)計(jì)開(kāi)發(fā)過(guò)程中一定要吸取經(jīng)驗(yàn)教訓(xùn),避免返工。尤其是一些重要算法或功能。在對(duì)具體實(shí)現(xiàn)功能模

30、塊進(jìn)行編程時(shí),要養(yǎng)成良好的加注釋的習(xí)慣,這樣的話不僅能理清思路,而且可以為以后的調(diào)試程序帶來(lái)很大的方便。4. 懂得充分利用網(wǎng)絡(luò)資源。5.后期的晚上也是很重要的,在每個(gè)系統(tǒng)都存在著些許缺點(diǎn),但重要的是我們能發(fā)現(xiàn)并對(duì)它們進(jìn)行改進(jìn),這樣才能一步步地編寫(xiě)一個(gè)較完整的系統(tǒng) 七、源代碼7.1 sql server 2008 的源代碼:-多表查詢以及模糊查詢select 購(gòu)物表.會(huì)員號(hào),購(gòu)物表.商品號(hào),購(gòu)物表.商品名,PREFERENTIAL.種類from PREFERENTIAL,MEMBER,購(gòu)物表where 購(gòu)物表.會(huì)員號(hào)=MEMBER.會(huì)員號(hào)and 購(gòu)物表.商品號(hào) like '00一八%&#

31、39;go-插入會(huì)員信息insert into MEMBER values('120123','123','張安','1235434','0',null)go-修改會(huì)員信息update MEMBER set 積分='100'where 會(huì)員號(hào)='120123'go-刪除會(huì)員信息delete from member where 會(huì)員號(hào)='120123'go-從表PREFERENTIAL查詢商品號(hào),商品名,折扣后價(jià)(視圖)create view dc_spasselect

32、 商品號(hào),商品名,折扣后價(jià) from PREFERENTIAL-存儲(chǔ)過(guò)程create procedure cxgwbasselect * from 購(gòu)物表-存儲(chǔ)過(guò)程create procedure cxspasselect * from PREFERENTIAL- 備份use master goexec sp_addumpdevice'disk','sql','f:sql.bak'backup database market to sql with noinit-修改preferential表的商品名購(gòu)物表的商品名也會(huì)改變觸發(fā)器create tr

33、igger preferential_updateon preferential after updateasbegindeclare xold_spm varchar(10),xnew_spm varchar(10)select xold_spm=商品名 from deletedselect xnew_spm=商品名 from insertedupdate 購(gòu)物表 set 商品名=xnew_spm where 商品名=xold_spmend-創(chuàng)建觸發(fā)器,當(dāng)向購(gòu)物表中插入一個(gè)商品時(shí),將PREFERENTIAL中該商品的分?jǐn)?shù)表相應(yīng)的減少use MARKETgocreate trigger gwb

34、_preon 購(gòu)物表 after insertasbegindeclare xsph varchar(20),xspm varchar(30)declare xfs intselect xsph=商品號(hào),xspm=商品名 from insertedselect xfs=份數(shù) from 購(gòu)物表 where 商品號(hào)=xsphupdate PREFERENTIAL set 庫(kù)存=(庫(kù)存-xfs) where 商品號(hào)=xsphprint'修改成功'end-創(chuàng)建觸發(fā)器,當(dāng)向進(jìn)貨表中插入一個(gè)商品時(shí),將PREFERENTIAL中該商品的分?jǐn)?shù)表相應(yīng)的增加use MARKETgocreate t

35、rigger jhb_preon 進(jìn)貨表 after insertasbegindeclare xsph varchar(20),xspm varchar(30)declare xjhsl intselect xsph=商品號(hào),xspm=商品名 from insertedselect xjhsl=進(jìn)貨數(shù)量 from 進(jìn)貨表 where 商品號(hào)=xsphupdate PREFERENTIAL set 庫(kù)存=(庫(kù)存+xjhsl) where 商品號(hào)=xsphprint'修改成功'end 7.2 Microsoft Visual Studio 2008 C#源代碼:登錄界面圖:登錄界

36、面源代碼:public partial class enter : Form DBHelper db = new DBHelper("server=.;initial catalog=MARKET;integrated security=true"); public enter() InitializeComponent(); private void btnLogin_Click(object sender, EventArgs e) if (radAdministrator.Checked = true) if (txtID.Text = "" |

37、txtPwd.Text = "") MessageBox.Show("賬號(hào)、密碼不能為空"); else string userName = txtID.Text.Trim(); string passWord = txtPwd.Text.Trim(); try string sql = "Select * From ADMINISTRATOR Where 賬號(hào)='" + userName + "' and 密碼='" + passWord + "'" int c

38、ount = int.Parse(db.SplExecuteScalar(sql); if (count > 0) string txtValue = this.txtID.Text; 管理員界面 f7 = new 管理員界面(txtValue); f7.Show(); this.txtID.Text = f7.returnValue; else MessageBox.Show("用戶名或密碼有誤,請(qǐng)重試"); catch (Exception ex) MessageBox.Show("出現(xiàn)錯(cuò)誤:" + ex.Message); if (radMe

39、mber.Checked = true) if (txtID.Text = "" | txtPwd.Text = "") MessageBox.Show("會(huì)員號(hào)、密碼不能為空"); else string userName = txtID.Text.Trim(); string passWord = txtPwd.Text.Trim(); try string sql = "Select * From MEMBER Where 會(huì)員號(hào)='" + userName + "' and 密碼=

40、'" + passWord + "'" int count = int.Parse(db.SplExecuteScalar(sql); if (count > 0) string txtValue2 = this.txtID.Text; string txtValue1 = this.txtID.Text; 購(gòu)買物品界面 b = new 購(gòu)買物品界面(txtValue1); 會(huì)員查詢界面 a = new 會(huì)員查詢界面(txtValue2); a.Show(); this.txtID.Text = a.returnValue2; this.tx

41、tID.Text = b.returnValue4; else MessageBox.Show("用戶名或密碼有誤,請(qǐng)重試"); catch (Exception ex) MessageBox.Show("出現(xiàn)錯(cuò)誤:" + ex.Message); if (radAdministrator.Checked = false && radMember.Checked = false) MessageBox.Show("請(qǐng)選擇身份驗(yàn)證"); private void btnExit_Click(object sender,

42、EventArgs e) this.Close(); 管理員管理界面圖:管理員管理界面代碼:public partial class 管理員管理界面1 : Form DBHelper db = new DBHelper("server=.;initial catalog=MARKET;integrated security=true"); public 管理員管理界面1() InitializeComponent(); public string returnValue; public 管理員管理界面1(string txtValue) InitializeComponen

43、t(); this.label8.Text = txtValue; private void 增加商品ToolStripMenuItem_Click(object sender, EventArgs e) string sph = textBox1.Text.Trim(); string spm = textBox3.Text.Trim(); string zl = comboBox1.Text; string yj = textBox2.Text.Trim(); string zk = textBox4.Text.Trim(); /string zkhj = textBox2.Text.Tr

44、im(); string jfyq = comboBox2.Text; string zkhj = (float.Parse(yj) * float.Parse(zk) / 10).ToString(); try if (sph = "" | spm = "" | zl = "" | yj = "" | zk = "" | zkhj = "" | jfyq = "") MessageBox.Show("請(qǐng)輸入完整的信息"); else string sql = "INSERT INTO PREFERENTIAL(商品號(hào),商品名,種類,原價(jià),折扣,折扣后價(jià),積分要求) VALUES('" + sph + "','" + spm + "','" + zl + "','" + yj + "','" + zk + "','&quo

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論