數據庫課程設計--報刊訂閱管理系統_第1頁
數據庫課程設計--報刊訂閱管理系統_第2頁
數據庫課程設計--報刊訂閱管理系統_第3頁
數據庫課程設計--報刊訂閱管理系統_第4頁
數據庫課程設計--報刊訂閱管理系統_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、報刊n閱管理系統的開發與實現專業:計算機科學與技術 學號:姓名:課程設計名稱:數據庫原理及應用設計題fh 報刊訂閱筲理系統的設il勺實現完成期限:自2009年12月14 fi至一 2009 年12 月27 f1共 2 周 設計依據、要求及主要內容(可另加附頁):本系統主要面向的用戶有系統管理員、讀者。下面分角色對該系統的不同操作 范圍做說明,主要有以下功能模塊:(1)登陸功能:登陸系統為身份驗證登錄。分為管理員登錄和一般用戶登錄。 分別通過不同的用戶名和密碼進入報刊訂閱管理界面。(2)錄入新信息功能:對于管理員,包括新用戶信息和新報刊信息的錄入功能, 信息一旦提交就存入到后臺數據庫中;普通用戶

2、自行注冊進行錄入個人信息。(3)訂閱功能:用戶可以訂閱報刊,系統口動計算所需金額,并顯示在界面上; 管理員不可訂閱報刊,必須以用戶身份訂閱報刊。(4)查詢功能:用戶可以查詢并顯示占己所訂閱的信息;管理員可以按人員、 報刊、部門分類查詢。查詢出的信息顯示在界面上。(5)統計功能:管理員可以按用戶、部門、報刊統計報刊的銷售情況,并對一 些重要的訂閱信息進行統計;普通用戶可以統計出h己的訂閱情況。(6)系統維護功能:管理員可以對用戶、報刊、部門、訂閱等信息進行添加、 刪除、更改等維護工作;用戶可以更改口己的注冊信息,但用戶名不能更改。指導教師(簽字): 教研室主任(簽字):批準fi期:年 月 日摘要

3、本系統是一個而向于企業的報刊訂閱管理系統。系統是智能化的管理系統,它 面向所有企業部門的職工用戶,但具有安全性能。它能夠實現報刊訂閱的基本功能, 包括新報刊信息的登錄、錄入、訂閱、杏詢、統計等操作。用戶合法注冊后必須輸 入冇效密碼才能成功進入此系統,可以進行訂閱報刊,查詢信息,統計信息等操作。 對于非法操作,系統有識別和防護措施。訂閱信息處理的特點是訂閱信息處理量比較大,所管理的倍息倍息種類繁多,而 且訂閱單、編輯單的發牛量特別大,關聯信息多,查詢和統計的方式各不相同。因此 在管理上實現起來有一定因難。系統在設計過程中,為了克服這些因難,需要使程序代碼標準化,軟件統一化,確 保軟件的町維護性和

4、實用性;刪除不必耍的管理冗余,實現管理規范化、科學化;界 而友好、簡單化,做到實用、方便,盡量滿足報刊訂閱中員工的需要。關鍵詞:power bui 1 der; microsoft sql server 2000;錄入;查詢;統計;訂閱;1系統需求分析611信息需求分析61.2業務流程分析61.3功能需求分析81.4數據流圖81.5數據字典112系統設計132. 1系統功能結構設計 132.2數據庫概念設計132. 3數據庫邏輯設計152.4數據庫物理設計 173系統實現與測試193.1數據庫連接193. 2模塊功能實現203.2. 1菜單的實現203.2.2登錄模塊的實現213.2.3錄入信

5、息模塊的實現243.2.4查詢信息模塊的實現253.2.5統計信息模塊的實現283.2.6訂閱報刊模塊的實現293.2.7更改信息的實現323. 3系統測試34總結41參考文獻421. 系統需求分析1.1信息需求分析1.3.1資料收集:業務流程屮用到的相關單據主要是報刊信息還有訂單信息 報刊信息表:報刊代號46-250報刊名稱1t時代周刊出版報社科技出版社出版周期半月刊每刀定價10.00元/刀分類編號1001報刊介紹it吋代周刊是一本深刻解讀信息吋代商業變革的雜志。除深度報 道信息產業的重人新聞外,還報道金融、汽車、股市、零偉等傳統行 業利用tt提升商業與管理的新聞。tt時代周刊以調查見深度;

6、以 商業故事見功力。是ce0/ci0/cf0以及政府官員、商業領袖首選刊物。訂單信息表:訂單編號報刊代號用戶編號訂閱日期訂閱月數份數操作300346-20532062008-7-1訂一月1取消訂閱300426-30631082008-7-8訂半年2取消訂閱300572-31031002008-7-9訂一年1取消訂閱300645-21425412008-7-10訂孕1取消訂閱12業務流程分析:本系統主耍面向的用戶有系統管理員、讀者。卜-面分角色對該系統的不同操作范圍 做說明。下圖為該系統的業務流程圖報刊訂閱管理系統糸統允管理員選擇報川j信息數據存儲算帳權限設確認下訂訂巾査詢1.3功能需求分析本系

7、統的主要結構功能圖如k:(1) 登陸功能:登陸系統為身份驗證登錄。分為管理員登錄和一般用戶登錄。 分別通過不同的用戶名和密碼進入報刊訂閱管理界面。(2) 錄入新信息功能:對丁管理員,包括新用戶信息和新報刊信息的錄入功能, 信息一旦提交就存入到后臺數據庫中;普通用戶口行注冊進行錄入個人信息。(3) 訂閱功能:用戶可以訂閱報刊,系統自動計算所需金額,并顯示在界面上; 管理員不可訂閱報刊,必須以用戶身份訂閱報刊。(4) 杳詢功能:用戶可以杏詢并顯示白己所訂閱的信息;管理員可以按人員、 報刊、部門分類杳詢。查詢出的信息顯示在界面上。(5) 統計功能:管理員可以按用戶、部門、報刊統讓報刊的銷售情況,并對

8、一 些重姿的訂閱信息進行統計;普通用戶可以統計出自己的訂閱情況。(6) 系統維護功能:管理員可以對用戶、報刊、部門、訂閱等信息進行添加、 刪除、更改等維護工作;用戶可以更改口己的注冊信息,但用戶名不能更改。1.4數據流圖金詢請求介詢 結果圖162系統1層圖系統2層圖圖1.6.4系統3層圖神時x 亠 xi出錯處理訂閱更改訂閱請求增刪改用戶信息錄入請求維護請求增刪改訂單信息.錄信s7圖165系統4層圖1.5數據字典(1)數據結構竹理員用戶=管理員帳戶+竹理員密碼訂戶二訂戶編號+訂戶名+聯系電話+聯系地址日錄二目錄編號+日錄名+單價+批注信息訂單二訂單號+訂戶編號+下訂日期訂單細節二訂單號+h錄編號

9、+訂閱數量+訂閱期數+單價+總價(注:為保證訂單確定后價格不隨目錄單價變動,訂單細節中應該有獨立的單 價來記錄卜訂時目錄的單價)(2)數據項表2.1 數據項表編號標識符類型長 度所屈表名同義名1anamevarchar20administrator管理員帳戶2apasswordvarchar20administrator管理員密碼3unamevarchar20consumer訂戶名4uphonevarchar15consumer聯系電話5uaddressvarchar50consumer聯系地址6magazine na mevarchar20magazine目錄名7wholpricefloat

10、8magazinesubscrible目錄單價, 下訂時冃錄單價8snumint4subscribe訂閱數量9subscribenumint4subscribe訂閱期數10snumfloat8subscribe訂單項總價(3)數據流編號名稱來源去向組成1身份信息系統管理員應用系統管理員帳戶+密碼2授權信息應用系統系統管理員3錯謀身份信息應用系統系統管理員4查詢請求系統管理員應用系統待查詢對象識別符(如cid,ono)5杏詢結果應用系統系統管理員被杳詢對象具體信息6悖理請求系統管理員應用系統識別符(cid, ono等)+類型7悖理結果信息應用系統系統管理員被管理對彖處理結果8非法請求應用系統系統

11、管理員非法請求提示信息表2.2數據流表2系統設計21系統功能結構設計系統功能結構圖如卜圖所示:用戶圖2.1.1系統功能結構圖2. 2數據庫概念設計基木項構思erd的四條基木原則: 原則1 (確定實體):能獨立存在的事物,例如人、物、事、地、團體、機構、 活動、事項等等,在其有多個由基本項描述的特性需耍關注吋,就應把它作為實體。 原則2 (確定聯系):兩個或多個實體間的關聯與結合,如主管,從屬,組成, 占有,作用,配合,協同等等,當需耍予以關注時,應作為聯系。實體間的聯系可 分為一對一、一對多、多對多等三類,在確定聯系時還要確定其類型。 原則3 (確定屬性):實體的屬性是實體的本質特征。實體應冇

12、標識屬性(能 把不同個體區分開來的屬性組),并指定其中一個作為主標識。聯系的屬性是聯系的 結果或狀態。 原則4 (-事一地):信息分析中得到的基本項要在且僅在實休聯系圖屮的一 個地方作為屬性出現。經過上述系統功能分析和需求總結,設計如下面所示的數據項和數據結構。 管理員表(administrator):用于存放管理員的數據記錄,包括數據項:管理員名、密碼。 部門表(department):用來存放部門的相關記錄,包括數據項:部門號,部 門名。 用戶表(consumer):用于存放注冊用戶的記錄,包括數據項:用戶賬號、密 碼、真實姓名、身份證號、聯系電話,聯系地址,部門號(和部門表有關)籌。 報

13、刊信息表(nkigazine):用于存放報刊記錄,包括數據項:報刊代號、報刊 名稱、出版報社、出版周期、季度報價、內容介紹、分類編號(和報刊類別表 有關)等。 訂單表(subscribe):用于存放用八下達的訂閱報刊的基本信息,包括數據項:訂單編號、用戶編號(用戶表的主碼)、用戶賬時密碼、'、丁1j部門號l”/用戶報刊代號(報刊信息表的主碼)、訂閱,報刊代號報刊名稱:'一 分類編號聯系地址、身份證號、験系電話份數、訂閱刀數等。報刊信息:出版報社;4/-、二/k內容介紹ii版周期:j季度報價/v/部門號部門名、一一/、»用戶實體的e-r圖如下圖所示: 示:備理員名 密碼

14、、一一/、一一"報刊信息實體的e-r圖如下圖所根據上血的設計規劃出來的實體有部門實體、管理員實體、用八實體、報刊信 息實體和訂單實體。管理員實體的e-r圖如下圖所不:部門實體的e-r圖如下圖所示:訂單實體的e-r圖如下圖所示:j u u u、一/d dzu u u u /、一、巾 u u 11、j 、4 u u u、-0u、x分類編號、分類名稱、- 丿 、- /所有實體之間的的關系e-r圖如下圖所示:部門理員處理m訂閱j1數訂單編號用廣賬號訂單報刊代號訂閱份數訂制im分類編號報刊類別包含內容介紹李度訂價聯糸電詁2. 3數據庫邏輯設計(1) 一般邏輯模型設計關系模型的邏輯結構是組關系模

15、式的集合。將e-r圖轉換為關系模型就是要將實體型、實體的屬性和實體型之間的聯系轉換為關系模式。由erd導出-般關系模型的四條原則; 一個1: 1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關 系模式合并。如果軟換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及 聯系本身的屬性均轉換為關系的屬性,每個實體的碼均是該關系的候選碼。如果與 某一端實體對應的關系模式何明,則需要在該關系模式的屬性屮加入另一個關系模 式的碼和聯系本身的屬性。 一個1: n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模 式合并。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系 本

16、身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。 一個m: n聯系轉換為一個關系模式。與該聯系相連的各實體的碼以及聯系木 身的屬性均轉換為關系的屬性,各實體的碼組成關系的碼或關系碼的一部分。 3個或3個以上實體間的一個多元聯系可以轉換為一個關系模式。與該多元聯 系項鏈呢的各實體的碼以及聯系木身的屬性均轉換為關系的屬性,各實體的碼組成 關系的碼或關系碼的一部分。根據以上原則將e r圖轉換成的關系模式如下:部門(部門號,部門名稱)用戶(用八賬號,密碼,用八真實姓名,聯系電話,聯系地址,|部門號|)管理員(管理員名,密碼)報刊類別(分類編兮,分類名稱)報刊(報刊代號,報刊名稱,出版報社,出版周

17、期,每刀訂價,內容介紹,|分類編訂單(i用八鈕麗祀可,訂閱份數,訂閱刀數,訂閱總額)(2)具體邏輯模型設計在sql server2000數據庫中,首先創建報刊訂閱悖理系統數據庫,然后根據數 據庫的邏輯結構分析創建表41一46的6張數據表。在前臺訪問數據庫階段設置了 用戶和密碼,用戶為sa,密碼為空。表4-1 department部門表結構字段名稱字段類型允許空說明dnumber (主碼)char (10)否部門號dnamechar(50)否部門名稱表4-2 consumer用戶表結構字段名稱字段類型允許空說明uname (主碼)char (10)否用戶帳號upasswordchar (20)是

18、真實姓名urealnamechar(10)否用戶密碼usexchar(150)是用戶聯系地址uphonechar (20)是用戶聯系電話uaddresschar(10)否用戶所屬部門號subscribenumchar(10)否訂閱數量表4-3 magazine報刊表結構字段名稱字段類型允許空說明mnumber (主碼)char (10)否報刊代號mnamechar(40)否報刊名稱mkindint (4)否報刊分類mpresschar (10)否出版報社mtimechar (30)否出版日期mhalfpricechar (10)否半年定價mwholefloat(8)否全年定價表4 4 subs

19、cribe訂單表結構字段名稱字段類型允許空說明uname (主碼)char (10)否用戶帳號mnumber (主碼)char (10)否報刊代號syearint (4)否訂閱份數snumbertnt (4)否訂閱刀數ssumfloat (8)是訂閱總額表4-5 adminuser管理員表結構字段名稱字段類型允許空說明aname (主碼)char(10)否管理員用戶名apasswordchar(10)否管理員密碼2.4數據庫物理設計(1) 索引的選擇建立由于系統可能要涉及大量數據的操作,所以索引的建立就成為一種必需。本系 統采用b+樹索引方法,分別在各consumer, magazine_qu

20、ery, consumerstat 和 query_depat各個表的主鍵上建立關系表。(2) 數據存放位置本系統數據和索引存放在磁盤中。(3) 確定系統配置根據具體需要配置。(4) 模塊設計登陸模塊圖2.4.1登陸模塊ipo圖管理功能模塊圖242管理功能模塊ipo圖查詢功能模塊圖2.4.3查詢功能模塊ipo圖3系統實現與測試3.1連接數據庫的實現打開powerbui ider,新建一個magazine,新建一個application,取名 magazine, 然后點擊工具欄上的db profile,新建一個mss microsoft sql server,填入profile name,服務器

21、名,用戶名,密碼,數據庫,如下圖:連接數據庫:+database - 1 connection: (active connein stalled database interfaces ,dir direct connect fl in9 informix v9.x fl jdb jdbcmss microsoft sql server -i-(b i + i + i + i + i + i +口 groups logins metadata typesi1 procedures & functions tablesi1 users 口 views+侖 utilities 073 or

22、ade 7.3 084 orade8/8i 090 oracle 9.0.1 odb odbc syc sybase ase syj sybase ase for easerver然后輸入連接數據庫的主要代碼:/ profile報刊訂闔管理系統sqlca.dbms = e,mss microsoft sql seruerfisqlca.database二"報刊訂閱管理系統"sqlca.logpass = 5"sqlca.seruernane = iiwww-3cf0657cd97lisqlca.logld = -sa11sqlca.autoconnit = fal

23、sesqlca.dbparm = bii,connect using sqlca;|if sqlca.sqlcode <>0 then messageboxc 不能連接上數據庫!",sqlca .sqmrrtext) returnelsenessageboxc報刊訂閱管理系統數據庫己經連接上,歡迎使用") end if/close(w welcome)open(w_welcome)3. 2模塊功能實現3. 2. 1菜單的實現(1)制作管理員主菜單w_adminview,建管理員主界而w_mainmonu,將該菜單 放到窗口中(2)制作用戶主菜單w_consume

24、r,建用戶主界® w_consumermain,將菜單放到 窗口中3. 2. 2登錄模塊的實現(1)制作登錄頁面wjoginl,在“確定”按鈕輸入如下:string ls_user,ls_pwds_id=trim(sle_1.text)connect using sqlca;if.tiexty thenmessagebox("pap attention?廠用戶名不可為空!")sle_1.setfocus()elseif sle_2thenmessagebox('gpap attention?","密碼不可為空i ") sle_

25、2.setfocus()elseg_user=sle_1 -text把輸入框中的內容賦給定義的變量g_pwd=sle_2.text/g_id=sle_id.textselect unane,upassword條件查詢語句sql語言into :ls_user,:ls_pwdfrom consumerwhere uname=:s_id;if g_user=trim(ls_user) and g_pwd=trin(ls_pwd) then open(w_consunerinain) "用戶登錄 close(w_login1)else g_input_tine=g_input_time+1&

26、quot;登錄次數限制if g_input_time>3 theniiessagebo*訓廿nning?廠密碼輸入錯誤超過三次!") close(w_login1) close(w_welcome)elseiiessagebox兩rnning?,用戶名或密碼輸入有誤!) sle_1.text=,i sle22.text=,<end ifend ifend if“注冊”按鈕代碼:open(忙enroli)打開用戶注冊頁面“退出”按鈕代碼:close (w_loginl)退出木系統(2)制作注冊窗口 w_registor,在“注冊”按鈕的代碼如下:connect using

27、sqlca; nane=trin(sle_1.text) password=trin(sle_2.text) copypassword=trin(sle_8.text) realnane=trin(sle_4.text) if rb 1 .checked=true thensex=a,男"elseif rb_2.checked=true thensex=-iiend ifnumber=trim(sle-5.text) phone=trin(sle_6.text) address=trim(sle_7.text) if nane=iiib or nane=b' thenmess

28、ageboxc*系統提示“,對不起?請輸入用戶名!否則無法注冊?“) sle_1.setfocus() returnend ifselect unameinto :nfrom consumerwhere uname=:name;if sqlca.sqlcode=0 thenmessageboxc-統提示對不起,此用戶名己被注冊?請另選一個試試宀 sle_1.text=,i returnend ifif passwory,or password=' ' thenmessagebox(-系統提示”對不起?請輸入登錄密碼!否則無法注冊 sle_2.setfocus()returnen

29、d ifif copypassword=i,i or copipassword= 1 - thenmessagebox(-系統提示"對不起?請再次輸入登錄密碼!否則無法注冊嚴)sle_8.setfocus()returnend ifif passviordocopypassword thenmessagebox系統提示"對不起?兩次輸入密碼必須一致!否則無法注冊v)sle 8setfocus()returnend ifif realname=,ib, or realnane=i 1 thenmessageboxc*系統提示”,對不起?請輸入真實姓名!否則無法注冊嚴)sle_

30、4.setfocus()returnend ifif nunber=,1-1 or nunber= * * thenmessagebox(-系統提示1對不起?請輸入部門號!否則無法注冊?tsle_5.setfocus()returnend ifselect dnunberinto :nunberlfron departmentwhere dnumber=:numberusing sqlca;if sqlca.sqlcodeoo thenmessagebox(-警告“您輸入的部門號無效?無此部門汁)sle_5.text=,f,sle_5.setfocus()returnend ifinsert

31、into consumer(uname,upassword,urealname,usex,dnumber,uphone,uaddress,subscribenun)ualues(:name,:password9:realname,:sex,:number,:phone,:address90); messagebox(ib系統提示"恭喜!注冊成功!")open(w consumermain)close(w enroll)"取消"按鈕代碼:close(w register)open(w_login)3. 2. 3錄入信息模塊的實現(1)制作管理員主菜單里的錄

32、入報刊信息窗口 w_inputmagazine,錄入用戶信息窗口 winputconsumer,int b selectstring num9nameconnect using sqlca;if di«)n3meib_2" then b_select=nessagebox(-b系統提示"確定刪除所選列? 11,exclamation? ,yesno?) if b_select=1 thendw_1.deleterow(0)end ifend ifif dwo.nane=,b_1,i thendw_1.insertrow(0)end ifif dwon3mwb_3&

33、quot; thendw_1.update()if sqlca.sqlcodeoo thenrollback;messageboxl操作非法! 無法保存! ”); returnelsecommit;nessagebox(-系統提示"信息保存成功嚴) returnend ifend ifif dwo.nane=i,b_4,b then close (vjinputmagazine) end if(2)制作數據窗口 d_consumer, d_magazien在數據窗口調整好外觀,添加控件, 并設定相應的動作,分別放到這兩個窗口中這兩個窗口功能相識,在窗口中輸入:dw 1.settran

34、sobject (sqlca)dw_ 1 retrieve()dw_2 settransobject(sqlca)dw_2 retrieve ()d.magazien (app) (c:doojments and settingsadministrator哀面 資料 報刊訂閱笞理系蜒app.pb!) data window3. 2. 4查詢信息模塊的實現制作管理員主菜單屮的杳詢訂閱信息窗口 w_searchorder,制作數據窗i i dw booksearch,將其放入窗體中,在窗口中輸入代碼:dw_l. settransobject(sqlca)dw_l. retrieve ()sle 1

35、. setfocus()在“檢索”按鈕屮輸入代碼:string number9namelong ll_rowconnect using sqlca;number=trim(sle_1.text)if number=biii or nurnber=* * thenmessageboxf統提示廠請輸入報刊號汁) return end ifselect mnumber9mname into :number,:name from magazien where mnumber=:number; if sqlca .sqlcodeoo thenmessageboxc'系統提示廠無此報刊評)sle_

36、1.text=iiiireturnend ifsle_2.text=namedw_1 setfilter (l,nagazine_nnuinber=11/dw_1 .setfilter(llll*nuinber+1111) dw_1.filter(yll_row=dw_1.retrieue()if ll_row=0 thenmessagebox(m系統提示”廠無記錄嚴) returnend if“返回”按鈕代碼: open(w_ma in) close(w_magaz i nc_query) 數據窗口字段 如下圖:d_magazine_query (app) (c:documents and

37、settingsadministrator桌面資料 報刊訂閱笞理系統 app.pbl(2)按用戶查詢,按鈕代碼如下:string copynumber9namelong ll_rowname=trim(sle_1.text)if name=>>>> or name=' 1 thennessageboxc*系統提示“ j請輸入用戶名? “) return end ifselect unameinto :namefrom consumerwhere uname=:name;if sqlca.sqlcode<>0 thenmessageboxt"

38、系統提示無此用戶? sle_1.text=1111 returnend if/sle_2.text=namedw_1. setfilter (ilconsuner_unane=1 ib+name+ )|/dw_1 setfilterc+number )dw_1filter()ll_row=dw_1.retrieue()if ll_row=0 then messagebox("統提示“j此用戶未訂閱報刊? returnend if返回代碼如下: open(w_main) close(w_consumer_ruery) 數據窗口字段如下:(3)用戶主菜單的查詢訂單窗口 w_consume

39、r_query ,將訂單査找 d_consumor_ruery_c放到窗口里,在窗口中過過濾器篩選中用八自己的訂單信息, 一打開就可以看到白己的訂單信息,窗口代碼:script cb_1 for clicked returns longb_1二| | el clicked () returns long pbm_bnclickedstring copnumber9namelong ll_rownane=trini(sle_1 .text)if namw or nane=, " then messagebox(-系統提示"j請輸入用戶名嚴) returnend ifselec

40、t unameinto :namefrom consumer|where uname=:name;if sqlca.sqlcode<>0 then messageboxt"系統提示"無此用戶嚴) sle_1.text=ibbb returnend if/sle_2.text=nanedw_1 .setfilter(b,consunier_unanie=1 bb+nanie+)/dw_1 setfilter(""+nuinber+"")dw_1.filter(yll_row=dw_1.retrieue()if ll_row=

41、0 then messageboxf系統提示"j此用戶未訂閱報刊嚴) returnend if用戶統計d consumer query c數據窗口如下:用戶查詢atodayov用戶名報刊號報刊名稱訂閱飜 數量header tconsumer_uname1: header group consumer unsmetmagazj ne_mnumbe magazi ne_mn am( subscribe_syear subscribe_sndtuilt1: trailer group con9umer uname jsunwury 1'page 1 + page!) ' o

42、*4 |_j>3. 2. 5統計信息模塊的實現(1)制作管理員主菜單中的統計用戶訂單窗口 w_stat_consumer,統計部門訂單 窗口 w stat department,統計報刊訂單窗口 w statconsumer:制作統計數據窗口 d_consumer_stat , dquerydept , wstat_magazine,將 d_consumer_stat , d_query_dept, w_stat_magazine 分別放入 w_stat_consumer, w_stat_department, w_statconsumer中;以下僅列出按出按部門統計的代碼和界面(按用戶

43、、報刊統計 類似,略);按部門統計代碼:窗口代碼:按部門統計數據窗口:dw_l. settransobject(sqlca)dw_l. retrieve()預覽鍵代碼:(與上頁預覽代碼相同)退出:close (parent)3. 2. 6訂閱報刊模塊的實現(1)用戶主菜單的訂閱報刊窗口 w_userorder該系統小定義了一個全局變量gs.userid,其它窗口界面都可以使用該變量,并顯 示用戶名,用戶登錄后,它會顯示歡迎使用木系統!”的歡迎界血。窗口代碼:dw_l. settransobject(sqlca)dw_l. retrieve ()sle 1. setfocus ()sle_2.

44、text=gs_userid“清空”按鈕代碼:sle_1. text二"sle_3. text=""sle 5. text二"“退出”按鈕代碼:close(wuserorder)“提交”按鈕代碼: cb_1 for clicked returns longstring string| |囪 clicked () returns long pbmbnclicked |name,password ,nagazinenun,magazinenaine,num,ctime ,nunber ,money/4x gs_nane »gs_passworddo

45、uble year int nunb,kindnumdouble halfprice,wholeprice,sumnoney string num1vnane1name=trim(sle_1 .text)/ 將輸入框中賦值 password=trin(sle 5 nagazinenum=trin(sle_2.text)| nagazinenane=trin(sle_6.text) ctine=trim(sle_3.text) number=trim(sle_4.text)所有輸入框不充許為空if nane=l,b, or name=*1 thennessageboxc1系統提示"j對

46、不起?請您輸入用戶名汁) return end ifif password=i,i, or password3" 1 thennessageboxc-系統提示"對不起?請您輸入密碼") return end ifif magazinenane=i-,i or magazinename31 1 thenroessaggbox系統提示"對不起?請輸入報刊名稱! returnend ifif nagazinenum=i,i- or magazinenum=' 1 thennessageboxc*系統提示"對不起?請您輸入報刊號匚 return

47、end ifif ctine=l,m or ctime='' thennessagebox(-統提示対不起?請您輸入訂閱年限?treturnend ifif nunber=>>li or number=> 1 thennessageboxc1系統提示“j對不起?請您輸入數量計) returnend ififor ctine=,b,b or ctirne=,b0.0" or ctine=,0.00" thenmessageboxc1系統提示“請輸入有效數字? ”) sle_3.text=bii,returnelseif ctime=,b0.5

48、b, thenyear=0.5 elseif ctine=,b1m or ctime=,1.0m thenyear=1 0elseif ctine=,b1.5bi thenyear=1.5 elseifor ctine=,'2. o* thenyear=2 0 elseif ctine=,b2.5i, thenyear=2.5elseif ctine=,b3" or ctine="3.0" thenyear=3.0 elseif ctine=,b3.5b1 thenyear=3.5 elseif ctimww or ctine="4.0"

49、; thenyear=4 o elseif ctine=,b4.5b> thenyear=4.5elseif ctine=,b5" or ctine=l,5.0" then1或"并不要超過elsenessagebox(-系統提示"訂閱年限輸入不正確?請按照示例方式輸入: end ifif number=*b0bi thennessageboxc1系統提示"請輸入有效數字汕)sle_4.text=i,t,returnelseif nunber=i,1li thennumb=1elseif nunberst,2b, thennumb=2els

50、eif nunber=b,3i, thennunb=3elseif number=,4i, thennunb=4elseif nunber=i,5i, thennumb=5elsemessagebox(-系統提示"輸入不正確?請按照示例方式輸入:x并不要超過5嚴) returnend ifselect unane,upassword/索用戶,看用戶名和密碼是否和consumer表中看到 into :gs_name,:gspasswordfrom consumerv/here unane=:nane;if sqlca.sqlcodeoo thenmessagebox(-系統提示&quo

51、t;無此用戶?")sle_5.text=,f,sle_1.setfocus()returnend ifif sle_5.text<>trin(gs_password) thenmessagebox (-警告口令錯誤嚴)sle_5.text=i,1'sles.setfocusoreturnend if檢索報刊表中,看是否有此報刊select mnumberinto :numfrom magazienwhere mnunber=:nagazinenun);if sqlca.sqlcodeoo thennessageboxc1系統提示“j無此扌艮刊嚴)sle_2.tex

52、t=,i,returnend if檢索magazine表中相應的價格select mhalfprice,mwholeinto :halfprice 9:v/holepricefrom nagazienwhere mnumber=:magazinenun;檢索數據庫中該報刊的價格條數if sqlca刊“0(1空>6 thennessagebox系統提示"j1該報刊未輸入價格?")returnend ifif year=0.5 or year=1.5 or year=2.5 or year=3.5 or year=4.5 thenif year=0.5 or year=1.5 or year=25 or year=3.5 or year=4.5 then sunnoney=(-9.5+year)*wholeprice+halfprice sumnoney=sumnoney*numbelseif year=1 or year=2 or year=3 or year=4 or year=5 then summoney=year*wholeprice sumfnon

溫馨提示

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

最新文檔

評論

0/150

提交評論