参考资料
- Java课程设计参考资料(2020更新)
- Java课程设计常见问题(程序部署、数据库、JSP)
- 项目目录结构(git版)参考模板-OnlineShop
- 项目开发参考-阿里巴巴Java开发手册(正式版)
- Git入门1-如何在实验室和宿舍同步你的代码
- Git入门2-FAQ
- IntelliJ IDEA下Git的配置与使用(命令行下)
更多参考资料请查看QQ群文件中的课程设计
目录。
一. 题目选择说明
课程设计的题目有两大类:
1. 传统题目
- Java课程设计任务书里面的题目。详见: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 中文分词
ansjIKAnalyzerChinese Segmentor
2.2.6 POI(使用Java代码处理office文档)
先到POI下载将所需类库下载下来,然后参考Excel表格的快速入门代码快速编写处理Excel表格的代码。注意:请使用最新版本的Eclipse。
2.2.7 JSON处理
JSON常用于前后端数据交互。流行的JSON处理类库有jackson, gson与fastjson。国产阿里巴巴出品-Fastjson高性能的 JSON 处理 Jacksonjackson入门教程
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但有价值的小组请将自己团队课程设计博客链接发给本班学习委员汇总。
五.课程设计优秀案例
2021年(19级)
林智凯组-Java 课程设计:LWZ - Online Judge学生端(选题介绍) 关键字:在线程序评测、OJ、PTA。杨涛组-JAVA课程设计——飞机大战(团队) 关键字:游戏。苏雅琴组-人脸识别员工考勤系统 关键字:人脸识别。陈艺彬组-基于SpringBoot和Bootstrap的教学论坛系统 关键字:SpringBoot与Bootstrap。朱振豪组-大富翁 关键字:游戏
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服务器演示,希望可以进一步完善。