您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 龟兔赛跑程序设计报告
陕西师大课程设计乔文东计算机科学与技术61481610310001目录前言..............................................................1工程概况..........................................................12.1项目所用的时间.............................................12.2项目负责人..................................................12.3项目指导人.................................................1正文..............................................................13.1设计的目的和意义...........................................13.2目标与总体方案.............................................23.3设计方法和内容.............................................23.3.1开发环境...............................................23.3.2设计方法...............................................23.3.4设计体会...............................................83.4设计创新与关键技术.........................................93.4.1设计创新..............................................93.4.2关键技术..............................................93.5结论........................................................9致谢.............................................................10参考文献.........................................................10附录.............................................................11陕西师大课程设计第1页共18页前言在科技日新月异的今天,电脑成为人的生活中不可缺少的一部分。作为计算机专业的学生,应该充分利用所学知识,把实际问题转移到电脑上去,通过电脑的编程,使复杂问题简单化,深奥问题浅显化,抽象问题具体化。在学过《Java程序设计》语言后,我们对计算机有了更深的了解。Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。本次课设我选择的是龟兔赛跑游戏的制作。这个游戏实际上主要是对我们JAVA学习中的线程部分的考察,尤其是多线程的定义,运行等。同时还要保证游戏有一个真实的操作界面和人性化操作设计。在设计龟兔赛跑这个游戏中我也遇到了技术上的一些困难,但通过查阅资料,并且在老师的帮助下最终问题得以解决。正如龟兔赛跑这个故事一样,虽然我们在技术上不是很优秀,但只要有乌龟一样坚持不懈的精神,最终胜利到达终点。乔文东计算机科学与技术61481610310001工程概况2.1项目所用的时间从这个项目开始到结束总共历时12天。完成于2015年6月19日。2.2项目负责人孙肖肖,女,计算机科学与技术17-4,学生。2.3项目指导人高贤强,男,信息工程学院教师,讲师。正文3.1设计的目的和意义本设计要求学生开发一个龟兔赛跑游戏,主要是对学生多线程编程、游戏方案设计、游戏背景及动漫制作等能力进行培养锻炼,同时还要求保证游戏有一个真实的操作界面和人性化操作设计。此外,学生通陕西师大课程设计第2页共18页过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件工程的训练,提高解决实际问题的能力。(1)有助于加深我们对Java程序设计这门课程的理解,我们在课堂上学的都是基础理论知识,对于如何用程序语言来描述所学知识还是有一定的难度。通过课程设计,我们可以真正理解其内涵。(2)有利于我们逻辑思维的锻炼,程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题的能力。即使是一个简单的程序,依然需要学生有条不紊的构思。(3)有利于培养严谨认真的学习态度,在程序设计的过程中,当我们输入程序代码的时候,如果不够认真细心,那么就可能导致语法错误,从而无法得出运行结果。那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。3.2目标与总体方案(1)用图形用户界面实现游戏界面,同时通过设置布局,背景,字体等来丰富界面,最大程度的模拟龟兔赛跑的场景。(2)能设置比赛时间,龟兔的数量等等,实现对比赛中龟兔的数量,比赛时间等参数的设置。(3)在任意时间段内龟兔的速度是随机的,为了模拟龟兔赛跑结果的不确定性,在游戏开始后乌龟和兔子的速度都是通过随机函数产生的,保证兔子比乌龟速度要快,兔子在赛跑途中看到乌龟落后下会偷懒睡觉的前提下给予乌龟,兔子以随机的速度,从而使得游戏的结果不确定,给用户更多的游戏的真实感。(4)开始比赛之后以动画显示赛跑过程,用户进入游戏界面后,先选择游戏模式,然后单击开始按钮,乌龟和兔子将会以随机的速度开始朝终点线爬行,通过重复刷新技术达到动画效果,给用户更逼真的感官。(5)系统的开发可以采用Java语言来实现;(6)在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界面。3.3设计方法和内容3.3.1开发环境硬件环境:一台清华同方电脑,其配置为:CPU:Intel(R)Core(TM)i5-45703.2GHz内存:4G硬盘:500G主板:4260LA-2922P软件环境:Windows7旗舰版版本2009ServicePack1,并且安装了可供编程的eclipse-standard-kepler-SR1-win323.3.2设计方法赛跑的过程是两个比赛对象并行前进的过程,考虑到应用需求,我们可以利用多线程技术,所谓多线程就是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,这与要求刚好吻合,Java语言对多线程提供强大的支持。用直观图形描述龟兔赛跑前进过程:每过一秒,兔子走过的文本框中增加三个“#”号,乌龟走过的路程文本框中增加一个“#”号。跑完路程结束线程,并显示各自跑完全程总共用的时间。3.3.3主体内容陕西师大课程设计第3页共18页一、设计分析第一步:设计良好游戏界面功能:实现基本的开始、退出游戏功能、选择游戏模式等。基本步骤:图3.3.3.1基本步骤1在实现过程中会遇到的问题及解决方案:1、背景面板上加载图片时需要重写paintComponent方法2、布局必须合理设置(GridLayout不能改变组件的具体位置但可以缩放时相对位置不变。FlowLayout默认是占满第一行转向第二行,并且放大时相对位置改变。Null布局可以自由布置组件位置和大小,但不易实现窗口放大时相对大小随之变化。)若设置不合理,就可能出现多种错误。列如:无法插入背景图片,组建不能显现,组件位置与设计不符等等。3、添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变第二步:线程类的设计功能:实现多只乌龟,兔子的多线程运行具体步骤:在其上添加陕西师大课程设计第4页共18页图3.3.3.2基本步骤2第二步会遇到的问题及解决方案:1、建立兔子线程,继承接口Runnable并正确的实现run()方法。同时要特别注意兔子在比赛中还要模拟睡觉的动作。2、建立乌龟线程,继承接口Runnable并实现其run()方法,要与兔子多线程运行;3、为了实现可选择多只龟兔进行赛跑,要实现多个兔子,乌龟线程,并能并发运行。4、游戏中提供了模式选择的功能,通过建立ItemSelect类来建立不同的游戏模式。二、各模块的功能及程序说明龟兔赛跑程序主要由以下几个模块构成:模块一:初始图形界面模块publicclassRRTTextendsAppletimplementsActionListener{Graphicsg;Panelpanel;Labellabel1,label2,label3;Buttonbutton1,button2;RabTor1rabTor1;publicvoidinit()//Applet中的初始化函数有类中构造函数的作用!最先调用!{panel=newPanel();panel.setLayout(newFlowLayout());label1=newLabel(欢迎使用该软件,1.0版本,不足之处,请多多指教!);label2=newLabel(*********东瑞制作*****程序员*****陈杰*********);label3=newLabel();陕西师大课程设计第5页共18页button1=newButton(进入游戏);button2=newButton(退出游戏);button1.addActionListener(this);button2.addActionListener(this);setLayout(newBorderLayout());panel.add(button1);panel.add(label3);panel.add(button2);add(label1,BorderLayout.NORTH);add(label2,BorderLayout.SOUTH);add(panel,BorderLayout.CENTER);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==button1){rabTor1=newRabTor1();//dispose();}elseif(e.getSource()==button2){System.exit(0);}}}该模块主要是用来提供进入该程序游戏的初始图形用户界面,显示该程序的基本信息,提示用户进行操作。模块二:兔子线程模块该模块主要是实现兔子运行线程,类RabbitThread继承了接口Runnable并实现其方法run(),主要有两个功能的实现:1.来为兔子定义随机速度x1=x1+(int)(Math.random()*30);2.兔子动的实现方法if(threadName.equals(rabbit)&&x1=800)intt1=0,t2=0;str1=rabbit;x1=x1+(int)(Math.random()*30);rab_time=rab_time+1;rab_road+=(int)(Math.random()*25);3.兔子获得一个随机的时间睡眠(0—30秒)str1=乌龟跑这么慢,我先睡一会;str2=哼,别以为自己是兔子就了不起!你就睡吧!;rabbit=getImage(getCodeBase(),4.jpg);try{t1=(int)(Math.random()*30000);Thread.curre
本文标题:龟兔赛跑程序设计报告
链接地址:https://www.777doc.com/doc-5918220 .html