java课程设计报告.pdf
《java课程设计报告.pdf》由会员分享,可在线阅读,更多相关《java课程设计报告.pdf(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序语言综合课程设计报告程序语言综合课程设计报告专业:计算机科学与技术班级:072 班学号:21 号姓名:石林宾时间:目录课程设计任务书.-5-题目一 Hannoi 塔.-6-1设计内容及要求.-6-汉诺塔算法的基本要求.-6-需实现的主要功能.-6-2.需求分析.-6-界面及布局设计.-6-A、B、C 座的实现方法.-7-圆盘的实现方法.-7-添加背景音乐的方法.-7-改变背景和盘子颜色的方法.-7-设置时间方法.-7-文件保存方法.-8-3总体设计.-8-总体功能图.-8-总体流程图.-9-4主要功能设计流程.-10-A、B、C 座实现流程图.-10-圆盘画法流程图.-10-添加背景音乐流
2、程图.-10-改变背景颜色流程图.-11-改变盘子颜色流程图.-11-改变盘子数目流程图.-12-改变最大和最小盘子大小流程图.-12-文件保存流程图.-13-5代码实现.-13-类之间关系图.-13-运行效果图.-14-程序打包发布过程.-16-6总结与说明.-16-7部分原代码(见附录 1).-16-题目二 中国象棋(C/S 版).-17-1设计内容及要求.-17-中国象棋的基本要求.-17-需实现的主要功能.-17-2需求分析.-18-数据库设计.-18-服务器端和客户端的数据传输方式.-19-服务器端功能设计.-19-客户端功能设计.-20-3总体设计.-20-总体功能图.-20-总体
3、流程图.-21-4.详细设计.-22-功能分析和描述.-22-中国象棋功能模块.-22-用户登陆注册模块.-24-聊天模块.-25-5.算法设计.-26-算法概述.-26-棋盘、棋子绘制的算法设计.-27-棋种走棋规则的算法设计.-27-棋子拖动规则的算法设计.-33-悔棋的算法设计.-34-6代码实现.-35-类之间关系图.-35-运行效果图.-36-程序打包发布过程.-39-7总结与说明.-40-8部分原代码(见附录 2).-40-题目三 标准化考试系统.-41-1设计内容及要求.-41-标准化考试系统的基本要求.-41-需实现的主要功能.-41-2需求分析.-42-数据库设计.-42-服
4、务器端和客户端的数据传输方式.-42-服务器端功能设计.-43-客户端功能设计.-43-3总体设计.-45-总体功能图.-45-总体流程图.-46-4数据库设计.-47-数据库及表结构的建立.-47-JAVA 数据库的连接.-48-5.主要功能设计流程.-48-服务器端设计流程图.-48-客户端设计流程图.-49-6代码实现.-50-类之间关系图.-50-运行效果图.-51-程序打包发布过程.-56-7.总结与说明.-57-8部分原代码(见附录 3).-57-附录 1 汉诺塔部分源代码.-58-附录 2 中国象棋(C/S 版)部分源代码.-65-附录 3 标准化考试系统部分源代码.-68-课程
5、设计任务书课程设计任务书课程设计目的:课程设计目的:利用所学高级语言的语法特性,结合数据结构算法、网络知识、文件处理和数据库等知识完成综合题目的设计和代码实现,并培养锻炼分析程序、撰写报告等能力。课程设计要求:课程设计要求:本次课程设计共三周,因而要求每位同学独立完成三道选题,并按教师指定进度要求每天到机房让教师检查,选题的工作量相对较大,需要大家在课外时间也要抓紧,加班完成,机房时间主要用于检查进度和答疑。课程设计选题:课程设计选题:课程设计以JAVA 课程设计(第二版)为主要参考书,同学也可以自拟题目,但需提前报老师批准。主要选题为:1、算法题目任选其一:第三章 Hannoi 塔,要求按照
6、 P75 的的题目要求完成;此题也可以“积木世界”替代,但必须独立完成;2、游戏题目任选其一:第五章的走迷宫、第六章的模板游戏、第七章的扫雷游戏和第八章的中国象棋打谱游戏。要求增加内容:背景音乐;成绩记录;背景图片;查看英雄榜。3、管理系统任选其一:第 11 章标准化考试系统和第 12 章数据库通用查询系统任选一个,要求:B/S 架构;用数据库存储数据;客户端要求用小应用程序实现。课程设计进度安排:课程设计进度安排:本次课程设计共计 15 个工作日,因而每个题目要求 3-4 天内完成,最后 3 天完成报告撰写,任何同学没有得到老师的许可,不可以请假或提前离校。课程设计报告要求:课程设计报告要求
7、:课程设计报告要求用 word 排版,有目录,目录自动生成,报告中所有的图要求用 Visio 画。报告的主要内容是对程序设计思想的描述和设计过程的分析,避免直接附代码。题目一题目一 Hannoi Hannoi 塔塔1 1设计内容及要求设计内容及要求汉诺塔算法的基本要求汉诺塔算法的基本要求(1)设计 GUI 界面的 Hannoi 塔。汉诺塔中有三个座,名字分别为 A,B,C。初始状态时 A 塔上有 3 个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在 A 座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动盘子。释放鼠标来放置该盘子。(2)程序要求用户在移动盘子的过程中,不允许吧大盘
8、子放置在小盘子的上面,用户最终要完成的是把 A 座上的全部盘子移动到 B 座或 C 座上。(3)用户可以通过 Hannoi 塔界面的提供的改变盘子数目功能来改变盘子的数目,同时可以改变盘子的大小以及改变盘子和界面的背景颜色,而且还可以选择控制背景音乐的播放。(4)用户可以通过单击 Hannoi 塔界面上提供的按钮,让程序自动完成把 A 座上的盘子全部移动到 C 座上。(5)用户在移动盘子的过程中,可以随时单击 Hannoi 塔界面上提供的按钮,重新开始。需实现的主要功能需实现的主要功能完成汉诺塔的“手工移动演示”;完成汉诺塔的“自动移动演示”;增加计时功能,即显示用户完成移动盘子所花费的时间;
9、用户可以设置最大和最小盘子的大小;用户可以选择播放和暂停背景音乐;用户可以设置盘子的数目;用户可以设置盘子的颜色以及背景颜色;用户可以将自动移动盘子的文本信息保存到文件;2.2.需求分析需求分析界面及布局设计界面及布局设计系统的整体布局为 BorderLayout 布局,采用了按钮、面板、复选框、文本框、文本区和拆分窗格等组件,按钮的有以下几个功能:1.可以改变盘子数目;2.可以改变盘子大小;3.可以改变盘子的颜色和背景颜色;4.可以重新开始游戏和自动演示搬运盘子;5.可以保存自动演示的文本信息;复选框可以控制背景音乐的播放和暂停,拆分窗格放入几个面板,面板全都是采用空布局。A A、B B、C
10、 C 座的实现方法座的实现方法Java 支持图形与图像功能,A,B,C 座的实现就是利用 java 的这个功能,就是利用 java 2D技术。java 拥有强大的二维图形处理能力,绘制A,B,C 座就是使用 paint(Graphics g)方法,通过Graphics 对象 g 调用 drawLine()方法来绘制三条竖线,然后通过 Graphics 对象 g 调用 fillRect()方法绘制出矩形区域,然后根据盘子数目在每条竖线上调用()方法绘制相同数目点,最后调用drawString()方法绘出 A 座,B 座,C 座,这样就实现了 A 座,B 座,C 座的绘制。圆盘的实现方法圆盘的实现
11、方法JButton 是 java 系统提供的类,实现圆盘的类 Disc 继承 JButton 类,所以 Disc 类是 JButton的一个子类,创建的一个对象是 Tower 容器中的一个按钮用来表示 Tower 中的“盘子”,盘子对象是一个按钮,这样可以加入监视器,从而可以移动盘子。添加背景音乐的方法添加背景音乐的方法该功能模块提供游戏的背景音乐设置,它可以根据游戏者的喜好来选择在游戏进行的时候要不要启动背景音乐。系统默认的是启动游戏同时启动背景音乐。背景音乐是通过复选框JCheckBox来控制音乐的播放和暂停,主要是通过复选框加入监视器来控制的。背景音乐利用FileInputStream来
12、 获 取 音 乐 文 件,然 后 通 过AudioPlayer的start(newContinuousAudioDataStream()方法来播放音乐,当复选框没被选中的话,AudioPlayer 调用stop(new ContinuousAudioDataStream()方法来暂停音乐。改变背景和盘子颜色的方法改变背景和盘子颜色的方法包中有类 JColorChooser,该类有一个静态方法 public static Color showDialog(Componentcomponent,String title,Color initalColor),该方法是创建一个颜色对话框,颜色对话框可
13、果然那句用户在颜色对话框中选择的颜色返回一个颜色对象,当获取到这个颜色对象后,组件通过调用setBackground()方法来设置背景颜色和盘子颜色。设置时间方法设置时间方法要加入计时器功能可以利用 Thread,java 的版本提供了一个很方便的计时器线程 Timer 类,Timer 类利用构造方法 Timer(int a,Object b)创建一个计时器,计时器发生的震铃每隔 1000 毫秒发生一次,方法 actionPerformed 就被执行一次,当执行 actionPerformed 方法就使时间加 1000毫秒,从而使时间每个 1 秒就增加 1,这样就实现了计时功能,而每次发生震铃
14、时会判断 B 塔或 C塔的全部塔点上是否全都有盘子,如果全都有盘子计时器线程就会调用 stop()方法是计时器停止计时,并且会弹出完成游戏对话框。文件保存方法文件保存方法文件保存主要是利用文件对话框和输入输出流来实现的。汉诺塔的自动演示功能会把演示步骤显示在文本区中,我们利用文件对话框选择要保存到那个文件,然后利用BufferedWriter 类的write 方法把文本区的文字写入到已经选择的文件中。3 3总体设计总体设计总体功能图总体功能图根据对需求索做的分析,要完成 Hannoi 塔的设计,我们必须实现 Hannoi 塔的几个基本功能:1.完成汉诺塔的“手工移动演示”;2.完成汉诺塔的“自
15、动移动演示”;3.增加计时功能,即显示用户完成移动盘子所花费的时间;4.用户可以设置最大和最小盘子的大小;5.用户可以选择播放和暂停背景音乐;6.用户可以设置盘子的数目;7.用户可以设置盘子的颜色以及背景颜色;8.用户可以将自动移动盘子的文本信息保存到文件;并可在任何电脑中运行,界面简洁、大方,操作简单、方便,容易上手。根据系统需求,Hannoi 塔的总体功能图如图 1-1 所示:主界面改变盘子数目改变盘子大小改变盘子颜色改变背景颜色开始游戏自动演示计时器关闭演示暂停继续保存图 1-1 总体功能图总体流程图总体流程图根据对 Hannoi 塔游戏的功能分析,设计得到 Hannoi 塔游戏总流程,
16、如图 1-2 所示:开始Hannoi塔开始界面Switch开始新游戏改变盘子数目改变盘子大小自动演示改变盘子颜色改变背景颜色背景音乐开始搬运盘子计时器计时数字确定宽和高保存颜色对话框复选框勾选?否暂停音乐播放音乐是重新放置塔保存对话框选择颜色完成游戏保存文件确定退出结束图 1-2 总体流程图4 4主要功能设计流程主要功能设计流程 A A、B B、C C 座实现流程图座实现流程图根据对实现 A、B、C 座的分析,可以画出 A、B、C 座实现流程图,如图 1-3 所示:开始画三条竖线画塔点画矩形区域画A、B、C座六字结束图 1-3 A、B、C 座实现流程图圆盘画法流程图圆盘画法流程图根据对圆盘画法
17、的分析,得到圆盘画法流程图如图 1-4 所示:开始继承JButton设置背景颜色设置盘子编号在塔点放置盘子结束设置盘子所在的塔点图 1-4 圆盘画法流程图添加背景音乐流程图添加背景音乐流程图根据对添加背景音乐的分析,得到背景音乐流程图如图 1-5 所示:开始创建声音流创建AudioData源实现音乐播放结束图 1-5 背景音乐流程图改变背景颜色流程图改变背景颜色流程图根据对改变背景颜色的分析,得到改变背景颜色流程图如图 1-6 所示:开始改变背景颜色按钮颜色对话框选择颜色撤 销确 定setBackground(Color c)结束图 1-6 改变背景颜色流程图改变盘子颜色流程图改变盘子颜色流程
18、图根据对改变盘子颜色的分析,得到改变盘子颜色流程图如图 1-7 所示:开始改变盘子颜色按钮颜色对话框选择颜色撤 销确 定设置盘子颜色结束图 1-7 改变盘子颜色流程图改变盘子数目流程图改变盘子数目流程图根据对改变盘子数目的分析,得到改变盘子数目流程图如图 1-8 所示:开始输入盘子数目确定设置盘子数目重新放入塔结束图 1-8 改变盘子数目流程图改变最大和最小盘子大小流程图改变最大和最小盘子大小流程图根据对改变盘子大小的分析,改变盘子打下流程图如图 1-9 所示:开始输入宽和高确定设置盘子宽和高重新放入塔结束图 1-9 改变最大和最小盘子大小流程图文件保存流程图文件保存流程图根据对文件保存方法的
19、分析,得到文件保存流程图如图 1-10 所示:开始保存按钮文件保存对话框否选择文件?是保存文件结束图 1-10 文件保存流程图5 5代码实现代码实现类之间关系图类之间关系图Hannoi 塔除了要编写的 6 个 java 文件所给出的类外,还需要 java 系统提供的一些重要的类,如 JButton,JCheckBox 等,Hannoi 塔所用到的一些重要的类以及它们之间的关系如图 1-11 所示:图 1-11 类之间的关系图运行效果图运行效果图开始主界面:图 1-12 Hannoi 塔主界面完成游戏时界面:图 1-13 完成游戏时界面自动演示游戏界面:图 1-14 自动演示游戏界面程序打包发布
20、过程程序打包发布过程可以使用命令制作 JAR 文件来发布编写软件。(1)首先用文本编辑器,如 Windows 下的“记事本”,编写一个清单文件:Manifest-Version:Main-Class:HannoiWindow Created-By:(Sun Microsystems Inc.)将保存到 D:Hannoi 塔中,即和应用程序所用的字节码文件保存在相同的目录中。注意:清单文件中的“Manifest-Version:”和之间,“Main-Class:”和主类 HannoiWindow之间以及“Created-By:”和之间必须有且只有一个空格。(2)生成 JAR 文件 D:Hanno
21、i 塔jar cfm *.Class6 6总结与说明总结与说明现在,计算机在我们生活中日趋重要,计算机已经影响到我们生活的方方面面,很多时候我们都离不开计算机,如何学好计算机是我们当前应解决的问题,特别是作为计算机专业的学生来说。现在我们用计算机编写游戏,虽然现在有很多的游戏在我们生活中存在,但是我们也希望有一个属于自己的,所以编写一个自己的 Hannoi 塔游戏非常重要,这样使自己以前学的知识得到巩固,同时可以增强自己的信心,为以后的编程奠定基础。这个 Hannoi 塔游戏是在原有的程序基础上增加了改变盘子数目功能、改变盘子大小功能、改变背景颜色功能、改变盘子颜色功能、计时器功能以及保存信息
22、到文件功能,由于是在原有的基础上修改的,所以做起来比较简单,没有花费太多的时间。当然在编程过程中也遇到很多小问题,有些问题比较简单但就不知道错在哪里,后来经过自己的不断调试,这个 Hannoi 塔游戏终于大功告成。经过编写这个 Hannoi 塔游戏,我认识到应该注意细节问题,虽然是很小的问题,但可以提高自己编程的能力,而且还可以培养自己编程的严谨性,同时还可以为以后的编程积累经验。编写完这个 Hannoi 塔游戏,我发现自己有很多的不足,我想如果让我来单独来编写这个游戏,我感觉很吃力,因为这个游戏涉及到好多算法。7 7部分原代码(见附录部分原代码(见附录 1 1)题目二题目二 中国象棋(中国象
23、棋(C/SC/S 版)版)1 1设计内容及要求设计内容及要求中国象棋的基本要求中国象棋的基本要求设计 C/S 网络版中国象棋,也就是客户端与服务器端都是 java 应用程序。具体要求如下:(1)中国象棋是双方在有着 9 调竖线和 10 条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点,每个棋子都是在棋点上行走,而不是在方格中行走。(2)河界将棋盘分成两等份,每一边都有一块有 9 个点组成的九宫,棋子“将”,“帅”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一个棋点;“象”必须一次沿着对角线方向走两个
24、棋点,但它不能过河也不能跳过或穿越障碍,即“象”不能别眼,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。中国象棋的“马”不能跳过障碍,即马不能别腿。“车”可以水平或垂直方向移动人一个无障碍的点。“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动。(3)用户开始运行程序后,进入用户登录界面,用户输入正确的用户名和密码才可以进入中国象棋主界面。(4)用户进入主界面后,单击“建立主机”按钮,就把该计算机作为主机,等待其他用户登录到这台主机后,才
25、可以进行对弈。(5)当有用户登录到这台主机上士,用户单击“开始”按钮就可以开始想起对弈了,在对弈过程中,用户可以单击“悔棋”按钮,就可以实现悔棋,用户还可以单击“认输”按钮,向对方认输。(6)如果用户赢了,用户的积分就会增加。(7)用户在对弈过程中可以聊天。需实现的主要功能需实现的主要功能(1)用户登录验证功能。(2)每一个用户可以把自己的计算机做为主机。(3)每一个用户可以寻找主机,并且与主机建立连接。(4)用户在对弈过程中,可以悔棋,而且可以认输。(5)没一个用户都用积分,当赢了比赛后,用户的积分就会增加。(6)有聊天室功能,即用户在对弈过程中可以与对方聊天。(7)在线用户显示功能。2 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 报告
限制150内