您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > java课程设计-华容道
课程设计(论文)任务书软件学院学院软件+电子商务专业2班一、课程设计(论文)题目华容道——一个传统的智力游戏二、课程设计(论文)工作自2010年12月20日起至2010年12月24日止。三、课程设计(论文)地点:软件学院实训中心四、课程设计(论文)内容要求:1.本课程设计的目的(1)掌握Java语言的程序设计方法;(2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。2.课程设计的任务及要求1)课程设计任务:用java语言编写一个华容道小游戏2)创新要求:在基本要求达到后,可进行创新设计3)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路--工作原理、功能规划(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(7)报告按规定排版打印,要求装订平整,否则要求返工;(8)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)华东交通大学课程设计报告(9)严禁抄袭,如有发现,按不及格处理。4)课程设计评分标准:(1)学习态度:10分;(2)系统设计:20分;(3)编程调试:20分;(4)回答问题:20分;(5)论文撰写:30分。5)参考文献:(1)丁振凡.Java语言实用教程(第2版)[M].北京邮电大学出版社.2008.1(2)丁振凡.Java语言实用教程实验指导(第2版)[M].北京邮电大学出版社.2008.1(3)杨树林等.Java语言最新实用案例教程(第2版)[M].清华大学出版社.2010.76)课程设计进度安排1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料2.程序模块设计分析阶段(4学时):程序总体设计、详细设计3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文学生签名:2010年12月20日课程设计(论文)评审意见(1)学习态度(10分):优()、良()、中()、一般()、差();(2)系统设计(20分):优()、良()、中()、一般()、差();(3)编程调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(30分):优()、良()、中()、一般()、差();评阅人:职称:讲师2010年12月25日华东交通大学课程设计报告中文摘要华容道,古老的中国游戏,以其变化多端、百玩不厌的特点与魔方、独立钻石棋一起被国外智力专家并称为“智力游戏界的三个不可思议”。游戏就是依照“曹瞒兵败走华容,正与关公狭路逢,只为当初恩义重,放开金锁走蛟龙”这一故事情节设计,受到很多玩家的喜爱。该程序用Java语言编写,棋盘上有10个不一样大小的按钮,分别代表曹操、张飞、赵云、马超、黄忠和关羽,还有四个兵。棋盘最下方有两个空着的小方格,代表曹操逃出的位置,可以实现通过鼠标或者键盘移动界面上的按钮,最终使曹操移动到棋盘最下方,代表曹操逃出华容道。华东交通大学课程设计报告目录一、课程设计任务及要求..................................................................1二、需求分析......................................................................................2三、设计思路......................................................................................3四、详细设计......................................................................................4五、运行调试与分析讨论................................................................14六、设计体会与小结........................................................................16七、参考文献....................................................................................17华东交通大学课程设计报告第1页一、课程设计任务及要求1、本程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。2、编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。通过焦点事件控制人物颜色,当人物获得焦点时颜色为红色,当失去焦点时颜色为黄色。3、通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按下键盘的“↓“键,该人物向下移动。向左、向右和向上的移动原理类似。4、点击“重新开始”可以使各个按钮复位,重新开始游戏。华东交通大学课程设计报告第2页二、需求分析要满足的容道游戏的基本操作:1.各人物按钮按相应的顺序和大小排列,按钮上标注人物名字,界面美观。2.通过焦点事件控制人物按钮的颜色,得到焦点呈红色,失去焦点为淡黄色。3.可以通过键盘控制各个按钮的移动:按“↓”键,人物按钮向下移动其它方向类似。4.可以通过鼠标点击来控制各个人物按钮的移动:如果点击的位置在按钮的上半部分则向上移动,如果点击按钮的下半部分则向下,左右原理类似。5.有“重新开始按钮”点击重新开始按钮各个人物按钮复位,能重新开始游戏。6.小程序能够自由的缩小,放大,关闭。华东交通大学课程设计报告第3页三、设计思路1.首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。对于人物按钮,创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。同时在设计该界面时要考虑到各个按钮的位置、大小等情况。2.对界面上的各人物按钮添加相应的相应事件焦点事件:通过焦点事件各个按钮的是焦点。鼠标事件、键盘事件:通过这两种事件去完成界面上各人物按钮的移动。对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能也就是各人物按钮重新归位。华东交通大学课程设计报告第4页四、详细设计1.类的设计本程序总共有3个类(1)MoveExample类publicclassMoveExample{publicstaticvoidmain(Stringargs[])//定义主方法{newHua_Rong_Road();//创建一个Hua_Rong_Road对象}}(2)Person类增加焦点事件监视器:addFocusListener(事件监听器)当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点到无输入焦点都会触发FocusEvent事件。创建监视器的类必须要实现FocusListener接口,该接口有两个方法:publicvoidfocusGained(finalFocusEvente)//获得焦点触发publicvoidfocusLost(finalFocusEvente)//失去焦点触发当组件从无输入焦点变成有输入焦点并触发FocusEvent事件时,监视器调用类实现的接口方法focusGained(FocusEvente);当组件从有输入焦点变成无输入焦点并触发FocusEvent事件时,监视器调用类实现方法focusLost(FocusEvente)。classPersonextendsButtonimplementsFocusListener{intnumber;Colorc=newColor(255,245,170);//设置颜色//preson方法publicPerson(finalintnumber,finalStrings){super(s);setBackground(c);//背景色this.number=number;华东交通大学课程设计报告第5页c=getBackground();addFocusListener(this);//事件焦点监听}publicvoidfocusGained(finalFocusEvente)//获得焦点触发{setBackground(Color.red);//获得焦点的颜色}publicvoidfocusLost(finalFocusEvente)//失去焦点触发{setBackground(c);}}(3)Hua_Rong_Road类游戏界面主要包括十个人物按钮马、曹操、关羽等。对于人物按钮,在该类中定义按钮的一些新的属性和焦点事件监听器,如:按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。同时在设计该界面时要考虑到各个按钮的位置、大小等情况。classHua_Rong_RoadextendsFrameimplementsMouseListener,KeyListener,ActionListener{Personperson[]=newPerson[10];Buttonleft,right,above,below;Buttonrestart=newButton(重新开始);//添加重新开始按钮Hua_Rong_Road()方法设置容器publicHua_Rong_Road(){init();//设置按钮setBounds(100,100,320,360);//组件在容器上的起点和长宽setVisible(true);//像控件中添加元素validate();//刷新addWindowListener(newWindowAdapter()//注册窗口事件监听华东交通大学课程设计报告第6页{publicvoidwindowClosing(WindowEvente)//关闭{System.exit(0);}});}init()方法设置10个按钮publicvoidinit(){setLayout(null);//设置布局默认add(restart);//添加重新开始restart.setBounds(100,320,120,25);//按钮大小restart.addActionListener(this);//注册监听Stringname[]={曹操,关羽,张飞,刘备,赵云,黄忠,兵,兵,兵,兵};for(intk=0;kname.length;k++){person[k]=newPerson(k,name[k]);//为每个按钮加上名字person[k].addMouseListener(this);//每个按钮都注册鼠标事件监听/*鼠标事件的类型是MouseEvent,即组件触发鼠标时,MouseEvent类自动创建一个事件对象。Java分别使用MouseListener接口来处理鼠标事件。MouseListener接口可以处理5种鼠标事件:单击、按下、释放、进入和退出。*/person[k].addKeyListener(this);//注册键盘事件监听/*当按下、释
本文标题:java课程设计-华容道
链接地址:https://www.777doc.com/doc-5124209 .html