参考资料

  1. Java课程设计参考资料(2020更新)
  2. Java课程设计常见问题(程序部署、数据库、JSP)
  3. 项目目录结构(git版)参考模板-OnlineShop
  4. 项目开发参考-阿里巴巴Java开发手册(正式版)
  5. Git入门1-如何在实验室和宿舍同步你的代码
  6. Git入门2-FAQ
  7. IntelliJ IDEA下Git的配置与使用(命令行下)

更多参考资料请查看QQ群文件中的课程设计目录。

一. 题目选择说明

课程设计的题目有两大类:

1. 传统题目

  • Java课程设计任务书里面的题目。
  • Java的一些小任务,可将里面的任务改造成课程设计。

2. 综合性题目(有一定挑战性、有趣、实用)

2.1题目特点:

  1. 无固定题目要求

    可根据自己的想法自己出题,出提前最好和老师交流,以确定题目是否可行。
  2. 完成周期长、难度大、综合性强

    较难,完成周期长,需要提前启动。

    因为需要使用到诸多技术,综合性较强、难度大。
  3. 要使用到第三方类库

2.2 常见类库与技术参考资料

2.2.1 jsoup

网页解析工具。可用于简单的爬虫,爬取网上信息。

2.2.2 HttpComponents

使用Java代码操作HTTP。可以编写类似不通过网页查询成绩或者刷票这样的代码。

2.2.3 lucene

一个基于Java全文检索引擎工具包,可以使用其制作简单的搜索引擎或者基于内容的桌面搜索。

2.2.4 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

Git入门参考

Git issue相关资料

2.2.10 Java FX

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.数据库类

基本要求:

  1. 一定要使用老师提供的JDBCUitl.java或将数据库常用操作封装好的数据库工具类;
  2. 一定要使用DAO模式;

可选:

1.数据库连接池。

3.基于他人已有的代码的项目

考核前一定要说明参考了什么代码。

考核时主要讲解自己:新增、改进的功能。

4.网络类

基本要求:

  1. 直接操作Socket的一般都要使用多线程技术。
  2. 要搞清楚自己使用了什么网络协议?为什么使用这个网络协议。

可选:

  1. 涉及HTTP操作的使用JDK 11的HTTP Client或其他第三方类库。

四. 考核及提交材料说明

考核前请务必在IDE中使用阿里巴巴代码规范扫描插件对项目代码进行扫描,并解决项目中的所有警告。

负责编写博客的同学请在博客中列出改正前2-3个不同类型的扫描警告结果,并描述改正过程,请放入团队博客3.9。

1.考核过程

  1. 先将课程设计报告与项目压缩包上传至课堂派相应作业进行查重,查重超过30%不予通过。
  2. 叫老师检查之前,请事先准备好所有待检查事项(项目需可直接运行、课堂派提交电子版实验报告)。
  3. 将考核表格交给老师演示项目(组长先讲,组员再讲自己的模块)。老师根据考核表格中每个人负责的部分进行详细提问。然后在课堂派上打分。
    • 组长:演示项目及自己负责代码
    • 组员:自己负责模块(要达到代码级别掌握)

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文件。

  • 团队课程设计博客链接
  • 个人负责模块或任务说明
  • 可选:自己的代码提交记录截图
  • 自己负责模块或任务详细说明。
  1. 文字描述
  2. 关键代码截图
  3. 可选:使用JUnit为自己编写的方法进行测试的测试用例。
  • 课程设计感想

5. 课程设计代码(每组1份)

由组长提交。即,组长提交的资料包含两部分内容:

  1. word版 课程设计报告(个人版)
  2. 系统代码压缩包

文件名格式:班级-学号-小组名-姓名-课程设计名称

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服务器演示,希望可以进一步完善。

Java课程设计(2019版)的更多相关文章

  1. Java课程设计---web版斗地主

    一. 团队课程设计博客链接 二.个人负责模块和任务说明 负责前后端数据传输 JSP界面的设计 根据后台传来的数据进行页面动态更新 负责Servlet设计 三.自己的代码提交记录截图 四.自己负责模块或 ...

  2. Java课程设计----仿Windows标准型计算器

    JAVA课程设计 仿Windows标准型计算器(By Yanboooooooo) 一.团队介绍: 连燕波[组长]:网络1513学生. 张文博[组员]:网络1513学生. 二.项目git地址 码云项目地 ...

  3. Java课程设计——象棋(201521123042 姚佳希)

    1. 团队课程设计博客链接 Java课程设计(团队版) 2 个人负责模块或任务说明 ChessBoard类创建棋盘及界面. ChessPoint类创建棋盘格点及界面. ChessPiece类创建棋子及 ...

  4. java课程设计(Calculator) 201521123027 陈龙

    1.团队博客链接 http://www.cnblogs.com/DevilRay/p/7064482.html 2.个人负责模块或任务说明 (1)主函数的编写: (2)加减乘除运算的实现: (3)求倒 ...

  5. Java课程设计---索引

    一.基础配置 ============================================================== 1.Java课程设计---Eclipse基本环境配置 2.J ...

  6. java(课程设计之记事本界面部分代码公布)

    代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...

  7. java课程设计(计算器)

    JAVA课程 设 计 报 告 1206401-18   瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...

  8. Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)

    #课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...

  9. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

随机推荐

  1. mAP的计算

    参加郑良博士的代码:  mars_evaluation 其中ap这样算: ap = ap + (recall - old_recall)*((old_precision+precision)/2); ...

  2. zedboard开发板上移植opencv代码(立体匹配)

    前言 公司要做立体匹配相关的项目,已有matlab和c++版本,可是不能做到实时显示立体信息,想要硬件实现实时,无奈本渣也是个硬件的新手,先按照实验室lyq同学的思路在zedboard开发板的纯ARM ...

  3. Pytorch使用多GPU

    在caffe中训练的时候如果使用多GPU则直接在运行程序的时候指定GPU的index即可,但是在Pytorch中则需要在声明模型之后,对声明的模型进行初始化,如: cnn = DataParallel ...

  4. UDP方式实现广域网的P2P通信

    最近在研究P2P通信,希望能够穿透路由器. 当前的做法只是使用TCP协议进行客户端与服务器端通信,使用UDP协议进行客户端之间的打洞操作,UDP的方式的源码在下方. 一直没有实现TCP的打洞,如果有实 ...

  5. shell常用函数封装-main.sh

    #!/bin/bash #sunlight sp monitor system #created on 2018/01/07#by chao.dong#used by sp servers consi ...

  6. python三大框架之一(flask介绍)

    Flask , Django,  Tornado 是python中常用的框架,也是python的三大框架.它们的区别是:Flask: 轻量级框架: Django:重量级框架: Tornado:性能最好 ...

  7. servlet简单介绍

    什么是Servlet? servlet是一种Java编程语言类,用于扩展托管通过请求 - 响应编程模型访问的应用程序的服务器的功能.尽管servlet可以响应任何类型的请求,但它们通常用于扩展Web服 ...

  8. poj-3666 【对dp子状态无后效性的理解】

    题目链接 错解: #include <cstdio> #include <cstring> #include <algorithm> #include <io ...

  9. HDU 1069:Monkey and Banana(DP)

    Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  10. 【git】git使用

    1.创建github账户 网站:https://github.com/ 注册省略 2.ssk-key客户端配置 作用:不用每次push,clone代码不需要输入用户名+密码 生成ssh-key ssh ...