個人編程項目:論文查重系統


課程 軟件工程
要求 個人項目作業
題目 論文查重系統

GitHub 鏈接:https://github.com/EmmaZoeLeft/3218004633.git

要求規范

輸入輸出采用文件輸入輸出。按照傳遞命令行參數的方式提供文件的位置,從指定的位置讀取文件,並向指定的文件輸出答案。

  • 命令行參數給出:論文原文的文件的絕對路徑
  • 命令行參數給出:抄襲版論文的文件的絕對路徑
  • 命令行參數給出:輸出的答案文件的絕對路徑

示例:java -jar main.jar C:\tests\org.txt C:\tests\org_add.txt C:\tests\ans.txt

注意:答案文件中輸出的答案為浮點型,精確到小數點后兩位

環境

Eclipse 2020 + JDK 1.8

具體實現

  • 結巴分詞:使用了 HFUTUtils 工具程序集合中的結巴分詞jar包來處理文本,分詞后去除了常見停用詞

  • 最小編輯距離:最小編輯距離,是指兩個字串之間,由一個轉成另一個所需最小的編輯操作次數。編輯操作包含:插入、刪除和替換三種操作。

類及接口

  • Main.java:主類,調用以下類
  • textSplit.java:分詞
  • EditDistance.java:最小編輯距離算法
  • io.java:讀寫類
  • NullTextException.java:空文本異常拋出

單元測試

eclipse 自帶的 JUnit5

  • 逐個文本測試

orig_0.8_add.txt測試結果

orig_0.8_del.txt測試結果

orig_0.8_dis_1.txt測試結果

orig_0.8_dis_10.txt測試結果

orig_0.8_dis_15.txt測試結果

  • 一次多個文本測試
    不斷遞歸迭代會堆棧異常,故不可連續查重多個文本,應采用動態規划完成。

    MainTest.java測試結果

性能測試

Main.java的性能測試

不存在程序內存泄漏嚴重的情況
5秒內給出了答案
占用的內存未超過2048MB

PSP表格

PSP2.1 Personal Software Process Stages 預估耗時(分鍾) 實際耗時(分鍾)
Planning 計划
Estimate 估計這個任務需要多少時間 45 25
Development 開發
Analysis 需求分析 (包括學習新技術) 720 660
Design Spec 生成設計文檔 120 30
Design Review 設計復審 60 0
Coding Standard 代碼規范 (為目前的開發制定合適的規范) 30 0
Design 具體設計 120 240
Coding 具體編碼 720 1080
Code Review 代碼復審 240 360
Test 測試(自我測試,修改代碼,提交修改) 720 240
Reporting 報告
Test Repor 測試報告 120 90
Size Measurement 計算工作量 45 20
Postmortem & Process Improvement Plan 事后總結, 並提出過程改進計划 60 30
合計 3000 2775


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM