數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)刊訂閱管理系統(tǒng)_第1頁
數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)刊訂閱管理系統(tǒng)_第2頁
數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)刊訂閱管理系統(tǒng)_第3頁
數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)刊訂閱管理系統(tǒng)_第4頁
數(shù)據(jù)庫原理課程設(shè)計(jì)報(bào)刊訂閱管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄1、開發(fā)背景22、需求分析23. 數(shù)據(jù)分析33.1 數(shù)據(jù)流圖33.2 數(shù)據(jù)字典3(1) 數(shù)據(jù)流的描述3(2)處理邏輯的描述5(3)處理邏輯的描述6(4)外部實(shí)體的描述74.概念模型設(shè)計(jì)74.1 部門e-r圖74.2 管理員e-r圖84.3 用戶e-r圖84.4 報(bào)刊信息e-r圖84.5訂單e-r圖94.6 報(bào)刊類別e-r圖94.7所有實(shí)體之間的的關(guān)系e-r圖95. 邏輯模型設(shè)計(jì)及優(yōu)化106.應(yīng)用程序設(shè)計(jì)(前臺(tái))136.1 登陸136.2 新用戶注冊(cè)136.3 報(bào)刊訂閱146.4 報(bào)刊訂閱訂單填寫146.5 訂單歷史記錄146.6 個(gè)人訂閱統(tǒng)計(jì)156.7 修改個(gè)人信息156.8 修改密碼1

2、67. 課程設(shè)計(jì)心得體會(huì)168. 參考文獻(xiàn)179.附錄181、開發(fā)背景隨著社會(huì)不斷的發(fā)展,人們的生活水平越來越高,對(duì)知識(shí)的和對(duì)時(shí)事的渴求也越來越高,人們希望能夠方便快捷地訂閱各種報(bào)刊雜志。但是各種各樣的報(bào)刊名目和詳細(xì)信息以及訂閱,為相關(guān)企業(yè)的管理造成很大的麻煩。因此網(wǎng)上訂閱成為不可或缺的一部分。本系統(tǒng)就是面向一個(gè)企業(yè)的報(bào)刊訂閱管理系統(tǒng)。此系統(tǒng)是一種比較智能化的管理系統(tǒng),它面向所有企業(yè)部門的職工用戶,但具有比較高的安全性能。它能夠?qū)崿F(xiàn)報(bào)刊訂閱的基本功能,包括新報(bào)刊信息的錄入、訂閱、查詢等操作以及后臺(tái)數(shù)據(jù)庫的備份和恢復(fù)。用戶合法注冊(cè)后必須輸入有效密碼才能成功進(jìn)入此系統(tǒng),可以進(jìn)行訂閱報(bào)刊,查詢信息,

3、統(tǒng)計(jì)信息等操作。對(duì)于非法操作,系統(tǒng)有識(shí)別和防護(hù)措施。 2、需求分析本系統(tǒng)主要有以下功能模塊:(1)登陸功能:登陸系統(tǒng)為身份驗(yàn)證登錄。分為管理員登錄和一般用戶登錄。分別通過不同的用戶名和密碼進(jìn)入報(bào)刊訂閱管理界面,新的用戶需要注冊(cè)。(2)錄入新信息功能:對(duì)于管理員,包括新用戶信息和新報(bào)刊信息的錄入功能,信息一旦提交就存入到后臺(tái)數(shù)據(jù)庫中;普通用戶自行注冊(cè)進(jìn)行可以修改個(gè)人信息。(3)訂閱功能:用戶可以訂閱報(bào)刊,系統(tǒng)自動(dòng)計(jì)算所需金額,并顯示在界面上;管理員不可訂閱報(bào)刊,必須以用戶身份訂閱報(bào)刊。(4)查詢功能:用戶可以查詢并顯示自己所訂閱的信息;管理員可以按人員、報(bào)刊、部門分類查詢。查詢出的信息顯示在界面

4、上,并且可以預(yù)覽和打印出結(jié)果。(5)統(tǒng)計(jì)功能:管理員可以按用戶、部門、報(bào)刊統(tǒng)計(jì)報(bào)刊的銷售情況,并對(duì)一些重要的訂閱信息進(jìn)行統(tǒng)計(jì);普通用戶可以統(tǒng)計(jì)出自己的訂閱情況,并且可以預(yù)覽和打印出結(jié)果。(6)系統(tǒng)維護(hù)功能:數(shù)據(jù)的安全管理,主要是依靠管理員對(duì)數(shù)據(jù)庫里的信息進(jìn)行備份和恢復(fù),數(shù)據(jù)庫備份后,如果出了什么意外可以恢復(fù)數(shù)據(jù)庫到當(dāng)時(shí)備份的狀態(tài),這提高了系統(tǒng)和數(shù)據(jù)的安全性,有利于系統(tǒng)的維護(hù)3. 數(shù)據(jù)分析(只描述了用戶部分)3.1 數(shù)據(jù)流圖如圖3-1d002用戶名或密碼錯(cuò)誤s001用戶p001用戶信息判斷d001用戶登錄 f001 用戶信息d003報(bào)刊信息目錄d00 4訂購歷史記錄p004查看訂購歷史記錄p00

5、2報(bào)刊目錄查詢 f002 報(bào)刊信息 d003報(bào)刊信息目錄 f003 p003報(bào)刊訂購 訂購信息(.)圖3-13.2 數(shù)據(jù)字典(1) 數(shù)據(jù)流的描述數(shù)據(jù)流編號(hào): d001數(shù)據(jù)流名稱: 用戶登錄 簡(jiǎn)述:用戶要登錄系統(tǒng)才能進(jìn)行報(bào)刊訂閱操作數(shù)據(jù)流來源:用戶數(shù)據(jù)流去向:用戶信息判斷數(shù)據(jù)流組成:報(bào)刊代號(hào)、報(bào)刊名稱、報(bào)刊年價(jià)、出版社等數(shù)據(jù)流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號(hào): d002數(shù)據(jù)流名稱:用戶名或密碼錯(cuò)誤 簡(jiǎn)述:用戶名或密碼錯(cuò)誤,需要重新登錄數(shù)據(jù)流來源:用戶信息判斷數(shù)據(jù)流去向:用戶數(shù)據(jù)流組成:用戶名、密碼等數(shù)據(jù)流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號(hào): d003數(shù)據(jù)流名稱:報(bào)刊

6、信息目錄 簡(jiǎn)述:所有報(bào)刊信息數(shù)據(jù)流來源:用戶信息判斷數(shù)據(jù)流去向:報(bào)刊訂購數(shù)據(jù)流組成:訂單號(hào)、報(bào)刊代號(hào)、用戶名、金額等數(shù)據(jù)流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號(hào): d004數(shù)據(jù)流名稱:訂購歷史記錄 簡(jiǎn)述:用戶訂購了報(bào)刊后即可查詢自己的訂購記錄數(shù)據(jù)流來源:報(bào)刊目錄查詢數(shù)據(jù)流去向:報(bào)刊訂購數(shù)據(jù)流組成:訂單號(hào)、報(bào)刊代號(hào)、用戶名、金額等數(shù)據(jù)流量:1000/天高峰流量:3000/天(2)處理邏輯的描述處理邏輯編號(hào):p001處理邏輯名稱:用戶信息判斷 簡(jiǎn)述:判斷用戶信息的合法性輸入的數(shù)據(jù)流:報(bào)刊目錄查詢處理描述: 根據(jù)用戶輸入的登錄信息,驗(yàn)證用戶信息,驗(yàn)證通過后繼續(xù)下移處理查看報(bào)刊目錄信息,驗(yàn)證

7、不通過則返回給用戶指明為非注冊(cè)用戶。輸出的數(shù)據(jù)流: d001報(bào)刊目錄信息、d002無效提示信息處理頻率: 10次/天處理邏輯編號(hào):p002處理邏輯名稱:報(bào)刊目錄查詢 簡(jiǎn)述:列出各種報(bào)刊信息供用戶選擇訂購輸入的數(shù)據(jù)流:報(bào)刊訂購處理描述:用戶可以選擇報(bào)刊類別進(jìn)行查詢,也可以不分條件查詢?nèi)啃畔?,由用戶自己選擇所需進(jìn)行訂購。輸出的數(shù)據(jù)流: d003 報(bào)刊訂購處理頻率: 10次/天處理邏輯編號(hào):p003處理邏輯名稱:報(bào)刊訂購 簡(jiǎn)述:填寫訂購詳細(xì)信息輸入的數(shù)據(jù)流:報(bào)刊目錄查詢處理描述:用戶選擇好某一報(bào)刊,點(diǎn)擊訂購,彈出一個(gè)填寫訂購單頁面,用戶填寫訂購詳細(xì)信息。輸出的數(shù)據(jù)流: 數(shù)據(jù)流向管理員處理頻率: 1

8、0次/天處理邏輯編號(hào):p004處理邏輯名稱:查看訂購歷史記錄 簡(jiǎn)述:查看自己的報(bào)刊訂購歷史記錄輸入的數(shù)據(jù)流:報(bào)刊訂購處理描述:用戶訂購了報(bào)刊之后,即可查看訂購歷史記錄(訂購流程完)。輸出的數(shù)據(jù)流: 用戶處理頻率: 10次/天(3)處理邏輯的描述數(shù)據(jù)存儲(chǔ)編號(hào):f001數(shù)據(jù)存儲(chǔ)名稱:用戶信息 簡(jiǎn)述:用戶的基本信息數(shù)據(jù)存儲(chǔ)組成:用戶編號(hào)、用戶賬號(hào)、密碼、真實(shí)姓名、性別、年齡、電話、地址、部門編號(hào)。關(guān)鍵字:用戶編號(hào)相關(guān)聯(lián)的處理:p001數(shù)據(jù)存儲(chǔ)編號(hào):f002數(shù)據(jù)存儲(chǔ)名稱:報(bào)刊信息 簡(jiǎn)述:報(bào)刊的基本信息數(shù)據(jù)存儲(chǔ)組成:報(bào)刊代號(hào)、報(bào)刊名稱、報(bào)刊年價(jià)格、出版社、出版周期、報(bào)刊類別。關(guān)鍵字:報(bào)刊代號(hào)相關(guān)聯(lián)的處理

9、:p002數(shù)據(jù)存儲(chǔ)編號(hào):f003數(shù)據(jù)存儲(chǔ)名稱:訂購信息 簡(jiǎn)述:訂購的基本信息數(shù)據(jù)存儲(chǔ)組成:訂單號(hào)、用戶賬號(hào)、報(bào)刊代號(hào)、訂閱份數(shù)、訂閱年限、金額、訂單處理狀態(tài)。關(guān)鍵字:訂單號(hào)相關(guān)聯(lián)的處理:p004(4)外部實(shí)體的描述外部實(shí)體編號(hào):s001外部實(shí)體名稱:用戶簡(jiǎn) 述:需要訂閱報(bào)刊的用戶輸入的數(shù)據(jù)流:d002輸出的數(shù)據(jù)流:d0014.概念模型設(shè)計(jì)4.1 部門e-r圖部門實(shí)體的e-r圖如下圖 4-1所示: 圖 4-1 部門4.2 管理員e-r圖管理員實(shí)體的e-r圖 4-2如下圖所示:圖 4-2 部門4.3 用戶e-r圖用戶實(shí)體的e-r圖 4-3 如下圖所示: 圖 4-3 用戶4.4 報(bào)刊信息e-r圖 報(bào)

10、刊信息實(shí)體的e-r圖如下圖 4-4所示:圖 4-4 報(bào)刊信息4.5訂單e-r圖訂單實(shí)體的e-r圖如下圖 4-5 所示: 圖 4-5 報(bào)刊訂單4.6 報(bào)刊類別e-r圖報(bào)刊類別實(shí)體的e-r圖如下圖 4-6 所示:圖 4-6 報(bào)刊類別4.7所有實(shí)體之間的的關(guān)系e-r圖所有實(shí)體之間的的關(guān)系e-r圖如下圖 4-7所示:圖 4-7 實(shí)體之間關(guān)系圖5. 邏輯模型設(shè)計(jì)及優(yōu)化表一 department表序號(hào)列名數(shù)據(jù)類型長(zhǎng)度小數(shù)位標(biāo)識(shí)主鍵允許空默認(rèn)值說明1depidint40是是否部門id2depnamenvarchar500是部門名稱表二 loginusers表序號(hào)列名數(shù)據(jù)類型長(zhǎng)度小數(shù)位標(biāo)識(shí)主鍵允許空默認(rèn)值說明

11、1loginidint40是是否用戶登錄編號(hào)2userlevelnvarchar500是用戶等級(jí)權(quán)限3usernonvarchar500是用戶賬號(hào)4passwordvarchar500是密碼表三 newsinfo表序號(hào)列名數(shù)據(jù)類型長(zhǎng)度小數(shù)位標(biāo)識(shí)主鍵允許空默認(rèn)值說明1newsidvarchar500是否報(bào)刊代號(hào)2newsnamenvarchar500是報(bào)刊名稱4newswholepricefloat80是一年定價(jià)5newspressnvarchar500是出版社6newsmaketimevarchar500是出版周期7kindidvarchar500是報(bào)刊分類編號(hào)表四 newskind表序號(hào)列名

12、數(shù)據(jù)類型長(zhǎng)度小數(shù)位標(biāo)識(shí)主鍵允許空默認(rèn)值說明1kindidvarchar500是否報(bào)刊分類編號(hào)2kindnamenvarchar500是報(bào)刊分類名稱表五 subscribe表序號(hào)列名數(shù)據(jù)類型長(zhǎng)度小數(shù)位標(biāo)識(shí)主鍵允許空默認(rèn)值說明1sidvarchar500是否訂單編號(hào)2usernovarchar500是用戶賬號(hào)3newsidvarchar500是報(bào)刊代號(hào)4syearint40是訂閱年限5snumberint40是訂閱數(shù)量6smoneyfloat80是訂閱金額7stateint40是訂單處理狀態(tài):0:未處理,1:已處理表六 userinfo表序號(hào)列名數(shù)據(jù)類型長(zhǎng)度小數(shù)位標(biāo)識(shí)主鍵允許空默認(rèn)值說明1idin

13、t40是是否用戶編號(hào)2usernovarchar500是用戶賬號(hào)(工號(hào))3passwordvarchar500是用戶密碼4realnamenvarchar500是真實(shí)姓名5sexnvarchar500是性別6ageint40是年齡7telnvarchar500是電話8addressnvarchar500是地址9depidint40是部門id10newidvarchar500是報(bào)刊代號(hào)6.應(yīng)用程序設(shè)計(jì)(前臺(tái))6.1 登陸如圖 6-1:圖 6-1 登錄6.2 新用戶注冊(cè)如圖 6-2:圖 6-2 新用戶注冊(cè)6.3 報(bào)刊訂閱如圖 6-3:圖 6-3 報(bào)刊訂閱6.4 報(bào)刊訂閱訂單填寫如圖 6-4:圖 6

14、-4 報(bào)刊訂閱訂單6.5 訂單歷史記錄如圖 6-5:圖 6-5 訂單歷史記錄6.6 個(gè)人訂閱統(tǒng)計(jì)如圖 6-6:圖 6-6 個(gè)人訂閱統(tǒng)計(jì)6.7 修改個(gè)人信息如圖 6-7圖 6-7 修改個(gè)人信息6.8 修改密碼如圖 6-8:圖 6-8 修改密碼7. 課程設(shè)計(jì)心得體會(huì)從選題開始,需求分析、數(shù)據(jù)庫設(shè)計(jì)、編碼、測(cè)試等等,再到我們的課題:報(bào)刊訂閱管理系統(tǒng),基本完善,經(jīng)過整整兩個(gè)星期。在這兩個(gè)星期里,我利用所學(xué)的知識(shí),自己動(dòng)手實(shí)踐寫代碼,做設(shè)計(jì),并逐步地實(shí)現(xiàn)這個(gè)小小的管理系統(tǒng)。整個(gè)過程中遇到了不少問題,也解決了不少問題,當(dāng)然也收獲了不少。首先在怎么設(shè)計(jì)數(shù)據(jù)庫時(shí),就花了一兩天時(shí)間,雖然涉及到的數(shù)據(jù)表只有六個(gè),

15、但每個(gè)表都相對(duì)獨(dú)立有相互關(guān)聯(lián)。在設(shè)計(jì)的時(shí)候必須要考慮到表與表之間的關(guān)系,字段與字段之間的關(guān)聯(lián)。盡量做到數(shù)據(jù)冗余低,達(dá)到第三范式。根據(jù)需求分析,經(jīng)過翻來覆去的思考之后,才建好一個(gè)初步的數(shù)據(jù)庫。一旦數(shù)據(jù)庫建好之后,后面的進(jìn)程就快了。主要是編碼過程。因?yàn)闆]什么流程可言,所有在寫代碼的時(shí)候也沒有考慮什么流程問題,只是實(shí)現(xiàn)簡(jiǎn)單的增刪查改功能。當(dāng)然由于之前沒怎么用過c/s的winform來實(shí)現(xiàn)功能,所以在編碼的過程中還一邊寫一邊查資料,慢慢地摸索著。記得遇到一個(gè)窗體之間傳值的問題,這個(gè)b/s的web頁面?zhèn)髦档牟僮鞣绞胶艽蟛煌?。于是在網(wǎng)上找到幾種方法,也試了兩種方法,可能技術(shù)不到家,還是沒見效果,最后用了一

16、種最笨的方法,就是在父窗體定義一個(gè)全局變量,然后子窗體需要那個(gè)變量的話就可以通過引用父窗體的那個(gè)全局變量。不過這個(gè)方法還是有一定的不足,盡管發(fā)現(xiàn)了但是現(xiàn)在還不知怎么去解決這個(gè)問題。還有之前沒怎么做過報(bào)表,通過這個(gè)小系統(tǒng)的練習(xí),我也了解的rdlc報(bào)表的制作以及實(shí)現(xiàn),這也是一個(gè)小收獲。當(dāng)然由于時(shí)間有限,還沒來得及做大量的測(cè)試,這其中肯定還有不少的bug以及錯(cuò)誤可能還沒發(fā)現(xiàn),還需下一階段繼續(xù)完善??偟膩碚f,能夠在短短的兩星期內(nèi)做出一個(gè)東西出來,盡管不是很復(fù)雜,盡管很垃圾,但通過自己的大腦及雙手把他實(shí)現(xiàn),也算不錯(cuò)了。8. 參考文獻(xiàn) 1 錢雪忠.數(shù)據(jù)庫原理及應(yīng)用.北京郵電大學(xué)出版社.20102 3 其他

17、網(wǎng)絡(luò)資源9.附錄 /登錄關(guān)鍵代碼(login.cs)/private void btnlogin_click(object sender, eventargs e) messageshow.text = ; name = txtusername.text.tostring().trim(); password = txtpassword.text.tostring().trim(); pass = md5.md5(password); string str = select * from loginusers where userno= + name + ; dataset ds = db.g

18、etdataset(str); datatable dt = ds.tables0; if (dt.rows.count 0) string level = ; string loginname = ; for (int i = 0; i 0) messageshow.text = ; messageshow.visible = true; messageshow.text = 登錄成功!正在連接.; /system.threading.thread.sleep(2000);/登錄延時(shí)2秒 var mainuser = new usermain(); this.visible = false;

19、 mainuser.show(); /部門綁定關(guān)鍵代碼/ public void binddept() string str = select distinct depname from department; dataset ds = db.getdataset(str); combregdept.datasource = ds.tables0.defaultview; combregdept.displaymember = depname; /級(jí)聯(lián)綁定/ private void combkind_selectedindexchanged(object sender, eventargs

20、e) if (combkind.selectedindex -1) string kindid = combkind.selectedvalue.tostring(); /string kindid = db.getkindid(kind); string str = select distinct newsname from newsinfo where kindid= + kindid + ; dataset ds = db.getdataset(str); combnewsname.datasource = ds.tables0.defaultview; combnewsname.dis

21、playmember = newsname; /序號(hào)自動(dòng)增長(zhǎng)/ private void datagridview1_rowpostpaint(object sender, datagridviewrowpostpainteventargs e) using (solidbrush b = new solidbrush(datagridview1.rowheadersdefaultcellstyle.forecolor) e.graphics.drawstring(convert.tostring(e.rowindex + 1, system.globalization.cultureinfo

22、.currentuiculture), e.inheritedrowstyle.font, b, e.rowbounds.location.x + 20, e.rowbounds.location.y + 4); /窗體之間傳值/ public static string newsid = subscribe.newsid.tostring();/接收從subscribe窗體中傳newsid這個(gè)值過來 public static string userno = l.tostring();/接收從login窗體中傳name這個(gè)值過來/自動(dòng)生成訂單號(hào)/ public static

23、 string getno(string str) string m = system.datetime.now.tostring(yyyy-mm-dd); string new_no = ; using (sqldatareader reader = db.getdatareader(str) if (reader.read() if (reader0.tostring() = string.empty) new_no = bk- + lsy- + m + - + 1.tostring(0000); return new_no; else string k = bk-lsy- + m + -

24、; int newno = 0; string no = reader0.tostring(); if (k = no.substring(0, no.length - 4) newno = convert.toint32(no.substring(no.length - 4, 4) + 1; return k + newno.tostring(0000); else new_no = bk- + lsy- + m + - + 1.tostring(0000); return new_no; /md5密碼加密類/ public static string md5(string tomd5) byte result = encoding.default.getbytes(tomd5); md5cryptoserviceprovider md5 = new md5cryptoserviceprovider(); byte output = md

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論