综合项目:打字游戏
Tianjin TianShi College |
Java课程设计
(综合项目文档)
院 别: 专 业: 年级班级: 学生姓名: 指导老师: 完成日期: |
打字游戏
院 专 年级班级: 学生姓名: 指导老师: 完成日期: |
院 专 年级班级: 学生姓名: 指导老师: 完成日期: |
院 专 年级班级: 学生姓名: 指导老师: 完成日期: |
|
院 专 班 级: 2018级计科三班 学生姓名:程千千、张晓乾、孟丹、杨晓宁 指导老师: 李小红 |
二〇二〇年七月
目
录
1
绪论… 3
1.1 项目概述… 3
1.2 项目意义… 3
2 开发工具和相关技术简介… 4
2.1 Eclipse简介(或者MyEclipse或者IEDA简介)… 4
2.2 Java语言介绍… 4
2.3 MySQL简介… 5
2.4 JDBC技术简介… 5
3 系统需求分析… 6
3.1 系统可行性分析… 6
3.2 系统需求分析… 6
3.3 组内成员分工… 8
3.4 进度安排… 8
4 系统设计… 9
4.1 系统设计… 9
4.2 数据库设计… 9
5 系统实现… 9
5.1 创建的窗体… 9
5.2 结束游戏后显示成绩… 10
5.3 成绩保存到数据库… 12
6 系统测试… 13
7 结论和心得… 14
1
绪论
1.1 项目概述
打字游戏:屏幕上不断地有英文字母下落,通过键盘录入输入字母,若输入的字母与屏幕上一样,则屏幕上的字母消失,并记录分数,将分数保存到数据库中,加入鼠标录入,点击鼠标右键,退出游戏并记录分数,点击鼠标左键,将成绩保存到数据库并初始化成绩和血量,如果有没录入的字母掉到窗体底部,血量-1,当血量小于0时,结束游戏。
要求:
1:创建一个窗体
2:让窗体中随机出现字母
3:实现动态效果,字母下落
4:字母超出窗体,重新生成
5:加入输入功能
6:记录分数
7:如果与屏幕上的字母一致,则消失,并且屏幕上方重新生成字母,分数+
1.2 项目意义
1:方便初识26个字母的人更好的学习接触字母,具有可行性
2:在Eclipse中可直接运行,Eclipse在电脑端可直接免费下载,数据库也在电脑端直接免费下载,具有经济可行性
2
开发工具和相关技术简介
本项目是打字游戏。开发环境:Eclipse、MySQL;开发语言:Java语言;开发技术:GUI、JDBC、数据库等。本章将对开发工具和相关技术进行简单介绍。
2.1
Eclipse简介(或者MyEclipse或者IEDA简介)
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于Java 语言;例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用。
2.2
Java语言介绍
Java语言的由来:
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java语言的优点:
(1) 简单便捷
(2) 面向对象
(3) 跨平台性
(4) 健壮的,Java的强类型机制、异常处理、废料的自动收集是Java程序健壮性的重要保证
(5) 安全性
(6) 多线程
(7) 动态的。Java语言的设计目标之一是适应于动态变化的环境。
因此,在进行后台系统开发时采用了Java语言。
2.3 MySQL简介
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
2.4 JDBC技术简介
* JDBC(Java DateBase Connectivity) Java数据库连接
* 是JavaEE平台下的技术规范
* 定义了在Java语言中连接数据库, 执行SQL语句的标准
* 可以为多种关系数据库提供统一访问
3
系统需求分析
3.1
系统可行性分析
1:经济可行性
本程序运用的是电脑Eclipse软件和数据库软件,有电脑即可操作,并且此软件下载不收取任何费用,满足多数软件人员与学生的需求,因此在经济上是可行的
2:技术可行性
目前,Java程序设计在系统开发中普遍使用,而Eclipse软件可测试程序是否可以正常运行,而且如果过程中出现了错误,Eclipse即可显示错误,尤其在面向对象、继承、封装这块,可以更好的掌握,也可以实现GUI和连接数据库。因此具有技术可行性
3:操作可行性
本软件只需要用户有可连接到网络的电脑使用浏览器下载即可正常使用,使用过程方便不复杂,符合大多数用户的使用习惯,因此具有操作可行性
3.2
系统需求分析
通过对老师的调研,最后确定项目功能为:
屏幕上不断地有英文字母下落,通过键盘录入输入字母,若输入的字母与屏幕上一样,则屏幕上的字母消失,并记录分数,将分数保存到数据库中,加入鼠标录入,点击鼠标右键,退出游戏并记录分数,点击鼠标左键,将成绩保存到数据库并初始化成绩和血量,如果有没录入的字母掉到窗体底部,血量-1,当血量小于0时,结束游戏。
图3-1 打字游戏功能模块图
3.3 组内成员分工
表3-1 组内成员分工情况表
序号 |
姓名 |
组内角色 |
小组分工 |
备注 |
1 |
程千千 |
项目经理 |
获取随机颜色、重写paint方法、键盘录入 |
无 |
2 |
张晓乾 |
架构师 |
测试类、创建窗体 |
无 |
3 |
杨晓宁 |
编码 |
获取随机字母、重写run方法 |
无 |
4 |
孟丹 |
编码、测试 |
数据库,鼠标录入 |
无 |
说明:组内角色:组长为项目经理;其他人分别为编码、测试、架构师等。
3.4 进度安排
进度安排如表3-2所示。
表3-2 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
2h |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
5h |
系统设计 |
设计说明-可以画流程图;数据库设计 |
实现阶段 |
2day |
编写代码 |
项目工程源代码 |
1day |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
3h |
部署、运行 |
系统使用说明、运维报告-答辩 |
4 系统设计
4.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
用GUI设计一个窗体,在窗体中随机产生字母,再定义一个颜色方法,使窗体中的字母颜色随机出现,实现键盘录入和鼠标录入,输入字母,如果输入正确,窗体中的字母消失,点击鼠标右键,结束游戏,并将分数保存到数据库中,点击鼠标左键,初始化分数和血量,重新开始游戏,并将分数保存到数据库中。
4.2 数据库设计
根据系统需求分析设计了1张表,用户信息表。具体信息如表4-1所示。
ID是在数据库中设计的自动递增,并把它设为主键,且不能为空,score是每次用户玩完游戏之后的得分,将其保存到数据库。
表4-1 用户信息表
序号 |
字段名 |
数据类型 |
约束 |
是否为空 |
说明 |
1 |
ID |
Int(8) |
主键 |
否 |
用户ID |
2 |
score |
Int(8) |
|
是 |
用户分数 |
5 系统实现
5.1 创建的窗体
开始游戏后,窗体会自动出现字母,以及游戏分数
图5-9
窗体的显示
5.2 结束游戏后显示成绩
结束游戏后即可弹出成绩
图5-10
结束游戏弹出成绩
5.3 成绩保存到数据库
图5-11 保存成绩到数据库
6 系统测试
在打字游戏中主要对创建窗体、随机出现字母以及字母的颜色、键盘录入和鼠标录入的功能模块进行测试,测试结果如表6-1所示。
表6-1 打字游戏模块测试表
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
1 |
创建窗体 |
开始游戏出现窗体,并实现窗体上字母下落 |
可以出现窗体,字母也可以下落 |
正常,与预期结果一致 |
2 |
随机出现字母、字母颜色 |
Random类随机出现字母,定义数组存储字母和颜色 |
可以随机出现字母和字母颜色 |
正常,与预期结果一致 |
3 |
键盘录入和鼠标录入 |
实现键盘输入字母,点击鼠标可以结束游戏或重新开始 |
可以正常输入,点击鼠标可以正常关闭 |
正常,与预期结果一致 |
打字游戏测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
7 结论和心得
学生1姓名:程千千
心得:Java语言看似知识点一块一块,其实之间又有联系。自主学习没学过的知识点,难度还是挺大的,尤其自控能力不强的人,不过当学会的时候,成就感还是非常大的,就又觉得其实并没有那么难。以后更要好好学习Java,更好的掌握它。
学生2姓名:张晓乾
心得:学习了这学期的Java课程,觉得自己学到了很多,但又觉得自己没掌握到精髓,觉得自己停留在知识边缘地带。尤其是这学期是网课,而不是直接面对面授课,效率大不如前。通过课程设计,又学到了一些知识,提高了自主学习能力,通过老师、同学的帮助,最终完成课程设计。
学生3姓名:孟丹
心得:通过这次课程设计,发现自己很多地方都有很大提升,自主学习能力、团队协作能力、合理安排时间能力等,在学习中深刻感受到了Java语言的魅力,生活中很多例子可以用到Java,可见,Java学习十分重要,今后生活中,希望可以更好地运用它!
学生4姓名:杨晓宁
心得:在学习Java语言时,有些地方类似C语言,所以学习起来还是比较轻松的,但在学习抽象类、接口、线程、异常处理机制还是遇到了一些问题。这次的课程设计也是用到了课上没学的知识,就有些困难,但通过小组讨论,问老师、同学,最终还是解决了,希望在以后继续努力