參考資料
- Java課程設計參考資料(2020更新)
- Java課程設計常見問題(程序部署、數據庫、JSP)
- 項目目錄結構(git版)參考模板-OnlineShop
- 項目開發參考-阿里巴巴Java開發手冊(正式版)
- Git入門1-如何在實驗室和宿舍同步你的代碼
- Git入門2-FAQ
- IntelliJ IDEA下Git的配置與使用(命令行下)
更多參考資料請查看QQ群文件中的課程設計
目錄。
一. 題目選擇說明
課程設計的題目有兩大類:
1. 傳統題目
- Java課程設計任務書里面的題目。
- Java的一些小任務,可將里面的任務改造成課程設計。
2. 綜合性題目(有一定挑戰性、有趣、實用)
2.1題目特點:
- 無固定題目要求
可根據自己的想法自己出題,出提前最好和老師交流,以確定題目是否可行。 - 完成周期長、難度大、綜合性強
較難,完成周期長,需要提前啟動。
因為需要使用到諸多技術,綜合性較強、難度大。 - 要使用到第三方類庫
2.2 常見類庫與技術參考資料
2.2.1 jsoup
網頁解析工具。可用於簡單的爬蟲,爬取網上信息。
- 參考鏈接:jsoup
2.2.2 HttpComponents
使用Java代碼操作HTTP。可以編寫類似不通過網頁查詢成績或者刷票這樣的代碼。
- 參考鏈接:HttpComponents
2.2.3 lucene
一個基於Java全文檢索引擎工具包,可以使用其制作簡單的搜索引擎或者基於內容的桌面搜索。
- 參考鏈接:Lucene、Lucene 全文檢索入門
2.2.4 ECharts
網頁圖表(前端技術)
- 參考連接:ECharts
2.2.5 中文分詞
ansj
IKAnalyzer
Chinese Segmentor
2.2.6 POI(使用Java代碼處理office文檔)
先到POI下載將所需類庫下載下來,然后參考Excel表格的快速入門代碼快速編寫處理Excel表格的代碼。注意:請使用最新版本的Eclipse。
2.2.7 JSON處理
JSON常用於前后端數據交互。流行的JSON處理類庫有jackson, gson與fastjson。
國產阿里巴巴出品-Fastjson
高性能的 JSON 處理 Jackson
jackson入門教程
2.2.8 JSP相關
JSTL(JSP Standard Tag Library,JSP標准標簽庫)
2.2.9 Git
2.2.10 Java FX
2.2.11 安卓、Web、網絡相關、游戲
待補充
2.3 題目
2.3.1 博客作業教學數據分析系統
根據Java班級博客中每次作業的數據,制作一個針對個人與老師的教學數據查看系統。個人可以查看自己作業完成情況、平時作業成績映射到最終平時成績、某次作業在班級的排名情況、個人作業完成度、個人PTA完成度(每次實驗會提供相應的PTA成績Excel表格)。老師可以觀察一些總的統計結果,如每次作業的成績分布、方差等數據分析功能、給教師的建議等功能。這些功能都要全自動化成。
- 涉及技術:網絡爬蟲、圖表展示、數據分析、Web、Excel表格讀寫
2.3.2 基於學院網站的搜索引擎
對學院網站進行抓取、建索(需要中文分詞)、排序(可選)、搜索、摘要顯示。
可以是GUI界面,也可以是Web界面。
建索方面:也可以自己開發倒排索引
- 涉及技術:網絡爬蟲、中文分詞、Web
2.3.3 垂直搜索引擎
只搜索某個領域的信息,比如去哪兒主要搜索旅店、出行相關信息,然后以組織好的頁面呈現出來。
嘗試針對集美大學的網站,設計一個圖片搜索引擎或文檔搜索引擎(doc, pdf, xls, xlsx)。
- 涉及技術:網絡爬蟲、Web、中文分詞、Lucene、讀取各種文檔相關技術。
2.3.4 文檔搜索
針對自己硬盤指定目錄的列表中的所有txt、doc、docx、pdf
等文檔進行內容搜索。
至少完成.txt
文檔的搜索。
- 涉及技術:GUI、中文分詞、Lucene
2.3.5 其他
游戲類:
請重點參考Java圖形界面編程里面的Java游戲參考資料部分。
二. 團隊分組及要求
基本要求
- 自由分組完成(一組一般不超過3人)
- 使用git管理代碼(希望得B及以上)
- 每個人都要負責一個相對完整的模塊。必須包含代碼編寫工作,編程一定要規范。
- 前期調查與系統功能分析與設計由所有組員共同完成。
組長負責制
- 每個小組必需有組長,否則考核不及格。
- 組長需對項目的代碼管理、代碼質量、編碼規范、進度推進、項目展示負責。
- 組長可適當加分
詳細要求參看Java課程設計參考資料中的課程設計任務書文檔。
三. 課程設計基本要求
所有桌面程序都應可直接運行。不允許:通過IDE啟動運行。
1.游戲類
閱讀Java圖形界面編程里面的兩份文檔:
Java游戲入門1-Java 2D games tutorial
Java游戲入門2-南洋理工大學的-Java Game Programming
老師考核時,可能從這篇文章中的一些概念出發進行提問。
2.數據庫類
基本要求:
- 一定要使用老師提供的JDBCUitl.java或將數據庫常用操作封裝好的數據庫工具類;
- 一定要使用DAO模式;
可選:
1.數據庫連接池。
3.基於他人已有的代碼的項目
考核前一定要說明參考了什么代碼。
考核時主要講解自己:新增、改進的功能。
4.網絡類
基本要求:
- 直接操作Socket的一般都要使用多線程技術。
- 要搞清楚自己使用了什么網絡協議?為什么使用這個網絡協議。
可選:
- 涉及HTTP操作的使用JDK 11的HTTP Client或其他第三方類庫。
四. 考核及提交材料說明
考核前請務必在IDE中使用阿里巴巴代碼規范掃描插件對項目代碼進行掃描,並解決項目中的所有警告。
負責編寫博客的同學請在博客中列出改正前2-3個不同類型的掃描警告結果,並描述改正過程,請放入團隊博客3.9。
1.考核過程
- 先將課程設計報告與項目壓縮包上傳至課堂派相應作業進行查重,查重超過30%不予通過。
- 叫老師檢查之前,請事先准備好所有待檢查事項(項目需可直接運行、課堂派提交電子版實驗報告)。
- 將考核表格交給老師演示項目(組長先講,組員再講自己的模塊)。老師根據考核表格中每個人負責的部分進行詳細提問。然后在課堂派上打分。
- 組長:演示項目及自己負責代碼
- 組員:自己負責模塊(要達到代碼級別掌握)
2. Java語言課程設計考核表格打印版(每組1份)
里面自己負責的模塊需填寫,不能留空。
3. 團隊課程設計博客(每組1份)
3.1 團隊名稱、團隊成員介紹、任務分配,團隊成員課程設計博客鏈接(以表格形式呈現),標明組長。
3.2 如果有參考他人代碼,請給出項目所參考的其他項目的博客與鏈接。
3.3 本項目的git地址。
3.4 項目git提交記錄截圖(要體現出每個人的提交記錄及提交說明)。
3.5 前期調查(主要包含別人做得怎么樣、怎么做的內容)
3.6 項目功能架構圖、主要功能流程圖
3.7 面向對象設計包圖、類圖。如果類太多,可僅列出主要類。
3.8 項目運行截圖或屏幕錄制
3.9 項目關鍵代碼分模塊描述:模塊名稱-文字說明-關鍵代碼(注意:不得直接復制所有源代碼,僅粘貼最關鍵代碼)。
3.10 項目代碼掃描結果及改正。
3.11 項目總結(包括不足與展望、想要進一步完成的任務)
3.12 可選:其他,如感想等。
4. 課程設計報告電子版(每人1份)
每個人的課程設計報告基本內容如下,詳見《面向對象程序綜合設計》課程設計報告模板.docx文件。
- 團隊課程設計博客鏈接
- 個人負責模塊或任務說明
- 可選:自己的代碼提交記錄截圖
- 自己負責模塊或任務詳細說明。
- 文字描述
- 關鍵代碼截圖
- 可選:使用JUnit為自己編寫的方法進行測試的測試用例。
- 課程設計感想
5. 課程設計代碼(每組1份)
由組長提交。即,組長提交的資料包含兩部分內容:
- word版 課程設計報告(個人版)
- 系統代碼壓縮包
文件名格式:班級-學號-小組名-姓名-課程設計名稱
4個班匯總課程設計報告,放入一張光盤。
6. 其他
獲得A的或者B但有價值的小組請將自己團隊課程設計博客鏈接發給本班學習委員匯總。
五.課程設計案例
2020年(網絡18)
謝曉淞組-基於ElasticSeach的計算機學院的搜索引擎。關鍵詞:搜索關鍵詞聯想,jsoup爬蟲,jquery-ui的時間選擇。
溫海傑組-基於Socket的聊天室。關鍵詞:socket、文件傳輸、多線程。
李天明-基於Netty與JavaFX的聊天程序。關鍵詞:c/s結構、Netty、JavaFX。
陳玲清組-基於JZoom的音樂播放器。關鍵詞:JZoom、目錄樹JTree、音頻處理AudioInputStream、文件選擇JFileChooser、時間控制Timer。
葉鴻章、張庚組-支持網絡對戰的掃雷游戲。關鍵詞:socket,網絡多人對戰、掃雷。
吳美婷、林舒馨組-基於VUE與Axios的個人博客。關鍵詞:Web、VUE、Axios、MyBatis、Bootstrap、DAO。
商梅淳組-基於JavaFX的卡牌游戲。關鍵詞:游戲、JavaFX。
范華、蔡德鑫組-基於JBox2D引擎的憤怒的小鳥游戲。關鍵字:JBox2D物理引擎。
郭東陽組-桌面寵物online。關鍵詞:Swing、萌,桌面活動。
2019年(網絡17)
天氣分析,功能及類設計有待完善。
JAVA面向對象編程課程設計——網絡版單機斗地主,功能還算完整,看看能否實現多人斗地主。
JAVA課程設計——植物大戰僵屍(團隊)
魔塔,pc端游戲、報告中未能充分體現作品的功能。
多源教學數據管理系統,僅有數據展示功能、缺數據分析功能
2018年(網絡16)
2016-HTTP服務器,使用Java實現的簡易HTTP服務器
2016-計算機學院搜索引擎,實現了網絡爬蟲、搜索引擎功能,復雜度高。
2017年(網絡15)
博客作業教學數據分析系統,包含數據爬取、展示與分析。
“永不言棄”小游戲,比較完整的PC端小游戲、游戲交互性有待提高。
學生成績管理,比較完整
使用JAVA實現簡易HTTP服務器,使用Java實現的簡單HTTP服務器演示,希望可以進一步完善。