




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學位論文某店POS積分管理系統——積分失效與數據分析模塊的實現論文作者姓名:申請學位專業:計算機科學與技術申請學位類別:論文提交日期:某店POS積分管理系統——積分失效與數據分析模塊的實現摘要開發一個大而復雜的POS積分管理軟件系統,將它進行適當的分解,不但可以降低其復雜性,還可以減少開發工作量,降低開發成本,提高軟件生產率。其中,積分失效處理,是為了刺激客戶消費,對于一年以內未購買任何商品的會員,對其積分進行清除處理。數據處理模塊,是對商品銷售金額等具體數據進行計算處理,以方便企業對各類型商品銷售情況等進行數據分析。作為商務用軟件,錯誤檢測機制尤為重要。因此,在模塊開發時應考慮到各種實發情況的出現,并做出相應處理。在完成程序開發后,需作成單元檢測清單(PCL),并進行測試,驗證軟件的有效性,發現并修補缺陷,以提高軟件質量,確保開發出用戶滿意的軟件產品。關鍵詞:POS積分管理軟件系統;積分失效;數據分析;單元檢測清單AnIntegralManagementofPOSSystemforADepartmentStore——TheImplementationofIntegralFailureandDataAnalysisModuleAbstractThedesignisaboutthedevelopmentofmakeintegralfailuresanddataanalysismodules.Integralfailures,Thememberswhothewholeyeardidnotbuyanygoods,willbegetridoftheirintegral.Dataanalysismoduleisforthesalesamountofspecificdatatobedealtwithandfortheconvenienceofenterprisestodealwithalltypesofcommodities,suchassalesofdataanalysis.DevelopmentofmodulesthatshouldbetakenintoaccountisvariousCircumstances,andmadeaprogramchecklist(PCL)isalsoimportant.Conducttestingtoverifytheeffectivenessofthesoftwareanddetectandrepairdefectsandtoimprovesoftwarequalityisalsoneeded.Keywords:integralmanagementsystem;IntegralFailure;DataAnalysis;ProgramCheckList目錄論文總頁數:30頁——積分失效與數據分析模塊的實現 01 引言 11.1 課題背景 11.2 選題意義 11.3 研究方法 12 分析工程 12.1 需求分析 12.2 系統分析 22.2.1 系統構成 22.2.2 系統模塊 22.2.3 系統數據分析 23 設計工程 33.1 外部設計(概要設計) 33.1.1 數據庫設計 33.1.2 數據流程圖 73.2 內部設計(詳細設計) 83.2.1 積分失效詳細代碼設計 83.2.2 數據分析模塊詳細代碼設計 134 制造工程 144.1 開發環境 144.2 程序開發 154.2.1 程序流程圖 154.2.2 建立JDBC-ODBC橋接器 174.2.3 讀取INI文件 174.2.4 對數據庫操作 184.2.5 對文件操作 195 測試工程 205.1 測試準備 205.1.1 積分失效模塊單元檢測表 205.1.2 分析用POS明細作成模塊單元檢測表 235.2 測試實施 245.2.1 測試頁面截圖 245.2.2 測試結果數據 26結論 27參考文獻 28致謝 29聲明 30第30頁共30頁引言課題背景隨著社會科學技術突飛猛進的發展,計算機的應用已經普及到經濟和社會的各個領域。長期以來人們所使用的傳統的單純憑借人力進行管理的銷售方式,已經無法適應當今社會的現狀,同時也存在著很多弊端,如成本較高、安全性低、效率難以提高等。因此,作為計算機應用的一個方面,利用其強大的運算能力,進行銷售管理具有無法替代的優勢。其高效、可靠、穩定等優點已得到了消費者和銷售企業一致的好評。選題意義不同類型的銷售行業有自己的特點,對于零售業而言,是一個成本敏感,同時具有大規模的分布性和靈活多變的特點。因此,如何處理好在一個高度分布的網絡環境中,多種軟硬件平臺的管理、部署和升級,適應實際的需求變化,為用戶提供一種可靠的低成本運作模式,成為零售業解決方案成功的關鍵。針對這一情況,希望研究出一套POS積分管理系統,用來對商品銷售情況、會員消費情況、分店經營情況等信息進行系統高效的管理。降低甚至消除不必要的成本和費用,給客戶帶來更大效益。而本課題的研究正是要在這個系統之下開發出積分失效和數據分析兩個模塊。其中積分失效模塊對一年內未購買任何物品的會員,進行積分過期失效處理。這樣做可以刺激用戶消費,提高銷售業績。而數據分析模塊則是對商品銷售信息進行分析,對各種類型的商品銷售情況,銷售利潤做成數據資料以供外部分析使用。研究方法作為以JAVA語言為基礎的商務型軟件,此次研究主要采用面向對象的方法進行軟件開發。盡可能模擬人類習慣的思維方式來分析和解決問題,保證軟件系統的穩定性和可復用性以及良好的維護性。在程序中,采用了JDBC—ODBC橋的方式,進行數據庫連接。另外,由于是商務軟件,就要考慮到用戶在使用該系統時有可能出現的各種錯誤,并針對這些錯誤制定出解決的方案。整個開發過程分為四個部分,包括分析工程、設計工程、制造工程、測試工程。下面將詳細對上述過程進行細致的描述。分析工程需求分析由于該百貨店實行會員管理模式,每個會員都有代金消費點數,其中就存在部分會員在獲得消費點后,因某些原因長期未能進行消費,但仍要對他們的消費點進行管理,這就給整個管理系統帶來了負擔,同時也占用了很多不必要的資源,無形中增大了管理的成本。為了解決這個問題,就需要建立一個模塊來定期檢查會員消費情況,對限定時間內未消費的用戶進行積分失效處理,以節約系統資源,同時,也在一定程度上刺激會員消費。把握市場動向,提高銷售利潤是企業的最終目標。在企業管理日趨科學化的今天,如何準確及時地進行生產經營決策是銷售企業面臨的嚴峻問題。要求決策者準確及時地捕捉到銷售信息,分析銷售情況,隨時根據歷史的銷售情況,對下一步的生產經營科學地進行決策。銷售分析需要大量的基礎數據,但是如果將原始的銷售信息直接用于分析又會給分析工作帶來很大不便,是效率無法提高。因此就需要將原始銷售信息進行整理,處理成決策分析所需的數據資料,進行保存。系統分析系統構成硬件需求:計算機一臺操作系統:Windows2000(日文)開發語言:Java開發工具:eclipse數據庫:MicrosoftSQLServer2000其他軟件:MicrosoftSQLServer2000DriverforJDBCService,Subversion(S VN)1.30系統模塊積分失效從會員信息表中,找出一年前注冊,當前點數不為0,且一年內未進行消費的用戶,對其積分進行清零處理。數據分析對每日POS消費記錄文件進行數據處理,生成用于外部數據分析的明細文件系統數據分析 會員數據:包括會員的基本信息數據(入會日期,會員編碼,姓名,住址,聯系電話,出生年月日,會員種類,入會店鋪編碼等等); 積分數據:包括積分卡基本信息數據(會員編碼,現在積分點,累計積分點,輸出累計積分點,增加累計積分點,基本累計積分點,購買次數,購買累計金額等等); 店鋪數據:包括店鋪基本信息數據(店鋪編碼,店鋪名稱,DOMINANT編碼,住址,聯系電話等等);用于進行數據分析處理的原始銷售信息存放于一個名為FSP_EFI010.DAT的文件中,其數據格式如表1所示:表1原始銷售信息文件數據格式數據名稱數據字段長度(位)店鋪CODE6TerminalNO6交易序列號5交易日期8交易時間2會員NO13JANCODE13商品名稱不定消費點數3消費金額6會員價格4退貨交易1折扣價4貼現價4按比例折扣價4按比例貼現價4按比例M&M值4GPCODE4部門CODE6設計工程外部設計(概要設計)數據庫設計 數據庫表結構的設計在每一個開發項目中都是非常重要的一個部分,數據庫表設計的好壞直接關系到開發過程中代碼實現的功能強大與否,是否包含齊備客戶所需求的功能。因此現在來介紹該模塊所用到的數據庫表的詳細設計。各數據表定義如表2所示表2數據表定義序號表參數名表名說明1FSPTB_MEMBER記錄會員基本信息2FSPTB_MEMBER_STATUS記錄會員狀態信息3FSPTB_POINT記錄會員點數基本信息4FSPTB_POINT_JNL記錄會員點數更新履歷5FSPTB_POINT_RIREKI記錄會員當日消費點數信息表3FSPTB_MEMBER(會員)主鍵列(屬性)名中文名稱類型寬度是否允許為空◎MEMBER_CODE會員編碼Char13NOTNULLNYUKAI_YMD入會年月日Char8NULLSHIMEI_KANA_S日語假名性Char16NOTNULLSHIMEI_KANA_N日語假名名Char16NOTNULLSHIMEI_KANJI_S中文姓Char32NOTNULLSHIMEI_KANJI_N中文名Char32NOTNULLTEL_SHIGAI_1電話1(市外)Char8NOTNULLTEL_SHINAI_1電話1(市內)Char8NOTNULLTEL_BANGO_1電話1(其它)Char8NOTNULLTEL_SHIGAI_2電話2(市外)Char8NOTNULLTEL_SHINAI_2電話2(市內)Char8NOTNULLTEL_BANGO_2電話3(其它)Char8NOTNULLTEL_SHIGAI_3電話3(市外)Char8NOTNULLTEL_SHINAI_3電話3(市內)Char8NOTNULLTEL_BANGO_3電話3(其它)Char8NOTNULLBIRTH_DAY出生年月日Char8NULLMEMBER_KBN會員種類Char1NULLFM_KBN性別Char1NULLMEMBER_ZIP郵政編碼Char8NOTNULLADDR_1地址1Char32NOTNULLADDR_2地址2Char48NOTNULLADDR_3地址3Char48NOTNULLADDR_4地址4Char48NOTNULLNYUKAI_TENPO入會的店鋪編碼Char6NULLMUKOU_KBN起效種類Char1NULLHOLD_CODE家庭所屬代碼Char13NULLADD_YMDHMS注冊時間Char14NULLADD_TANTOU注冊負責人IDChar6NULLUPD_YMDHMS更新時間Char14NULLUPD_TANTOU更新負責人IDChar6NULL表4FSPTB_MEMBER_STATUS(會員狀態)主鍵列(屬性)名中文名稱類型寬度是否允許為空◎MEMBER_CODE會員編碼Char13NOTNULLOLD_MEMBER_CODE舊會員編碼Char13NULLDOMINANT_CODE優先級別編碼Char3NOTNULLTENPO_CODE店鋪號碼Char6NOTNULLOLD_DOMINANT_CODE舊優先級別編碼Char3NOTNULLOLD_TENPO_CODE舊店鋪編碼Char6NOTNULLUPD_KBN更新種類Char1NULLMSTS_AUTO_ID記錄番號Numeric15NULL表5FSPTB_POINT(積分)主鍵列(屬性)名中文名稱類型寬度是否允許為空◎MEMBER_CODE會員編碼Char13NOTNULLOLD_MEMBER_CODE舊會員編碼Char13NULLYUTAI_RANK優惠等級Char2NULLNOW_POINT現在積分點98NULLRUIKEI_POINT累計積分點98NULLOUT_RUIKEI_POINT支出的累計積分點98NULLADD_RUIKEI_POINT增加的累計積分點98NULLKIHON_RUIKEI_POINT基本累計積分點98NULLBONUS_RUIKEI_POINT獎勵累計積分點98NULLKAIAGE_R最后交易時間Char8NULLTUKI_KAIAGE_M每月交易金額910NULLBEFORE_TUKI_KAIAGE_M上月交易金額910NULLKAIAGE_F交易次數95NULLKAIAGE_M交易金額910NULLMEMBER_WARIBIKI_M打折累計金額910NULLKOUNYU_M購買金額910NULLMUKOU_KBN起效種類Char1NULLADD_YMDHMS登陸時間Char14NULLADD_TANTOU登陸負責人IDChar6NULLUPD_YMDHMS更新時間Char14NULLUPD_TANTOU更新負責人IDChar6NULLSYSTEM_UPD_YMDHMS系統更新時間Char14NULL表6FSPTB_POINT_JNL(積分更新記錄)主鍵列(屬性)名中文名稱類型寬度是否允許為空TENPO_CODE店舗CODEChar6NOTNULLMEMBER_CODE會員CODEChar13NOTNULLCLIENT_NO顧客NOChar8NOTNULLADD_POINT_B當日追加POINT(更新前)96NOTNULLOUT_POINT_B當日支出POINT(更新前)96NOTNULLNOW_POINT_B現在POINT(更新前)98NOTNULLBONUS_POINT_B當日獎勵POINT(更新前)98NOTNULLOUT_KAIAGE_M_B當日減算金額(更新前)910NOTNULLADD_KAIAGE_M_B當日加算金額(更新前)910NOTNULLTUKI_KAIAGE_M_B月購買金額(更新前)910NOTNULLADD_POINT_A當日追加POINT(更新后)96NOTNULLADD_RIYU_CODE追加理由CODEChar2NOTNULLOUT_POINT_A當日支出POINT(更新后)96NOTNULLOUT_RIYU_CODE支出理由CODEChar2NOTNULLNOW_POINT_A現在POINT(更新后)98NOTNULLBONUS_POINT_A當日獎勵POINT(更新后)98NOTNULLOUT_KAIAGE_M_A當日減算金額(更新后)910NOTNULLADD_KAIAGE_M_A當日加算金額(更新后)910NOTNULLTUKI_KAIAGE_M_A月購買金額(更新后)910NOTNULLKURIKOSHI_POINT轉入POINT98NOTNULLTODAY_POINT本日最終POINT98NOTNULLUPD_YMDHMS更新日期Char14NOTNULLUPD_TANTOU擔當者CODEChar6NOTNULLJNL_AUTO_ID記錄IDNumeric15NOTNULL表7FSPTB_POINT_RIREKI(積分當日消費記錄)主鍵列(屬性)名中文名稱類型寬度是否允許為空◎MEMBER_CODE會員CODEChar13NOTNULLYMD日期Char8NOTNULLYUTAI_RANK優待等級Char2NULLKIHON_POINT當日基本POINT96NULLBONUS_POINT當日獎勵POINT96NULLADD_POINT當日追加POINT96NULLOUT_POINT當日支出POINT96NULLNOW_POINT現在POINT98NOTNULLUPD_YMDHMS更新日期Char14NOTNULLUPD_TANTOU擔當者CODEChar6NULL數據流程圖FSPTB_POINTFSPTB_POINT_JNLFSPTB_POINT_RIREKIFSPTB_POINTFSPTB_MEMBERFSPTB_MEMBER_STATUSFSPTB_LOG積分失效模塊CSV圖1積分失效處理流圖FSP_EFI010.DATFSP_EFI010.DATPOSYYYYMMDDXX.DAT分析數據作成模塊FSPTB_LOG圖2數據分析模塊流圖圖形注釋:圖形注釋::數據文件:數據庫表:功能模塊:數據流圖3注釋圖內部設計(詳細設計)積分失效詳細代碼設計程序初期設定。如果出現錯誤,輸出錯誤信息,程序結束。輸出開始日志記錄。 (1)如果出現錯誤,程序結束。 (2)否則,取得系統前一年日期。處理日期check。 (1)讀入初始設定的會員信息數據文件。如果出現錯誤,輸出錯誤信息,程序結束。否則,取得POINT實效日期。(2)設定會員信息數據文件。系統日期不是POINT實效處理日期的場合,輸出信息,程序結束。POINT實效處理。CSV文件讀入。如果出現錯誤,輸出錯誤信息,程序結束。取得文件名。打開CSV文件。POINT失效對象抽出(1)從FSPTB_POINT中讀取會員CODE。條件:最后購買日期在一年前&&現在POINT不為0。失效區分有效。抽出失效區分有效數據。POINT失效對象抽出(2)從FSPTB_POINT和FSPTB_MEMBER中讀取會員CODE。條件:會員CODE匹配;入會日期在一年以前;失效區分有效;買入次數為0;現在POINT不為0。返回值不為空。各表的更新處理從FSPTB_POINT中取出匹配會員的數據。 條件:會員編號是匹配會員編號。匹配會員的POINT信息更新。參照“POINT信息項目移動表”。從FSPTB_MEMBER中取出匹配會員的數據。條件:會員編號是匹配會員編。匹配用戶數據的店鋪CODE為NULL的場合。輸出信息,處理終止。否則,取得店鋪CODE。從FSPTB_POINT_RIREKI中取出匹配會員的POINT履歷信息數據。條件:會員編號是匹配會員編號;日期在系統日期之前。如果出現錯誤,輸出錯誤信息,程序結束。在FSPTB_POINT_JNL中追加數據。匹配用戶的POINT更新日志不存在。參照“POINT更新日志新建項目移動表”。匹配用戶的POINT更新日志存在。參照“POINT更新日志更新項目移動表”。FSPTB_POINT_RIREKI的追加更新。條件:會員編號是匹配會員編號;日期在系統日期之前。通過(4)取得的POINT履歷是EOF的情況,新追加POINT履歷。參照“POINT履歷(追加)項目移動表”。通過(4)取得的POINT履歷不是EOF的情況,存儲初始狀態,并更新,參照“POINT履歷(更新)項目移動表”。在FSPTB_POINT中檢索匹配的用戶數據。條件:用戶CODE是匹配用戶CODE;不是EOF的情況,程序結束。如果是EOF,在FSPTB_MEMBER追加新的數據。參照“用戶數據項目移動表”。CSV文件數據輸出。參照“CSV文件項目移動表”。輸出結束日志。表8POINT信息項目移動表移動表名稱移動操作地址名稱AFSPTB_POINTPOINT信息項目移動表BCD編輯項目名稱原項目名稱ABCD移動方式現在POINT0消費累計POINT消費累計POINT+當前POINT擔當者CODENULL系統更新時間執行操作時系統時間表9POINT更新日志新建項目移動表移動表名稱移動操作地址名稱AFSPTB_MEMBERPOINT更新日志新建項目移動表BFSPTB_POINTCD編輯項目名稱原項目名稱ABCD移動方式店鋪CODE店鋪CODEYFSPTB_MEMBER的店舗CODE的右3位數的值小于10的情況,該值加5個空格。小于100的情況,該值加4個空格。大于100的情況,該值加3個空格。會員CODE會員CODEY同項目顧客NONULL當日追加POINT(更新前)0當日支出POINT(更新前)0現在POINT(更新前)現在POINTY同項目當日獲贈POINT(更新前)0當日減算金額(更新前)0當日加算金額(更新前)0月中購買金額(更新前)0當日追加POINT(更新后)0追加理由CODENULL當日追加POINT(更新后)現在POINTY同項目支出理由CODE“04現在POINT(更新后)0當日獎勵POINT(更新后)0當日減算金額(更新后)0當日加算金額(更新后)0月中購買金額(更新后)0轉入POINT0本日最終POINT0更新時間當前的時間執行者CODENULL記錄號自動獲取表10POINT更新日志更新項目移動表移動表名稱移動操作地址名稱AFSPTB_MEMBERPOINT更新日志更新項目移動表BFSPTB_POINTCFSPTB_POINT_RIREKID編輯項目名稱原項目名稱ABCD移動方式店鋪CODE店鋪CODEYFSPTB_MEMBER的店舗コード的右3位數的值小于10的情況,該值加5個空格。小于100的情況,該值加4個空格。大于100的情況,該值加3個空格。會員CODE會員CODEY同項目顧客NONULL當日追加POINT(更新前)當日追加POINTY同項目當日支出POINT(更新前)當日支出POINTY同項目現在POINT(更新前)現在POINT(Y同項目當日獲贈POINT(更新前)當日獲贈POINTY同項目當日減算金額(更新前)0當日加算金額(更新前)0月中購買金額(更新前)0當日追加POINT(更新后)同項目追加理由CODENULL當日追加POINT(更新后)當日追加POINTY同項目支出理由CODE“04現在POINT(更新后)0當日獎勵POINT(更新后)0當日減算金額(更新后)0當日加算金額(更新后)0月中購買金額(更新后)0轉入POINT0本日最終POINT0更新時間前一日的時間執行者CODENULL記錄號自動獲取表11POINT履歷(追加)項目移動表移動表名稱移動操作地址名稱AFSPTB_MEMBERPOINT履歷(追加)項目移動表BFSPTB_POINTCD編輯項目名稱原項目名稱ABCD移動方式會員CODE會員CODEY同項目日期執行時的時間優待等級號優待等級號Y同項目當日基本POINT0當日獎勵POINT0當日追加POINT0當日支出POINT現在POINTY同項目現在POINT0更新時間執行時時間執行者CODENULL表12POINT履歷(更新)項目移動表移動表名稱移動操作地址名稱AFSPTB_MEMBERPOINT履歷(更新)項目移動表BCD編輯項目名稱原項目名稱ABCD移動方式當日支出POINTY當日支出POINT+現在POINT現在POINT0執行者CODEYNULL更新日期執行操作時的日期表13用戶數據項目移動表移動表名稱移動操作地址名稱AFSPTB_MEMBER用戶數據項目移動表BCD編輯項目名稱原項目名稱ABCD移動方式會員CODEY同項目舊會員CODENULLDominantCODENULL店鋪CODE店鋪CODE同項目舊DominantCODENULL舊店鋪CODENULL更新區分“1”記錄號自動獲取數據分析模塊詳細代碼設計初期處理。(1)共通文件(INI)取得。 如存在錯誤,輸出錯誤信息,程序結束。 (2)輸出開始日志。分析用POS明細文件作成。 (1)文件檢查處理。檢查POS明細文件路徑。 如果不存在,輸出錯誤日志,程序結束。生成POS明細文件。 如果超過99個,直接跳轉到步驟3。檢查POS項目信息文件路徑。 如果不存在,輸出錯誤日志,程序結束。檢查POS項目信息文件。 如果不存在,輸出錯誤日志,程序結束。 (2)讀取POS項目信息文件。 當數據讀完,結束。 (3)POS明細文件CODE作成。 (4)參照“項目數據移動表”。結束處理。 輸出結束日志。表14項目數據移動表移動表名稱移動操作地址名稱AFSP_EFI010.DAT項目數據移動表BCD編輯項目名稱原項目名稱ABCD移動方式record區分record區分Y同項目店鋪CODE店鋪CODEY同項目registerNOterminalNOY店鋪CODE店鋪CODEY同項目receiptNO購買編號Y購買日期購買日期Y同項目購買時間購買時間Y同項目會員CODE會員CODEY同項目商品分類號1大分類號YJANCODE的左1~2位商品分類號2中分類號YJANCODE的左3~4位商品分類號3小分類號YJANCODE的左5~7位商品分類號4細分類號YJANCODE的左8~13位擴充預留“0”JANCODEY如果FSP_EFI010.DAT中的JANCODE="0000000000000",JANCODE=""9999999"+GPCODE的右2位+部門CODE的右4位.否則,JANCODE等于FSP_EFI010.DAT中JANCODE商品名商品名Y同項目購買點數購買點數Y同項目購買金額YFSP_EFI010.DAT中的‘消費金額’-折扣價-貼現價-按比例折扣價-按比例貼現價-按比例M&M值折扣價"0000000"特價區分FSP_EFI010.DAT中的‘會員價格’不等于0則設為“1”,否則設為“內稅符號GPCODE的右2位=“90”且購買點數=“000”且部門CODE的右4位=“9701”或“9702”或“9703”,則置“1”;退貨交易=”原價"000000"備注兩個空格制造工程開發環境開發環境為Eclipse3.2,JDK包采用版本為jdk1.5.0_06。OBDC數據源為tokyosuper。數據庫登錄帳號:sa;密碼:123456。程序開發程序流程圖圖4積分失效模塊流程圖圖5數據分析模塊模塊流程圖建立JDBC-ODBC橋接器try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");/*注冊數據庫驅動程序為SQLJDBC-ODBC驅動*/ } catch(ClassNotFoundExceptione){ /*如無法找到該驅動,則捕獲異常,并輸出錯誤*/ //TODOAuto-generatedcatchblock e.printStackTrace(); }讀取INI文件INI文件中記錄了本系統中所有數據文件的存儲地址。因此,在開始模塊編碼前,一定要先讀取該文件。專門建立一個類Iniread.java來實現各種功能。具體如下:成員變量:FileReaderinOjb; //創建一個用來讀取字符文件的對象BufferedReaderbr; //創建一個使用默認大小輸入緩沖區的緩沖字符輸入流。Connectioncon; //與特定數據庫的連接Statementstmt; //用于執行靜態SQL語句并返回它所生成結果的對象Stringurl; //定義數據源名Stringuser; //定義數據源的loginnameStringpassword; //定義數據源的密碼/*構造方法(參數是為了進行數據庫連接,在讀取INI文件過程中如出現錯誤則將錯誤日志輸入數據庫的LOG表)*/Iniread(Stringurl,Stringuser,Stringpassword){inOjb=newFileReader("FSP.INI");br=newBufferedReader(inOjb);……}/*此方法用于獲取數據文件在服務器上的地址,參數是數據文件名*/publicStringgetaddress(Stringa) {str=br.readLine(); //讀取INI文件中的一行……}對數據庫操作//向數據庫插入一條數據,此處temp除可進行插入操作外,還能進行更新,刪除操作Stringurl="jdbc:odbc:tokyosuper"; //定義數據源名Stringuser="sa"; //定義數據源的loginnameStringpassword="123456"; //定義數據源的密碼Stringtemp="INSERTINTOFSPTB_LOG(P_Sel,P_Msg,P_AppNM,P_FuncNM,P_JobNM,p_ErrDetail,P_InIFile)VALUES('L','讀取文件錯誤','查找的地址不存在','iniread','iniread','FSP.INI讀取出錯','FSP.INI')";try{con=DriverManager.getConnection(url,user,password);stmt=con.createStatement();stmt.executeUpdate(temp);con.close();}catch(SQLExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}//在數據庫中查詢數據查詢的結果全部存放于ResultSet的對象中,利用next方法可以讀取結果集的第一行,以后每執行一次,向下跳轉一行。getxxx方法可以獲得結果集中的某一項其中xxx為該項的屬性,如String等try{ con=DriverManager.getConnection(url,user,password); stmt=con.createStatement(); Stringtemp="SELECTMEMBER_CODE,TENPO_CODEFROMFSPTB_MEMBERWHEREMEMBER_CODE='"+member+"'"; ResultSetrs=stmt.executeQuery(temp); rs.next(); Stringtenpo=rs.getString("TENPO_CODE");}catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }對文件操作//判斷文件路徑或文件是否存在,File的exists方法返回是ture則存在。Fileposdata=newFile(Pos_Data);Fileoutposprefix=newFile(Pos_Data,Out_Pos_PreFIX);posdata.exists();outposprefix.exists();//打開文件,逐條讀取FileReaderfr=newFileReader(positem.getPath());BufferedReaderinOjb=newBufferedReader(fr);str=inOjb.readLine();while(str!=null) {…}//打開文件寫入數據Stringaddress=file.getPath(); FileWriterfw; try{ fw=newFileWriter(address,true);//打開address所表示的文件,ture表示在該文件末尾寫入數據,而非文件的開始處 BufferedWriterout=newBufferedWriter(fw); //從新的一行開始寫入 out.newLine(); //寫入新的一行信息 out.write(str,0,str.length()); out.close(); fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }測試工程測試準備本系統屬于一款商務應用型軟件,因此,對各種可能出現的錯誤情況要有很高的檢測能力,并進行響應處理。所以,在軟件開發完成后,為了檢驗是否達到客戶要求需要進行全面的測試,包括程序的邏輯處理,輸入/輸出處理,邊界條件判斷,異常處理等。在進行測試前,應針對上述各情況填寫一份全面的單元測試檢測清單。積分失效模塊單元檢測表表15積分失效模塊單元檢測表項目名稱POINT失效項目標記名FSPB1400測試編號測試內容測試結果***異常測試****共通文件(INI)取得*1INI文件不存在的場合向數據庫日志表輸出”INI文件地址錯誤。”消息。程序結束2INI文件打開出錯,或INI文件不可打開向數據庫日志表輸出”INI文件地址錯誤。”消息。程序結束3在INI文件中,文件地址、標記值、內容值不存在向數據庫日志表輸出”INI設定錯誤。”消息。程序結束4POINT失效處理日期取得錯誤向數據庫日志表輸出”非失效處理日期。”消息。程序結束*CSV文件準備處理*5無法取得CSV文件名向數據庫日志表輸出”POINT失效處理失敗。”消息。程序結束6無法打開CSV文件向數據庫日志表輸出”POINT失效處理失敗。”消息。程序結束*數據庫更新處理時共通錯誤*7各表更新處理時出錯向數據庫日志表輸出”POINT失效處理失敗。”消息。程序結束*檢索、獲取數據時錯誤*8店鋪CODE取得錯誤向數據庫日志表輸出“‘店鋪CODE未設定,會員號:’+檢索的會員號”消息。數據不更新,程序結束9POINT信息取得錯誤向數據庫日志表輸出“‘POINT信息獲取失敗,會員號:’+檢索的會員號”消息。數據不更新,程序結束10POINT履歷取得錯誤向數據庫日志表輸出“‘POINT履歷獲取失敗,會員號:’+檢索的會員號”消息。數據不更新,程序結束11會員信息取得錯誤向數據庫日志表輸出“會員信息獲取失敗,會員號:’+檢索的會員號”消息。數據不更新,程序結束12會員數據檢索失敗向數據庫日志表輸出“會員數據檢索失敗,會員號:’+檢索的會員號”消息。數據不更新,程序結束*插入、更新數據時錯誤*13POINT履歷插入錯誤向數據庫日志表輸出“POINT履歷插入失敗,會員號:’+檢索的會員號”消息。原數據不改變,程序結束14會員履歷更新錯誤向數據庫日志表輸出“會員履歷插入失敗,會員號:’+檢索的會員號”消息。原數據不改變,程序結束15POINT更新日志插入失敗向數據庫日志表輸出“POINT更新日志插入失敗,會員號:’+檢索的會員號”消息。原數據不改變,程序結束16會員數據更新失敗向數據庫日志表輸出“會員數據更新失敗,會員號:’+檢索的會員號”消息。原數據不改變,程序結束17POINT表更新錯誤向數據庫日志表輸出“POINT表更新失敗,會員號:’+檢索的會員號”消息。原數據不改變,程序結束18CSV文件寫入錯誤向數據庫日志表輸出“CSV文件寫入失敗,日期:’+當前日期”消息。原數據不改變,程序結束***正常測試***19無錯誤的情況所有處理正常執行,程序正常結束*初期處理*20開始日志輸出正常輸出*POINT失效對象取出條件檢查1*POINT表中取出會員號21最終購買日是一年前的后一天對應的會員數據不進行更新22最終購買日是一年內的任意一天對應的會員數據不進行更新23當前POINT已經是0對應的會員數據不進行更新24失效區分為無效對應的會員數據不進行更新25最終購買日正好是一年前、現在POINT不為0且失效區分有效的記錄為0個所有的會員信息不進行更新26最終購買日是一年前的前一天、現在POINT不為且失效區分有效的記錄為0個所有的會員信息不進行更新27最終購買日是一年前的某一天、現在POINT不為0且失效區分有效的記錄為0個所有的會員信息不進行更新28最終購買日正好是一年前、現在POINT不為0且失效區分有效的記錄大于0個對該范圍的會員信息進行更新、并且更新正確29最終購買日是一年前的前一天、現在POINT不為且失效區分有效的記錄大于0個對該范圍的會員信息進行更新、并且更新正確30最終購買日是一年前的某一天、現在POINT不為0且失效區分有效的記錄大于0個對該范圍的會員信息進行更新、并且更新正確*POINT失效對象取出條件檢查2*POINT表及會員信息表中取出會員號31未檢測到該會員CODE對應的會員數據不進行更新32入會日期是一年前的后一天對應的會員數據不進行更新33入會日期是一年內的某一天對應的會員數據不進行更新34失效區分無效對應的會員數據不進行更新35購買次數不為0對應的會員數據不進行更新36現在POINT為0對應的會員數據不進行更新37會員CODE檢測的到、最終購買日正好是一年前、現在POINT不為0且失效區分有效的記錄為0個所有的會員數據不進行更新38會員CODE檢測的到、最終購買日正好是一年前的前一天、現在POINT不為0且失效區分有效的記錄為0個所有的會員數據不進行更新39會員CODE檢測的到、最終購買日正好是一年前的某一天、現在POINT不為0且失效區分有效的記錄為0個所有的會員數據不進行更新40會員CODE檢測的到、最終購買日正好是一年前、現在POINT不為0且失效區分有效的記錄大于0個對該范圍的會員信息進行更新、并且更新正確41會員CODE檢測的到、最終購買日正好是一年前的前一天、現在POINT不為0且失效區分有效的記錄大于0個對該范圍的會員信息進行更新、并且更新正確42會員CODE檢測的到、最終購買日正好是一年前的某一天、現在POINT不為0且失效區分有效的記錄大于0個對該范圍的會員信息進行更新、并且更新正確*各表的編輯處理*43POINT信息更新輸出正確(參照“POINT信息項目移動表”)44該會員的POINT更新日志不存在的情況輸出正確(參照“POINT更新日志新建項目移動表”)45該會員的POINT更新日志已經存在的情況輸出正確(參照“POINT更新日志更新項目移動表”)46POINT履歷中取得的該會員的POINT履歷是EOF的場合輸出正確(參照“POINT履歷(追加)項目移動表”以及“用戶數據項目移動表“)47POINT履歷中取得的該會員的POINT履歷不是EOF的場合輸出正確(參照“POINT履歷(更新)項目移動表”),程序結束48CSV文件數據輸出輸出正確(參照“CSV文件項目移動表”)*結束處理*49終了日志的輸出終了日志正確輸入到數據庫日志表分析用POS明細作成模塊單元檢測表表16分析用POS明細作成模塊單元檢測表項目名稱分析用POS明細作成項目標記名FSPB1310測試編號測試內容測試結果***異常測試****共通文件(INI)取得*1INI文件不存在的場合向數據庫日志表輸出”INI文件地址錯誤。”消息。程序結束2INI文件打開出錯,或INI文件不可打開向數據庫日志表輸出”INI文件地址錯誤。”消息。程序結束3在INI文件中,文件地址、標記值、內容值不存在向數據庫日志表輸出”INI設定錯誤。”消息。程序結束*文件存在檢查*4POS明細數據文件路徑不存在向數據庫日志表輸出“外部分析用POS明細數據文件路徑不存在”消息。程序結束5外部分析用POS明細數據文件超過99個向數據庫日志表輸出“外部分析用POS明細數據文件超出99個”消息。程序結束6POS情報項目文件路徑不存在向數據庫日志表輸出“POS情報項目文件路徑不存在”消息。程序結束7POS情報項目文件不存在向數據庫日志表輸出“POS情報項目文件不存在”消息。程序結束*分析用POS明細作成處理*8處理過程中出現錯誤顯示該系統錯誤向數據庫日志表輸出“POS明細作成出錯”消息。程序結束***正常測試***9無錯誤的情況所有處理正常執行,程序正常結束*初期處理*10開始日志輸出正常輸出*分析用明細作成項目編輯*11明細文件CODE作成正確輸出(參照)12外部分析用POS明細文件是0的場合POSYYYYMMDD01.DAT文件正確作成13外部分析用POS明細文件是1的場合POSYYYYMMDD02.DAT文件正確作成14外部分析用POS明細文件是50的場合POSYYYYMMDD51.DAT文件正確作成15外部分析用POS明細文件是98的場合POSYYYYMMDD99.DAT文件正確作成*結束處理*16終了日志的輸出終了日志正確輸入到數據庫日志表測試實施在準備好測試數據,配置好測試環境后,根據測試清單上的內容,逐條進行測試,其中,如果中途發現BUG存在,并對程序進行相應更改的話,則前面所做的測試全部作廢,需重新開始測試。測試頁面截圖積分失效模塊測試如圖6所示編號為842345143672的會員其注冊日期為一年以前。其積分失效區分為有效。圖6用戶注冊信息表如圖7所示該用戶當前積分為130圖7用戶POINT信息表圖8所示為該用戶積分被清零圖8用戶積分清零數據分析模塊測試結果如圖9所示圖9分析用POS明細文件生成測試結果數據FSP_EFI010.DAT文件中測試數據:123456,sdcdsc,21458,20080525,13,1234567890123,2001010000000,蘋果,122,554545,1234,2,1245,1222,1235,5589,7789,2490,009701123456,sdcdsc,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年美容師(初級)美容護膚行業發展趨勢預測考核試卷
- 2025年南寧市事業單位招聘考試教師招聘考試數學學科專業知識試卷(數學研究前沿探討)
- 2025年資產評估師職業資格考試真題卷:資產評估師考試復習重點與難點解析
- 2025年西式面點師實操考核試卷(中級)備考時間管理
- 2025年馬來語等級考試歷年真題回顧試卷
- 2025年銀行從業資格考試銀行金融科技發展趨勢實務真題試卷
- 2025年美甲師考試試卷(美甲師行業市場拓展與戰略報告)
- 從“制作”與“生生”隱喻原型洞察中國哲學的思維根基與演進脈絡
- Copula方法視角下中國股票市場相關性的深度剖析與實證研究
- 網上紀實工作管理制度
- 二手農機買賣合同協議書
- 2024年大學試題(宗教學)-伊斯蘭教文化筆試考試歷年典型考題及考點含含答案
- 植筋、界面處理檢驗批質量驗收記錄表
- 機床安全 壓力機 第 2 部分:機械壓力機安全要求
- 住院醫師規范化培訓臨床小講課的設計與實施培訓課件
- 多圖中華民族共同體概論課件第十三講先鋒隊與中華民族獨立解放(1919-1949)根據高等教育出版社教材制作
- JJF 1101-2019 環境試驗設備溫度、濕度參數校準規范
- 2024年陜西省政工師理論知識考試參考題庫(含答案)
- 化工工程基礎知識培訓課件
- 市政道路工程技術標
- 無人機研學旅行方案
評論
0/150
提交評論