JAVA课程设计华容道文档格式.docx
《JAVA课程设计华容道文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计华容道文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
(1)课程设计任务及要求
(2)设计思路--工作原理、功能规划
(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。
(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。
(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)
(7)报告按规定排版打印,要求装订平整,否则要求返工;
(8)课设报告的装订顺序如下:
封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)
(9)严禁抄袭,如有发现,按不及格处理。
4)答辩与评分标准:
(1)考勤:
10分;
(2)程序检查:
30分;
(3)课设答辩:
20分
(3)课程设计报告:
40分;
5)参考文献:
(1)董庆霞.《Java程序设计导论》北京大学出版社
(2)武嘉澎.《Java程序设计大全》北京大学出版社
(3)http:
//csdn///
6)课程设计进度安排
内容天数 地点
构思及收集资料7 图书馆
编码与调试5 实验室
撰写论文3 图书馆、实验室
学生签名:
必须手写
10年12月20日
课程设计(论文)评审意见
(1)考勤(10分):
优( )、良( )、中( )、一般( )、差( );
(2)程序检查(30分):
(3)课设答辩(20分):
(4)课设报告(40分):
评阅人:
职称:
讲师
10年01月25日
中文摘要
本程序不用于商业用途,用于游戏用途。
其功能主要为娱乐,我从中学到实际开发中的许多经验和技巧,对程序的编程思想有了一定的提高。
该程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。
本程序的主要设计思路为:
首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。
对于人物按钮,我们可以创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:
按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。
同时在设计该界面时要考虑到各个按钮的位置、大小等情况。
在这给出了各按钮的位置和大小参数:
(其中Person为继承Button按钮的人物按钮类)
目 录
一、课设任务及要求
课程设计题目:
华容道-一个传统的智利游戏
课程任务
编写一个华容道传统的智利游戏练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。
界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。
对于人物按钮,我们可以创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。
(其中Person为继承Button按钮的人物按钮类)其次我们是对界面上的各人物按钮添加相应的相应事件(鼠标事件、键盘事件),通过这两种事件去完成界面上各人物按钮的移动。
对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能(也就是各人物按钮重新归位)。
设计要求
编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。
通过焦点事件控制人物颜色,当人物获得焦点时颜色为蓝色,当失去焦点时颜色为灰色。
通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。
当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按下键盘的“↓“键,该人物向下移动。
向左、向右和向上的移动原理类似。
二、需求分析
功能需求分析:
功能需求分析的主要任务是从使用者角度考察系统应具有哪些功能及非功能性需求,对于华容道小游戏,用户主要可以是普遍的,它面向的对象是广泛的。
系统的主要功能是:
一、能用鼠标点击对象,获取焦点。
二、用键盘操控上下左右进行游戏。
三、在遇到非法操作时能进行退回。
四、能记录下使用者所走的步数,并显示在图形界面上。
五、能在图形界面中提示使用者具体的操作方法。
六、点击重新开始按钮进行重新开始。
主要使用流程是:
使用者打开图形界面,鼠标点击获取要操控的对象,用键盘选择上下左右控制,使用者选择的对象进行操作。
点击重新开始按钮进行重新开始。
主要功能的用例及方法描述如下:
一鼠标点击选择操作对象
使用者选择想要控制的人物对象,并用鼠标左键点击该对象,就获得了对该人物对象的操控权。
二键盘操控上下左右进行游戏
使用者选定想要控制的人物对象后,点击键盘的上下左右键,实现对选定对象进行上下左右移动。
三操作不正确时能进行退回
使用者选定想要控制的人物对象,实现对选定对象进行上下左右移动
的操作后,如果出现按键操作错误,导致重叠,系统将自动退回原位置。
四记录使用者所走的步数,并显示
使用者选定想要控制的人物对象,实现对选定对象进行上下左右移动的操作时,系统将自动记录下使用者所走的步数,并将其显示在图形界面上。
五在图形界面中提示使用者具体的操作方法
在使用者想要进行操作前,在图形界面上进行提示,告诉使用者如何进行操作。
六点击重新开始按钮进行重新开始
在使用者想要进行操作后,发现自己操作错误,导致游戏无法继续进行下去,使用者不满意现在的操作,可以点击重新开始按钮进行重新开始游戏。
三、设计思路
一系统体系结构
一般要确定系统的体系结构,主要模块,系统运行环境(如操作系统、数据库),开发平台及语言。
本系统主要运行在windows系列平台上,使用eclipse开发系统。
系统功能模块及主要类
系统的主要功能模块如下图:
系统体系结构图如下:
系统主要内容有:
People类来表示华容道的人物,定义华容道的边界,设置重新开始的按钮,记录使用者所走的步数(新增功能),对按钮的背景颜色进行自主设置,对边框的大小进行设置,对边框的颜色进行设置,对使用者进行使用方法的提示。
四、详细设计
详细设计主要是关于代码,编程思想和程序实现的具体描述。
其中包含具体的运行界面,操作界面,运行结果图,和运行前图形界面。
此外,还有一定的流程展示,各个运行模块的结构关系展示,对华容道小游戏的具体实现的具体展示,以及部分主要的代码的展示和分析说明,编程思想的体现。
一、结构建立:
在road的project下建立road包中建立Road类,如下图
二、上机模块建立
一界面设计
界面设计主要是根据功能要求构建界面,界面中的每个元素均应有其作用,以支持功能的实现,界面设计还要考虑到界面风格的一致、符合一般Applet的图像协调。
设计应简洁实用,大方美观,界面协调,便于使用者进行操作,按钮布局合理,大小适中,还应具有使用方法的温馨提示,告诉使用者如何运用程序。
华容道小游戏运行界面如图所示:
程序构造:
利用以下代码对按钮构造name=s;
this.number=number;
left_x=x;
left_y=y;
width=w;
height=h;
setBackground(Color.gray);
当人物没有获取焦点的时候为灰色。
road.add(this);
addKeyListener(road);
setBounds(x,y,w,h);
addFocusListener(this);
rect=newRectangle(x,y,w,h);
载入事件并响应。
优化程序:
根据程序员自己的要求设计更为美观的图形界面,创造更加丰富的按钮颜色,和其它颜色,达到优化图形界面的目的。
具体实现方法如下:
publicvoidfocusGained(FocusEvente){ColormyColor=newColor(20,100,180);
this.setBackground(myColor);
}
程序员可以更改括号中的数值来改变按钮获取焦点后的颜色,达到美观的目的。
此处我选择了(20,100,180)获取颜色为浅蓝色。
程序初始化:
对华容道小游戏程序中的人物、边框、按钮、计步器进行初始化。
Peoplepeople[]=newPeople[10];
Rectangleleft,right,above,below;
//华容道的边界.Buttonrestart=newButton("
重新开始"
);
intcount=0;
TextFieldt=newTextField(20);
//此为计步器的初始化。
界面布局:
对程序中应有的按钮、边框、计步器显示进行合理的安排,将其放在图形界面中的适当位置。
t.setBounds(180,330,20,20);
t.setEnabled(false);
restart.setBounds(105,15,100,25);
restart.addActionListener(this);
//以上为对重新开始按钮进行的坐标设置。
people[0]=newPeople(0,"
曹操"
104,54,100,100,this);
people[1]=newPeople(1,"
关羽"
104,154,100,50,this);
people[2]=newPeople(2,"
张飞"
54,154,50,100,this);
以及people[8]=newPeople(8,"
兵"
104,204,50,50,this)people[9]=newPeople(9,"
154,204,50,50,this);
等是为人物进行的位置设置。
还有left=newRectangle(49,49,5,260);
above=newRectangle(49,49,210,5);
都是对坐标位置进行设置。
键盘控制操作获得焦点的人物活动:
控制兵向下控制兵向右
控制兵向左控制兵向上
键盘事件:
publicvoidkeyPressed(KeyEvente){Peopleman=(People)e.getSource();
//鼠标获取事件源man.rect.setLocation(man.getBounds().x,man.getBounds().y);
if(e.getKeyCode()==KeyEvent.VK_DOWN)
键盘控制向下代码为man.left_y=man.left_y+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
count++;
t.setText("
"
+count+"
//此为计步器的代码
for(inti=0;
i<
10;
i++)
{if((man.rect.intersects(people[i].rect))&
&
(man.number!
=i))
{man.left_y=man.left_y-50;
man.rect.setLocation(man.left_x,man.left_y);
count--;
}}
if(man.rect.intersects(below)){man.left_y=man.left_y-50;
}}//以上为判断是否和其它人物或下边界出现重叠,若出现重叠就退回50个单位距离。
键盘控制向上、向左、向右代码和控制向下的代码类似。
使用方法提示:
g.drawString("
使用方法:
10,10);
g.drawString("
点击相应的人物,"
10,20);
按键盘上的上下"
10,30);
左右键进行移动"
10,40);
在图形界面的左上角进行使用方法提示,方便使用者了解华容道小游戏的操作步骤。
能够利用鼠标和键盘进行游戏控制。
程序提高部分:
添加计步器
计步器初始时刻为空
当兵向下行走一步时计步器显示为1
当使用者点击了重新开始的按钮后步数自动归0
计步器的实现;
intcount=0;
TextFieldt=newTextField(20);
创建一个大小为20的文本框,令count为0.
将文本框的位置进行设置
publicvoidkeyPressed(KeyEvente)
{if(e.getKeyCode()==KeyEvent.VK_DOWN
t.setText("
当键盘点击向下操作时,计步器的步数加一。
当和其它人物或下边界出现重叠时,退回50个单位距离后,count就减一
当向左,向右,向上操作时计步器的基本操作和向下一样。
this.count=0;
当点击重新开始的按钮时计步器的步数变为0。
重新开始的实现:
当游戏进行到难以进行的时候,进行重新开始
游戏恢复到初始状态
Buttonrestart=newButton("
setLayout(null);
add(restart);
add(t);
restart.addActionListener(this);
对重新开始设置
//当点击重新开始的按钮时步数清零
五、运行调试与分析讨论
运行的图形界面
经过不断的改进,实现了鼠标获取事件,键盘控制移动事件,对按钮的背景颜色进行修改,使得图形界面更加的美观合理。
对使用者进行操作方法的提示,使得使用者方便操作。
对使用者使用的步数进行记录,对使用者进行提示。
运用了多个类,和继承方法,图形界面设置等多个内容,对华容道小游戏进行编辑,最终完成了这个程序的编辑。
六、设计体会与小结
经过数天时间的不断努力,我终于编成了华容道这个传统的中国小游戏,在编写的过程中,我经常从网上学习一些编程过程中遇到的困难,在编写计步器的时候,出现了按重新开始的按钮计步器无法归零的问题,在同学的帮助下得到了解决。
我还从《Java程序设计导论》和《Java程序设计大全》中获得了对按钮的背景颜色进行更改的方法,受益匪浅。
我体会到学习Java不能闭门造车,必须从多个方面进行不断学习,从各个方面解决问题才能完成好对程序的编写。
七、参考文献