版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 管理信息系統(tǒng)課程設(shè)計</p><p> 網(wǎng)上購書管理信息系統(tǒng)的分析、設(shè)計和實施</p><p><b> 課程設(shè)計目的</b></p><p> 通過數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計的操作與實踐,使學(xué)生了解關(guān)系數(shù)據(jù)庫的相關(guān)理論知識和有關(guān)工具軟件的使用技巧,在一定程度上提高應(yīng)用程序的綜合開發(fā)能力和創(chuàng)新意識、創(chuàng)新能力。開發(fā)一套校園
2、內(nèi)網(wǎng)上購書系統(tǒng),可以讓顧客通過瀏覽器瀏覽網(wǎng)站售書目錄,從而挑選自己滿意的圖書,并下訂單購買。而網(wǎng)站后臺人員需要維護網(wǎng)站會員信息、書籍信息以及訂單信息。本系統(tǒng)的目的就是要開發(fā)一套既方便客戶網(wǎng)上購書,又方便網(wǎng)站維護人員維護網(wǎng)站W(wǎng)EB服務(wù)系統(tǒng)。</p><p><b> 二、課程設(shè)計內(nèi)容</b></p><p><b> 1、題目</b></
3、p><p> 網(wǎng)上購書管理信息系統(tǒng)的分析、設(shè)計和實施</p><p> 2、網(wǎng)上購書管理信息系統(tǒng)初步調(diào)查的資料 </p><p> 現(xiàn)有什么:包括現(xiàn)行網(wǎng)上購書系統(tǒng)的規(guī)模、人力、物力、設(shè)備和技術(shù)條件,機構(gòu)組織、管理體制、工作效率、可靠性等等。在現(xiàn)有資源下能提供什么:即現(xiàn)行網(wǎng)上購書系統(tǒng)能夠提供哪些人力(各種技術(shù)及管理水平的人)物力(多少設(shè)備、房屋)財力(多少錢)、時間
4、(可以給出多長研制時間)等方面的資源,它們對現(xiàn)行系統(tǒng)的情況及新系統(tǒng)的研制持什么態(tài)度?</p><p> 書店管理系統(tǒng)需要滿足來自三個方面需求:第一,書店工作人員通過計算機來管理各類圖書,進行圖書分類編號,調(diào)整圖書結(jié)構(gòu),增加圖書庫存,適應(yīng)讀者的需求。第二,工作人員對讀者的需求情況能作好全面的掌握,及時得到歷史銷售記錄。第三,也是書店的核心工作,對圖書的銷售管理。</p><p><b
5、> 2.1 需求分析</b></p><p> 隨著科學(xué)技術(shù)的不斷提高,計算機網(wǎng)絡(luò)的功能已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。各類學(xué)校的校園網(wǎng)也運行了多年,但還有不少學(xué)校的管理系統(tǒng)缺少統(tǒng)一規(guī)劃,單機運行的信息孤島還為數(shù)不少,所以有必要進一步研究充分利用校園網(wǎng)合理整合原有異構(gòu)數(shù)據(jù)庫,從而建立相關(guān)部門協(xié)同合作的管理系統(tǒng)。本教材管理平臺充分依托校園網(wǎng),實現(xiàn)教材信息的集中管理、分散操作、
6、信息共享,使傳統(tǒng)的教材管理向著數(shù)字化、無紙化、智能化、綜合化的方向發(fā)展,并為進一步實現(xiàn)完善的學(xué)校信息系統(tǒng)打下良好的基礎(chǔ)。學(xué)校通過使用本系統(tǒng),可以實現(xiàn)教材預(yù)定、領(lǐng)取、教材計劃、定單、庫存的自動管理,提高效率,避免出錯。教材管理系統(tǒng)軟件切實推進了教學(xué)管理的信息化。該軟件是以面向?qū)ο缶幊陶Z言為實現(xiàn)語言,其功能在系統(tǒng)內(nèi)部有源代碼直接完成。操作人員只需輸入一些簡單的漢字、數(shù)字,即可完成操作,達到自己的目標(biāo)。大大提高了工作效率,作到信息的規(guī)范管理,
7、科學(xué)統(tǒng)計和快速查詢,讓教材管理處更好的為學(xué)校服務(wù)。</p><p> 2.1.1 用戶角色需求</p><p> 根據(jù)習(xí)慣上教材科的操作方式,整個系統(tǒng)應(yīng)該有三種用戶角色,即教材科人員,普通學(xué)生教師和系統(tǒng)管理員。</p><p> 教材科人員處理訂書領(lǐng)書操作,而不能進入到系統(tǒng)管理的模塊中;學(xué)生教師可以查詢教材信息,不能進入其它任何模塊;系統(tǒng)管理員在后臺對系統(tǒng)進行
8、用戶管理,教材信息管理,并展開系統(tǒng)的正常運行維護工作,但不能進入教材科人員操作模塊。除普通的學(xué)生教師等查詢用戶外,每個角色操作都通過密碼驗證和用戶類型選擇后登錄。通過系統(tǒng)管理員才可以修改密碼。工作完成后,通過各自專門的出口退出登錄狀態(tài)。</p><p> 2.1.2 性能需求</p><p> 整個系統(tǒng)應(yīng)當(dāng)操作簡便,界面友好,維護簡便。數(shù)據(jù)庫要求運行穩(wěn)定,執(zhí)行速度快,數(shù)據(jù)安全性高。軟件
9、系統(tǒng)本身運行對計算機硬件平臺和操作系統(tǒng)平臺要求適中。</p><p><b> 可行性研究</b></p><p> 2.2.1 技術(shù)可行性</p><p> 此次信息系統(tǒng)開發(fā)是對所學(xué)專業(yè)知識的一次綜合應(yīng)用與提高,我們小組可以在電子商務(wù)實驗室完成系統(tǒng)開發(fā)。該機房計算機配置肯定能滿足系統(tǒng)開發(fā)的要求。我們小組可以選定兩三臺計算機,建立系統(tǒng)開發(fā)
10、環(huán)境,主要是安裝數(shù)據(jù)庫工具(MS SQL SERVER 2000),應(yīng)用程序開發(fā)工具(ASP.NET與Visual Studio 2005)。我們小組的部分成員有計算機,小組成員之間可以通過QQ或電話進行即時交流,協(xié)調(diào)開發(fā)工作,解決開發(fā)工作中出現(xiàn)的問題。</p><p> 就技術(shù)力量來說,該學(xué)期,我們小組各成員已經(jīng)學(xué)習(xí)了管理信息系統(tǒng),并且對網(wǎng)絡(luò)技術(shù)和操作系統(tǒng)也有系統(tǒng)的了解,有些成員熟悉計算機原理,能解決常見的硬
11、件故障和硬件選擇。目前,教材管理信息系統(tǒng)已得到了大量應(yīng)用,有許多可供參考的成功系統(tǒng)。而且,網(wǎng)上有許多關(guān)于ASP.NET編程的資料和SQL SERVER方面的資料。 從技術(shù)角度考慮,此信息系統(tǒng)開發(fā)可行。</p><p> 2.2.2 經(jīng)濟可行性</p><p> 目標(biāo)系統(tǒng)開發(fā)需求比較低,加上具有成熟的軟硬件環(huán)境,所以在軟硬件的支出上十分有限。而且,目標(biāo)系統(tǒng)并不是十分的復(fù)雜,開發(fā)的周期較短
12、,人員經(jīng)濟支出有限。當(dāng)系統(tǒng)開發(fā)完實際運行后,將很大程度上提高計算機的功能,在為使用者帶來便利的同時,也為系統(tǒng)的進一步推廣創(chuàng)造了條件。這帶來的經(jīng)濟回報將遠超過支出,并且最重要的一點是該軟件的開發(fā)可以給我們對系統(tǒng)的開發(fā)有個全面的認識。從經(jīng)濟角度考慮,此信息系統(tǒng)開發(fā)可行。</p><p> 2.2.3 法律上的可行性</p><p> 整個系統(tǒng)由于是自行開發(fā),自行使用,所以系統(tǒng)本身不存在法律
13、上的版權(quán)爭議。在服務(wù)器軟件方面,應(yīng)該使用正版軟件,因為整個系統(tǒng)盡管是開發(fā)給內(nèi)部使用,但它畢竟很多部分還是要依靠Internet的,一旦服務(wù)器連接到Internet上,它的操作系統(tǒng)可能會被Microsoft跟蹤,如果不是正版軟件,將不得不面臨民事訴訟的風(fēng)險。</p><p><b> 三、課程設(shè)計要求</b></p><p><b> 1、系統(tǒng)分析報告&l
14、t;/b></p><p> (1)現(xiàn)行系統(tǒng)的業(yè)務(wù)流程圖</p><p><b> 2、數(shù)據(jù)流程圖</b></p><p><b> 3、數(shù)據(jù)項</b></p><p> (4)新系統(tǒng)的邏輯模型</p><p> (2)數(shù)據(jù)流程圖和數(shù)據(jù)字典</p>
15、<p> a)第一層數(shù)據(jù)流程圖</p><p><b> b)第二層數(shù)據(jù)流圖</b></p><p><b> c)第三層數(shù)據(jù)流圖</b></p><p><b> 數(shù)據(jù)字典</b></p><p><b> 2、新系統(tǒng)分析報告</b&g
16、t;</p><p> 2、1系統(tǒng)總體結(jié)構(gòu)設(shè)計</p><p> 系統(tǒng)總體結(jié)構(gòu)設(shè)計是根據(jù)信息分析數(shù)據(jù)流程圖的結(jié)果,按照結(jié)構(gòu)化的系統(tǒng)設(shè)計方法而進行的。結(jié)構(gòu)化設(shè)計的基礎(chǔ)是模塊化。在線購書系統(tǒng)的功能結(jié)構(gòu)圖如圖4-1所示:</p><p> 圖10 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 對該功能結(jié)構(gòu)圖的具體論述如下:</p>&l
17、t;p><b> 用戶管理模塊</b></p><p> 用戶注冊,登錄:用戶需輸入基本的用戶名和密碼,還可再完善輸入其他電話,電子郵件,住址等信息</p><p> ?、?用戶信息修改:用戶可以修改自己的個人信息和密碼及其他相關(guān)信息;</p><p> ?、?用戶信息查看:會員可以查看自己的個人信息。</p><
18、p> 用戶查看訂單:用戶可以查看已經(jīng)生成的訂單信息,并進行一些操作</p><p> 發(fā)表評論:用戶可以對書籍發(fā)表評論信息。</p><p><b> 書籍管理模塊</b></p><p> 書籍瀏覽:用戶可以對所有書籍進行瀏覽</p><p> 書籍更新:只有管理員可以對所有書籍進行添加、刪除、更新等操
19、作</p><p> 書籍搜索:可以輸入查詢條件退書籍進行搜索</p><p><b> 購物車模塊</b></p><p> 更新購物車:用戶可以查看購物車中的書籍信息,并可以添加和刪除購物車中書籍。</p><p> 查看購物車:用戶可以隨時查看購物車中的信息,包括書籍信息,價格信息等</p>
20、<p> 生成訂單:用戶可以確定購物中需購物的書籍,然后下訂單,生成訂單信息。 </p><p><b> 管理員模塊</b></p><p> 用戶管理:對用戶的信息進行審核,對不符合者進行刪除,也可以根據(jù)客戶的需要對它的基本信息進行修改;</p><p> 庫存管理:可以查看各書籍的庫存量,并可以隨時更新庫存信息。<
21、/p><p> 訂單處理:對用戶的訂單進行處理。</p><p> 評論管理:對用戶的評論信息的一些操作</p><p> 2.2 代碼設(shè)計</p><p><b> 信息代碼設(shè)計及描述</b></p><p> 2.3 數(shù)據(jù)庫設(shè)計</p><p> 數(shù)據(jù)庫
22、設(shè)計主要是進行數(shù)據(jù)庫的邏輯設(shè)計,即將數(shù)據(jù)按一定的分類、分組系統(tǒng)和邏輯層次組織起來,是面向用戶的。數(shù)據(jù)庫設(shè)計是需要綜合企業(yè)各個部門的存檔數(shù)據(jù)和數(shù)據(jù)需求,分析各個數(shù)據(jù)之間的關(guān)系,按照DBMS提供的功能和描述工具,設(shè)計出規(guī)模適當(dāng)、正確反映數(shù)據(jù)關(guān)系的、數(shù)據(jù)冗余少、存取效率高、能滿足多種查詢要求的數(shù)據(jù)模型。</p><p> 2.3.1數(shù)據(jù)庫的概念設(shè)計</p><p> 概念設(shè)計是整個數(shù)據(jù)庫設(shè)計
23、的關(guān)鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。其主要工作就是設(shè)計概念模型,該模型能將用戶的數(shù)據(jù)明確的表達出來。概念模型是一種面向問題的模型,它反映了用戶的實現(xiàn)環(huán)境,并指出了從用戶角度看到的數(shù)據(jù)庫,它是處理多種應(yīng)用數(shù)據(jù)的方法的組合。概念模型與單獨的應(yīng)用無關(guān),與數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫的實現(xiàn)無關(guān),因此,它是用戶與設(shè)計人員之間的橋梁,它既是明確表達用戶需求的一個模型,又是設(shè)計數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。</p&g
24、t;<p> 概念模型的設(shè)計方法有多種,其中實體—聯(lián)系模型(E—R模型)是一個典型代表,它是描述現(xiàn)實世界的一個簡明而有利的工具。</p><p> 2.3.2實體-聯(lián)系圖</p><p> 該系統(tǒng)的全局實體-聯(lián)系圖如圖4-2所示:</p><p> 圖11 全局E-R圖</p><p> 其中各個實體的屬性顯示如下:
25、</p><p><b> 圖12用戶實體</b></p><p><b> 圖13書籍實體</b></p><p><b> 圖14類目實體</b></p><p><b> 圖15評論實體</b></p><p><
26、;b> 圖16訂單實體</b></p><p> 2.3.3數(shù)據(jù)庫的邏輯設(shè)計</p><p> 邏輯設(shè)計的主要任務(wù)就是設(shè)計數(shù)據(jù)的結(jié)構(gòu),即按照數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)模型,轉(zhuǎn)換已設(shè)計的概念模型,實質(zhì)上是把概念模型(即E-R模型)轉(zhuǎn)換為所選用的DBMS所支持的模式。</p><p> 邏輯設(shè)計的主要目的是保證數(shù)據(jù)共享,消除數(shù)據(jù)冗余,實現(xiàn)數(shù)據(jù)的邏
27、輯獨立性,易懂易用,有利于數(shù)據(jù)的完整性及安全性控制,且盡量降低開銷。</p><p> 邏輯設(shè)計過程主要是把概念設(shè)計階段的概念模型轉(zhuǎn)化為數(shù)據(jù)庫所能識別的表模型,也即數(shù)據(jù)庫模式設(shè)計。</p><p> 關(guān)系模型的特點之一是概念的單一性。無論是實體還是實體間的聯(lián)系都用關(guān)系來表示。關(guān)系這個特點使得轉(zhuǎn)換工作比較直接。具體的轉(zhuǎn)換原則如下:</p><p> ?。?)一個實
28、體轉(zhuǎn)換為一個關(guān)系模式,實體的屬性就是關(guān)系的屬性,實體的關(guān)鍵字就是關(guān)系的關(guān)鍵字。</p><p> ?。?)一個1:1的聯(lián)系轉(zhuǎn)換為一個關(guān)系。每個實體的關(guān)鍵字都是關(guān)系的候選關(guān)鍵字。</p><p> ?。?)一個1:n的聯(lián)系轉(zhuǎn)換為一個關(guān)系。多個實體的關(guān)鍵字是關(guān)系的關(guān)鍵字。</p><p> ?。?)一個n:m的聯(lián)系轉(zhuǎn)換為一個關(guān)系。聯(lián)系中的各實體關(guān)鍵字的組合組成關(guān)系的關(guān)鍵
29、字(組合關(guān)鍵字)。</p><p> ?。?)具有相同關(guān)鍵字的關(guān)系可以合并。</p><p> 根據(jù)上述規(guī)則,對圖所示的E-R圖進行轉(zhuǎn)換,可以得到各“關(guān)系”(帶“—”的為關(guān)鍵字,“﹏﹏”的為外部關(guān)鍵字):</p><p> 用戶(用戶id,用戶名,密碼,角色,電子郵件,地址,郵編,電話,信用卡號,信用卡類型,信用卡過期時間)</p><p&g
30、t; 書籍(書籍id,類目id,書名,描述,圖標(biāo),庫存,單價)</p><p> 類目表(類目id,類目名,圖標(biāo),描述)</p><p> 訂單(訂單id,用戶id,書籍id,訂單中分項號,數(shù)量,狀態(tài))</p><p> 評論(評論id,用戶id,書籍id,評論內(nèi)容,評論時間)</p><p> 具體的數(shù)據(jù)庫表如下。</p&g
31、t;<p> ?。?)用戶表(User)</p><p> 用戶表主要是記錄用戶的基本信息,包括用戶名、密碼等信息,如表3-1所示。</p><p> 表2用戶(User)</p><p> ?。?)書籍表(book)</p><p> 書籍表主要是記錄了書籍的相關(guān)信息,如書籍名、書籍描述等,如表3-2所示。</p&
32、gt;<p> 表3書籍表(book)</p><p> ?。?)類目表(category)</p><p> 類目表主要是記錄了書籍的類目、描述等信息,如表3-3所示。</p><p> 表4類目表(category)</p><p> ?。?)訂單表(order)</p><p> 訂單表主要
33、記錄了購買書籍后的記錄,包括價格、數(shù)量等,如表3-4所示。</p><p> 表5訂單表(order)</p><p> ?。?)評論表(comment) </p><p> 評論表記錄了用戶對書籍的評論信息,如表3-5所示。</p><p> 表6評論表(comment)</p><p> 2.3.4數(shù)據(jù)庫物
34、理設(shè)計</p><p> 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計的主要任務(wù)是:對數(shù)據(jù)庫中的數(shù)據(jù),在物理設(shè)備上的存放結(jié)構(gòu)和存取方法進行設(shè)計,索引的設(shè)計等。數(shù)據(jù)庫的物理結(jié)構(gòu)依賴于確定的計算機系統(tǒng),并于選用的DBMS密切相關(guān)。物理設(shè)計的任務(wù)是為了有效的實現(xiàn)邏輯模式,確定所采取的存儲策略。此階段以邏輯設(shè)計的結(jié)果作為輸入,結(jié)合具體DBMS的特點與存儲設(shè)備特性進行設(shè)計,選定數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法。</p><
35、;p> 2.4 輸出設(shè)計</p><p> ?。?)輸出設(shè)計的內(nèi)容</p><p> 輸出設(shè)計的內(nèi)容包括:有關(guān)輸出信息使用方面的內(nèi)容;輸出方式;輸出設(shè)備;輸出介質(zhì)。</p><p> (2)輸出設(shè)計的方法</p><p> 在系統(tǒng)設(shè)計階段,設(shè)計人員應(yīng)給出系統(tǒng)輸入的說明,這個說明既是將來編程人員在軟件開發(fā)中進行實際輸出設(shè)計的
36、依據(jù),也是用戶評價系統(tǒng)實用性的依據(jù)。因此,設(shè)計人員要選擇合適的輸出方式,并以清楚的方式表達出來。輸出形式主要有報表信息和圖形化信息。</p><p> 本系統(tǒng)的輸出為表格形式,主要包括用戶信息,書籍信息和訂單信息。</p><p> 2.5 輸入設(shè)計</p><p> 輸入設(shè)計的目標(biāo)是保證向系統(tǒng)輸入正確的數(shù)據(jù)。</p><p>
37、 輸入設(shè)計的原則。輸入設(shè)計應(yīng)遵循以下原則:</p><p> 最小量原則:這是指在保證滿足處理要求的前提下使輸人量最小。由于數(shù)據(jù)輸入與計算機處理比較起來相對慢,在數(shù)據(jù)錄入時,系統(tǒng)大多數(shù)時間都處于等待狀態(tài),系統(tǒng)效率將顯著降低;同時,數(shù)據(jù)錄入工作一般需要人的參與,大量的數(shù)據(jù)錄入往往浪費很多的人力資源,增加系統(tǒng)的運行成本。因此,輸入量越少,出錯機會越少,花費時間越少,數(shù)據(jù)一致性越好。</p><p
38、> 簡單性原則:輸入的準(zhǔn)備、輸入過程應(yīng)盡量容易,以減少錯誤的發(fā)生。這主要是因為輸入設(shè)計在為用戶提供糾錯和輸入校檢的同時,就保證了輸入過程簡單易用,就保證了不會因為差錯,糾錯而使輸入復(fù)雜化,增加用戶負擔(dān)。</p><p> 早檢驗原則:對輸人數(shù)據(jù)的檢驗盡量接近原數(shù)據(jù)發(fā)生點,使錯誤能及時得到改正。因此輸入設(shè)計中應(yīng)采用多種輸入校檢方法和有效性驗證技術(shù),以減少輸入錯誤。</p><p>
39、 少轉(zhuǎn)換原則:輸入數(shù)據(jù)盡量用其處理所需形式記錄,減少不必要的輸入步驟,當(dāng)步驟不能省時,應(yīng)仔細驗證現(xiàn)有步驟是否完備,以免數(shù)據(jù)轉(zhuǎn)換介質(zhì)時發(fā)生錯誤。本系統(tǒng)的主要輸出為文本形式。</p><p><b> 輸入格式設(shè)計</b></p><p> 輸入格式的設(shè)計一般是指數(shù)據(jù)錄入人員在終端屏幕上看到的憑證格式。其設(shè)計格式的原則是使錄入人員能方便的輸入數(shù)據(jù),盡量避免操作失誤。
40、</p><p> 本系統(tǒng)中主要輸入方式方式為鍵盤輸入,主要輸入的內(nèi)容為用戶信息,書籍信息。</p><p><b> 3、系統(tǒng)實施</b></p><p> §3、1 數(shù)據(jù)庫連接</p><p> 本軟件使用 ODBC 連接數(shù)據(jù)庫,基本思想為為數(shù)據(jù)庫中每個表建立一個 RecordSet 類,<
41、/p><p> 當(dāng)要對表中數(shù)據(jù)進行操作時,創(chuàng)建相關(guān)記 錄集,即可引用類中的響應(yīng)函數(shù)進行添加、修改 、</p><p> 刪除、查詢等操作。 </p><p><b> §3、2主界面</b></p><p> 主界面中顯示顧客登錄、管理員登錄和顧客 注冊三個按鈕,顧客輸入登錄名和密碼后點</p>
42、<p> 擊顧客登錄后進入顧客查詢界面,管理員 輸入登錄名和密碼后點擊管理員登錄后進入管理 界</p><p> 面,若是新顧客,直接點擊注冊即可進入注 冊界面,各對話框之間的連接通過 DoModal()函</p><p> 數(shù)實現(xiàn),若需要進行身份驗證,未輸入用 戶名或密碼則將彈出提示對話框“請輸入用戶名 和</p><p> 密碼!”,輸入后
43、系統(tǒng)將進入相應(yīng)的數(shù)據(jù) 庫表查詢是否有此信息,若無對應(yīng)信息則彈出對 話框</p><p> 提示輸入信息錯誤,信息正確方可進入下 一界面,如顧客登錄時,系統(tǒng)使用以下代碼完成 身</p><p> 份驗證功能,同時記錄下用戶信息以便加入訂單: </p><p> //生成查詢用戶賬號和密碼的 SQL 語句 </p><p> mSqlSt
44、r= "select * from customer where cno='"; </p><p> mSqlStr=mSqlStr + m_no; </p><p> mSqlStr=mSqlStr + "'and cpass='"; </p><p> mSqlStr=mSqlStr + m_
45、password; </p><p> mSqlStr=mSqlStr + "'"; </p><p> if(!customer.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr)) </p><p><b> {</b></p><p> AfxMessag
46、eBox("customer 表打開失敗!"); </p><p><b> return; </b></p><p><b> }</b></p><p> if(!customer.IsBOF()) </p><p><b> { </b><
47、;/p><p> //Open all function for user </p><p> m_customer_no=customer.m_cno; </p><p> m_customer_name=customer.m_cname; </p><p> m_customer_phone=customer.m_cphone; &l
48、t;/p><p> m_customer_add=customer.m_cadd; </p><p> AfxMessageBox("密碼正確,歡迎登錄!"); </p><p> EndDialog(IDCANCEL); </p><p><b> Cgkcx a; </b></p>
49、<p> a.DoModal(); </p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> AfxMessageBox("密碼輸入錯誤!!");
50、 </p><p><b> return; </b></p><p><b> }</b></p><p><b> §3、3添加功能 </b></p><p> 本軟件的添加功能使用 AddNew()函數(shù),應(yīng)用在顧客注冊、顧客購書、管理員添加新書
51、等</p><p><b> 模塊。 </b></p><p> 1)顧客注冊:新顧客在主界面中點擊注冊后即可進入注冊界面填寫自己的各項信息,完</p><p> 成后點擊確定,信息添加到 customer 表中,并利用觸發(fā)器自動生成顧客編號作為登錄名。相</p><p><b> 關(guān)代碼如下: <
52、;/b></p><p> setcustomer c; </p><p> c.Open(); </p><p> c.AddNew(); </p><p> UpdateData(TRUE); </p><p> if(m_name.IsEmpty()||m_phone.IsEmpty()||m_a
53、dd. IsEmpty()||m_password.IsEmpty()||m_mima</p><p> .IsEmpty()) </p><p><b> { </b></p><p> MessageBox("請輸入全部信息!"); </p><p><b> return; &
54、lt;/b></p><p><b> } </b></p><p> if(m_password!=m_mima) </p><p><b> { </b></p><p> MessageBox("密碼錯誤,請確認!"); </p><p&g
55、t;<b> return; </b></p><p><b> } </b></p><p> c.m_cpass=m_password; </p><p> c.m_cname=m_name; </p><p> if(m_sex==0)</p><p> c
56、.m_csex="男"; </p><p> else c.m_csex="女"; </p><p> c.m_cage=m_age; </p><p> c.m_cphone=m_phone; </p><p> c.m_cadd=m_add; </p><p> c
57、.m_cpass=m_password; </p><p> if(m_sex==0)</p><p> c.m_csex="男"; </p><p> else c.m_csex="女"; </p><p> c.Update(); </p><p> c.Reque
58、ry(); </p><p> m_customer_zhanghao=c.m_cno; </p><p> UpdateData(FALSE); </p><p> m_customer_xingming=m_name; </p><p> m_customer_mima=m_password; </p><p&
59、gt; EndDialog(IDCANCEL); </p><p><b> Cxxqr a; </b></p><p> a.DoModal(); </p><p> 2)顧客購書:顧客在查詢界面中選擇想要購買的圖書后點擊購買可進入購買界面,選擇</p><p> 付款方式、送貨方式并確認后,相關(guān)信息添加到
60、orders 表中,并利用觸發(fā)器自動生成訂單號。</p><p><b> 相關(guān)代碼如下: </b></p><p> Csetorders order; </p><p> setbook book; </p><p> order.Open(); </p><p> order.Ad
61、dNew(); </p><p> UpdateData(TRUE); </p><p> if(m_zhifu==0)</p><p> order.m_opay="網(wǎng)銀支付"; </p><p> else order.m_opay="貨到付款"; </p><p>
62、 if(m_songhuo==0 )</p><p> order.m_oconvey="快遞"; </p><p> else order.m_oconvey="EMS"; </p><p> order.m_bno=m_book_no; </p><p> order.m_cadd=m_c
63、ustomer_add; </p><p> order.m_cname=m_customer_name; </p><p> order.m_cno=m_customer_no; </p><p> order.m_cphone=m_customer_phone; </p><p> order.Update(); </p&g
64、t;<p> order.Requery(); </p><p> m_order_no=order.m_ono; </p><p> book.Open(); </p><p> book.Edit(); </p><p> book.m_bstock--; </p><p> book.U
65、pdate(); </p><p> book.Requery();</p><p> book.Close(); </p><p> UpdateData(FALSE); </p><p> CString temp; </p><p> temp .Format("購買成功!"); &
66、lt;/p><p> AfxMessageBox(temp); </p><p> EndDialog(IDCANCEL); </p><p><b> Cgkcx a; </b></p><p> a.DoModal(); </p><p> 3)管理員添加新書:管理員在管理界面中輸入各項
67、信息后點擊添加,圖示信息即可被添</p><p> 加到 book 表中,相關(guān)代碼如下: </p><p> setbook a,b; </p><p> a.Open(); </p><p> a.AddNew(); </p><p> UpdateData(TRUE); </p><p
68、> if(m_no.IsEmpty()||m_kind.IsEmpty()||m_name.IsEmpty()||m_price.IsEmpty()||m_intro.IsEmpt</p><p> y()||m_dis==0||m_stock==0) </p><p> { MessageBox("請輸入全部信息!"); </p><
69、;p><b> return; </b></p><p><b> } </b></p><p> if(b.IsOpen()) b.Close(); </p><p> if(m_no!=_T("")) </p><p><b> { </b&g
70、t;</p><p> b.m_strFilter.Format("bno='%s'",m_no); </p><p> b.Open(); </p><p> if(b.m_bno!=_T("")) </p><p><b> { </b></p&g
71、t;<p> MessageBox("已經(jīng)有這條記錄了!"); </p><p><b> return; </b></p><p><b> } </b></p><p><b> } </b></p><p> a.m_bno=m
72、_no; </p><p> a.m_bkind=m_kind; </p><p> a.m_bname=m_name; </p><p> a.m_bprice=m_price;</p><p> a.m_bintro=m_intro; </p><p> a.m_bdis=m_dis;</p>
73、<p> a.m_bstock=m_stock; </p><p> CString aa,bb; </p><p> m_list.InsertItem(0,a.m_bno,0); </p><p> m_list.SetItemText(0,1,a.m_bkind); </p><p> m_list.SetIte
74、mText(0,2,a.m_bname); </p><p> m_list.SetItemText(0,3,a.m_bprice); </p><p> m_list.SetItemText(0,4,a.m_bintro); </p><p> aa.Format("%d",a.m_bdis); </p><p>
75、 m_list.SetItemText(0,5,aa); </p><p> bb.Format("%d",a.m_bstock); </p><p> m_list.SetItemText(0,6,bb); </p><p> a.Update(); </p><p> a.Requery(); </p&
76、gt;<p> UpdateData(FALSE); </p><p> a.Close(); </p><p><b> §3、4修改功能</b></p><p> 修改功能使用 Edit()函數(shù),主要應(yīng)用在管理員對圖書信息的修改方面,其中圖書編號不可</p><p> 修改,若修改則
77、出現(xiàn)錯誤提示,相關(guān)代碼如下: </p><p> setbook a; </p><p> a.Open(); </p><p> a.Edit(); </p><p> UpdateData(TRUE); </p><p> if(m_no.IsEmpty()) </p><p>
78、 { MessageBox(" 請選擇圖書!"); </p><p><b> return; </b></p><p><b> } </b></p><p> if(no!=m_no) </p><p><b> { </b></p
79、><p> MessageBox("圖書編號不允許修改!"); </p><p><b> return; </b></p><p><b> } </b></p><p> m_list.DeleteAllItems(); </p><p> a.
80、m_bkind=m_kind; </p><p> a.m_bname=m_name; </p><p> a.m_bprice=m_price;</p><p> a.m_bintro=m_intro; </p><p> a.m_bdis=m_dis;</p><p> a.m_bstock=m_stoc
81、k; </p><p> CString aa,bb; </p><p> m_list.InsertItem(0,a.m_bno,0); </p><p> m_list.SetItemText(0,1,a.m_bkind); </p><p> m_list.SetItemText(0,2,a.m_bname); </p&g
82、t;<p> m_list.SetItemText(0,3,a.m_bprice); </p><p> m_list.SetItemText(0,4,a.m_bintro); </p><p> aa.Format("%d",a.m_bdis); </p><p> m_list.SetItemText(0,5,aa);
83、</p><p> bb.Format("%d",a.m_bstock); </p><p> m_list.SetItemText(0,6,bb); </p><p> a.Update(); </p><p> a.Requery(); </p><p> UpdateData(FAL
84、SE); </p><p> a.Close(); </p><p><b> §3、5刪除功能 </b></p><p> 刪除功能使用 Delete()函數(shù),應(yīng)用在管理員對圖書信息的刪除及查看訂單后發(fā)貨方面: </p><p> 1)圖書信息刪除:管理員查找到要刪除的圖書后選中,點擊刪除按
85、鈕即可將 book 表中</p><p> 該圖書信息刪除,相關(guān)代碼如下: </p><p> UpdateData(TRUE); </p><p> int n=m_list.GetSelectionMark(); </p><p> setbook b;</p><p> if(m_no.IsEmpty(
86、)) </p><p><b> { </b></p><p> MessageBox("請選擇圖書!"); </p><p><b> return; </b></p><p><b> } </b></p><p> b
87、.m_strFilter.Format("bno='%s'",m_no); </p><p> b.Open(); </p><p> if(b.IsEOF()) </p><p><b> { </b></p><p> MessageBox("沒有此記錄!&quo
88、t;); </p><p><b> return; </b></p><p><b> } </b></p><p> b.Delete(); </p><p> m_list.DeleteItem(n); </p><p> b.Close(); </p&
89、gt;<p> 2)發(fā)貨:管理員查看訂單后選中要發(fā)送的圖書,點擊發(fā)貨即可在 o rders 表中將該訂單刪</p><p> 除,相關(guān)代碼如下: </p><p> int n=m_list.GetSelectionMark(); </p><p> //創(chuàng)建訂單記錄集 </p><p> Csetorders ord
90、er;</p><p> if(m_ono.IsEmpty()) </p><p><b> {</b></p><p> MessageBox("請選擇訂單!"); </p><p><b> return; </b></p><p><b
91、> } </b></p><p> order.m_strFilter.Format("ono='%s'",m_ono); </p><p> order.Open(); </p><p> if(order.IsEOF()) </p><p><b> { </
92、b></p><p> MessageBox("沒有此記錄!"); </p><p><b> Return;</b></p><p><b> } </b></p><p> while(!order.IsEOF()) </p><p>
93、<b> { </b></p><p> order.Delete(); </p><p> order.MoveNext(); </p><p><b> } </b></p><p><b> //關(guān)閉記錄集 </b></p><p>
94、order.Close(); </p><p> m_list.DeleteItem(n); </p><p> UpdateData(FALSE); </p><p><b> §3、6查詢功能 </b></p><p> 查詢功能應(yīng)用于顧客購書前對書籍的查詢和管理員對書籍的查詢,以顧客查詢
95、為例,顧</p><p> 客查詢可按照圖書編號、圖書類別、圖書 名稱、折扣額度等四種方式,其中圖書類別和圖 書</p><p> 名稱都可實現(xiàn)模糊查詢,在相關(guān)表中查找 到正確信息后顯示在列表框內(nèi),以圖書名稱和折 扣</p><p> 額度為例,相關(guān)代碼如下: </p><p> UpdateData(TRUE); </p>
96、;<p> setbook book; </p><p> if(m_fangshi!=0&&m_fangshi!=1&&m_fangshi!=2&&m_fangshi!=3) </p><p><b> { </b></p><p> AfxMessageBox("
97、;請選擇查詢類別!"); </p><p><b> return; </b></p><p><b> } </b></p><p> //出現(xiàn)問題:不能讀取 m_kind,原因:IsEmpty()少了小括號 </p><p> if(m_fan gshi==1) </p&
98、gt;<p><b> { </b></p><p> if(m_name.IsEmpty()) </p><p><b> { </b></p><p> AfxMessageBox("請輸入圖書名稱!"); </p><p><b> ret
99、urn; </b></p><p><b> } </b></p><p> setbook book; </p><p> if(book.IsOpen()) book.Close(); </p><p> CString tmp; </p><p> tmp.Format
100、("%%%s%% ",m_name); </p><p> m_name=tmp; </p><p> book.m_strFilter.Format("bname LIKE '%s'",m_name); </p><p> book.Open(); </p><p> m_li
101、st.DeleteAllItems(); </p><p> int i=0; } </p><p> if(book.IsEOF()) </p><p><b> { </b></p><p> MessageBox(" 目前暫沒有您要的書目!"," 提示&q
102、uot;,MB_OK); </p><p><b> return; </b></p><p><b> } </b></p><p> while(!book.IsEOF()) </p><p><b> { </b></p><p> CS
103、tring aa,bb; </p><p> m_list.InsertItem(i,book.m_bno,0); </p><p> m_list.SetItemText(i,1,book.m_bkind); </p><p> m_list.SetItemText(i,2,book.m_bname); </p><p> m_li
104、st.SetItemText(i,3,book.m_bprice); </p><p> m_list.SetItemText(i,4,book.m_bintro); </p><p> aa.Format("%d",book.m_bdis); </p><p> m_list.SetItemText(i,5 ,aa); </p>
105、;<p> bb.Format("%d",book.m_bstock); </p><p> m_list.SetItemText(i,6,bb); </p><p><b> i++; </b></p><p> book.MoveNext(); </p><p><b&
106、gt; } </b></p><p><b> }</b></p><p> if(m_fan gshi==3) </p><p><b> { </b></p><p> if(m_dis==0) </p><p><b> { </
107、b></p><p> AfxMessageBox("請輸入查詢內(nèi)容!"); </p><p><b> return; </b></p><p><b> } </b></p><p> if(book.IsOpen()) book.Close(); </p
108、><p> book.m_strFilter.Format("bdis<='%d'",m_dis); </p><p> book.Open(); </p><p> m_list.DeleteAllItems(); </p><p><b> int i=0; </b>&l
109、t;/p><p> if(book.IsEOF()) </p><p><b> { </b></p><p> MessageBox(" 目前暫沒有您要的書目!"," 提示",MB_OK); </p><p><b> return; <
110、/b></p><p><b> } </b></p><p> while(!book.IsEOF()) </p><p><b> { </b></p><p> CString aa,bb; </p><p> m_list.InsertItem(i,b
111、ook.m_bno,0); </p><p> m_list.SetItemText(i,1,boo k.m_bkind); </p><p> m_list.SetItemText(i,2,boo k.m_bname); </p><p> m_list.SetItemText(i,3,boo k.m_bprice); </p><p&g
112、t; m_list.SetItemText(i,4,boo k.m_bintro); </p><p> aa.Format("%d",book.m_bdis); </p><p> m_list.SetItemText(i, 5,aa); </p><p> bb.Format("%d",book.m_bstock)
113、; </p><p> m_list.SetItemText(i,6,bb); </p><p><b> i++; </b></p><p> book.MoveNext(); </p><p><b> }</b></p><p><b> } <
114、;/b></p><p><b> §3、6顯示功能</b></p><p> 在本軟件中多次將信息顯示在列表框中,以圖書信息管理界面中顯示圖書信息為例,相</p><p><b> 關(guān)代碼如下: </b></p><p> BOOL Cxsrk::OnInitDialog(
115、) </p><p> { CDialog::OnInitDialog(); </p><p> DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES </p><p> |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLI
116、CKACTIVATE | LVS_EX_UNDERLINEHOT; </p><p> m_list.SetExtendedStyle(dwExStyle); </p><p> m_list.InsertColumn(0,"編號",LVCFMT_CENTER,50,0); </p><p> m_list.InsertColumn(1,&
117、quot;類別",LVCFMT_CENTER,100,0); </p><p> m_list.InsertColumn(2,"名稱",LVCFMT_CENTER,200,0); </p><p> m_list.InsertColumn(3,"價格",LVCFMT_CENTER,60,0); </p><p>
118、 m_list.InsertColumn(4,"簡介",LVCFMT_CENTER,200,0); </p><p> m_list.InsertColumn(5,"折扣",LVCFMT_CENTER,50,0); </p><p> m_list.InsertColumn(6,"庫存",LVCFMT_CENTER,50,0
119、); </p><p> setbook a; </p><p><b> a.Open();</b></p><p><b> int i=0;</b></p><p> while(!a.IsEOF())</p><p> { CString aa,bb; &l
120、t;/p><p> m_list.InsertItem(i,a.m_bno,0); </p><p> m_list.SetItemText(i,1,a.m_bkind); </p><p> m_list.SetItemText(i,2,a.m_bname); </p><p> m_list.SetItemText(i,3,a.m_b
121、price); </p><p> m_list.SetItemText(i,4,a.m_bintro); </p><p> aa.Format("%d",a.m_bdis); </p><p> m_list.SetItemText(i,5,aa); </p><p> bb.Format("%d&q
122、uot;,a.m_bstock); </p><p> m_list.SetItemText(i,6,bb); </p><p><b> i++; </b></p><p> a.MoveNext(); </p><p> }a.Close(); </p><p> return TR
123、UE; // return TRUE unless you set the focus to a control </p><p><b> }</b></p><p> 第五章 調(diào)試過程中的問題及系統(tǒng)測試情況</p><p> §5.1主界面展示 </p><p> 主界面如下圖 4.1 所示,有
124、“顧客登錄”,“管理員登錄”和“現(xiàn)在注冊”三個按鈕: </p><p> 圖 5.1 主界面 </p><p> 顧客輸入正確的登錄名和密碼后點擊確定即可進入顧客查詢界面,如下圖 5.2 所示: </p><p><b> 、</b></p><p> 圖 5.2 顧客查詢界面 </p><
125、;p> 管理員輸入正確的登錄名和密碼后點擊確定即可進入管理界面,如下圖 5.3 所示: </p><p> 圖 5.3 管理內(nèi)容選擇界面 </p><p> 新顧客點擊“現(xiàn)在注冊”即可進入注冊界面,如下圖 5.4 所示: </p><p> 圖 5.4 顧客注冊界面 </p><p> §5.2添加功能展示 &l
126、t;/p><p> 5.2.1 顧客注冊 </p><p> 顧客在如上圖 4.4 所示的顧客注冊界面中輸入各項信息且兩次輸入相同密碼后點擊確定,</p><p> 系統(tǒng)自動生成顧客編號作為登錄名,和密碼等顯示給顧客,如下圖 5.5 所示: </p><p> 圖 5.5 注冊信息確認界面 </p><p>
127、 5.2.2 顧客購書 </p><p> 顧客在如圖 4.3 所示的查詢界面中查到滿意的圖書后點擊購買,即可進入購買圖書界面,</p><p> 確認圖書并選擇付款方式和送貨方式,如下圖 4.6 所示: </p><p> 圖 5.6 購買圖書界面 </p><p> 5.2.3 添加新書 </p><p
128、> 管理員在如圖 4.3 所示的管理界面中選擇“書籍信息管理”,進入如下圖 5.7 所示的書籍</p><p><b> 信息管理界面: </b></p><p> 圖 5.7 書籍信息管理界面 </p><p> 在編輯框中輸入各項信息后點擊“添加”,即可成功添加圖書信息,如下圖 4.8 所示: </p>&l
129、t;p> 圖 4.8 添加圖書 </p><p> §5.3修改功能展示</p><p> 管理員在如圖 5.7 所示的書籍信息管理界面中選中要修改的圖書,相關(guān)各項信息即可顯示</p><p> 在下方的編輯框中,在編輯框中修改信息后點擊“修改”即可成功修改 book 表中圖書信息,</p><p> 如下圖 5.
130、9 所示: </p><p> 圖 5.9 修改圖書信息 </p><p> §5.4刪除功能展示</p><p> 5.4.1 圖書信息刪除 </p><p> 管理員在如圖 5.7 所示的書籍信息管理界面中選中要刪除的圖書,點擊刪除按鈕即可刪除</p><p> 該圖書,如下圖 5.10 所示
131、</p><p> 圖 5.10 刪除圖書 </p><p> 點擊確定后可以看到該圖書在列表框中消失。 </p><p> 5.4.2 發(fā)貨 </p><p> 管理員在如圖 5.3 所示的管理界面中選擇“查看訂單”即可進入如下圖 5.11 所示的訂單</p><p> 查看界面,選中要發(fā)送的圖書后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上書店管理信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 網(wǎng)上書店管理信息系統(tǒng)_數(shù)據(jù)庫課程設(shè)計
- 《網(wǎng)上書店管理信息系統(tǒng)》數(shù)據(jù)庫課程設(shè)計報告樣例
- 《信息系統(tǒng)與數(shù)據(jù)庫技術(shù)》課程設(shè)計--網(wǎng)上書店信息系統(tǒng)
- 網(wǎng)上書店管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 管理信息系統(tǒng)課程設(shè)計--網(wǎng)上書店系統(tǒng)
- 網(wǎng)上書店數(shù)據(jù)庫課程設(shè)計報告
- 網(wǎng)上書店管理信息系統(tǒng)設(shè)計報告
- 數(shù)據(jù)庫課程設(shè)計--- 論壇管理信息系統(tǒng)
- zgp網(wǎng)絡(luò)數(shù)據(jù)庫課程設(shè)計---網(wǎng)上書店的制作
- 數(shù)據(jù)庫課程設(shè)計-酒店管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--考勤管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--學(xué)生管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---醫(yī)院管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---學(xué)生管理信息系統(tǒng)
- 數(shù)據(jù)庫學(xué)生管理信息系統(tǒng)課程設(shè)計
- 網(wǎng)上書店信息管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計---圖書管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---職工考勤管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計-- 職工考勤管理信息系統(tǒng)
評論
0/150
提交評論