某百貨店P(guān)OS積分管理系統(tǒng)-積分添加和通票回收_第1頁
某百貨店P(guān)OS積分管理系統(tǒng)-積分添加和通票回收_第2頁
某百貨店P(guān)OS積分管理系統(tǒng)-積分添加和通票回收_第3頁
某百貨店P(guān)OS積分管理系統(tǒng)-積分添加和通票回收_第4頁
某百貨店P(guān)OS積分管理系統(tǒng)-積分添加和通票回收_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、某百貨店P(guān)OS積分管理系統(tǒng)-積分添加和通票回收 源程序代碼等全套設(shè)計聯(lián)系 695132052 各專業(yè)都有 分類號:TP315 U D C:D10621-408-2007 6222-0 密 級:公開 編 號:2003031270 成都信息工程學院學位論文 某百貨店P(guān)OS積分管理系統(tǒng)?積分添加和通票回收 論文作者姓名:鄧柏成申請學位專業(yè):計算機科學與技術(shù)申請學位類別:工學學士指導教師姓名(職稱):陳運(教授)論文提交日期:2007年06月05日 某百貨店P(guān)OS積分管理系統(tǒng)?積分添加和通票回收摘 要 百貨商店是與人們生活密切相關(guān)的重要部分,是人們購買日常生活用品最為方便,且日常用品最為豐富集中,日常

2、消費也最為頻繁的場所,隨著現(xiàn)代社會的進步,生活節(jié)奏的加快,它的重要地位越來越顯著。為了給客戶提供更方便的服務(wù)平臺,同時也為了能讓百貨店交易業(yè)務(wù)管理規(guī)范化而設(shè)計了POS積分管理系統(tǒng)。POS積分管理系統(tǒng)主要以積分點的形式,對顧客在該店的購物情況與以統(tǒng)計,積分點累計到一定程度,對顧客返回獎勵的方式刺激消費,從而增加店鋪的銷售業(yè)績,也給顧客帶來了更多的實惠。 某店P(guān)OS積分管理系統(tǒng)中積分添加和通票回收的功能在這一系統(tǒng)中起著重要的作用。積分添加是按照積分添加規(guī)則對每天的交易產(chǎn)生的積分點進行添加處理,更改相應的數(shù)據(jù)表信息。而通票回收主要是根據(jù)初期的參數(shù)數(shù)據(jù)對通票回收數(shù)據(jù)再度處理,生成新的通票回收數(shù)據(jù)文件。

3、模塊是基于日文系統(tǒng)Windows 2000,采用C#開發(fā)語言,并使用SQL server 2000的數(shù)據(jù)庫來實現(xiàn)了積分點添加以及通票回收處理的功能。系統(tǒng)著重程序的運行異常處理,CSV文件的讀寫和數(shù)據(jù)庫的基本操作處理。 關(guān)鍵詞:計算機應用;管理信息系統(tǒng);POS;SQL數(shù)據(jù)庫;積分添加;通票回收The Integral Management of POS System for a Department Store?The Integral adding and Ticket RecoveringAbstract The department store is playing an importan

4、t role in our daily life, where we can purchase something conveniently. It is also a place that having a large numbers of goods and attracting so many customers to consuming in it. With the development of modern society and speeding up of the pace of the life, its importance is becoming more and mor

5、e evident. In order to give consumers a more convenient service platform and standardize the business, a system of POS Integral adding is designed. This system is worked in the form of integral adding points, statistic the circumstance of shopping of the client in the shop. In order to increase the

6、sale and bring more discounts to the clients, the store would return the consumers something when the point is accumulated to a certain degree, The integral adding inserting and ticket recovering is playing an important role in store. Integral adding is dealing with the points which produced from ev

7、ery daily transaction and change the relating data table information. Ticket recovering is dealing with the recalling data again according to the primary parameter data and produces the new file of recalling data. This module is based on the Windows 2000 of Japan's system and the C# developing l

8、anguage SQL server 2000 database are adopted to realize the functions of integral adding inserting and ticket recovering. More attention is paid to the abnormal processing, the reading and writing of CSV file, and the base operating of database. Key words: Computer application; Management informatio

9、n system; POS; SQL database; integral adding; ticket recovering目 錄論文總頁數(shù):28頁1引 言12模塊需求分析1 2.1模塊功能需求1 2.2客戶對模塊性能要求1 2.3模塊開發(fā)需求23系統(tǒng)開發(fā)設(shè)計分析2 3.1系統(tǒng)設(shè)計模式2 3.2模塊功能分析33.2.1積分添加模塊的功能分析33.2.2通票回收模塊的功能分析4 3.3程序流程及分析43.3.1積分添加模塊的流程圖33.3.2通票回收模塊的流程圖5 3.4模塊的詳細設(shè)計53.4.1模塊主要對象的定義53.4.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計64模塊的實現(xiàn)過程分析10 4.1積分添加類具體實現(xiàn)1

10、0 4.2通票回收類具體實現(xiàn)195系統(tǒng)運行結(jié)果23 5.1積分添加類測試結(jié)果23 5.2通票回收類測試結(jié)果25結(jié)論26參考文獻26致謝27聲明281引 言 21世紀的今天,人類已步入一個信息高速發(fā)展的時代。隨著科學技術(shù)的不斷發(fā)展,日益更新,計算機技術(shù)的發(fā)展更是突飛猛進,并在人們的生活當中起著重要的作用。運用計算機技術(shù)可以開發(fā)各式各樣的產(chǎn)品,特別是管理系統(tǒng),已經(jīng)深入到各行各業(yè)的各個方面。 隨著WTO的步伐加快,國際化競爭必然加劇,國際國內(nèi)市場將面臨更為激烈的爭奪。參與市場競爭,更多的要靠先進超前的經(jīng)營管理觀念和方法、系統(tǒng)的戰(zhàn)略規(guī)劃、科學市場分析、規(guī)范管理運作、入微客戶服務(wù)、優(yōu)秀員工隊伍等綜合實力

11、。經(jīng)營績效是公司管理的重心,建立先進管理系統(tǒng),對推動公司戰(zhàn)略實現(xiàn)、提高經(jīng)營業(yè)績。積分管理系統(tǒng)就是在具備先進科學技術(shù)條件下,以先進超前的經(jīng)營管理觀念為基礎(chǔ)而設(shè)計的一套先進的管理系統(tǒng)。 積分管理系統(tǒng)的先進性,是要經(jīng)過詳細的需求分析和精心的設(shè)計才能實現(xiàn)的。一個公司的管理系統(tǒng)是否先進,完善,是由公司的管理制度,管理理念來決定的。然而一個公司的管理系統(tǒng)的先進性,完善性直接體現(xiàn)了該公司的管理制度和管理理念。因此具有先進和完善的管理系統(tǒng),在各大企業(yè)的管理和發(fā)展中起著非常重要的作用。但是怎樣才能體現(xiàn)一個管理系統(tǒng)是否真正的先進和完善呢?這在我們開發(fā)該積分管理系統(tǒng)時,應首要涉及考慮的問題。比如:在積分管理系統(tǒng)中,

12、會員的基本信息是否完整,店鋪的基本信息是否完整,系統(tǒng)的積分更新是否準確及時,管理系統(tǒng)的性能是否穩(wěn)定,管理系統(tǒng)的利用是否節(jié)約系統(tǒng)資源降低成本等等都是必須考慮的問題。 為了滿足某百貨店的需求,我們設(shè)計出具有以下優(yōu)點的積分管理系統(tǒng)。如:檢索迅速,可靠性高,穩(wěn)定性強,更新方便,保密性好,成本低,使用方便等等。各大企業(yè)可以利用積分管理系統(tǒng)通過積分的手段提高經(jīng)營績效,達到增加利潤的目的,增加企業(yè)間的競爭??偟膩碚f開發(fā)一套積分管理系統(tǒng)是很重要的。在這個積分管理系統(tǒng)中,我主要負責積分點添加、通票數(shù)據(jù)處理兩個個模塊。我結(jié)合所學的知識,基于日文系統(tǒng)Windows 2000,采用C#開發(fā)語言,并使用SQL serv

13、er 2000的數(shù)據(jù)庫來實現(xiàn)此模塊。下面將介紹開發(fā)具體過程。2模塊需求分析 2.1模塊功能需求 POS積分管理系統(tǒng)主要針對加入店鋪會員身份的顧客,為他們提供更加優(yōu)惠,便利的商業(yè)服務(wù)。積分點添加主要是根據(jù)商店營銷方案制定的獎勵積分添加規(guī)則,對會員在店鋪(包括分店)所有的消費,進行相應的獎勵,需要適時地對會員的積分進行正確的添加和存儲,以照顧消費者最根本的利益;如果積分沒有及時添加,會直接損壞商店和顧客的關(guān)系;通票數(shù)據(jù)的回收主要是,根據(jù)通票輸入數(shù)據(jù)文件和參數(shù)控制文件的內(nèi)容制作出通票回收記錄文件,以備存儲和其他使用。 2.2客戶對模塊性能要求實現(xiàn)模塊所有功能模塊重用性強模塊穩(wěn)定性和容錯能力強模塊能穩(wěn)

14、定運行模塊能即時響應 2.3模塊開發(fā)需求 整個POS積分管理系統(tǒng)主要針對日的外包業(yè)務(wù),因此要求所有的開發(fā)人員統(tǒng)一開發(fā)語言和數(shù)據(jù)庫,運行在Windows 2000的操作系統(tǒng)上面,這是客戶最基本的要求特點,并要求嚴格按照顧客提供的初步設(shè)計式樣書進行代碼的開發(fā),實現(xiàn)PCL要求的邊界測試點和功能概要,其中積分點添加和通票回收數(shù)據(jù)制作這兩個個模塊的完成,根據(jù)其初步設(shè)計代碼量的估計大約是兩千行左右,根據(jù)進度安排表大致需要兩個月左右的時間來完成詳細設(shè)計,編碼,單體測試和撰寫報告。詳細開發(fā)需要如下: 1.硬件需求:微型計算機一臺 2.操作系統(tǒng):Windows 2000日文 3.開發(fā)語言:C#.NET 4.數(shù)據(jù)

15、庫:Microsoft SQL Server 2000 5.其他軟件需求:Visual Studio2003集成開發(fā)環(huán)境 3系統(tǒng)開發(fā)設(shè)計分析 3.1系統(tǒng)設(shè)計模式 積分添加模塊的流程涉及一個輸入文件和八個數(shù)據(jù)庫表,其中,四個輸入數(shù)據(jù)表,一個輸出數(shù)據(jù)表和三個既需輸入也需輸出的數(shù)據(jù)表:獎勵積分添加規(guī)則文件:FSP_BONUS_RULE.CSV CSV文件,輸入文件,所存放的數(shù)據(jù)為積分添加的標準參照數(shù)據(jù),是積分添加整個模塊所有計算的基礎(chǔ)。會員基本信息表:FSPTB_MEMBER,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為會員的基本信息。會員狀態(tài)表:FSPTB_MEMBER_STATUS,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為會員

16、的狀態(tài)信息。積分基本信息表:FSPTB_POINT,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為積分的基本信息。處理日表:FSPTB_SYORIBI,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為積分處理的相關(guān)數(shù)據(jù)。店鋪基本信息表:FSPTB_TENPO,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為店鋪的基本信息。獎勵添加結(jié)果表:FSPTB_POINT_BONUS,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為獎勵的積分添加結(jié)果相關(guān)數(shù)據(jù)。獎勵更新日志表:FSPTB_POINT_JNL,輸出數(shù)據(jù)表,所存放日志是積分添加事件日志。積分履歷表:FSPTB_POINT_RIREKI,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為積分變動日志。 圍繞這幾個數(shù)據(jù)庫文件和文本文件進行數(shù)據(jù)的查詢,添加

17、,刪除,讀寫等操作。 通票回收模塊處理時需要用到三個數(shù)據(jù)文件,其中,兩個輸入數(shù)據(jù)文件,一個輸出數(shù)據(jù)文件。通票回收基本信息文件:Coupon_Recycling_Data.CSV CSV文件,未排序,輸入文件,所存放數(shù)據(jù)為通票回收的最基本信息。初期參數(shù)數(shù)據(jù)文件:Parametet_Data.csvCSV文件,未排序,輸入文件,所存放數(shù)據(jù)為初期模塊運行要取得的基本參數(shù)數(shù)據(jù)和控制信息。通票回收結(jié)果文件:coupon_Recycling_RegisterFile.CSvCSV文件,輸出數(shù)據(jù),所存放數(shù)據(jù)為處理后的通票回收結(jié)果。 3.2模塊功能分析 3.2.1積分添加模塊的功能分析: 添加規(guī)則文件的讀入:

18、執(zhí)行積分添加模塊功能時,首先要讀入指定獎勵規(guī)則的文件,如何獎勵,獎勵多少,其內(nèi)容由店鋪決策人員的規(guī)定而定,此功能模塊就是讀入CSV規(guī)則文件,把他寫入臨時的規(guī)則文件中,然后整個積分添加模塊都以臨時文件為基準。積分基本文件的搜索和更新:積分基本文件表FSPB_POINT提供最開始的基本信息,在根據(jù)處理日表的信息判斷完成基本添加結(jié)果表后,本月出來尚未進行的條件下,逐條搜索積分基本文件表里滿足條件的會員,對他們的基本積分點進行添加操作,結(jié)合其他表的數(shù)據(jù)完成添加操作后再對該表更新。循環(huán)中對單條記錄的處理:對積分基本文件表中找到的滿足條件需要進行積分添加的會員的每一條記錄,我們都要進行相同的條件判斷處理,

19、首先搜索會員狀態(tài)基本信息表中是否有相關(guān)記錄,有的話對獎勵積分添加結(jié)果表進行追加,積分基本文件表的更新以及積分履歷表和積分日志表的追加或者更新。 3.2.2通票回收模塊的功能分析:通票回收基本數(shù)據(jù)表和初期參數(shù)表的讀入:兩個表中分別讀出一條數(shù)據(jù),并對這兩條數(shù)據(jù)以JAN_CODE為關(guān)鍵字進行表,相等的話進行回收處理操作,不相等的話繼續(xù)讀入,直到兩張表循環(huán)完。通票回收處理:對JAN_CODE滿足條件的數(shù)據(jù),再比較主鍵,相等的則證明該會員有相關(guān)記錄,要對會員所有的數(shù)據(jù)要進行統(tǒng)計累加,直到有不相等的情況發(fā)生,向通票回收處理結(jié)果表寫入數(shù)據(jù)。 3.3程序流程及分析 3.3.1積分添加模塊流程圖: 如圖1,處理

20、過程即是在這數(shù)張表之間傳輸添加數(shù)據(jù),本模塊起到一個數(shù)據(jù)控制器的作用,處理積分添加事件。圖1積分添加處理流程圖 通過處理日表中的處理日期判斷積分添加處理是否已經(jīng)執(zhí)行過,如執(zhí)行過程序結(jié)束; 讀入積分添加規(guī)則文件信息,依據(jù)規(guī)則開始進行添加處理; 查找積分基本信息表,循環(huán)處理,對滿足給定條件的會員記錄進行積分添加; 讀入會員基本信息表,會員狀態(tài)表,店鋪基本信息表,獎勵積分添加結(jié)果表,積分履歷表的相關(guān)信息,對當前會員記錄進行具體的添加處理。 將處理的結(jié)果,包括追加和更新兩種形式,返回到積分履歷表,獎勵積分添加結(jié)果表,獎勵更新日志和會員狀態(tài)表中。 3.3.2通票回收模塊數(shù)據(jù)流程圖:圖2通票回收處理流程圖

21、如圖2,通過本模塊對基本的通票回收輸入數(shù)據(jù),進行再處理,根據(jù)參數(shù)表的要求,能夠得到需要的通票回收結(jié)果。圖2通票回收處理流程圖 讀入通票回收基本數(shù)據(jù),并進行升序排序;同時讀入初期參數(shù)數(shù)據(jù)表,并進行降序排 通票回收數(shù)據(jù)制作詳細處理,(模塊功能已經(jīng)介紹)。 在滿足回收條件的情況下,把詳細的處理結(jié)果寫入通票回收結(jié)果文件的一條記錄中。 3.4 模塊的詳細設(shè)計 系統(tǒng)的開發(fā)設(shè)計過程中主要會用到其他幾個輔助類:數(shù)據(jù)庫后臺操作類 SkyConnect;共用文件讀取類Iniconfig;共用文件 Common.ini;以及一些細節(jié)功能實現(xiàn)需要而寫的函數(shù)。 3.4.1模塊主要對象的定義 模塊使用到的類如圖3所示:

22、圖3類調(diào)用邏輯圖 模塊FSPB1250和FSPB1520通過類Iniconfig和類SkyConnect進行對文件和數(shù)據(jù)庫的訪問。 圖各類一覽表: 表1模塊類說明表 命名空間 類名 說明百?店P(guān)OS情?管理?.FSPB1250FSPB1250積分添加百?店P(guān)OS情?管理?.FSPB1520FSPB1520通票回收百?店P(guān)OS情?管理?Iniconfig共通文件讀取百?店P(guān)OS情?管理?SkyConnect數(shù)據(jù)庫操作 skyConnect類的使用,主要是為了避免每次連接數(shù)據(jù)庫操作時,都要重復添寫重復的代碼,為了美觀和方便維護的作用。由于積分添加模塊和通票回收模塊的數(shù)據(jù)庫操作頻繁,所以只建立個數(shù)據(jù)

23、庫連接的skyConnect事例是很方便的。 對于整個系統(tǒng)而言,所涉及到的屬性較多,因此建立一個文件存儲系統(tǒng)的屬性值,每個模塊通過相應方法調(diào)用對應的屬性。通過類Iniconfig需要從配置文件Common.ini中讀取的屬性值,如果文件不存在或者讀取失敗都要輸出錯誤日志記錄,(此處只列舉和積分添加,通票回收相關(guān)的屬性)如下表: 表2 Iniconfig類讀取屬性表Common.ini中的屬性值對應的參數(shù)說明 SqlConnection_String_SqlConnection_String數(shù)據(jù)庫連接字符串FilePath_FilePath文件路徑Member_Data_Member_Data文

24、件名Bonus_Rule_Bonus_Rule文件名Pos_Data_Pos_Data文件名LogFile_LogFile文件名 最常用到的是數(shù)據(jù)庫管理系統(tǒng)服務(wù)器連接所需的連接字符串進行讀取,即用到的字符串是SqlConnection_String,其它的文件只是通過聲明類Iniconfig實例進行文件存在與否的判斷,但是如果上面所列文件中有一個不存在的話,模塊就會輸出錯誤信息到日志數(shù)據(jù)庫中去,這是遵從共通文件讀取要求規(guī)范所必需要的。 3.4.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 在積分管理系統(tǒng)中,數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計占非常重要的地位,設(shè)計好壞與數(shù)據(jù)庫中數(shù)據(jù)的讀取起很大影響作用。而且應該與數(shù)據(jù)的統(tǒng)計算法相結(jié)合,以數(shù)據(jù)

25、的讀取統(tǒng)計方便為目的。在積分更新和積分累計記錄模塊中,設(shè)計如下: 上述兩模塊中所有被用到的數(shù)據(jù)表的名稱的定義: 表3表名定義序號表參數(shù)名表名說明1FSPTB_MEMBER記錄會員基本信息2FSPTB_POINT記錄積分點基本信息3FSPTB_TENPO記錄店鋪基本信息4FSPTB_MEMBER_STATUS記錄會員狀態(tài)信息5FSPTB_LOG記錄系統(tǒng)的輸入日志6FSPTB_POINT_RIREKI記錄積分履歷7FSPTB_POINT_JNL記錄積分日志8FSPB_COUPON臨時保存通票回收基本數(shù)據(jù)9FSPB_PRAMETER臨時保存初期參數(shù)數(shù)據(jù)注:數(shù)據(jù)表中與本模塊不相關(guān)的數(shù)據(jù)項因為太多未列出

26、,但實際存在;(1)FSPTB_MEMBER(會員)表4會員數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否允許為空MEMBER_CODE會員編碼Char13NOT NULLNYUKAI_YMD入會年月日Char8NULLMEMBER_KBN會員種類Char1NULLNYUKAI_TENPO入會的店鋪編碼Char6NULLMUKOU_KBN起效種類Char1NULLADD_YMDHMS注冊時間Char14NULLADD_TANTOU注冊負責人IDChar6NULLUPD_YMDHMS更新時間Char14NULL 會員編號是會員身份的唯一標識,通過編號可以知道該會員是否存在,如果存在,才有必要進行會員

27、積分的添加。 (2)FSPTB_POINT(積分)表5積分數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否為空MEMBER_CODE會員編碼Char13NOT NULLOLD_MEMBER_CODE舊會員編碼Char13NULLYUTAI_RANK優(yōu)惠等級Char2NULLNOW_POINT現(xiàn)在積分點98NULLRUIKEI_POINT累計積分點98NULLOUT_RUIKEI_POINT支出的累計積分點98NULLADD_RUIKEI_POINT增加的累計積分點98NULLKIHON_RUIKEI_POINT基本累計積分點98NULLBONUS_RUIKEI_POINT獎勵累計積分點98NULLB

28、EFORE_TUKI_KAIAGE_M上上月交易金額910NULLMEMBER_WARIBIKI_M打折累計金額910NULLKOUNYU_M購買金額910NULLMUKOU_KBN起效種類Char1NULL 保存了會員入會后的所有積分點的信息,以不同的方式和標準統(tǒng)計著會員的積分記錄。只要“當日購買金額”和“起效種類”達到條件就會進行積分添加處理。 (3)FSPTB_TENPO(店鋪)表6店鋪數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否允許為空TENPO_CODE店鋪編碼Char6NOT NULLTENPO_ADDR地址Char100NULL 根據(jù)表6可以找到會員當時在何地何時入會的信息。 (4

29、)FSPTB_MEMBER_STATUS(會員狀態(tài))表7會員狀態(tài)表主鍵列(屬性)名中文名稱類型寬度是否允許為空MEMBER_CODE會員編碼Char13NOT NULLOLD_MEMBER_CODE舊會員編碼Char13NULLDOMINANT_CODE優(yōu)先級別編碼Char3NOT NULLTENPO_CODE店鋪號碼Char6NOT NULLOLD_TENPO_CODE舊店鋪編碼Char6NOT NULL 可以通過表7查詢到會員的狀態(tài),是否滿足積分添加的標準。 (5)FSPTB_LOG(日志)表8系統(tǒng)日志信息表主鍵列(屬性)名中文名稱類型寬度是否允許為空P_Sel信息類型char1NULLP

30、_MsgCD信息編號Int4NOT NULLP_Msg信息內(nèi)容char256NULLP_APPNM程序名char32NULLP_FunCNM函數(shù)名char32NULLP_JobNM工作獄char32NULLP_rrDetail詳細信息char256NULLP_INIFileINI文件名char32NULL 模塊處理過程中所有的預計出錯信息的輸入保存表。能及時反映會員的積分添加失敗與否的具體信息。 (6)FSPTB_POINT_RIREKI(積分履歷表)表9積分履歷表主鍵列(屬性)名中文名稱類型寬度是否允許為空MEMBER_CODE會員編號char13NOT NULLYMD日期char8NOT

31、NULLYUTAI_RANK優(yōu)惠等級char2NULLKIHON_POINT當日基本積分Numeric9NULLBONUS_POINT當日獎勵積分Numeric6NULLADD_POINT當日增加積分Numeric6NULLOUT_POINT當日輸出積分Numeric6NULLNOW_POINT現(xiàn)在積分Numeric8NULLUPD_YMDHMS更新時間char14NULLUPD_TANTOU操作者編號char6NULL 會員自入會以來的所有歷史積分記錄,比積分表統(tǒng)計得多。 (7)FSPTB_POINT_JNL(積分日志表)表10積分日志表主鍵列(屬性)名中文名稱類型寬度空否TENPO_COD

32、E店鋪號碼char6NOT NULLMEMBER_CODE會員編碼char13NOT NULLADD_POINT_B當日增加積分(前)Numeric6NULLOUT_POINT_B當日消費積分(前)Numeric6NULLNOW_POINT_B現(xiàn)在積分(更新前)Numeric8NULLBONUS_POINT_B當日獎勵積分(前)Numeric8NULLOUT_KAIAGE_M_B當日消費金額(前)Numeric10NULLADD_KAIAGE_M_B當日增加金額(前)Numeric10NULLTUKI_KAIAGE_M_B當月消費金額(前)Numeric10NULLADD_POINT_A當日增

33、加積分(后)Numeric6NULLOUT_POINT_A當日消費積分(后)Numeric6NULLNOW_POINT_A現(xiàn)在積分(更新后)Numeric8NULLBONUS_POINT_A當日獎勵積分(后)Numeric8NULLOUT_KAIAGE_M_A當日消費額(后)Numeric10NULLADD_KAIAGE_M_A當日增加金額(后)Numeric10NULLTUKI_KAIAGE_M_A當月消費金額(后)Numeric10NULLJNL_AUTO_ID記錄自動編號Int4NOT NULL 表10積分添加處理的系統(tǒng)日志。 (8)FSPTB_COUPON(通票數(shù)據(jù))表11通票回收數(shù)據(jù)

34、庫臨時表主鍵列(屬性)名中文名稱類型寬度是否允許為空DATE營業(yè)日char6NOT NULLTENPO_CODE店鋪編號char6NOT NULLNUMBER記錄機號碼char6NOT NULLJAN_CODEJAN編號char8NOT NULLJNL_SORT_SEQ排序char2NOT NULLJNL_CLO_MUL_ITMITM數(shù)據(jù)int2NOT NULLJNL_CLO_AMTAMT數(shù)據(jù)int13NOT NULLJNL_HEN_KBN參數(shù)char6NULL 通票回收處理模塊的原始待處理數(shù)據(jù)。 (9)FSPTB_PRAMETER(初期參數(shù)表)表12原因表主鍵列(屬性)名中文名稱類型寬度空否

35、JNL_KEN_NAM商品分類char1NOT NULLJAN_CODEJAN編號char2NOT NULLJNL_HEN_KBN參數(shù)char1NULL4模塊的實現(xiàn)過程分析 下面將以對代碼的解釋說明的方式對兩個模塊的實現(xiàn)過程以詳細的說明,并列出部分重要代碼: 4.1積分添加類具體實現(xiàn) 首先在FSPB_1250的構(gòu)造函數(shù)中建立共同函數(shù)的讀取類Iniconfig;如果共同函數(shù)取得成功沒有發(fā)生異常的錯誤或者不為空,就建立數(shù)據(jù)庫連接類SkyConnet; 以便程序中能方便調(diào)用;其中判斷INI文件的存在十分重要,它是整個系統(tǒng)銜接的核心,如果INI文件的讀取失敗(1代表INI文件不存在;2代表INI文件不

36、能打開;3代表INI文件內(nèi)容為空,主鍵或者內(nèi)容格式的錯誤),將不做任何的其他操作;直接結(jié)實程序; 如果讀取失敗需要輸出失敗原因,因為程序的所有數(shù)據(jù)庫操作都封裝在SkyConnect類中的,而SkyConnect類也需要INI文件的讀取返回的參數(shù)地址等初期數(shù)據(jù)成功才可以;所以INI的報錯必須自己手動建立數(shù)據(jù)庫的連接才行,以下是發(fā)生錯誤3的情況下手動連接數(shù)據(jù)庫的情況: 在INI文件讀取成功的條件下進行本模塊的具體操作: 首先向FSPB_LOG表里面輸入程序開始日志: 檢索獎勵積分添加結(jié)果表數(shù)據(jù)FSPB_POINT_BONUS是否存在數(shù)據(jù): 以處理日FSPB_SYORIBI的日期SHORI_YM為主

37、鍵搜索獎勵積分添加結(jié)果表數(shù)據(jù)表 如果有適當?shù)臄?shù)據(jù)存在則向日志FSPB_LOG輸入完成信息,表示當天的添加處理已經(jīng)處理完成程序正常結(jié)束,否則進行積分點的添加,判斷條件是以if DataSet_FSPTB_POINT_BONUS.Tables0.Rows.Count ! 0的方式,讀取數(shù)據(jù)庫的文件,判斷是否有記錄來區(qū)分的。 讀入積分添加規(guī)則文件FSP_BONUS_RULE.CSV并把讀出的信息購買金額上限,購買金額下限,添加點數(shù),獎勵區(qū)分信息分別寫入臨時的TXT文件new_FSP_BONUS_RULE.txt中,如果CSV文件中無信息則向日志文件FSPB_LOG中寫如相應的出錯信息,同時程序終止,

38、此功能的實現(xiàn)由Read_FSP_BONUs_RULECSV函數(shù)來實現(xiàn)的,代碼如下:(CSV文件讀取不成功,向FSPB_LOG文件中的輸入的信息的代碼未給出;) 根據(jù)條件(當前購買金額大于0和區(qū)分無效0)搜索積分基本信息表FSPB_POINT,如果有匹配的記錄則繼續(xù)進行添加處理,沒有就終止程序。讀取的方式是foreach循環(huán)的,這也是本程序的難點,循環(huán)過程中的數(shù)據(jù)處理相當煩瑣,不時需要查詢相關(guān)的數(shù)據(jù)表,讀入相關(guān)文件,保存臨時信息到變量,比較判斷循環(huán)條件;循環(huán)過程中再對每一條匹配記錄處理(詳細情況見后);判斷的代碼見下: 每條記錄的詳細處理情況:當前記錄信息的保存:獎勵積分臨時規(guī)則文件進行檢索,對

39、獎勵積分添加對象數(shù)據(jù)進行判定: ChechFrom_BONUS_RULETxt函數(shù)主要實現(xiàn):根據(jù)輸入?yún)?shù)的信息,即當前購買金額,來循環(huán)判斷一個txt文件的每行信息,該txt文件每行信息的每個數(shù)據(jù)用“,”分割開,通過逐行對比對應字節(jié)的字符串找到對應的數(shù)據(jù)后,返回該行字符串的一部分內(nèi)容,并同時保存到新建立的兩個txt文件中(Bonustable.txt和Pointtable.txt)供以后使用;此txt文件在本模塊中是new_FSP_BONUS_RULE.txt臨時文件;代碼如下: ChechFrom_BONUS_RULETxt函數(shù)中又使用到一個Make_path函數(shù)和一個String_To_Ar

40、ray的函數(shù)的調(diào)用,Make_path函數(shù)主要是生成新文件的字符串路徑的作用(代碼省),String_To_Array是式樣將指定格式的字符串保存到分別保存到返回的一維數(shù)組的作用:函數(shù)Sting_To_Array會員狀態(tài)基本信息表FSPB_STATUS信息追加: 以會員基本信息表FSPB_MENBER的會員編號為主鍵,檢索會員狀態(tài)基本信息表FSPB_MENBER_STATUS,如果有匹配數(shù)據(jù)則對獎勵積分添加結(jié)果表FSPB_POINT_BONUS進行追加,以及對積分基本信息表進行更新并且再根據(jù)條件(積分履歷表FSPB_POINT_RIREKI中是否有與當前MENBER_CODE會員編號和SHOR

41、I_YM處理日為共同主鍵)判斷,對積分日志更新FSPB_JNL和積分履歷表FSPTB_POINT_RIREKI進行更新或者追加 : 檢索FSPB_MENBER_STATUS FSPB_POINT_BONUS進行追加 FSPB_POINT進行更新 檢索積分履歷表FSPB_POINT_RIREKI的條件判斷是通過帶條件查詢的SQL語言實現(xiàn)然后由if REREKI.Tables0.Rows.Count ! 0來判斷的。 如果積分履歷表FSPB_POINT_RIREKI中找到了相關(guān)記錄,表示該顧客具備會員資格,并且應該已經(jīng)有個歷史的消費記錄,積累了一定數(shù)量的積分點,要將信息保持在變量中,變量是全局變量

42、每次循環(huán)在不斷的更新: 積分履歷表FSPB_POINT_RIREKI內(nèi)容的保存 積分履歷表FSPB_POINT_RIREKI中找到匹配記錄的情況下對對積分日志更新FSPB_JNL進行更新處理,當然如果沒有找到的情況下也要進行更新但兩者更新不一樣,后者很多數(shù)據(jù)項賦值為0;但基本模式一樣這里就不給出代碼了,只給出了找到匹配數(shù)據(jù)情況下的積分日志更新FSPB_JNL表的更新處理,在處理過程中首先要根據(jù)當前的會員編號搜索店鋪基本信息表返回一些信息數(shù)據(jù),以及以“會員編號”和“處理日”為主鍵搜索積分履歷表FSPB_POINT_RIREKI返回信息;并把這些返回信息值和其他一些當前處理記錄的信息寫入積分日志更

43、新FSPB_JNL表中完成更新; 更新內(nèi)容主要是,把當前處理記錄一些臨時保存的信息和按照要求查詢數(shù)據(jù)表的返回信息重新給積分日志更新表賦值; 同時根據(jù)布爾變量X的值,再對積分履歷表FSPB_POINT_RIREKI進行追加或者更新處理;當X為true的時候即在積分履歷表找到了匹配數(shù)據(jù)的時候進行更新處理代碼如下: 當X為false的時候即在積分履歷表中未找到數(shù)據(jù)就進行數(shù)據(jù)追加處理,對于顧客的消費記錄要給予保存,建立一份詳細的顧客獎勵積分的記錄以便以后查證,其代碼如下: 其他處理 如果在會員狀態(tài)基本信息表FSPB_MENBER_STATUS中沒有找到相關(guān)的數(shù)據(jù),則繼續(xù)搜索會員基本信息表FSPB_ME

44、NBER,當會員表中有數(shù)據(jù)時,對會員狀態(tài)基本信息表FSPB_MENBER_STATUS進行追加,代碼如下: 如果在會員基本信息表中仍然沒有匹配數(shù)據(jù),則向日志文件中寫入錯誤信息:“第n行記錄在會員表中沒有信息”,表示該顧客并不是本店的會員,沒有處理添加積分的必要性; 到處從積分表中讀入的一條記錄的處理過程結(jié)實。以后依次循環(huán)讀入信息作相同的處理。 4.2通票回收類具體實現(xiàn) 和FSPB_1250模塊類似,首先讀取INI文件,本模塊的INI文件(FSP_GETENV.ini)由自己建立,獨立于共用的INI(Conmon.INI)文件,通票回收模塊的INI文件存儲了三條文件的路徑信息,分別是通票回收基本

45、信息文件的路徑信息;初期參數(shù)文件的路徑信息;以及通票回收數(shù)據(jù)制作成功的保存文件的路徑信息; 對于INI文件的讀取失敗與否的判斷以及相關(guān)報錯處理同上個模塊一樣,但錯誤信息返回值的函數(shù)由于不是使用同一個INI文件的原因,而重新編寫Read_Ini函數(shù)實現(xiàn),代碼如下: 上述模塊的主要函數(shù)是RecyclingBill;在此函數(shù)中實現(xiàn)了本模塊的主要功能 首先從INI文件中讀出三個主要文件的路徑信息,并保留到三個變量中: StreamR類在本模塊構(gòu)造函數(shù)中已經(jīng)建立,此處直接調(diào)用;構(gòu)造函數(shù)的模式和上一模塊FSPB_1250相似。 根據(jù)INI提供的路徑信息,讀入初期參數(shù)文件和通票回收數(shù)據(jù)文件的數(shù)據(jù)保存到兩個二

46、維數(shù)組Array_Para和Array_Coup中,以供后面調(diào)用,代碼如下: 其中的Return_Hang函數(shù)的主要功能是返回一個指定路徑文件的數(shù)據(jù)行數(shù);其實現(xiàn)方法是通過StreamRead讀取一文件,每讀取一行,變量自加一次,直到讀到空為止,這里代碼省略。 在這里Return_Array函數(shù)主要功能是根據(jù)輸入?yún)?shù)(要讀入的文件的字符串,判斷參數(shù),要寫入的文件路徑字符串)讀取指定文件的字符串路徑,讀區(qū)數(shù)據(jù)信息保存到要返回的數(shù)組中,當要讀入的數(shù)據(jù)文件沒有數(shù)據(jù)時,創(chuàng)建一個空的寫入文件,同時根據(jù)判斷參數(shù)的不同向日志FSPB_LOG中寫入相關(guān)的出錯信息; 然后把保存到數(shù)組的所有數(shù)據(jù)信息通過兩個for循

47、環(huán)導入到數(shù)據(jù)庫的同名表中,代碼如下: 最后進行通票回收計算,計算以前首先對兩張表分別進行排序處理,把初期參數(shù)表FSPTB_PRAMETER表進行降序排列,通票回收基本數(shù)據(jù)表FSPTB_COUPON是升序;具體實現(xiàn)是通過SQL語言從數(shù)據(jù)庫中重新升序或者降序,利用DataSet讀出兩張表來實現(xiàn)的,以后的操作將圍繞讀出的兩個DataSet表進行;然后把初期參數(shù)表FSPTB_PRAMETER和通票回收基本數(shù)據(jù)表FSPTB_COUPON的DataSet表進行比較,主要是通過JAN_CODE列的數(shù)據(jù)進行比較,首先讀出初期參數(shù)表FSPTB_PRAMETER的一條記錄,提出其JAN_CODE,同時提出通票回收

48、基本數(shù)據(jù)表FSPTB_COUPON中的第一條記錄的JAN_CODE,兩相比較,如果相等則,將判斷通票回收基本數(shù)據(jù)表FSPTB_COUPON的DataSet中的另外三個主鍵的信息是否改變,(營業(yè)日,店鋪編號,記錄機編號)是否有所改變,(稱為Break操作),需要循環(huán)比較通票回收數(shù)據(jù)表中所有JAN_CODE相同的記錄,當發(fā)生Break操作前,進行JNL_clo_mul_itm和JNL_clo_amt數(shù)據(jù)的統(tǒng)計累加,發(fā)生Break操作時,向通票回收數(shù)據(jù)結(jié)果文件中添加一條結(jié)果記錄,寫入統(tǒng)計的JNL_clo_mul_itm和JNL_clo_amt數(shù)據(jù)信息;當JAN_CODE比較后不相等分兩種情況處理,如

49、果初期參數(shù)表的JAN_CODE比通票回收基本數(shù)據(jù)表FSPTB_COUPON的JAN_CODE大則循環(huán)讀取通票回收基本數(shù)據(jù)表FSPTB_COUPON的下一條記錄進行比較,如果較小的話,程序終止。詳細代碼如下: 模塊結(jié)束。5系統(tǒng)運行結(jié)果 運行結(jié)果的介紹主要依據(jù)測試點中重要表現(xiàn)部分,列出了指定的條件的運行結(jié)果并加以說明: 5.1積分添加類測試結(jié)果 該模塊的測試包括共通信息取得、文件存在檢查處理、文件打開處理、對數(shù)據(jù)庫表檢索,追加,更新,正常和異常處理等合計22個測試點。程序正常執(zhí)行后日志FSPB_LOG文件的截取圖片: 圖4日志表FSPB_LOG結(jié)果 鑒于測試數(shù)據(jù)的不同,上程序會有很多不同的條件判斷的結(jié)果也不同,從而程序執(zhí)行到的進度也不一樣,得到的修改結(jié)果也就不相同所以只做固定條件的測試結(jié)果; 假使當

溫馨提示

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

評論

0/150

提交評論