贪吃蛇游戏毕业设计.doc_第1页
贪吃蛇游戏毕业设计.doc_第2页
贪吃蛇游戏毕业设计.doc_第3页
贪吃蛇游戏毕业设计.doc_第4页
贪吃蛇游戏毕业设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计 论 文题目: 贪吃蛇游戏系 别: 计算机科学与工程系专 业: 计算机信息管理姓 名: 学 号: 指导教师: 河南城建学院2012年 05 月 20 日 摘 要近年来,java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。jbuilder是borland公司用于快速开发java应用的一款优秀的集成开发环境,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。 “贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于java技术和eclipse开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,六个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习java技术和熟悉软件开发流程的目的。本文在介绍java相关技术和国内外发展现状的基础上,对“贪吃蛇”游戏的整个生命周期的各个开发阶段进行了详细地介绍。首先,分析了开发本游戏软件的可行性,重点分析本设计所采用的技术的可行性。其次,从游戏主界面等几方面,分析了本游戏的功能需求;从可使用性和安全性方面分析了属性需求。然后,进行了游戏的概要设计和详细设计,这也是本文的重点。概要设计给出二个功能模块的主框架以及六个类模块的函数调用关系;详细设计介绍了java2标准运行环境的配置,重点给出各个类模块的程序流程图以及uml图,列表介绍了各个类包含的变量、使用的方法,展示了游戏的界面。为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序调试过程和功能测试结果。关键词:贪吃蛇,java,游戏算法,图形设计abstractin recent years, java as a new kind of programming language, with its simplicity, portabilityand platform irrelevance etc, and had been used widely, especially java with the world wide webisthe perfect combination of network programming, causes it to become the first choice and embedded programming languages. jbuilder borland company for rapid development is theone excellent java applications of integrated development environment, with its friendly development interface, powerful components support etc, and receive the programmers accepted and approved.with the development of society, people increasingly accelerate the pace of life, more and more people to join the globalization of the world. people do not get bogged down in the small world, overtime, business became modern inevitable official. while a can of entertainment game became anytime necessities, cell phones and computers in people daily necessities of the society, a convenient operation in the game to become buyers reference point.now we have to introduce this game - snake, which satisfies the requirements and design, hoping to bring players. snake this game is simple, convenient operation, is entertaining, attracted many people. this is a game clutched the peoples psychology, simple, have joy endless. in the pursuit of more people desire, the game has brought people chase after the success of pleasure and satisfaction, as in the modern under pressure is very good relaxation tools.this paper designs the snake game, the game using c language, develop language for use as a development tool. tubro c 2.0, this game will make many people from heavy in daily life. keywords snake;c_language ;game algorithm;graphic designkeywords:snake;java-language;game algorithm;graphic design.河南城建学院毕业设计(论文) 目 录目 录第1章 系统开发环境11.1 开发工具简介11.2 应用环境21.3 技术原理31.4 选题意义和背景3第2章 系统需求分析42.1 需求分析42.2 可行性分析4第3章 系统概要设计53.1 设计目标53.2 系统功能模块5第4章 系统详细设计84.1 程序设计84.1.1主类snakegame84.1.2类snakeframe114.1.3类snake124.1.4 类node134.1.5类snakepanel144.1.6类statusrunnable144.1.7类snakerunnable144.2 各功能界面截图154.2.1贪吃蛇游戏的基本运行界面154.2.2程序开始运行界面17第5章 系统测试195.1 测试的意义195.2 测试过程195.3 测试结果20总 结21致 谢22参考文献23 河南城建学院毕业设计(论文) 第1章 系统开发环境第1章 系统开发环境1.1 开发工具简介sun microsystems公司在推出java语言的同时,推出了一套开发工具jdk。sun提供的基于字符模式的java开发工具包jdk: java开发工具(jdk)是许多java专家最初使用的开发环境。java是平台无关的语言是指用java写的应用程序不用修改就可在不同的软硬件平台上运行。java源程序编写借助于记事本,editpuls,ultraedit等第三方编辑工具。所有的java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。jdk由一个标准类库和一组建立,测试及建立文档的java实用程序组成。其核心javaapi是一些预定义的类库,开发人员需要用这些类来访问java语言的功能。jdk 是整个java的核心,包括了java运行环境(java runtimeenvirnment),一堆java工具和java基础的类库(rt.jar)。不论什么java应用服务器实质都是内置了某个版本的jdk。因此掌握jdk是学好java的第一步。jdk里面是java类库和java的语言规范,它提供的是无论你用何种开发软件写java程序都必须用到的类库和java语言规范.没有jdk,你的java程序根本就不能用。最主流的jdk是sun公司发布的jdk,除了sun之外,还有很多公司和组织都开发了自己的jdk,例如ibm公司开发的jdk,bea公司的jrocket,还有gnu组织开发的jdk等等。其中ibm的jdk包含的jvm(java virtual machine)运行效率要比sunjdk包含的jvm高出许多。而专门运行在x86平台的jrocket在服务端运行效率也要比sunjdk好很多。但不管怎么说,我们还是需要先把sun jdk掌握好。java是一种简单的,跨平台的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年sun推出java语言之后,全世界的目光都被这个神奇的语言所吸引。 java 编程语言的风格十分接近c语言。java是一个纯的面向对象的程序设计语言,它继承了 c+ 语言面向对象技术的核心,java舍弃了c +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 java se 1.5 版本中,java 又引入了泛型编程(generic programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 java 程序的运行效率。1.2 应用环境操作系统: windows xp等windows xp中文全称为视窗操作系统体验版。是微软公司发布的一款视窗操作系统。它发行于2001年10月25日,原来的名称是whistler。微软最初发行了两个版本,家庭版(home)和专业版(professional)。家庭版的消费对象是家庭用户,专业版则在家庭版的基础上添加了新的为面向商业的设计的网络认证、双处理器等特性。且家庭版只支持1个处理器,专业版则支持2个。字母xp表示英文单词的“体验”(experience)。2011年7月初,微软表示将于2014年春季彻底取消对windows xp的技术支持。windows xp 是基于windows 2000代码的产品,拥有新的用户图形界面(叫做月神luna),它包括了一些细微的修改,其中有些看起来是从linux的桌面环境(desktop environment)如kde中获得的灵感:带有用户图形的登陆界面就是一个例子。此外,windows xp 引入了一个“选择任务”的用户界面,使用户可以由工具条访问任务细节。它还包括简化的windows 2000的用户安全特性,并整合了防火墙,试图解决一直困扰微软的安全问题。 应用软件:jdk1.5,eclipseeclipse 是一个开放源代码的、基于java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,eclipse 附带了一个标准的插件集,包括java开发工具(java development kit,jdk)。 虽然大多数用户很乐于将 eclipse 当作 java 集成开发环境(ide)来使用,但 eclipse 的目标却不仅限于此。eclipse 还包括插件开发环境(plug-in development environment,pde),这个组件主要针对希望扩展 eclipse 的软件开发人员,因为它允许他们构建与 eclipse 环境无缝集成的工具。由于 eclipse 中的每样东西都是插件,对于给 eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 java 开发工具。尽管 eclipse 是使用 java 语言开发的,但它的用途并不限于 java 语言;例如,支持诸如 c/c+ 和 cobol 等编程语言的插件已经可用,或预计将会推出。eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。 基于 eclipse 的应用程序的一个突出例子是 ibm rational software architect,它构成了 ibm java 开发工具系列的基础。1.3 技术原理j2me 游戏开发技术是支持像小型嵌入式设备或移动设备而制定的一系列的 技术和规范的总称,它是 java 语言的一个分支,遵循 java 的规则,是一个运行平台,特别适用于手机用户的游戏开发。本项目的贪吃蛇游戏就是基于 j2me 游戏技术开发的。本次实训开发工具为 eclipse,使用 java 功能,支持rms持久化数据库,可以保存游戏的积分,等 级,速度等。用户也可以自行设置游戏的一些规则。其技术原理涉及 midp 简表:针对移动信息处理设备(主要指智能手机和一部分具有无线通信功能的 pda的图形界面、输入和时间处理、持久性存储、无线电话。midp的总体框架:mid硬件层、本地系统软件层、kvm 层、cldc 层、midp 层。其中还涉及到 midp2.0 的新特性,midp 的安全机制等。1.4 选题意义和背景随着科技的发展,现在手机的功能已不仅仅是简单的打接电话、收发短信了。更多 的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。因此,为了迎合众多用户的需求并适应现在手机的规模,我们开发出一套适合各阶层人士的具有很强的娱乐性和交互性的贪吃蛇小游戏。贪吃蛇,之所以取这样的名字,去用意还是很明显的.贪吃蛇其实并不贪,它是人不 断向前追求的象征.就像现代的人只有不断努力向前才能得到自己想要的。而食物也是随机出现的,就像现在社会存在的机会,而我们只有找好自己的目标才能成功。 虽然现在市面上存在着各种各样的游戏版本,可是贪吃蛇其市场还是相当大的。因 为它的特殊在于它能吸引人更深入,爱不释手.随着游戏速度不断加快,其刺激性也更强。可以说该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行。对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的。这样的小游戏刚好迎合了他们的需求。40第2章 系统需求分析2.1 需求分析本系统主要是完成贪吃蛇游戏的基本操作。用户可以自己练习和娱乐。本系统需要满足以下几点要求: 利用方向键来改变蛇的运行方向。 空格键暂停或继续游戏,并在随机的地方产生食物。 吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。2.2 可行性分析贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。贪吃蛇的核心算法时如何实现移动和吃掉食物,没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果。而在吃到食物的时候,则只需把食物入队即可。实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够暂停和开始。本次设计我将主要运用java语言来完成。java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用java写的应用程序不用修改就可在不同的软硬件平台上运行。由于java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。河南城建学院毕业设计(论文) 第3章 系统概要设计第3章 系统概要设计3.1 设计目标本程序是一个利用java应用软件制作的贪吃蛇小游戏。在游戏的过程中,玩家可以通过小键盘的“”“”“”“”来控制蛇的运动方向,在菜单项中的设置来设置游戏的难度不同的等级蛇的运动速度不一样,点击新游戏按钮开始新游戏,游戏的过程中可以通过暂停键来暂停游戏,想继续游戏时单击继续按钮继续当前的游戏,当蛇吃到食物时蛇身长度增加一个,如果蛇没有吃到食物时蛇身不增加,当蛇头碰到墙壁时或者碰到自身时游戏结束。3.2 系统功能模块本系统共包括1个java源文件和6个类模块:snakeapp (主类) :该类包含 main 方法,为应用程序的主类。该类用来创建游戏的用户界面,整个程序从该类的 main 方法开始执行。snakeframe 类 用来设计游戏的运行主界面,游戏主窗口包括3部分,第一部分是菜单栏,包含难度设置、操作帮助等;第二部分是游戏运行面板,显示游戏中蛇的运行状况;第三部分包括控制功能键和记分牌。snakepanel 类 设置游戏运行状态,设置蛇头颜色,背景颜色,随机块颜色,移动以及分数更新,实现上下左右移动的方法接口。snakemodel 类 创建snake模型,初始化蛇的形状和运行方向,设置随机块的位置,判断是否出界以及出界后的处理,设置方向的更新。arrayindex 类 用来得到坐标,设置坐标以及判断运行方向相同或相反arrayindexreadonly 类 用来得到坐标,以及判断运行方向相同或相反。 1) 类之间的关系如图3.1所示snakeappsnakeframesnakepanelsnakemodelarrayindexarrayindexreadonly图3.1类之间的关系2)各类文件及其功能如表所示表3.1 类文件及其功能序号文件名主要功能1snakegame该文件为程序入口,含有main方法。2snakeframe实现菜单控制运行等总体要求,实现方向键控制蛇的方向,空格键控制游戏暂停或继续,还有分数等。3snake该文件实现蛇的结构和具体运动,如判断食物是否和怎样被吃掉及判断后的动作。4node该文件实现组成蛇身的单位-食物。 5snakepanel该文件实现画板功能,用红蓝间隔画蛇身。6statusrunnable该文件为记录状态的线程。7snakerunnable该文件为蛇运动以及记录分数的线程。3)游戏功能结构图贪吃蛇游戏设置游戏难度新游戏暂 停继 续文 件帮助退出开始新游戏暂停当前游戏继续当前游戏显示帮助信息退出系统图3.2游戏功能结构图河南城建学院毕业设计(论文) 第4章 系统详细设计第4章 系统详细设计4.1 程序设计4.1.1主类snakegame类为此程序的入口,定义了snakeframe的对象frame,开始运行此程序。其主要程序如下:package ex;import javax.swing.*;import java.util.*;import java.awt.*;import java.awt.event.*;class snakeapp public static void main(string args) snakeframe frame = new snakeframe();frame.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit(0););frame.setsize(width, height);frame.setresizable(false);frame.setlocation(300, 180);frame.settitle(贪吃蛇);frame.setvisible(true);private static final int width = 400;private static final int height = 380;class snakeframe extends jframe snakeframe() final snakepanel p = new snakepanel(this);/添加菜单jmenubar menubar = new jmenubar();setjmenubar(menubar);jmenu filemenu = new jmenu(文件);filemenu.add(new abstractaction(帮助) public void actionperformed(actionevent event) joptionpane.showconfirmdialog(p, 游戏说明:n1:键盘的方向键 分别控制蛇身的上下左右运动。n2:点击开始按钮,游戏开始,点击暂停按钮、继续按钮可暂停、继续游戏。n3:每吃一个食物蛇身增加一个长度n4:蛇身出界或自身相交则游戏结束!,操作说明,joptionpane.plain_message););filemenu.add(new abstractaction(退出) /文件选项public void actionperformed(actionevent event) system.exit(0););menubar.add(filemenu);jmenu optionmenu = new jmenu(设置);buttongroup groupdegree = new buttongroup();jradiobuttonmenuitem oneitem = new jradiobuttonmenuitem(初级);jradiobuttonmenuitem twoitem = new jradiobuttonmenuitem(中级);jradiobuttonmenuitem threeitem = new jradiobuttonmenuitem(高级); /等级选项oneitem.setselected(true);groupdegree.add(oneitem);groupdegree.add(twoitem);groupdegree.add(threeitem);oneitem.addactionlistener(new listener(400);twoitem.addactionlistener(new listener(250);threeitem.addactionlistener(new listener(100);jmenu degreemenu = new jmenu(等级);degreemenu.add(oneitem);degreemenu.add(twoitem);degreemenu.add(threeitem);optionmenu.add(degreemenu);menubar.add(optionmenu);container contentpane = getcontentpane();contentpane.setlayout(new flowlayout();contentpane.add(p);jbutton newcmd = new jbutton(新游戏);newcmd.addactionlistener(new actionlistener() public void actionperformed(actionevent e) p.newgame(speedtime););jbutton stopcmd = new jbutton(暂停);stopcmd.addactionlistener(new actionlistener() public void actionperformed(actionevent e) p.stopgame(););jbutton runcmd = new jbutton(继续);runcmd.addactionlistener(new actionlistener() public void actionperformed(actionevent e) p.resumegame(););scorefield = new jtextfield(0, 3);scorefield.setenabled(false);scorefield.sethorizontalalignment(jtextfield.center);jpanel toolpanel = new jpanel();toolpanel.add(newcmd);toolpanel.add(stopcmd);toolpanel.add(runcmd);toolpanel.add(scorefield);contentpane.add(toolpanel);public jtextfield scorefield;private long speedtime = 400;private class listener implements actionlistener private long pause;listener(long pause) if (pause 10) this.pause = pause; else this.pause = 100;public void actionperformed(actionevent e) speedtime = pause;4.1.2类snakeframe成员变量见表4.1表4.1 主要成员变量成员变量描述变量类型名称状态标签private jlabelstatuslabel分数标签private jlabelscorelabel蛇面板private jpanelsnakepanel速度标签private jlabelspeedlabel蛇类对象private snakesnake菜单条private jmenubarbar游戏菜单jmenugamemenu帮助菜单jmenuhelpmenu速度菜单jmenuspeedmenu新菜单项jmenuitemnewitem暂停菜单项jmenuitempauseitem关于菜单项jmenuitemaboutitem慢菜单项jmenuitemslowitem中间菜单项jmenuitemmiditem快菜单项jmenuitemfastitem开始菜单项jmenuitembeginitem帮助菜单项jmenuitemhelpitem方法见表4.2表4.2 主要方法方法名功能snakepanel()创建蛇的面板addkeylistener监视器setbounds()设置尺寸jlabel()设置标签jmenu()创建菜单jmenuitem构造菜单项4.1.3类snake 成员变量见表4.3表4.3 主要成员变量成员变量描述变量类型名称是否运动booleanisrun蛇体arraylistbody食物nodefood方向intderection分数intscore状态intstatus速度intspeed慢public static final intslow中public static final intmid快public static final intfast运动中public static final intrunning已暂停public static final intpaused游戏结束public static final intgameover左public static final intleft上public static final intup右public static final intright下public static final intdown方法见表4.4表4.4 主要方法方法名功能iseaten()判断食物是否被蛇吃掉,如果食物在蛇运行方向的正前方,并且与蛇头接触,则被吃掉iscollsion()判断是否碰撞makefood()在随机的地方产生食物changederection(intnewder)改变运行方向move()蛇在运行中所采取的措施 4.1.4 类node 成员变量见表4.5表4.5 主要成员变量成员变量描述变量类型名称食物块宽public static final intw食物块高public static final inth横坐标intx纵坐标inty 4.1.5类snakepanel 此类为画蛇的面板类,是实现画蛇身算法的类。代码如下:class snakepanel extends jpanel implements runnable, keylistener public snakepanel(snakeframe parent) this.parent = parent;grids = new jpanelrowcol;others = new linkedlist();snakebody = new linkedlist();snakehead = new arrayindexreadonly(0, 0);tempblock = new arrayindexreadonly(0, 0);direction = new arrayindex(0, 1);setlayout(new gridlayout(row, col, 1, 1);for (int i = 0; i row; i+) for (int j = 0; j col; j+) gridsij = new jpanel();gridsij.setbackground(otherscolor);add(gridsij);addkeylistener(this);4.1.6类statusrunnable此类为线程的子类,实现记录状态的功能。4.1.7类snakerunnable此类为线程的子类,实现蛇运动以及记录分数的功能。4.2 各功能界面截图4.2.1贪吃蛇游戏的基本运行界面(1)生成初始界面: 图4.1 初始界面 (2)游戏菜单栏: 图4.2 游戏菜单栏(3)速度菜单栏:图4.3 速度菜单栏4.2.2程序开始运行界面(1)鼠标点击new game按钮,开始游戏(红色方块为食物,蓝黄相间为初始的蛇体): 图4.4游戏初始界面并且当碰到墙壁时游戏会自动结束。如图所示:图4.5游戏技术界面(2)按空格键,游戏开始运行,蛇开始移动,并且吃到一次食物即红色方块后就变成蛇体:图4.6游戏开始运行界面 图4.7 游戏运行界面河南城建学院毕业设计(论文) 第5章 系统测试第5章 系统测试5.1 测试的意义系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。 测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。根据测试的概念和目的,在进行信息系统测试时应遵循以基本原则。5.2 测试过程(1)拟定测试计划在制定测试计划时,要充分考虑整个项目的开发时间和开发进童以及一些人为因素和客观条件等,使得测试计划是可行的。测试计划的内容主要有测试的内容、进度安排、测试所需的环境和条件、测试培训安排等;(2)编制测试大纲测试大纲是测试的依据。它明确详尽地规定了在测试中针对系统的每一项功能或特性所必须完成的基本测试项目和测试完成的标;(3)根据测试大纲设计和生成测试用例在设计测试用例的时候,可综合利用前面介绍的测试用例和设计技术,产生测试设计说明文档,其内容主要有被测项目、输人数据、测试过程、预期输出结果等;(4)实施测试测试的实施阶段是由一系列的测试周期组成的。在每个测试周期中,测试人员和开发人员将依据预先编制好的测试大纲和准备好的测试用例,对被测软件或设备进行完整的测试;(5)生成测试报告测试完成后,要形成相应的测试报告,主要对测试进行概要说明,列出测试的结论,指出缺陷和错误,另外,给出一些建议,如可采用的修改方法,各项修改预计的工作量及修改的负责人员。5.3 测试结果测试内容预期结果实际结果评价游戏初始化实现初始化实现完成良好贪吃蛇方向控制实现控制实现完成良好贪吃蛇和事物的碰撞处理能正确实现实现完成良好游戏结束的判别能正确判别实现完成良好游戏暂停的控制能无误控制实现完成良好总体来说,程序运行正常,没有发现什么错误。总 结虽然游戏的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个游戏主要是我自己开发的,但也得到了老师和同学的很大帮助。我正是在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的游戏的,必须充分利用团队的力量。开发一个游戏,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到用户的需求和现实意义,不管什么游戏,只用运用到实际应用中,才具有现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个设计人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次毕业设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。致 谢历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师张俊峰,他对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最中心的感谢!感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!参考文献1微型爪哇人.java手机程序开发.中国铁道出版社,2003年.2王森著.java手机/pda程序设计入门.2005年2月第3版.电子工业出版社.3陈立伟 张克非 黎秀红著.精通java手机游戏与应用程序设计.中国青年出版社.2005年5月.4袁海燕 王文涛著.java实用程序设计100例.人民邮电出版社.2005年5月.5 riggs r. 李讯译.j2me无线设备编程.北京:机械工业出版社.2002. 6 james keogh著.潘颖王磊译.j2me开发大全.2004年2月第1版清华大学出版社.7 ian sommerville著.程成等译.软件工程.2003年1月第1版.机械工业出版社.8手机程序设计入门,王森(台湾),中国铁道出版社,3050页.9循序渐进java2教程(第三版)rogers cadenhead著,淡文刚 于红梅 译,人民邮电出版社,1220页.10midp图形编程简介,nokia电子文档.11精通jbuilder9,飞思科技产品研发中心,电子工业出版社,2004,2340页.12java手机程序开发,微型爪哇人,中国铁道出版社,2003,20100页. 13j2me in a nutshell,kim topley,oreilly publish,2002 .14wireless tool kit, midp 2.0 profile,sun micro. 15/16/j2me17/18/19/20borland jbuilder9 help documents,borland corporation.21creating 2d action games with the game api, sun公司网页中的technical articles and tips, jonathan knudsen ,及其源代码.河南城建学院毕业设计(论文) 附 录附录package ex;import javax.swing.*;import java.util.*;import java.awt.*;import java.awt.event.*;class snakeapp public static void main(string args) snakeframe frame = new snakeframe();frame.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit(0););frame.setsize(width, height);frame.setresizable(false);frame.setlocation(300, 180);frame.settitle(贪吃蛇);frame.setvisible(true);private static final int width = 400;private static final int height = 380;class snakeframe extends jframe snakeframe() final snakepanel p = new snakepanel(this);/添加菜单jmenubar menubar = new jmenubar();setjmenubar(menubar);jmenu filemenu = new jmenu(文件);filemenu.add(new abstractaction(帮助) public void actionperformed(action

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论