已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
某美容院積分管理系統(tǒng)的設(shè)計摘要計算機誕生以來,對數(shù)據(jù)的管理一直是計算機應(yīng)用中最為重要的環(huán)節(jié),數(shù)據(jù)庫管理系統(tǒng)便是這一環(huán)節(jié)中堅力量。在NET平臺推出以后,由于其通用語言基礎(chǔ)結(jié)構(gòu)和規(guī)范性,讓不同語言開發(fā)的程序員們都能得心應(yīng)手地在NET平臺下進行高效的程序開發(fā),ADONET框架對數(shù)據(jù)庫管理系統(tǒng)的訪問控制是相當(dāng)?shù)撵`活和方便,減少了程序員們操作數(shù)據(jù)庫底層代碼,讓程序員的精力完全集中到邏輯代碼開發(fā)之中。因此,采用NET平臺開發(fā)管理信息系統(tǒng)是一個明智的選擇。某店積分更新記錄管理前臺采用NET,后臺采用SQL2000,語言使用C。實現(xiàn)的系統(tǒng)功能是對用戶消費和追加的積分進行更新,并對積分變化進行記錄。程序模塊讀取臨時積分表,通過返回臨時積分表的數(shù)據(jù)對積分表,用戶狀態(tài)表,積分獎勵記錄表進行更新,并對積分累積記錄表進行更新,系統(tǒng)著重于對更新失敗和程序異常時進行處理。關(guān)鍵詞計算機應(yīng)用;數(shù)據(jù)庫管理系統(tǒng);積分更新記錄;NET平臺;ADONET;C;SQL2000THESHOPSINTEGRALUPDATERECORDMANAGEMENTABSTRACTDATAMANAGEMENTISALWAYSTHEMOSTIMPORTANTLINKOFTHECOMPUTERSAPPLICATION,SINCETHEINVENTIONOFTHECOMPUTER,ANDTHEDATABASEMANAGEMENTSYSTEMISAVERYIMPORTANTINTHISLINKAFTERTHENETWASLAUNCHED,FORITSCOMMONLANGUAGESTRUCTUREANDSTANDARD,PROGRAMMERSOFALLLANGUAGESCARRYONTHEPROCEDUREHIGHEFFECTIVELYUNDERTHENETPLATFORMTHESTRUCTUREOFADONETGIVEAFLEXIBLEANDSUITABLEMANAGETOTHEACCESSCONTROLOFDATABASEMANAGEMENTSYSTEM,THISREDUCETHECHANCEOFOPERATINGLOWERLAYERCODE,ANDMAKEPROGRAMMERPAYMOREATTENTIONTOLOGICALCODEDEVELOPMENTTHEREFOREITISWISETOCHOICETHENETPLATFORMTODEVELOPMENTMANAGEMENTINFORMATIONNETISUSEDASONSTAGE,SQL2000ISUSEDASBACKSTAGEANDCISUSEDASDEVELOPINGLANGUAGEINTHEINTEGRALTOUPDATERECORDSMANAGEMENTTHEFUNCTIONOFSYSTEMISTOUPDATETHEINTEGRALOFCONSUMINGANDPRODUCING,ANDCARRIESONTHERECORDOFTHEINTEGRALCHANGINGINFORMATIONWHENTHEPROGRAMMODULEREADTHETEMPORARYINTEGRALTABLE,ITUPDATEDTHEINTEGRALTABLE,THEUSERCONDITIONTABLE,THEINTEGRALREWARDDATASHEETTHROUGHRETURNSTHEDATAOFTEMPORARYINTEGRALTABLETHISSYSTEMPAYMOREATTENTIONTODEALINGWITHUPDATEFAILUREANDPROCEDUREEXCEPTIONALLYWHENCARRIEDONPROCESSINGKEYWORDSCOMPUTERAPPLICATIONSDATABASEMANAGEMENTSYSTEMINTEGRALUPDATERECORDNETPLATFORMADONETCSQL2000目錄論文總頁數(shù)33頁1引言22模塊需求分析221模塊功能需求222客戶對模塊性能要求223模塊開發(fā)需求23系統(tǒng)開發(fā)設(shè)計分析231系統(tǒng)設(shè)計模式232模塊功能分析2321積分表的更新2322新入會員積分表的更新2323老用戶卡片遺失情況下的更新2324當(dāng)日積分變化進行記錄233程序流程及分析234模塊的詳細設(shè)計2341模塊主要對象的定義2342數(shù)據(jù)庫結(jié)構(gòu)設(shè)計24模塊的實現(xiàn)過程分析241積分更新類具體實現(xiàn)242積分累計記錄類具體實現(xiàn)25系統(tǒng)運行結(jié)果251積分更新類測試結(jié)果252積分累計記錄更新類測試結(jié)果2結(jié)論2參考文獻2附錄2致謝2聲明21引言隨著NET平臺的推出,其強大的功能和多語種的支持無疑給程序員們提供了一個更為廣大的開發(fā)平臺,其即時編譯能力在執(zhí)行效率上毫不遜于當(dāng)今其它流行編程平臺,通用語言規(guī)范使得不同語言定義的類能夠相互引用,大大地增加了代碼的重用性,使得軟件開發(fā)速度得到質(zhì)的提高。其中C綜合了JAVA,C,VB等語言的優(yōu)點成為MICROSOFT新一代開發(fā)平臺下的生力軍,在此平臺下開發(fā)的各種管理應(yīng)用系統(tǒng)紛紛出現(xiàn),百貨店當(dāng)然也少不了它。以前消費者都是通過現(xiàn)金交易來購買商品,消費者無意要帶大量的現(xiàn)金在身上,這樣做既不方便也不安全,為了讓消費者消費不再單單依賴于現(xiàn)金進行交易,以及為消費者提供優(yōu)惠的政策,相應(yīng)地需要一套積分系統(tǒng)對消費者積分進行必要的管理,從而不但可以方便消費者的購物還能提高購物的趣味性,并通過獎勵積分方法激起消費者在百貨店的購物興趣。系統(tǒng)模塊主要負責(zé)對消費者當(dāng)日消費和追加的積分進行更新和累計記錄管理,對消費者遺失卡片的情況,卡號進行更改并對原有積分進行保留,最大程度上保護消費者的利益。2模塊需求分析21模塊功能需求模塊對用戶當(dāng)日消費或者追加的積分進行更新,這種更新不是即時更新,而是在指定的時間間隔后對積分信息進行更新。同時要對新增加的會員信息進行初始化,并添加新會員信息,對老會員遺失積分卡情況進行卡號的再發(fā)行,參照原卡信息對再發(fā)行的積分卡信息進行更新。所有積分累積變化都應(yīng)有所記錄,模塊程序的啟動以及結(jié)束都要輸出日志記錄使得程序執(zhí)行與否有據(jù)可查,對于程序的意想不到異常終止也應(yīng)該輸出到日志記錄中,從而便于管理者查出異常原因,并即時采取措施。22客戶對模塊性能要求實現(xiàn)模塊所有功能模塊重用性強模塊穩(wěn)定性和容錯能力強模塊能穩(wěn)定運行模塊能即時響應(yīng)23模塊開發(fā)需求積分管理系統(tǒng)是對日軟件外包的一個實際項目,系統(tǒng)所有的工作都要求在日文操作系統(tǒng)下進行,客戶要求選用NET作為開發(fā)所用平臺,為了使系統(tǒng)達到最好性能,所以開發(fā)所用的一套工具都使用MICROSOFT公司的開發(fā)產(chǎn)品,C其融合JAVA,C,VB等語言的優(yōu)點是我們選擇它作為開發(fā)語言的原因之一。以下列出模塊開發(fā)基本需求1硬件需求微型計算機一臺2操作系統(tǒng)WINDOWS2000日文3開發(fā)語言CNET4數(shù)據(jù)庫MICROSOFTSQLSERVER20005其他軟件需求VISUALSTUDIO2003集成開發(fā)環(huán)境3系統(tǒng)開發(fā)設(shè)計分析31系統(tǒng)設(shè)計模式根據(jù)用戶對模塊功能需求描述,初步設(shè)計5張數(shù)據(jù)表1臨時積分表用于記錄用戶當(dāng)日和前日為更新到積分表中的數(shù)據(jù),主要有當(dāng)日積分,前日積分,更新區(qū)分等字段,系統(tǒng)會定時將當(dāng)日積分累加到前日積分,最后積分更新時才會寫入用戶積分表。2積分表記錄用戶積分信息,主要有消耗積分,追加積分,獎勵積分,累積積分等字段。3用戶狀態(tài)表記錄用戶優(yōu)先等級,入會店鋪等信息。4獎勵積分表記錄用戶得到的獎勵積分以及獎勵理由。5積分歷史記錄表記錄用戶當(dāng)日積分變化,主要有當(dāng)日消耗積分,當(dāng)日追加積分,現(xiàn)有積分,當(dāng)日獎勵積分等字段。模塊通過讀取臨時積分表分別對其它四張表進行更新或者添加操作。遵照臨時表對其它表進行操作的模式,進行模塊設(shè)計。32模塊功能分析321積分表的更新對當(dāng)日用戶積分進行時間段更新,因為不是即時更新,記錄積分表可見有兩張,一張是應(yīng)該用來記錄當(dāng)日時間段用戶積分變化的臨時積分表,另一張表則是用戶的積分表,積分表的更新應(yīng)該按照臨時積分表的數(shù)據(jù)進行更新。322新入會員積分表的更新對于新入會員則起先應(yīng)在臨時表中記錄,當(dāng)積分表進行更新的時候,才將其添加入積分表中,并對新會員入會信息進行記錄,則必需要會員表。323老用戶卡片遺失情況下的更新還有種情況便是用戶卡片丟失的情況,需要對卡片進行再發(fā)行,要將原來用戶所有信息移植到新卡片中,由此應(yīng)在臨時積分表中設(shè)計一個用于區(qū)分更新的字段來識別用戶積分表更新情況,還有就是再發(fā)行的時候會員的以前的ID就不能再用了,系統(tǒng)還設(shè)計到了一個獎勵積分表,應(yīng)該把獎勵積分表的ID更新成新卡的ID號。324當(dāng)日積分變化進行記錄最后還應(yīng)對用戶當(dāng)日積分變化進行記錄,則相應(yīng)需要一張積分記錄表,根據(jù)臨時表進行更新。33程序流程及分析模塊程序流程如圖1程序類臨時積分表積分表獎勵積分表會員表積分累積表圖1模塊處理流程圖該流程說明詳細流程圖見附錄1依次讀取臨時積分表里的記錄,對每一條記錄根據(jù)其更新區(qū)分字段進行相應(yīng)處理。2用臨時表讀出的記錄的會員ID字段對會員表進行讀取,如無記錄則對會員表進行添加。3臨時表讀出的記錄的更新區(qū)分不屬于卡片再發(fā)行的時候,對積分表進行更新或者添加。4臨時表讀出的記錄的更新區(qū)分屬于卡片再發(fā)行的時候,對積分表進行更新或者添加,并對獎勵積分表會員ID進行更新。5臨時表讀出的記錄對當(dāng)日積分歷史記錄表進行更新或者添加。34模塊的詳細設(shè)計341模塊主要對象的定義342數(shù)據(jù)庫結(jié)構(gòu)設(shè)計數(shù)據(jù)庫技術(shù)在計算機軟件鄰域研究中一直是非常重要的主題,在積分管理系統(tǒng)中,數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計占非常重要的地位,設(shè)計好壞與數(shù)據(jù)庫中數(shù)據(jù)的讀取起很大影響作用。而且應(yīng)該以數(shù)據(jù)的統(tǒng)計算法相結(jié)合,以數(shù)據(jù)的讀取統(tǒng)計方便為目的。在積分更新和積分累計記錄模塊中,相應(yīng)的數(shù)據(jù)庫表結(jié)構(gòu)如下表4臨時積分數(shù)據(jù)表字段名稱數(shù)據(jù)類型長度是否為空字段說明備注MEMBER_CODECHAR13否會員編號OLD_MEMBER_CODECHAR13是舊會員編號用于卡片再發(fā)行YUTAI_RANKCHAR2是優(yōu)待等級YDAY_POINTNUMERIC8是前日所有積分前日為止所有積分NOW_POINTNUMERIC8是當(dāng)前積分當(dāng)前為止所有積分YDAY_TUKI_KAIAGE_MNUMERIC10是前月購買金額前月為止所有積分TUKI_KAIAGE_MNUMERIC10是當(dāng)月購買金額OUT_POINTNUMERIC6是當(dāng)日消耗積分OUT_KAIAGE_MNUMERIC10是當(dāng)日減算金額OUT_RIYU_CODECHAR2是減算原因ADD_POINTNUMERIC6是當(dāng)日添加積分ADD_KAIAGE_MNUMERIC10是當(dāng)日添加金額ADD_RIYU_CODECHAR2是添加原因UPD_KBNCHAR1是更新區(qū)分1注冊2修改3刪除4卡片再發(fā)行DATA_KBNCHAR1是發(fā)生地區(qū)分0分店1總店UPD_YMDHMSCHAR20是更新日期YYYYMMDDHHMMSSUPD_TANTOUCHAR6是更新?lián)?dāng)者之所以要建立臨時表是因為模塊更新是定時更新而不是即時更新,臨時表的主要作用是記錄當(dāng)日和前日用戶數(shù)據(jù)的,這些數(shù)據(jù)都還沒來得及更新到積分表中去,而臨時表自己也會定時地將當(dāng)日積分累加到前日積分中去,即字段NOW_POINT值累加到Y(jié)DAY_POINT字段中去,ADD_POINT也會定時地向NOW_POINT進行累加,在臨時表中會員有兩個ID,一個是舊ID,一個是新ID他的作用在于如果會員卡片丟失了就需要對會員注冊一個新ID以供用戶使用,其中UPD_KBN字段是比較重要的字段,它是用來進行更新區(qū)分的,即會員到底是第一次注冊,還是會員要求注銷自己的帳號,還是由于卡片丟失需要重新辦理卡片等。表5會員狀態(tài)表字段名稱數(shù)據(jù)類型長度是否為空字段說明備注MEMBER_CODECHAR13否會員編號OLD_MEMBER_CODECHAR13是舊會員編號DOMINANT_CODECHAR3是會員等級編號TENPO_CODECHAR6是店鋪編號OLD_DOMINANT_CODECHAR3是會員舊等級編號OLD_TENPO_CODECHAR6是舊店鋪編號UPD_KBNCHAR1是更新區(qū)分MSTS_AUTO_IDINT15否自動編號會員狀態(tài)表主要是用于記錄會員的一些入會信息,在臨時表中的會員是否是第一次注冊,如果是第一次的話就需要對其信息進行添加到會員狀態(tài)表中去,不是的話就不需要添加。表6用戶積分表字段名稱數(shù)據(jù)類型長度是否為空字段說明備注MEMBER_CODECHAR13否會員編號OLD_MEMBER_CODECHAR13是舊會員編號YUTAI_RANKCHAR2是優(yōu)待等級NOW_POINTNUMERIC8是當(dāng)前積分RUIKEI_POINTNUMERIC8是累積積分OUT_RUIKEI_POINTNUMERIC8是消耗累計積分ADD_RUIKEI_POINTNUMERIC8是追加累計積分KIHON_RUIKEI_POINTNUMERIC8是基本累積積分BONUS_RUIKEI_POINTNUMERIC8是獎勵累積積分KAIAGE_RCHAR8是最后消費時間YYYYMMDDTUKI_KAIAGE_MNUMERIC10是當(dāng)月購買金額BEFORE_TUKI_KAIAGE_MNUMERIC10是前月購買金額KAIAGE_FNUMERIC5是購買次數(shù)KAIAGE_MNUMERIC10是購買金額MEMBER_WARIBIKI_MNUMERIC10是會員打折累積金額KOUNYU_MNUMERIC10是買進累積金額MUKOU_KBNCHAR1是無效區(qū)分0有效1無效ADD_YMDHMSCHAR20是注冊時間YYYYMMDDHHMMSSADD_TANTOUCHAR6是注冊擔(dān)當(dāng)者UPD_YMDHMSCHAR20是更新時間YYYYMMDDHHMMSSUPD_TANTOUCHAR6是更新?lián)?dāng)者SYSTEM_UPD_YMDHMSCHAR20是系統(tǒng)更新時間YYYYMMDDHHMMSS積分表則是記錄從會員注冊之日起到現(xiàn)在,會員積分總的變化,如會員總的消耗積分,總的追加積分,總的獎勵積分,最后一次消費時間,打折了好多金額,消費的次數(shù)等能反應(yīng)出會員是否是一個老客戶還是不怎么經(jīng)常光顧的新客戶。表7獎勵積分表字段名稱數(shù)據(jù)類型長度是否為空字段說明備注SHORI_YMCHAR6否處理月份YYYYMMMEMBER_CODECHAR13否會員編號TUKI_KAIAGE_MNUMERIC10是當(dāng)月購買金額BONUS_POINTNUMERIC8是獎勵積分BONUS_KUBNNUMERIC4是獎勵區(qū)分SYSTEM_UPD_YMDHMSCHAR14是系統(tǒng)更新時間YYYYMMDDHHMMSS獎勵積分表用來記錄用戶受到獎勵的積分數(shù),以及為什么受到獎勵,讓管理者有據(jù)可查。表8當(dāng)日積分歷史記錄表字段名稱數(shù)據(jù)類型長度是否為空字段說明備注MEMBER_CODECHAR13否會員編號YMDCHAR8否日期YYYYMMDDYUTAI_RANKCHAR2是優(yōu)待等級KIHON_POINTNUMERIC6是當(dāng)前基本積分BONUS_POINTNUMERIC6是獎勵積分ADD_POINTNUMERIC6是添加積分OUT_POINTNUMERIC6是消耗積分NOW_POINTNUMERIC8是當(dāng)日積分UPD_YMDHMSCHAR14是更新日期YYYYMMDDHHMMSSUPD_TANTOUCHAR6是更新?lián)?dāng)者當(dāng)日積分歷史記錄表則是用于記錄用戶當(dāng)日記錄變化的,其主鍵是MEMBER_CODE和YMD聯(lián)合起來的主鍵,可見每當(dāng)依照臨時表對其它表進行更新時,臨時表中每條用戶的數(shù)據(jù)都會備份到當(dāng)日積分歷史記錄表中來。模塊程序處理過程都是參照臨時積分表對其它5個表進行數(shù)據(jù)庫更新,添加刪除等工作,程序開始以及結(jié)束都要輸出相應(yīng)的日志,但發(fā)生異?,F(xiàn)象時應(yīng)輸出錯誤日志到數(shù)據(jù)庫的LOG中去。讀取臨時表時應(yīng)該注意每次讀取記錄條數(shù),以免數(shù)據(jù)量過大引起服務(wù)器系統(tǒng)崩潰。4模塊的實現(xiàn)過程分析41積分更新類具體實現(xiàn)先在FSPB1210類構(gòu)造函數(shù)里創(chuàng)建數(shù)據(jù)庫連接類和共通文件類PUBLICFSPB1210/共通情報取得INIININEWINICONFIGIFINIERRORSTRING“1“/因為SKYCONNECT類中會使用到INICONFIG類進行INI共同文件的讀取,所以要先判斷INI文件是否存在,以及文件能否打開和正確讀取INI中的字段項,這樣才能保證SKYCONNECT類正常運行。程序首先要讀取INI共同文件,如果讀取失敗需要輸出失敗原因,并結(jié)束程序,因為程序的所有數(shù)據(jù)庫操作都封裝在SKYCONNECT類中的,而SKYCONNECT類也需要INI文件的讀取,固輸出錯誤日志時候需要自己單獨創(chuàng)建數(shù)據(jù)庫連接代碼。這段代碼如下以下是更新積分程序具體實現(xiàn)的主要邏輯代碼DODATATABLEKARISKYCONNECT1GETDATATABLEPAGE“SELECTFROMFSPTB_POINT_KARI“,I,100IFDATATABLEKARIROWSCOUNT0FOREACHDATAROWDATAROWKARIINDATATABLEKARIROWSDATASETDATASETMEMBERSKYCONNECT1GETDATASET“SELECTFROMFSPTB_MEMBER_STATUSWHEREMEMBER_CODE“DATAROWKARI“MEMBER_CODE“TOSTRING“IFDATASETMEMBERTABLES0ROWSCOUNT0FSPTB_MEMBER_STATUSDATAROWKARIIFDATAROWKARI“UPD_KBN“TOSTRING“4“DATASETDATASETPOINTJSKYCONNECT1GETDATASET“SELECTFROMFSPTB_POINTWHEREOLD_MEMBER_CODE“DATAROWKARI“OLD_MEMBER_CODE“TOSTRING“IFDATASETPOINTJTABLES0ROWSCOUNT0DATAROWDATAROWPOINTJDATASETPOINTJTABLES0ROWS0DATASETDATASETKARIJSKYCONNECT1GETDATASET“SELECTFROMFSPTB_POINT_KARIWHEREOLD_MEMBER_CODE“DATAROWKARI“OLD_MEMBER_CODE“TOSTRING“DATAROWDATAROWKARIJDATASETKARIJTABLES0ROWS0DATASETDATASETPOINTXSKYCONNECT1GETDATASET“SELECTFROMFSPTB_POINTWHEREMEMBER_CODE“DATAROWKARI“MEMBER_CODE“TOSTRING“IFDATASETPOINTXTABLES0ROWSCOUNT0FSPTB_CARDZDATAROWKARI,DATAROWPOINTJ,DATAROWKARIJELSEDATAROWDATAROWPOINTXDATASETPOINTXTABLES0ROWS0FSPTB_CARDGDATAROWKARI,DATAROWPOINTJ,DATAROWKARIJ,DATAROWPOINTXSLCONNECTIONCON1NEWSQLCONNECTION“SERVER192192192238UIDSAPWD123456DATABASETOKYOSUPER“SQLCOMMANDCOM1NEWSQLCOMMAND“INSERTFSPTB_LOGP_SEL,P_MSG,P_APPNM,P_FUNCNM,P_JOBNM,P_ERRDETAIL,P_INIFILEVALUESL,FSPINI,FSPB1210,UPDATA,SKXUFENG,FSPINI,COMMONINI“,CON1ELSERETURN0DATASETDATASETBONUSSKYCONNECT1GETDATASET“SELECTFROMFSPTB_POINT_BONUSWHEREMEMBER_CODE“DATAROWKARI“OLD_MEMBER_CODE“IFDATASETBONUSTABLES0ROWSCOUNT0DATAROWDATAROWBONUSDATASETBONUSTABLES0ROWS0FSPTB_POINT_BONUSDATAROWBONUS,DATAROWKARIELSEDATASETDATASETPOINTSKYCONNECT1GETDATASET“SELECTFROMFSPTB_POINTWHEREMEMBER_CODE“DATAROWKARI“MEMBER_CODE“TOSTRING“DATATABLEDATATABLEPOINTDATASETPOINTTABLES0IFDATATABLEPOINTROWSCOUNT0FSPTB_POINTZDATAROWKARIELSEDATAROWDATAROWPOINTDATATABLEPOINTROWS0FSPTB_POINTGDATAROWKARI,DATAROWPOINTELSERETURN0說明INT10DATATABLEDATATABLEKARIDODATATABLEKARISKYCONNECT1GETDATATABLEPAGE“SELECTFROMFSPTB_POINT_KARI“,I,100IFDATATABLEKARIROWSCOUNT0ELSERETURN0II100WHILEDATATABLEKARIROWSCOUNT100這段代碼是表示一次從臨時積分表中讀取100條記錄,用于避免數(shù)據(jù)量讀取過大造成系統(tǒng)崩潰,是處理過程的精髓所在,SKYCONNECT1GETDATATABLEPAGE將返回一個有100條或者100條以下的記錄條數(shù)。IFDATASETMEMBERTABLES0ROWSCOUNT0II100WHILEDATATABLEKARIROWSCOUNT100CATCHEXCEPTIONESKYCONNECT1SQLEXECUTE“INSERTFSPTB_LOGP_SEL,P_MSG,P_APPNM,P_FUNCNM,P_JOBNM,P_ERRDETAIL,P_INIFILEVALUESL,履歴更新,FSPB1210,UPDATA,SKXUFENG,“EMESSAGE“,COMMONINI“FINALLYSKYCONNECT1SQLEXECUTE“INSERTFSPTB_LOGP_SEL,P_MSG,P_APPNM,P_FUNCNM,P_JOBNM,P_ERRDETAIL,P_INIFILEVALUESE,終了,FSPB1210,UPDATA,SKXUFENG,終了,COMMONINI“THISDISPOSEFSPTB_MEMBER_STATUSDATAROWKARI判斷會員狀態(tài)表中是否有這個會員的信息,如果沒有,則用于對會員狀態(tài)表進行添加,F(xiàn)SPTB_MEMBER_STATUSDATAROWKARI這個函數(shù)的具體實現(xiàn)請見附錄。IFDATAROWKARI“UPD_KBN“TOSTRING“4“/會員卡片再發(fā)行更新處理ELSE/普通更新處理用于更新區(qū)分,當(dāng)該條臨時表積分記錄更新區(qū)分字段值為“4”的時候是會員遺失卡片的情況,否則便是一般的更新。兩種更新的具體實現(xiàn)請見附錄。42積分累計記錄類具體實現(xiàn)積分累計記錄類的實現(xiàn)大概思路和積分更新類相同,因為它們更新的參照物都是以臨時積分表為基礎(chǔ)的,首先都要通過SKYCONNECT1GETDATATABLEPAGE一次從臨時表中讀取100條記錄,直到將表中的記錄讀取完畢為止,程序開始正常運行時需要輸入開始日志,正常運行結(jié)束也需要輸入結(jié)束日志,出現(xiàn)異常需要輸出異常信息,它們都是通過SKYCONNECT1SQLEXECUTE來實現(xiàn)向日志數(shù)據(jù)表輸出一條記錄信息。模塊通過IFDATATABLERIREKIROWSCOUNT0判斷當(dāng)日積分變化表是否存在臨時表中指定日期用戶的這天變化記錄,如果存在存在則通過FSPTB_POINT_RIREKIGDATAROWKARI,DATAROWRIREKI函數(shù)更新,不存在通過FSPTB_POINT_RIREKIZDATAROWKARI函數(shù)追加。兩個函數(shù)的具體實現(xiàn)請見附錄。主要的處理邏輯代碼如下INTI0DATATABLEDATATABLEKARIDODATATABLEKARISKYCONNECT1GETDATATABLEPAGE“SELECTFROMFSPTB_POINT_KARI“,I,100IFDATATABLEKARIROWSCOUNT0FOREACHDATAROWDATAROWKARIINDATATABLEKARIROWSDATASETDATASETRIREKISKYCONNECT1GETDATASET“SELECTFROMFSPTB_POINT_RIREKIWHEREMEMBER_CODE“DATAROWKARI“MEMBER_CODE“TOSTRING“ANDUPD_YMDHMS“DATAROWKARI“UPD_YMDHMS“TOSTRING“DATATABLEDATATABLERIREKIDATASETRIREKITABLES0IFDATATABLERIREKIROWSCOUNT0DATAROWDATAROWRIREKIDATATABLERIREKIROWS0FSPTB_POINT_RIREKIGDATAROWKARI,DATAROWRIREKIELSEFSPTB_POINT_RIREKIZDATAROWKARIELSERETURN0II100WHILEDATATABLEKARIROWSCOUNT1005系統(tǒng)運行結(jié)果51積分更新類測試結(jié)果該模塊的測試包括共通信息取得、文件存在檢查處理、文件打開處理、對數(shù)據(jù)庫表檢索,追加,更新,正常和異常處理等合計16個測試點。圖3共通文件錯誤命名后的文件圖3將共通文件的名字進行了更改,這樣程序就無法讀取共通文件。圖4共通文件讀取失敗錯誤信息輸出圖4由于無法讀取共通文件,則程序?qū)⑤敵鲆粭l錯誤信息到日志中,這條信息的意思是沒有找到共通文件。圖5程序更新開始輸入日志輸出圖5是在共通文件讀取成功的前提下,輸出一條程序開始運行的日志,說明此程序運行開始。圖6會員狀態(tài)表添加前圖6是測試會員狀態(tài)表能否正常添加,假如起先表中沒有任何值。圖7會員狀態(tài)表添加后圖7從臨時積分表中讀取的記錄,在會員狀態(tài)表中找不到這條記錄,就將其添加到會員狀態(tài)表中去。圖8積分表追加前圖8是測試積分表能否正常添加,假如起先表中沒有任何值。圖9積分表追加后結(jié)果圖9從臨時積分表中讀取的記錄,在積分表中找不到這條記錄,就將其添加到積分表中去。圖10積分表更新前圖10是積分更新前積分表中數(shù)據(jù)的初始值,當(dāng)更新后其值將發(fā)生變化。圖11積分表更新后結(jié)果圖11積分表根據(jù)臨時表進行了積分更新,積分表值發(fā)生變化。圖12卡片再發(fā)行時積分表追加前圖12測試卡片再發(fā)行的時候,用臨時表中舊會員號對積分表進行檢索,如果存在著個舊會員號,通過積分表舊會員號記錄的數(shù)據(jù)和臨時表舊會員號記錄進行運算,把新會員號信息添加到積分表中,此圖是添加前時積分表的數(shù)據(jù)。圖13卡片再發(fā)行時積分表追加后結(jié)果圖13卡片再發(fā)行時成功添加了臨時表中的新會員信息后積分表的數(shù)據(jù)。圖14卡片再發(fā)行時積分表更新前圖14卡片再發(fā)行時候,如果臨時表中新會員號能在積分表中找到對應(yīng)的記錄,則就不需要另外添加一項,只需在該項進行更新即可,此圖是更新前積分表的數(shù)據(jù)。圖15卡片再發(fā)行時積分表更新后結(jié)果圖15是卡片再發(fā)行時,直接對積分表中存在的新會員號進行更新后的數(shù)據(jù)。圖16卡片再發(fā)行時獎勵積分表更新前圖16是卡片再發(fā)行時候需要將獎勵積分表中以前的會員號進行更改,此圖為更改前的數(shù)據(jù)。圖17卡片再發(fā)行時獎勵積分表更新后結(jié)果圖17是獎勵積分表會員號更改后的狀態(tài)。圖18程序結(jié)束日志輸出圖18是程序正常運行后輸出一個結(jié)束日志,意思表示程序已經(jīng)正常結(jié)束。52積分累計記錄更新類測試結(jié)果FSPB1220模塊的測試內(nèi)容和過程基本上和FSPB1210測試內(nèi)容一致,以下只將同F(xiàn)SPB1210測試不同的結(jié)果列出圖19當(dāng)日積分記錄表追加前圖19是測試當(dāng)日積分記錄表能否正常添加,假如起先表中沒有任何值。圖20當(dāng)日積分記錄表追加后結(jié)果圖20從臨時積分表中讀取的記錄,在當(dāng)日積分記錄表中找不到這條記錄,就將其添加,此圖為添加后的結(jié)果。圖21當(dāng)日積分記錄表更新前圖21當(dāng)日積分記錄表中有此條記錄只需要進行更新,此圖為表更新前狀態(tài)。圖22當(dāng)日積分記錄表更新后結(jié)果圖22當(dāng)日積分表根據(jù)臨時積分表更新后的結(jié)果。結(jié)論通過翻閱資料和實踐編碼,模塊順利地實現(xiàn)了對系統(tǒng)的積分更新和歷史積分記錄,即通過讀取積分臨時表對用戶狀態(tài)表,用戶積分表,獎勵積分表和歷史積分記錄更新表進行了更新操作,模塊能夠成功地捕捉程序中出現(xiàn)的異常,并對異常信息進行記錄。除此之外還可以對模塊程序運行狀態(tài)進行記錄,即程序是否開始進行更新運行,以及程序是否正常運行結(jié)束,都會以一條信息形式記錄到數(shù)據(jù)庫中,從而滿足商業(yè)軟件要求程序嚴謹性,無差錯性。系統(tǒng)的設(shè)計與開發(fā)在老師的領(lǐng)導(dǎo)下完全遵從對日軟件開發(fā)的標準。系統(tǒng)進行了需求分析,概要設(shè)計、詳細設(shè)計、編碼、測試等每一部分的學(xué)習(xí)和實踐。系統(tǒng)的設(shè)計階段有舉足輕重的地位,設(shè)計階段的質(zhì)量優(yōu)劣,直接影響到以后系統(tǒng)質(zhì)量。需求是否準確,影響到最后系統(tǒng)是否能達到用戶的要求,概要設(shè)計的數(shù)據(jù)結(jié)構(gòu)的設(shè)計,影響數(shù)據(jù)庫的設(shè)計是否優(yōu)越,如果設(shè)計合理,在編碼階段實現(xiàn)就相對容易了。而某店積分管理系統(tǒng)是一個大型的團隊開發(fā)項目。團隊合作的概念和團隊精神是非常重要性。如何在一個團隊里尋找到自己的位置和與人相處是團隊開發(fā)的重要環(huán)節(jié)之一。參考文獻1JESSELIBERTY美C程序設(shè)計M北京中國電力出版社,2002。2方睿,吳四九等網(wǎng)絡(luò)數(shù)據(jù)庫原理及應(yīng)用M成都四川大學(xué)出版社,2005。3杜斌,幸利等軟件設(shè)計工程M成都電子科技大學(xué)出版社,2005。4李超,羅積玉等軟件制造工程M成都電子科技大學(xué)出版社,2005。5唐耀C程序設(shè)計實用教程M北京中國水利水電出版社,2005。6郝春強C基礎(chǔ)與實例教程M北京中國電力出版社,2005。7JOSEPHMAYO美C技術(shù)內(nèi)幕M北京機械工業(yè)出版社,2003。附錄詳細流程圖如圖23所示圖23程序詳細流程圖FSPB1210模塊中的各函數(shù)代碼PUBLICVOIDFSPTB_MEMBER_STATUSDATAROWDATAROWKARISKYCONNECT1SQLEXECUTE“INSERTFSPTB_MEMBER_STATUSMEMBER_CODE,UPD_KBNVALUES“DATAROWKARI“MEMBER_CODE“TOSTRING“,1“PUBLICVOIDFSPTB_POINTGDATAROWDATAROWKARI,DATAROWDATAROWPOINTDECIMALNOWPOINTDECIMALDATAROWPOINT“RUIKEI_POINT“DECIMALDATAROWKARI“YDAY_POINT“DECIMALDATAROWKARI“NOW_POINT“DECIMALDATAROWPOINT“OUT_RUIKEI_POINT“DECIMALDATAROWKARI“OUT_POINT“DECIMALRUIKEIPOINTDECIMALDATAROWPOINT“ADD_RUIKEI_POINT“DECIMALDATAROWPOINT“KIHON_RUIKEI_POINT“DECIMALDATAROWPOINT“BONUS_RUIKEI_POINT“DECIMALDATAROWKARI“ADD_POINT“DECIMALOUTRUIKEIPOINTDECIMALADDRUIKEIPOINTDECIMALTUKIKAIAGEMSTRINGUPDYMDHMSIFDATAROWKARI“OUT_POINT“SYSTEMDBNULLVALUEOUTRUIKEIPOINTDECIMALDATAROWPOINT“OUT_RUIKEI_POINT“ELSEOUTRUIKEIPOINTDECIMALDATAROWPOINT“OUT_RUIKEI_POINT“DECIMALDATAROWKARI“OUT_POINT“IFDATAROWKARI“ADD_POINT“SYSTEMDBNULLVALUEADDRUIKEIPOINTDECIMALDATAROWPOINT“ADD_RUIKEI_POINT“ELSEADDRUIKEIPOINTDECIMALDATAROWPOINT“ADD_RUIKEI_POINT“DECIMALDATAROWKARI“ADD_POINT“TUKIKAIAGEMDECIMALDATAROWPOINT“TUKI_KAIAGE_M“DECIMALDATAROWKARI“ADD_KAIAGE_M“DECIMALDATAROWKARI“OUT_KAIAGE_M“UPDYMDHMSSYSTEMDATETIMENOWTOSTRINGSKYCONNECT1SQLEXECUTE“UPDATEFSPTB_POINTSETMEMBER_CODE“DATAROWKARI“MEMBER_CODE“TOSTRING“,OLD_MEMBER_CODE“DATAROWKARI“OLD_MEMBER_CODE“TOSTRING“,YUTAI_RANK“DATAROWKARI“YUTAI_RANK“TOSTRING“,NOW_POINT“NOWPOINTTOSTRING“,RUIKEI_POINT“RUIKEIPOINTTOSTRING“,OUT_RUIKEI_POINT“OUTRUIKEIPOINTTOSTRING“,ADD_RUIKEI_POINT“ADDRUIKEIPOINTTOSTRING“,TUKI_KAIAGE_M“TUKIKAIAGEMTOSTRING“,SYSTEM_UPD_YMDHMS“UPDYMDHMSTOSTRING“WHEREMEMBER_CODE“DATAROWKARI“MEMBER_CODE“TOSTRING“/追加PUBLICVOIDFSPTB_POINTZDATAROWDATAROWKARIDECIMALNOWPOINTDECIMALDATAROWKARI“YDAY_POINT“DECIMALDATAROWKARI“NOW_POINT“DECIMALDATAROWKARI“OUT_POINT“DECIMALOUTRUIKEIPOINTDECIMALADDRUIKEIPOINTSTRINGUPDYMDHMSIFDATAROWKARI“OUT_POINT“SYSTEMDBNULLVALUEOUTRUIKEIPOINTDECIMALDATAROWKARI“OUT_POINT“ELSEOUTRUIKEIPOINT0IFDATAROWKARI“ADD_POINT“SYSTEMDBNULLVALUEADDRUIKEIPOINTDECIMALDATAROWKARI“ADD_POINT“ELSEADDRUIKEIPOINT0UPDYMDHMSSYSTEMDATETIMENOWTOSTRINGSKYCONNECT1SQLEXECUTE“INSERTFSPTB_POINTVALUES“DATAROWKARI“MEMBER_CODE“TOSTRING“,“DATAROWKARI“OLD_MEMBER_CODE“TOSTRING“,“DATAROWKARI“YUTAI_RANK“TOSTRING“,“NOWPOINTTOSTRING“,“DATAROWKARI“ADD_POINT“TOSTRING“,“OUTRUIKEIPOINTTOSTRING“,“ADDRUIKEIPOINTTOSTRING“,“0,0,NULL,0“,“DATAROWKARI“TUKI_KAIAGE_M“TOSTRING“,0,0,0,0“,“0“,“DATAROWKARI“UPD_YMDHMS“TOSTRING“,“DATAROWKARI“UPD_TANTOU“TOSTRING“,“DATAROWKARI“UPD_YMDHMS“TOSTRING“,“DATAROWKARI“UPD_TANTOU“TOSTRING“,“UPDYMDHMS“/更新(再発行時)PUBLICVOIDFSPTB_CARDGDATAROWDATAROWKARI,DATAROWDATAROWPOINTJ,DATAROWDATAROWKARIJ,DATAROWDATAROWPOINTXDECIMALNOWPOINTDECIMALRUIKEIPOINTDECIMALOUTRUIKEIPOINTDECIMALADDRUIKEIPOINTDECIMALKIHONRUIKEIPOINTDECIMALTUKIKAIAGEMSTRINGKAIAGERDECIMALKAIAGEFDECIMALKAIAGEMDECIMALMEMBERWARIBIKIMDECIMALKOUNYUMSTRINGUPDYMDHMSIFDECIMALPARSEDATAROWKARI“OLD_MEMBER_CODE“TOSTRINGDECIMALPARSEDATAROWKARI“MEMBER_CODE“TOSTRINGNOWPOINTDECIMALDATAROWPOINTX“RUIKEI_POINT“DECIMALDATAROWKARI“YDAY_POINT“DECIMALDATAROWKARI“NOW_POINT“DECIMALDATAROWKARI“OUT_POINT“DECIMALDATAROWKARI“YDAY_POINT“RUIKEIPOINTDECIMALDATAROWPOINTJ“ADD_RUIKEI_POINT“DECIMALDATAROWPOINTJ“KIHON_RUIKEI_POINT“DECIMALDATAROWPOINTJ“BONUS_RUIKEI_POINT“DECIMALDATAROWPOINTX“ADD_RUIKEI_POINT“DECIMALDATAROWPOINTX“KIHON_RUIKEI_POINT“DECIMALDATAROWPOINTX“BONUS_RUIKEI_POINT“DECIMALDATAROWKARI“ADD_POINT“OUTRUIKEIPOINTDECIMALDATAROWPOINTJ“OUT_RUIKEI_POINT“DECIMALDATAROWKARI“OUT_POINT“DECIMALDATAROWKARI“YDAY_POINT“ADDRUIKEIPOINTDECIMALDATAROWPOINTJ“ADD_RUIKEI_POINT“DECIMALDATAROWKARI“ADD_POINT“TUKIKAIAGEMDECIMALDATAROWPOINTJ“TUKI_KAIAGE_M“DECIMALDATAROWPOINTX“TUKI_KAIAGE_M“DECIMALDATAROWKARI“YDAY_TUKI_KAIAGE_M“DECIMALDATAROWKARI“ADD_KAIAGE_M“DECIMALDATAROWKARI“OUT_KAIAGE_M“ELSENOWPOINTDECIMALDATAROWPOINTX“RUIKEI_POINT“DECIMALDATAROWKARI“YDAY_POINT“DECIMALDATAROWKARI“NOW_POINT“DECIMALDATAROWKARI“OUT_POINT“DECIMALDATAROWKARI“YDAY_POINT“DECIMALDATAROWKARIJ“OUT_POINT“RUIKEIPOINTDECIMALDATAROWPOINTJ“ADD_RUIKEI_POINT“DECIMALDATAROWPOINTJ“KIHON_RUIKEI_POINT“DECIMALDATAROWPOINTJ“BONUS_RUIKEI_POINT“DECIMALDATAROWPOINTX“ADD_RUIKEI_POINT“DECIMALDATAROWPOINTX“KIHON_RUIKEI_POINT“DECIMALDATAROWPOINTX“BONUS_RUIKEI_POINT“DECIMALDATAROWKARI“ADD_POINT“DECIMALDATAROWKARIJ“ADD_POINT“OUTRUIKEIPOINTDECIMALDATAROWPOINTJ“OUT_RUIKEI_POINT“DECIMALDATAROWKARI“OUT_POINT“DECIMALDATAROWKARI“YDAY_POINT“DECIMALDATAROWKARIJ“OUT_POINT“ADDRUIKEIPOINTDECIMALDATAROWPOINTJ“ADD_RUIKEI_POINT“DECIMALDATAROWKARI“ADD_POINT“DECIMALDATAROWKARIJ“ADD_POINT“TUKIKAIAGEMDECIMALDATAROWPOINTJ“TUKI_KAIAGE_M“DECIMALDATAROWPOINTX“TUKI_KAIAGE_M“DECIMALDATAROWKARI“YDAY_TUKI_KAIAGE_M“DECIMALDATAROWKARI“ADD_KAIAGE_M“DECIMALDATAROWKARI“OUT_KAIAGE_M“DECIMALDATAROWKARIJ“ADD_KAIAGE_M“DECIMALDATAROWKARIJ“OUT_KAIAGE_M“KIHONRUIKEIPOINTDECIMALDATAROWPOINTJ“KIHON_RUIKEI_POINT“DECIMALDATAROWPOINTX“KIHON_RUIKEI_POINT“IFDATAROWPOINTX“KAIAGE_R“SYSTEMDBNULLVALUEKAIAGERDATAROWPOINTX“KAIAGE_R“TOSTRINGELSEKAIAGERDATAROWPOINTJ“KAIAGE_R“TOSTRINGKAIAGEFDECIMALDATAROWPOINTJ“KAIAGE_F“DECIMALDATAROWPOINTX“KAIAGE_F“KAIAGEMDECIMALDATAROWPOINTX“KAIAGE_M“DECIMALDATAROWPOINTJ“KAIAGE_M“MEMBERWARIBIKIMDECIMALDATAROWPOINTX“MEMBER_WARIBIKI_M“DECIMALDATAROWPOINTJ“MEMBER_WARIBIKI
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檔案及物品管理制度匯編
- 企業(yè)招投標檔案管理制度
- 如何規(guī)范公務(wù)員獎勵制度
- 誠信檔案制度建設(shè)方案
- 完善綜合素質(zhì)檔案制度
- 幼兒園防疫生活規(guī)范制度
- 深化檔案職稱制度改革
- 安全規(guī)范老司機管理制度
- 幼兒園資產(chǎn)規(guī)范管理制度
- 協(xié)會檔案印章管理制度
- 內(nèi)蒙古赤峰市松山區(qū)2025-2026學(xué)年高一上學(xué)期期末數(shù)學(xué)試題(含答案)
- 2026年官方標準版離婚協(xié)議書
- 2025年國補自查自糾報告
- 景區(qū)旅游基礎(chǔ)設(shè)施提升項目可行性研究報告
- 港澳聯(lián)考中文真題及答案
- 統(tǒng)編版語文四年級下冊全冊教案(2025年2月修訂)
- 民間借貸合同規(guī)范示范文本
- 《JJG 875-2019數(shù)字壓力計》解讀
- 舞蹈癥鑒別診斷課件
- 蘿莉妹子的繽紛暑假2900字9篇
- 家紡設(shè)計考試題庫及答案
評論
0/150
提交評論