Java课程设计实验报告

河南机电高等专科学校

学生课程设计报告

实验课程名称          Java程序设计                    

开课实验室            实验楼308机房                   

系、部          计科系   年级 11   专业班  软件技术           

     宋亚澎             111012228             

 20##       2013    学期

《Java程序设计》课程设计报告

                                                             20121224

 

第二篇:java课程设计实验报告二

目    录

本次课程设计选题………………………………………………………1

1.课程设计内容概述……………………………………………………1

1.1目的…………………………………………………………………1

1.2任务…………………………………………………………………1

2.程序设计基本思想……………………………………………………1

2.1问题需求分析………………………………………………………1

2.2总体设计……………………………………………………………2

2.3编程环境及工具说明………………………………………………2

3.系统流程图……………………………………………………………2

4.系统各部分的UML类图………………………………………………3

5.容器层次结构树………………………………………………………3

6.运行结果及分析截图…………………………………………………3

6.1程序界面截图………………………………………………………4

6.2游戏程序内部运行情况截图:……………………………………5

6.3说明…………………………………………………………………6

7.总结……………………………………………………………………6

8.合作课程设计的成员分工情况………………………………………8

参考文献…………………………………………………………………9

本次课程设计选题:骰子游戏

使用课本PP4.7创建的PairOfDice类,设计并实现一个类来玩Pig游戏,由用户和计算机进行比赛,每一轮中,每一个玩家掷一次骰子(一对)并且累计点数。最终目标是先达到100点的对手获胜。在任何一轮比赛中,如果玩家掷到一个1,则该轮的点数无效并且换对手掷骰子,而如果掷得两个1,则到目前为止所有的点数全部无效并且转交骰子控制权。每次掷完骰子后,当前的玩家可以自由选择继续掷(成为Pig)并且担当失去点子的风险,或者将骰子的控制权移交给对手!但可能使对手赢得比赛。如果计算机在任何一轮中累计点数超过20则放弃骰子的控制权。(见课本P189 PP5.40)

程序要求:(1)用可视化编程控件实现该程序。(2)用户每次掷完骰子后,弹出对话框,询问用户是否继续掷骰子。(3)显示计算机每次掷骰子的值,每轮累加超过20后,计算机自动放弃控制骰子权限。

(一)课程设计内容概述——目的,任务

1.1目的:设计一个投骰子游戏的类来玩Pig游戏,实现符合题目要求的游戏规则,并实现程序可视化。

    1.2任务:设计任务要完成设计,编码,测试等过程,给出程序设计的基本思想,系统流程图,系统各部分的UML类图,容器层次结构树,运行结果及相应分析。

(二)程序设计的基本思想——包括问题需求分析,总体设计,编程环境及工具说明等

2.1问题需求分析:掷骰子本身就是一门简单的游戏,这个游戏通过掷骰子得到它六个面不同的示数让一个普通的随机事件趣味化。随着计算机的发展,掷骰子游戏已经可以在电脑上实现了,不再需要人手去捡骰子和人工计算点数积分,在某程度上可以给游戏者提供方便,同时,用电脑玩骰子游戏也是一种环保,至少可以避免因为骰子烂了或者不见了而去商店再买。再者,通过编写特别的骰子游戏应用程序,改写当中的游戏规则,还可以让乏味的骰子游戏多样化。

2.2总体设计:这个掷骰子游戏应用程序以一个框架构成,使用了两个标签放置游戏主面版和用户游戏规则说明。游戏主面版面使用了frame边框布局管理器(borderlayout),分别由骰子当前面值图片面板,玩家和电脑的当前比赛结果显示面板以及一个包含两个控制按钮的面板组成。在按钮面板中同时注册按钮事件监听器,并插入一个询问是否继续控制骰子的对话框。

2.3编程环境及工具说明:  Jcreator  JDK1.6

(三)系统流程图——重要处理过程的程序流程图

(四)系统各部分的UML类图——要体现类中的数据成员和函数成员情况,要体现类与类(接口)之间的继承,依赖等关联关系

(五)容器层次结构树

(六)运行结果及分析——给出详细的程序运行情况截图,并附加说明及结果分析

6.1程序界面截图(猪麦标签下的界面):

程序界面截图(帮助标签下的界面):

程序界面截图(按下投掷按钮时的界面):

6.2游戏程序内部运行情况截图:

6.3说明:由于程序尚未成功实现游戏,故界面当中没能显示相应的结果,但内程序的游戏运行功能经过测试均显示正常。

(七)总结——对这次课程设计做的过程进行总结,做了一个什么课程设计,实现了什么功能,还存在什么问题没有解决,自己有些什么心得体会等

设计过程总结:在那几个可供选择的题目里,我最感兴趣的就是这一个了。最可惜的是我没能找到搭档跟我一起编写代码,所以只能硬着头皮一个人做了。

画了简图之后我就开始编写游戏规则的内程序,编写过程中不得不翻看书上的例题一遍又一遍,因为还不熟悉某些方法的调用,编写了大概有三天吧,都没能成功编译运行,而且那个时候我还没有完全把游戏规则设置到程序当中去。当我遇到想不通的问题时会主动去请教室友,然后跟她们一起看书讨论,最终还是得不出结果来,甚至最夸张的是,我仿照着书上的调用技巧调用某个类的变量时总是出错,换方法换了一次又一次都编译不通过。可是把原书的程序输进去又可以成功运行,真的是把我逼疯了。后来再重新翻看了一下题目,原来老师有给提示的,书章节后面的编程项目那里有个程序跟这个要求差不多,这件事突然又重新燃点起我的斗志和激情。

于是我就先把游戏规则内程序放一边,开始编写用户界面程序。在开始的时候,每当我想运用某一个可视化程序控件的时候还是得翻一遍书才能真正确定自己是编写正确的。虽然我要不断地翻看书上的例题和知识点才可以完整的写出某些方法语句,但总体来说编写过程还是很顺利的,即使编译的时候有少许错误,但是经过自己修改几次之后也能够顺利运行。

版面设置好之后我就想把游戏规则的内程序在用户界面程序上实现,可是真正的难题出来了。我编写了修改了很多遍,还是在监听器那里出现问题,只要我在按钮上添加了监听器,程序就立马不能编译了。特别的是,在编写按钮事件监听器的时候,我不明白为什么不能用private来定义,我还记得老师说过用private定义可以加强程序的封装性,而且一般来说,监听器应该都是私有的。最后我找不到解决办法为了程序能够成功编译逼不得已只能把private给删掉了。还有就是,我按着书上确定事件源那一节的例题来改写自己的监听器时,不知道为什么那个left的按钮要在监听器里面重新定义才能编译成功,其实书上的例题里是根本不用在监听器里重新定义的,在这个地方的问题卡了我好久,时间浪费了也不少啊。

我在版面上设置的控制按钮只有两个,也就是说,在按钮事件监听器上必须能够完全实现那个游戏的运行。但是我还是搞不懂怎样可以实现程序之间的交互,我之前修过一门动态网页设计的选修课,接触过html,可是还是没有头绪到底要怎么实现转换。在按钮下去之后怎么操控内程序运行,还是我想的思路方向错误了呢,我无从得知啊,很无助!!到目前为止我求救过很多同学,都帮不了我,我也发了个邮件给老师,希望可以得到一些帮助,可是也没有回音,最后这个程序就扼杀在这个连接的部分而没能成功完成,这是我觉得最最遗憾的事情。

在设计过程当中,不足的地方:我在编写代码的时候没有写注释的习惯,而且一旦涉及多个对象变量的时候急着实现功能也没有固定好设置名字的规律性,导致编写的程序代码缺乏可读性;编写时我还是没有仔细考虑程序运行的细节问题,实现程序功能粗糙;没能实现用户界面程序的图片应运行结果相应转换功能;在可视化界面当中设置的控制游戏运行的按钮过于少;没有很好地利用图书馆资源查找相关书籍作参考;程序最终没能成功实现游戏。

通过这次课程设计我得到的收获是:即使我没能独立地把一个游戏应用程序成功的实现出来,但至少我付出了自己的努力,再一次回顾了书上的知识点和应用技巧,巩固了自己的知识结构,也对编写程序的过程有了个感性的认识。我不得不承认女生编程能力真的有限于男生啊,看着他们都觉得好容易!!

这次课程设计成功实现了的功能有:实现了游戏界面可视化;用户掷完骰子后弹出询问对话框;在“帮助”标签中显示了游戏规则;整个程序对话框可实现最小化,最大化和关闭功能。

存在的还没有解决的问题有:最大的问题的程序还没成功实现啊!!!!

设计心得体会:在课程设计编写代码之前一定要理清自己的设计思路,多花点时间在分析题目和设计构思上,不要一拿到题目就急于写代码,尽量做到准备充分的时候才编写程序,以减少修改程序花的时间。实现功能设计的时候尽量采用分块实现功能的思想,逐个编写,逐个调试,这样才会容易发现错误的地方并且能够更完善编写的代码。要懂得利用身边的所有资源,包括图书馆的相关书籍,同学的帮助,网友的解答,老师的指导等。敢于尝试,不轻言放弃,乱了套的时候要静下来慢慢整理自己的设计思路,再重新修改编译,总会有胜利的曙光在前方!

(八)合作课程设计的成员分工情况

一人完成。

参 考 文 献

Java程序设计课程(第五版)【美】John Lewis  William Loftus 著

出版社:电子工业出版社 

相关推荐