書店會員管理系統(tǒng)_第1頁
書店會員管理系統(tǒng)_第2頁
書店會員管理系統(tǒng)_第3頁
書店會員管理系統(tǒng)_第4頁
書店會員管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理及應用課程設計報告設計題目:書 店 會 員 管 理 系 統(tǒng)目錄一、背景及意義-2 1.1 引言 -21.2 項目目標與背景-2 1.3 用戶特點 -2 二、需求分析-2 2.1 目的與要求 -2 2.2 功能需求 -3 2.3 數(shù)據(jù)流圖 -3 2.4 數(shù)據(jù)字典 -5 三、概念結構設計-7四、邏輯結構設計和物理結構設計-8 4.1 系統(tǒng)關系模型-8 4.2 系統(tǒng)數(shù)據(jù)表結構-8 4.3 數(shù)據(jù)庫的存儲結構-9 五、物理結構設計-10 - 1 - 六、數(shù)據(jù)庫實施和維護-12 6.1 數(shù)據(jù)庫的實施-12 6.2 數(shù)據(jù)庫的維護-17 七、系統(tǒng)運行情況及用戶界面 -17 八、課程設計的過程、體會及

2、建議 -22 一 背景及意義1.1 引言社會生活的現(xiàn)代化, 使得市場的走向發(fā)生巨大變化,由于經濟的發(fā)展, 人們對生活的需求已經不再足于豐衣足食的低度要求,許多人們往往不是單純?yōu)闈M足生活必需去購買, 而是憑著喜歡, 意欲和感觀去購買。 書店與顧客之間的交流也隨著書店的多樣化、 商業(yè)化而削弱, 書店之間的競爭更加激烈。 如果一個書店能夠加深與顧客的交流, 提升服務質量以致打動顧客, 吸引顧客,自然會顧客盈門。1.1.1 編寫目的這份需求分析文檔是用戶 (客戶)對即將開發(fā)的系統(tǒng)的功能要求,是作為系統(tǒng)設計和開發(fā)者的主要依據(jù),更方便系統(tǒng)設計及開發(fā)人員工作的開展。1.2 項目目標與背景通過對書店會員管理業(yè)

3、務的特點進行分析,使用現(xiàn)有的工具, 開發(fā)出一個能夠對會員信息,購物情況統(tǒng)計,返利等進行綜合管理的管理信息系統(tǒng)。項目名稱:書店會員管理系統(tǒng)軟件開發(fā)者:吳輝、陳柳剛、王楷木(組長)、鄧媛元1.3 用戶特點本軟件的最終用戶是面向用戶、讀者(老師和同學等),他們都具有一定的計算機應用基礎,可以比較熟練操作計算機。用戶和讀者都是經常性用戶。系統(tǒng)維護人員為計算機專業(yè)人員,熟悉數(shù)據(jù)庫、 操作系統(tǒng)、 網絡維護工作。 維護人員為間隔性用戶。二、需求分析2.1 目的與要求- 2 - 隨著計算機技術的發(fā)展和網絡人口的增加,網絡世界也越來越廣博, 越來越豐富,在線書店已經成為網上的一股潮流。我們相信要不了太長有時間,

4、顧客就可以在網絡世界上獲得他們在現(xiàn)實世界上可以獲得的所有商品和服務。主要要求及特點如下:1、客戶可通過 ie 或其他瀏覽器瀏覽書目信息并提交訂單;3、后臺數(shù)據(jù)庫用microsoft sql ;4、采用 b/s 方式設計;5、系統(tǒng)采用會員制,會員享受對應等級優(yōu)惠服務;6、具有購物車功能;7、對購物車可增加新書、修改數(shù)量、移除已選書籍等,確認后,完成交易;8、系統(tǒng)應具備一定的安全性與可靠性;9、客戶應能通過作者姓名、書名或者isbn號來檢索書籍;10、客戶可在網上進行注冊,成為會員;11、會員可以查詢并修改自己基本信息;2.1.1 可行性研究的前提該系統(tǒng)能夠實現(xiàn)對書店會員的各類信息錄入,刪除,修改

5、和查詢操作, 能夠實現(xiàn)對各種統(tǒng)計信息的查詢,并可以輸出。2.1.2 技術可行性硬件、軟件、運行環(huán)境和開發(fā)環(huán)境方面的條件和限制:軟件需求: 操作系統(tǒng)windows 2000,xp以上;數(shù)據(jù)庫服務器端軟件microsoft sql server 2005。硬件方面也能滿足, 由此知使用現(xiàn)在的技術是可以實現(xiàn)這個書店會員管理系統(tǒng)的。2.1.3 經濟可行性要完成這樣的書店會員方面管理系統(tǒng),并不像真正用于書店各方面管理系統(tǒng)那么復雜和龐大, 所需要的人力物力資源會比較少,所以在經濟可行性上是可以接受的。2.2 功能需求書店會員管理系統(tǒng)的功能主要有:1、會員基本信息管理2、書本信息管理3、會員積分管理4、購物

6、管理5、購物記錄管理。23 數(shù)據(jù)流圖系統(tǒng)頂層流圖,如圖2.3.1 - 3 - 圖 2.3.1 0 層圖,如圖 2.3.2 圖 2.3.2 書店會員管理系統(tǒng)基 本 信 息 管理表會員類型管理表會員積分管理表書 店 購 物 積分管理表信息查詢管理信息會員查詢管理會員類型圖書查詢管理購物積分購物積分查詢查詢修改積積分查詢會員書籍評論管理表圖書信息管理表修改圖書信息添加評論查看評論會員書店會員管理系統(tǒng)管理員查詢會員信息會員信息會員信息修改管理員信息會員購物信息會員積分管理- 4 - 2.4 數(shù)據(jù)字典數(shù)據(jù)項是數(shù)據(jù)庫的關系中不可再分的數(shù)據(jù)單位,下表分別列出了數(shù)據(jù)的名稱、數(shù)據(jù)類型、長度、取值能否為空。其基本

7、表清單及表結構描述如下:數(shù)據(jù)庫中用到的表:數(shù)據(jù)庫表名關系模式名稱備注book 圖書信息圖書信息信息表booktype 圖書分類圖書類型表comment 書籍評論書籍評論表member 積分積分表orderdetails 購物車購物單表orders 訂單訂單表userinfo 信息會員和管理員信息表book數(shù)據(jù)表基本情況如下:字段名字段類型約束控制說明bookid int primary key 圖書編號booktype int not null 圖書類型bookname varchar(100) not null 圖書名稱bookauthor varchar(30) not null 圖書作者

8、bookpublic varchar(100) not null 出版社bookprice decimal(18,2) not null 圖書定價bookcover varchar(200) booktranslator varchar(30) 譯者bookdescribe text 書籍表述bookhits int booksales int bookstorage int booktype數(shù)據(jù)表基本情況如下:字段名字段類型約束控制說明booktypeid int primary key 圖書類型號booktypename varchar(50) not null 圖書類型名booktype

9、memo varchar(200) comment 數(shù)據(jù)表基本情況如下:字段名字段類型約束控制說明commentid int primary key 評論號- 5 - bookid int not null 書籍號commentatorname varchar(50) 評論名commentatormail varchar(50) 評論者郵箱commenttitle varchar(100) 評論主題commentdetails text not null 評論內容postdate datetime not null 發(fā)表日期member 數(shù)據(jù)表情況如下:字段名數(shù)據(jù)類型約束控制說明userid

10、nhar(10) primary key 會員號mlevl int not null 會員等級bookdiscount foat not null 會員折扣point int not null 會員積分orderdetails數(shù)據(jù)表基本情況:字段名數(shù)據(jù)類型約束控制說明orderdetailsid int primary key 訂單號orderid varchar(200) not null 用戶 id bookid int 圖書編號price decimal 圖書價格amount int 圖書數(shù)量orders 數(shù)據(jù)表基本情況如下:字段名數(shù)據(jù)類型約束控制說明ordersid uniqueide

11、ntifier primary key 用戶 id orderspayment bit not null 選擇付款orderspostbook bit 選擇郵遞orderspostbookstaff varchar(50) 郵遞方式ordersamount decimal(18,2) not null 購買數(shù)量orderscustomer varchar(50) 買家姓名orderstime datetime not null 購買時間userinfo 數(shù)據(jù)表基本情況如下:字段名字段類型約束控制說明userno int primary key 會員編號userid varchar(30) no

12、t null 會員 id userpws varchar(32) not null 會員密碼- 6 - username varchar(30) not null 會員名稱usermail varchar(30) not null 會員郵箱useraddress varchar(100) not null 會員地址userpostalcode char(6) not null 郵政編碼usercontacino varchar(20) not null userpower nvarchar(10) not null 權限三 概念模型設計由需求分析的結果可知,本系統(tǒng)設計的實體包括:(1)基本信息

13、表:會員號,姓名,賬號,密碼,郵政編碼,聯(lián)系電話,聯(lián)系地址等。(2)購物單表:單號,書號,數(shù)量,物品價格。(3)會員積分表:會員號,會員等級,會員折扣,會員積分(4)圖書信息表:書號,書名,數(shù)量,價格,作者,出版社,類型。系統(tǒng)要實現(xiàn)的功能為:會員根據(jù)購物的價格,獲得相應的積分獎勵。并且,會員的類型與購物的積分有關,根據(jù)積分多少,會員等級可以進行升級。由上述各實體分析可得到以下系統(tǒng)的e-r圖:如圖 3.1 圖 3.1 會員管理員書本購物單會員號登錄名登錄密碼會員姓名會員郵箱會員地址會員郵編會員電話購買類型價格數(shù)量作者出版社價格書號單號數(shù)量書號管理提供管理對應登錄號登錄名姓名管理員號權限- 7 -

14、 四 邏輯結構設計4.1 系統(tǒng)關系模型 1 、圖書信息表(圖書編號,類型,名稱,作者,出版社,定價等) 2 、圖書類型表(圖書類型號,類型名) 3 、書籍評論表 (評論號, 書籍名,評論名,評論者郵箱, 評論主題, 評論內容,發(fā)表日期) 4 、積分表(會員號,會員等級,會員折扣,會員積分) 5 、購物單表(購物單,會員id,圖書編號,圖書價格,圖書數(shù)量) 6 、訂單表(單號,會員id,購買數(shù)量,選擇郵遞,郵遞方式,買家姓名,購買時間) 7 、會員和管理員信息表(會員編號,會員id,會員密碼,會員姓名,會員郵箱,會員地址,會員郵編,權限)4.2 系統(tǒng)數(shù)據(jù)表結構數(shù)據(jù)庫表名關系模式名稱中文名book

15、 圖書信息圖書信息信息表booktype 圖書分類圖書類型表comment 書籍評論書籍評論表member 積分積分表orderdetails 購物車購物單表orders 訂單訂單表userinfo 信息會員和管理員信息表4.3 數(shù)據(jù)庫的存儲結構圖書信息表圖書類型表書籍評論表- 8 - 積分表購物單號表會員和管理員信息表各個表之間的主鍵關系圖如下:- 9 - 五 物理結構設計/*-創(chuàng)建數(shù)據(jù)庫 -*/ create database bookstore on primary ( name= bookstore, filename=c:program filesmicrosoft sql serv

16、ermssqldata bookstore.mdf, size=100mb, maxsize=200mb, filegrowth=20mb ) log on ( name= bookstore, filename=c:program filesmicrosoft sql servermssqldata bookstore.ldf, size=60mb, maxsize=200mb, filegrowth=20mb ) go /*-創(chuàng)建基本表 -*/ use bookstore go /* 創(chuàng)建書籍說明表*/ - 10 - create table dbo .book ( bookid int

17、not null, booktype int not null, bookname varchar (100) not null, bookauthor varchar(30) not null, booktranslator varchar (30) null, bookpublic varchar(100) not null, bookprice decimal (18, 2) not null, bookdiscount decimal(18, 2) null, bookcover varchar (200) null, bookdescribe text null, bookhits

18、int null, booksales int null, bookstorage int null, /* 創(chuàng)建圖書類型表*/ create table dbo .booktype ( booktypeid int identity (1,1) not null, booktypename varchar (50) not null, booktypememo varchar(200) null, /* 創(chuàng)建評論表 */ create table dbo .comment ( commentid int identity (1,1) not null, bookid int not null

19、, commentatorname varchar (50) null, commentatormail varchar(50) null, commenttitle varchar(100) null, commentdetails text not null, postdate datetime not null, /* 創(chuàng)建訂單信息表*/ create table dbo .orderdetails ( orderdetailsid int identity (1,1) not null, ordersid varchar (200) not null, bookid int null,

20、 price decimal (18, 2) null, amount int null, /* 創(chuàng)建訂單表 */ create table dbo .orders ( ordersid uniqueidentifier not null, orderspayment bit not null constraint df_orderspayment default (0), orderspostbook bit notnullconstraintdf_orderspostbook default(0), orderspostbookstaff varchar (50) null, orders

21、amount decimal (18, 2) not null, orderscustomer varchar (50) null, - 11 - orderstime datetime not null, /* 創(chuàng)建會員表 */ create table dbo .points ( p_level int not null, p_lname varchar (50) not null, p_score int not null, p_discount decimal (18, 2) not null, /* 創(chuàng)建用戶信息表*/ create table dbo .userinfo ( use

22、rno int identity (1,1) not null, userid varchar (30) not null, userpws varchar (32) not null, username varchar (30) not null, usermail varchar (30) not null, useraddress varchar (100) not null, userpostalcode char (6) not null, usercontactno varchar (20) not null, userpower nvarchar (10) not null, u

23、serpoint decimal (18,2)notnullconstraintdf_userinfo_userpoint default (0), 六 數(shù)據(jù)庫的實施與維護6.1 數(shù)據(jù)庫的實施:此階段主要任務包括創(chuàng)建數(shù)據(jù)庫,加載初始數(shù)據(jù), 數(shù)據(jù)庫試運行, 數(shù)據(jù)庫的安全性和完整性控制數(shù)據(jù)庫的備份與恢復,數(shù)據(jù)庫性能的監(jiān)督分析和改僅,數(shù)據(jù)庫的重組和重構等。 首先在數(shù)據(jù)庫中建立一個書店會員積分管理系統(tǒng)數(shù)據(jù)庫,然后新建一個數(shù)據(jù)源。主要代碼如下(附屬功能不一一貼出):會員登錄代碼如下:protectedvoid imgbtndl_click1(object sender, imageclickeventa

24、rgs e) sqlconnection conn = new sqlconnection (connstring); if (conn.state = connectionstate.closed) conn.open(); stringsqlstring = select * from userinfo where userid =+ txtname.text.trim() + ; sqlcommand mycommand = new sqlcommand (sqlstring, conn); sqldatareader rs = mycommand.executereader(); if

25、 (rs.hasrows) rs.read(); if ( dbuser.encrypt(txtpwd.text.trim() = rsuserpws .tostring() - 12 - if (sessionpass = null ) sessionpass = true ; else sessionpass = true ; httpcookie acookie = new httpcookie (userinfo); acookie.valuesuserid = rsuserid .tostring(); acookie.valuesusername = rsusername.tost

26、ring(); acookie.valuesuserpower = rsuserpower .tostring(); acookie.expires = datetime.now.adddays(1); response.cookies.add(acookie); lblwelcome.text = 歡迎您 + request.cookiesuserinfo username ; lbltoday.text = 現(xiàn)在是 : + datetime.now.toshortdatestring(); pnlloginstart.visible = false ; pnlloginok.visible

27、 = true ; else response.write(alert(您輸入的密碼不正常, 請重新輸入! ); txtpwd.text = ; else response.write(alert(您輸入的用戶不存在, 請先注冊! ); txtpwd.text = ; txtname.text = ; rs.close(); conn.close(); 會員注冊代碼如下:protectedvoid imgbtnreg_click(object sender, imageclickeventargs e) sqlconnection conn = new sqlconnection (conns

28、tring); if (conn.state = connectionstate.closed) conn.open(); stringsqlstring = select count(*) from userinfo where userid=+ txtaccount.text.trim() + ; sqlcommand command = new sqlcommand (sqlstring, conn); int num = ( int )command.executescalar(); if (num 0) - 13 - response.write(alert(賬 戶 已 經 被 人

29、使 用 , 請 重 新 選 擇); txtaccount.text = ; elseif (page.isvalid = true ) sqlstring = insert into userinfo values( + txtaccount.text + , + dbuser.encrypt(txtpwd.text) + , + txtname.text + , + txtemail.text + , + txtaddress.text + , + txtcode.text + , + txtphone.text + ,會員 ,0.00); sqlcommand mycommand = ne

30、w sqlcommand (sqlstring, conn); int count = mycommand.executenonquery(); if (count 0) response.write(alert(會員注冊成功! ); / response.redirect(login.aspx); conn.close(); 會員購書代碼如下:protectedvoid button3_click(object sender, eventargs e) double totalamoutn = 0; string orderno = ; int buyitems = 0; for ( int

31、 i = 0; i gvdrcart.rows.count; i+) if(gvdrcart.rowsi.cells0.findcontrol(chkbcomment) ascheckbox).checked = true ) totalamoutn += convert .todouble(gvdrcart.rowsi.cells7.text); buyitems+; if (totalamoutn = 0) response.write(alert(請選擇你要購買的圖書!); return ; string sqlstring = procinsertorder; sqlparameter

32、 parameters = new sqlparameter 2; parameters0 = new sqlparameter ( ordersamount, sqldbtype.decimal); - 14 - parameters0.value = totalamoutn; parameters1 = new sqlparameter (orderscustomer , sqldbtype.varchar, 100); parameters1.value = request.cookiesuserinfo userid .tostring(); ; datatabledt = sqldb

33、helper .executedatatable(connstring, sqlstring, commandtype .storedprocedure, parameters); if (dt.rows.count 0) orderno = dt.rows00.tostring(); else response.write(alert(網絡故障,請稍后再試!); return ; int insertitems = 0; for ( int i = 0; i gvdrcart.rows.count; i+) if(gvdrcart.rowsi.cells0.findcontrol(chkbc

34、omment) ascheckbox).checked = true ) sqlstring = insert into orderdetails values(ordersid,bookid,price,amount); sqlparameter parameters1 = new sqlparameter 4; parameters10 = newsqlparameter (ordersid , sqldbtype.varchar, 200); parameters10.value = orderno.toupper(); parameters11 = new sqlparameter (

35、 price , sqldbtype.decimal); parameters11.value = convert .todouble(gvdrcart.rowsi.cells5.text); parameters12 = new sqlparameter ( amount, sqldbtype.int); parameters12.value = convert .toint32(gvdrcart.rowsi.cells6.findcontrol(txtamount) as textbox).text); parameters13 = new sqlparameter ( bookid ,

36、sqldbtype.int); parameters13.value = convert .toint32(gvdrcart.rowsi.cells1.text); intcounts = sqldbhelper .executenonquery(connstring, sqlstring, commandtype .text, parameters1); insertitems += counts; httpcookie acookie = new httpcookie (shoppingcartinfo); acookie.expires = datetime.now.adddays(-1

37、); response.cookies.add(acookie); - 15 - if (insertitems = buyitems) sqlconnection conn = new sqlconnection (connstring); conn.open(); string username = request.cookiesuserinfo username.tostring(); string sqlstr = update userinfo set userpoint=(userpoint+ + totalamoutn + ) where username= + username

38、 + ; sqlcommand cmd = new sqlcommand (sqlstr, conn); cmd.executenonquery(); conn.close(); string result = alert(該單號為 : + orderno.toupper() + , 請在處理訂購項模塊使用網銀轉賬!); response.write(result); else response.write(alert(訂單生成失?。?); / 刪除操作 response.write(location.href=processorders.aspx;); 會員資料顯示(含積分) :protec

39、tedvoid btnget_click(object sender, eventargs e) string username = request.cookiesuserinfo username; ; string sqlstring1 = select top 1 a.*,b.p_lname,b.p_score from userinfo as a,points as b where username=username and a.userpoint=b.p_score order by b.p_score desc ; sqlparameter parameters = new sql

40、parameter 1; parameters0 = new sqlparameter ( username , sqldbtype.varchar, 30); parameters0.value = convert .tostring(username); datatable dtresult1 = sqldbhelper .executedatatable(connstring, sqlstring1, commandtype .text, parameters); lbluserno.text = dtresult1.rows0userno .tostring(); lbllevel.t

41、ext = dtresult1.rows0p_lname .tostring(); lblpoint.text = dtresult1.rows0userpoint.tostring(); txtid.text = dtresult1.rows0userid.tostring(); txtname.text = dtresult1.rows0username.tostring(); txtmail.text = dtresult1.rows0usermail.tostring(); txtpos.text = dtresult1.rows0userpostalcode.tostring(); txtadd.text = dtresult1.rows0useraddress .tostring(); txttel.text = dtresult1.rows0usercontactno.tostrin

溫馨提示

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

評論

0/150

提交評論