首页

毕业论文

首页 毕业论文 问题

基于java统毕业论文参考文献

发布时间:

基于java统毕业论文参考文献

一般去知网搜索有好多参考文献de

随便注册一个账号就可以下载了

魏勇. 一种基于Java技术的网络管理软件的设计方案[J]. 硅谷,2010,(20):83.雷明剑. Java Applet技术在网络管理中的研究及应用[D]. 重庆:重庆大学,2007. 许晓宁. Java Native Interface应用研究[J];计算机科学,2006,(10):295-296,299.李天科. 基于Web网络管理体系结构[J].农业网络信息,2006,(06):67-69.丁文学,蔡瑞英. 基于CORBA的XML映射中间件研究[J]. 微处理机,2009,(02):45-48,52. 朱玉,张研. 一种基于Java技术的网络管理软件的设计方案[J]. 微计算机信息,2005,(14):57-59, 157.以上应该差不多了,一篇论文至少要有3-5条参考文献。

Chan A T S. WWW+ smart card: towards a mobile health care management system[J]. International Journal of Medical Informatics, 2000, 57(2): 127-137. Brittenham P J, Henson L W, Kleinert S R. Methods, systems and computer program products for smart card product management: . Patent 6,880,084[P]. 2005-4-12. Chen Z. Java card technology for smart cards: architecture and programmer's guide[M]. Addison-Wesley Professional, 2000. Röhrig C, Jochheim A. Java-based framework for remote access to laboratory experiments[C]//Proc. of the IFAC/IEEE Symposium on Advances in Control Education. 2000: 1-6.

关于基于java的毕业论文题目

jsp的的技术框架有很多, 我最近在给一些同学写代码大部分都是javaweb的, 大部分都是s2sh框架或者ssm框架可以做各类管理系统 电商系统 二手交易平台之类的

《基于690战术核显卡的配套web应用》

我来推荐你一些题目,都是些实用而且新颖的题目,你可以参考试试,满意请给分。基于SSM的酒店管理系统-java酒店管理系统基于SSM的勤工助学管理系统基于SSM的供应商管理系统基于springboot&mybatis的销售管理系统轻量级销售团队管理-java销售管理系统基于SSM的宠物领养系统-java宠物领养系统基于SSH的绿咖奶茶网站基于SSH的教务管理课程管理选课管理系统基于SSM的小区业主服务平台之垃圾回收信息管理系统基于SSM的科技项目评估及专家会议评审系统基于SSM&EasyUI的西服门店管理系统-java门店管理服装管理系统基于Mybatis的教学管理系统作业提交批改管理系统-java教学管理系统作业提交批改管理系统 基于SSM的图书馆座位预约管理系统占座系统-java图书馆座位预约管理系统占座系统基于Mybatis的教学管理系统作业提交批改管理系统-java教学管理系统作业提交批改管理系统基于SSM的驾校预约报名管理系统-java驾校预约报名管理系统基于SSM的图书馆座位预约管理系统占座系统-java图书馆座位预约管理系统占座系统基于SSM的水质检测系统-java水质检测系统基于SSM的学生作业管理系统作业提交作业批改-java作业批改作业提交系统基于的易居二手房网站-房屋管理系统基于SSM的泉州信息工程学院教师测评系统-java教师测评系统基于SSM的超市进销存管理系统-java进销存管理

JSP001网上拍卖平台系统JSP002学生考试成绩分析javaJSP003网站流量统计JSP004计算机等级考试查询系统JSP+网络远程作业处理系统JSP006网上书店售书系统JSP007房屋租赁管理信息系统JDBCJSP008基于JSP的学生信息管理系统JSP009教师档案管理系统JSP010办公自动化管理系统JSP011机房上机收费管理系统JSP012网上选课系统JSP013企业人事管理系统JSP014CD销售管理系统JSP015小区物业管理JSP016自动排课系统JSP017学生学籍管理系统JSP018网上论坛java论坛管理系统,包括论文和程序java图书管理系统毕业设计+源码Java游戏设计打飞机程序+论文java作业管理系统java五子棋的开发JAVA论坛管理数据库开发更多jsp java毕业设计题目:

基于贪吃蛇java毕业论文

学生课程设计(论文)题 目: 贪吃蛇游戏程序设计指导学生姓名: 学 号:200910801001所在院(系): 计算机学院专 业: 计算机科学与技术班 级: 2009级一班指导教师: 何春燕 职称: 讲 师2010年06月 18日目录摘要…………………………………………………………61、设计要求………………………………………………….72、所用仪器设备…………………………………………….73、具体设计过程…………………………………………….、程序功能……………………………………………设计思想……………………………………………….设计的具体实现…………………………………… 总体流程图………………………………………….、程序代码编写及注释………………………………..调试问题及解决方法…………………………………调试结果…………………………………………….设计心得体会………………………………………………、参考文献………………………………………………..26摘 要编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。作为一个完整的程序,尤其是一个完整的游戏,必须考虑人机交流与用户体验。游戏的界面不能太丑,更不能连个简单的界面都没有。游戏应该有个比较漂亮的界面,在有必要硬件支持和软件的支持下,游戏开发者必须最大限度的使游戏美观。游戏的美观是一方面,游戏的内在素质是另一方面。一个游戏的优劣,最终由玩家决定。在游戏与玩家见面之前,游戏开发者要设计一种让玩家投入的游戏模式,并且在一定的游戏规则下进行。关键词 贪吃蛇 流程图 c语言 源程序 turbo C贪吃蛇游戏程序设计1、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。(1).收集资料,分析课题,分解问题,形成总体设计思路;(2).深入分析各个小问题,列出大纲,编写各部分程序模块;(3).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(4).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(5).完成课程设计报告,并进行答辩C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。作为一位当代的大学生更要很好的利用它,学好一门设计语言,实现学以至用。制作C程序报告,可以巩固和加深自己对C语言课程的基本知识的理解和掌握,并且能够掌握C语言编程和程序调试的基本技能。通过游戏程序的设计训练可以提高自己的基本技能,更好地掌握字符串的表示方法和字符串函数的功能、Tc图形操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高自己编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高运用C语言解决实际问题的能力,巩固C语言语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。2、所用仪器设备1、能正常工作的计算机一台; 2、WindowsXP;3、TC程序; 4、Microsoft Word2003;3、具体设计过程、程序功能贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体叉蛇头撞倒自己身体游戏结束。 设计思想程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。.设计的具体实现(1)函数定义函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#define N 200#include <>/*图形头文件*/#include <>/*包含rand等函数*/#include <>/*包含bios函数*/#define LEFT 0x4b00/*光标左键值*/#define RIGHT 0x4d00/*光标右键值*/#define DOWN 0x5000/*光标下键值*/#define UP 0x4800/*光标上键值*/#define ESC 0x011b/*ESC的ASCII码*/int i,key;/*图形坐标变量及按键变量*/int score=0;/*得分*/int gamespeed=10000;/*游戏速度自己调整*/struct Food{int x;/*食物的横坐标*/int y;/*食物的纵坐标*/int yes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/struct Snake{int x[];/*蛇的横坐标*/int y[];/*蛇的纵坐标*/int node;/*蛇的节数*/int direction;/*蛇移动方向*/int life;/* 蛇的生命,0活着,1死亡*/}snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*画界面函数*/void GameOver(void);/*结束游戏*/void GamePlay(void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*/void main(void)/*主函数*/(2)主函数main( )主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序void main(void)/*主函数*/{Init();/*图形驱动*/DrawK();/*开始画面*/GamePlay();/*玩游戏具体过程*/Close();/*图形结束*/}void Init(void)/*图形驱动*/{int gd=DETECT,gm;initgraph(&gd,&gm,"c:\\tc"); /*第一个参数表示图形适配器的类型,第二个为在该类型下图形的显示模式,第三个参数指定驱动程序所在目录。*/cleardevice();}(3) 画界面函数DrawK( )主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。void DrawK(void)/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/{setbkcolor(0);/*设置当前背景颜色*/setcolor(YELLOW);/*设置当前画线颜色*/setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/for(i=50;i<=600;i+=10)/*画围墙*/{rectangle(i,40,i+10,49); /*上边*/rectangle(i,451,i+10,460);/*下边*/}for(i=40;i<=450;i+=10){rectangle(50,i,59,i+10); /*左边*/rectangle(601,i,610,i+10);/*右边*/}}(4)游戏具体过程函数GamePlay( )这是游戏的主要组成部分,他采用将前一节的坐标赋给后一节,用背景颜色将最后节去除,当蛇头的坐标与食物的坐标相等时,表示食物被吃掉了。void GamePlay(void)/*玩游戏具体过程*/{randomize();/*随机数发生器*/;/*1表示需要出现新食物,0表示已经存在食物*/;/*活着*/;/*方向往右*/[0]=100;[0]=100;/*蛇头*/[1]=110;[1]=100;/*蛇第二节*/;/*节数*/PrScore();/*输出得分*/while(1)/*可以重复玩游戏,压ESC键结束*/{while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/{if()/*需要出现新食物*/{()%400+60;()%350+60;while(!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/;while(!=0);;/*画面上有食物了*/}if()/*画面上有食物了就要显示*/{setcolor(GREEN);/*食物的颜色*/rectangle();}for(i=;i>0;i--)/*蛇的每个环节往前移动,贪吃蛇的关键算法*/{[i]=[i-1];[i]=[i-1];}switch() /*定义1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/{case 1:[0]+=10;break;case 2: [0]-=10;break;case 3: [0]-=10;break;case 4: [0]+=10;break;}for(i=3;i<;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/{if([i]==[0]&&[i]==[0]){GameOver();/*显示失败*/;break;}}if([0]<55||[0]>595||[0]<55||[0]>455)/*蛇是否撞到墙壁*/{GameOver();/*本次游戏结束*/; /*蛇死*/}if()/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/break;if([0]==[0]==)/*吃到食物以后*/{setcolor(0);/*把画面上的食物东西去掉*/rectangle();[]=-20;[]=-20; /*-20表示尾巴长一节*//*新的一节先放在看不见的位置,下次循环就取前一节的位置*/;/*蛇的身体长一节*/;/*画面上需要出现新的食物*/score+=10;PrScore();/*输出新得分*/}setcolor(4);for(i=0;i<;i++)/*画出蛇*/rectangle([i],[i],[i]+10,[i]-10);delay(gamespeed);setcolor(0);/*用黑色去除蛇的的最后一节*/rectangle([],[],[]+10,[]-10);} /*endwhile(!kbhit)*/if()/*如果蛇死就跳出循环*/break;key=bioskey(0);/*接收按键*/if(key==ESC)/*按ESC键退出*/break;elseif(key==UP&&!=4)/*判断是否往相反的方向移动*/;elseif(key==RIGHT&&!=2);elseif(key==LEFT&&!=1);elseif(key==DOWN&&!=3);}/*endwhile(1)*/}(5)游戏结束函数GameOver( )游戏结束,清除屏幕,输出分数,显示游戏结束信息。void GameOver(void)/*游戏结束*/{cleardevice();PrScore();setcolor(RED);settextstyle(0,0,4);outtextxy(200,200,"guojian");getch();}void PrScore(void)/*输出成绩*/{char str[10];setfillstyle(SOLID_FILL, WHITE);bar(50,15,200,35);setcolor(6);settextstyle(0,0,2);sprintf(str,"score:%d",score);outtextxy(55,20,str);}void Close(void)/*图形结束*/{getch();closegraph();} 总体流程图}、程序代码编写及注释#define N 200#include <>#include <>#include <>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戏速度自己调整*/struct Food{int x;/*食物的横坐标*/int y;/*食物的纵坐标*/int yes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/struct Snake{int x[N];int y[N];int node;/*蛇的节数*/int direction;/*蛇移动方向*/int life;/* 蛇的生命,0活着,1死亡*/}snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*开始画面*/void GameOver(void);/*结束游戏*/void GamePlay(void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*//*主函数*/void main(void){Init();/*图形驱动*/DrawK();/*开始画面*/GamePlay();/*玩游戏具体过程*/Close();/*图形结束*/}/*图形驱动*/void Init(void){int gd=DETECT,gm;initgraph(&gd,&gm,"c:\\tc");cleardevice();}/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/void DrawK(void){/*setbkcolor(LIGHTGREEN);*/setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/for(i=50;i<=600;i+=10)/*画围墙*/{rectangle(i,40,i+10,49); /*上边*/rectangle(i,451,i+10,460);/*下边*/}for(i=40;i<=450;i+=10){rectangle(50,i,59,i+10); /*左边*/rectangle(601,i,610,i+10);/*右边*/}}/*玩游戏具体过程*/void GamePlay(void){randomize();/*随机数发生器*/;/*1表示需要出现新食物,0表示已经存在食物*/;/*活着*/;/*方向往右*/[0]=100;[0]=100;/*蛇头*/[1]=110;[1]=100;;/*节数*/PrScore();/*输出得分*/while(1)/*可以重复玩游戏,压ESC键结束*/{while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/{if()/*需要出现新食物*/{()%400+60;()%350+60;while(!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/;while(!=0);;/*画面上有食物了*/}if()/*画面上有食物了就要显示*/{setcolor(GREEN);rectangle();}for(i=;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/{[i]=[i-1];[i]=[i-1];}/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/switch(){case 1:[0]+=10;break;case 2: [0]-=10;break;case 3: [0]-=10;break;case 4: [0]+=10;break;}for(i=3;i<;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/{if([i]==[0]&&[i]==[0]){GameOver();/*显示失败*/;break;}}if([0]<55||[0]>595||[0]<55||[0]>455)/*蛇是否撞到墙壁*/{GameOver();/*本次游戏结束*/; /*蛇死*/}if()/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/break;if([0]==[0]==)/*吃到食物以后*/{setcolor(0);/*把画面上的食物东西去掉*/rectangle();[]=-20;[]=-20;/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/;/*蛇的身体长一节*/;/*画面上需要出现新的食物*/score+=10;PrScore();/*输出新得分*/}setcolor(4);/*画出蛇*/for(i=0;i<;i++)rectangle([i],[i],[i]+10,[i]-10);delay(gamespeed);setcolor(0);/*用黑色去除蛇的的最后一节*/rectangle([],[],[]+10,[]-10);} /*endwhile(!kbhit)*/if()/*如果蛇死就跳出循环*/break;key=bioskey(0);/*接收按键*/if(key==ESC)/*按ESC键退出*/break;elseif(key==UP&&!=4)/*判断是否往相反的方向移动*/;elseif(key==RIGHT&&!=2);elseif(key==LEFT&&!=1);elseif(key==DOWN&&!=3);}/*endwhile(1)*/}/*游戏结束*/调试问题及解决方法将已改好的程序复制到Turbo C时,由于软件的内容过多会出现右移,以致大部分的内容无法复制到Turbo C的界面上,最后导致软件无法运行。解决方法:在改程序时应该把格式设置好,注意左对齐,同时一行的语句尽量的短,最好是一个语句占一行。在将程序输入到TC中,对源程序进行编译、运行,发现程序存在的多处错误, 如下图所示:可以按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到不懂的问题,我去图书馆或上网查阅一些资料或者是向老师请教也解决了对源程序一一修改直到运行成功。调试结果1. 下图为程序调试编译结果:2下图为程序调试运行结果(即贪吃蛇游戏界面)4设计心得体会经过短短两星期的计算机软件技术实习,让我对C程序有了一个更深的了解,以前总认为C语言很枯燥,认为那些我们所设计的程序没有什么用处,但现在通过设计贪吃蛇游戏这个程序使我懂得了如何将所学的知识运用于生活当中。虽然在刚开始设计程序时不太明白如何去设计这程序,但当我看完《C语言课程设计案例精编》并用C语言做出这个贪吃蛇程序后,让我深深感受到C程序的神奇。在设计这个程序中我主要学会了如何运用以下有关C语言的知识1) 函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增加了程序的可读性。2) 分析函数先从main()函数入手。Main()函数是C源程序编译时的开始,从main()函数开始读函数可将其他函数的功能理解得更透彻。3) 在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出来,选择正确的数据结构然后在将程序模块化,按照模块编写函数更加简单合理。4) 我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行处理的函数,起功能我都有所了解。同时我也获得了许多宝贵的经验:1) 在设计程序之前,务必要对你所设计的题目和内容有一个系统的了解,知道所设计的题目和内容包含那些资源。2) 设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图,因而,要先把设计原理与思路搞清楚,再把流程图画出来,这样设计起来就简单多了。3) 在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路,发现错误也是取得成绩的一种。4) 要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。5、参考文献1.郭翠英,《C语言课程设计案例精编》,中国水利水电出版社,徐金梧,杨德斌等,《TURBO C实用大全》,机械工程出版社,李丽娟 《C语言程序设计教程》 人民邮电出版社4林华聪 《C语言程序设计思想与实践》 冶金工业出版社5张继温 《C语言程序设计教程》 高等教育出版社6 潘云鹤,董金祥等著.计算机图形学——原理、方法及应用.北京:高等教育出版社, 孙家广等,计算机图形学(第三版),清华大学出版社,20048 陈元琰编著.计算机图形学实用技术.北京:科学出版社,20009和青芳著.计算机图形学原理及算法教程.北京:清华大学出版社10 陆润民.C语言绘图教程.北京:清华大学出版社,1996

按照你的思路 可以让食物的坐标随机产生 然后判断坐标中的数值是1还是0 是1 不就是和蛇的身体重复吗 然后再重新产生食物 循环判断 当是0时就是不在蛇的身体上时再显示食物其实你把地图用二维数组表示很占资源的 你直接用一个数组来记录蛇的身体坐标不就能省下很多吗 我的是这样用的 int snake[maxLength]={头的X坐标,头的Y坐标,第二个节点的X坐标,第二个节点的Y坐标,...}用一维数组而不是二维数组是因为一维数组的访问效率要比二维数组高。 蛇移动的时候只需要改变头的坐标,然后其他的整体后移就行了。在判定是否撞到自己或者墙壁时 只需要判断下一步时头的坐标是否等于身上其他点的坐标(从第四个点开始,因为蛇头不会撞到第二和第三个节点)和障碍墙壁的坐标

设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。开始游戏后,我们定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理。这是游戏的主要逻辑。最后,游戏结束我们弹出一个对话框提示是否保存游戏得分。我们制作了排行榜信息,只保留前10名的游戏得分。首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。游戏结束时保存得分信息,看是否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。通过保存和读取排行榜信息,我们也熟悉一下文件读取操作,还有集合、排序算法的功能。

基于JAVA小游戏毕业论文

[1]贺伟,李凤.基于项目驱动式教学的《Java面向对象程序设计》课程实践[J].计算机产品与流通,2019(01):263-264.

[2]仇焕青.基于SPOC的项目驱动式教学模式研究与实践——以《Java程序设计》课程为例[J].计算机产品与流通,2019(01):174.

[3]张永强.计算机软件Java编程特点及其技术分析[J].计算机产品与流通,2019(01):23.

[4]陈实.后MOOC时代移动学习视角下的翻转课堂设计——以《JAVA程序设计》为例[J].中国多媒体与网络教学学报(上旬刊),2019(01):4-5.

[5]王越.JAVA编程语言在计算机软件开发中的应用[J].电子技术与软件工程,2019(01):35.

[6]叶欣,李建佳,温煜,赖舒婷.基于Java语言的医疗质量管理系统设计与实现[J].中国数字医学,2018,13(12):54-55+104.

[7]丁慧.基于游戏项目二维分解的教学改革——以Java教学为例[J].科学大众(科学教育),2019(01):156.

[8]黄文娟.基于Java和MySQL的图书馆信息化管理系统设计[J].电子设计工程,2019,27(02):20-24.

[9]王禹程.基于Java语言的人力资源信息系统研究[J].电子设计工程,2019,27(02):25-28+33.

[10]刘康,徐同坤.基于提高学生兴趣和实践能力的Java程序设计微课教学改革研究[J].电脑迷,2019(01):224.

[11]任灏榕.基于J2ME的Java手机游戏开发技巧[J].电子技术与软件工程,2019(02):46.

[12]曹文渊.JAVA语言在计算机软件开发中的应用[J].电子技术与软件工程,2019(02):53-54.

[13]陈俊伟.高职学院《Java程序设计》课程翻转课堂教学设计探讨[J].电脑迷,2019(01):103.

[14]雷静,叶煜.融入信息化教学手段的高职Java语言程序设计课程教学模式探索与实践[J].当代教育实践与教学研究,2019(01):15-16.

[15]秦楷.JAVA语言特点及其在计算机软件开发中的运用[J].中国新通信,2019,21(01):91.

[16]任翠池,陈庆惠,李汉挺.线上线下混合教学模式在《Java程序设计》课程中的应用与实践[J].电子世界,2019(02):55+57.

[17]张之涵,谭霞,温克欢,魏恩伟.基于Android和Java编程的家庭智能用电管理系统设计[J].自动化与仪器仪表,2019(01):121-124.

[18]叶春凤.“项目带动教学”模式在Java课程中的应用[J].福建电脑,2019,35(01):175.

[19]吴荣珍.基于JAVA的高职院校人事管理系统设计与实现[J].软件导刊,2019,18(01):116-118+123.

[20]陈钟荣,洪滔.基于Java和聚类分析移动端天气雷达管理系统设计[J].现代电子技术,2019,42(02):62-66.

以上就是关于毕业设计参考文献的相关分享,希望对各位小伙伴们有所帮助,想要了解更多毕业论文相关内容,欢迎大家及时在本平台进行查看哦!

以下是我的毕业论文要求,全国各个学校其实都是一样的.一、内容要求 毕业设计报告正文要求: (一)理、工科类专业毕业设计报告正文内容应包括:问题的提出;设计的指导思想;方案的选择和比较论证;根据任务书指出的内容和指标要求写出设计过程、课题所涉及元件结构和相关参数的设计计算,有关基本原理的说明与理论分析;给出所设计课题实际运行的数据或参数,并与理论设计参数进行比较和分析,说明产生误差的原因。最后要对所设计课题实用价值做出评估说明;设计过程中存在的问题,改进意见或其它更好的方案设想及未能采纳的原因等。 (二)经济、管理类专业毕业设计报告或论文正文应包括:问题的提出、设计的指导思想;设计方案提出的依据,设计方案的选择和比较;设计过程;所运用的技术经济分析指标和方法;数学模型及其依据,数据计算方法;对设计方案的实用性和经济效益等方面做出评估;对设计实施过程中存在的问题 ( 或可能发生的问题 ) 提出合理化建议。毕业论文的基本论点、主要论据;根据国家有关方针、政策及规定联系实际展开理论分析。 (三)文科类专业毕业设计报告或论文正文应包括:问题的提出、解决问题的指导思想;解决方案提出的依据,解决方案的选择和比较,结论。 二、论文印装 毕业论文用毕业设计专用纸打印。正文用宋体小四号字,行间距为24磅;版面页边距上3cm,下、左,右2cm。 三、论文结构、装订顺序及要求 毕业论文由以下部分组成: (一)封面。论文题目不得超过20个字,要简练、准确,可分为两行。 (二)内容。 1、毕业设计(论文)任务书。任务书由指导教师填写,经系主任、教务部审查签字后生效。 2、毕业设计(论文)开题报告; 3、毕业设计(论文)学生申请答辩表与指导教师毕业设计(论文)评审表; 4、毕业设计(论文)评阅人评审表; 5、毕业设计(论文)答辩表; 6、毕业设计(论文)成绩评定总表; 7、中英文内容摘要和关键词。 (1)摘要是论文内容的简要陈述,应尽量反映论文的主要信息,内容包括研究目的、方法、成果和结论,不含图表,不加注释,具有独立性和完整性。中文摘要一般为200-400字左右,英文摘要应与中文摘要内容完全相同。“摘要”字样位置居中。 (2)关键词是反映毕业设计(论文)主题内容的名词,是供检索使用的。主题词条应为通用技术词汇,不得自造关键词。关键词一般为3-5个,按词条外延层次(学科目录分类),由高至低顺序排列。关键词排在摘要正文部分下方。 (3)中文摘要与关键词在前,英文的在后。 8、目录。 目录按三级标题编写,要求层次清晰,且要与正文标题一致。主要包括绪论、正文主体、结论、致谢、主要参考文献及附录等。 9、正文。论文正文部分包括:绪论(或前言、序言)、论文主体及结论。 (1)绪论。综合评述前人工作,说明论文工作的选题目的和意义,国内外文献综述,以及论文所要研究的内容。 (2)论文主体。论文的主要组成部分,主要包括选题背景、方案论证、过程论述、结果分析、结论或总结等内容。要求层次清楚,文字简练、通顺,重点突出,毕业设计(论文)文字数,一般应不少于8000字(或20个页码)。外文翻译不少于3000字符,外文参考资料阅读量不少于3万字符。 中文论文撰写通行的题序层次采用以下格式: 1 格式是保证文章结构清晰、纲目分明的编辑手段,毕业论文所采用的格式必须符合上表规定,并前后统一,不得混杂使用。格式除题序层次外,还应包括分段、行距、字体和字号等。 第一层次(章)题序和标题居中放置,其余各层次(节、条、款)题序和标题一律沿版面左侧边线顶格安排。第一层次(章)题序和标题距下文双倍行距。段落开始后缩两个字。行与行之间,段落和层次标题以及各段落之间均为24磅行间距。 第一层次(章)题序和标题用小二号黑体字。题序和标题之间空两个字,不加标点,下同。 第二层次(节)题序和标题用小三号黑体字。 第三层次(条)题序和标题用四号黑体字。 第四层次及以下各层次题序及标题一律用小四号黑体字。 (3)结论(或结束语)。作为单独一章排列,但标题前不加“第XXX章”字样。结论是整个论文的总结,应以简练的文字说明论文所做的工作,一般不超过两页。 10、致谢。对导师和给予指导或协助完成毕业设计(论文)工作的组织和个人表示感谢。文字要简洁、实事求是,切忌浮夸和庸俗之词。 11、参考文献及引用资料目录(规范格式见附文)。 12、附录。 13、实验数据表、有关图纸(大于3#图幅时单独装订)。 (三)封底。 附:规范的参考文献格式 参考文献(即引文出处)的类型以单字母方式标识:M——专著,C——论文集,N——报纸文章,J——期刊文章,D——学位论文,R——报告,S——标准,P——专利;对于不属于上述的文献类型,采用字母“Z”标识。 参考文献一律置于文末。其格式为: 1、专著 示例 [1] 张志建.严复思想研究[M]. 桂林:广西师范大学出版社,1989. [2] 马克思恩格斯全集:第1卷[M]. 北京:人民出版社,1956. [3] [英]蔼理士.性心理学[M]. 潘光旦译注.北京:商务印书馆,1997. 2、论文集 示例 [1] 伍蠡甫.西方文论选[C]. 上海:上海译文出版社,1979. [2] 别林斯基.论俄国中篇小说和果戈里君的中篇小说[A]. 伍蠡甫.西方文论选:下册[C]. 上海:上海译文出版社,1979. 凡引专著的页码,加圆括号置于文中序号之后。 3、报纸文章 示例 [1] 李大伦.经济全球化的重要性[N]. 光明日报,1998-12-27,(3) 4、期刊文章 示例 [1] 郭英德.元明文学史观散论[J]. 北京师范大学学报(社会科学版),1995(3). 5、学位论文 示例 [1] 刘伟.汉字不同视觉识别方式的理论和实证研究[D]. 北京:北京师范大学心理系,1998. 6、报告 示例 [1] 白秀水,刘敢,任保平. 西安金融、人才、技术三大要素市场培育与发展研究[R]. 西安:陕西师范大学西北经济发展研究中心,1998. 7、对论文正文中某一特定内容的进一步解释或补充说明性的注释,置于本页地脚,前面用圈码标识。 8、其他要求 (1)文字 论文中汉字应采用严格执行汉字的规范。所有文字字面清晰,不得涂改。 (2)表格 论文的表格可以统一编序,也可以逐章单独编序,采用哪种方式应和插图及公式的编序方式统一。表序必须连续,不得重复或跳跃。表格的结构应简洁。 表格中各栏都应标注量和相应的单位。表格内数字须上下对齐,相邻栏内的数值相同时,不能用‘同上’、‘同左’和其它类似用词,应一一重新标注。 表序和表题置于表格上方中间位置,无表题的表序置于表格的左上方或右上方(同一篇论文位置应一致)。 (3)插图 插图要精选。图序可以连续编序,也可以逐章单独编序,采用哪种方式应与表格、公式的编序方式统一,图序必须连续,不得重复或跳跃。仅有一图时,在图题前加‘附图’字样。毕业设计(论文)中的插图以及图中文字符号应打印,无法打印时一律用钢笔绘制和标出。 由若干个分图组成的插图,分图用a,b,c,……标出。 图序和图题置于图下方中间位置。 (4)公式 论文中重要的或者后文中须重新提及的公式应注序号并加圆括号,序号一律用阿拉伯数字连续编序,或逐章编序,序号排在版面右侧,且距右边距离相等。公式与序号之间不加虚线。 (5)数字用法 公历世纪、年代、年、月、日、时间和各种计数、计量,均用阿拉伯数字。年份不能简写。数值的有效数字应全部写出。 (6)软件 软件流程图和源程序清单要按软件文档格式附在论文后面,特殊情况可在答辩时展示,不附在论文内。 (7)工程图按国标规定装订 图幅小于或等于3#图幅时应装订在论文内,大于3#图幅时按国标规定单独装订作为附图。 (8)艺术设计作品 无法用纸质文档保存的艺术设计作品应用光盘或照片保存。 (9)计量单位的定义和使用方法按国家计量局规定执行。

上学是个苦差事,终于要毕业了还要被毕业设计绊一跤,别的专业且不说,计算机软件应用的学生最苦恼了,是不是还在为做毕业设计而烦恼?以下为各位奉上我们毕业设计的精品,包括选题,论文以及项目源码。

以下三步让你不在为毕业设计而苦恼,三步轻松搞定!

第一步选题:

根据你的学习和生活经验发现需要改进的问题,并提出问题。

第二步论证:

把发现的问题进行分析并整理成论文,提出自己的见解/解决办法。

第三步实践:

用实际行动来解决所提出的问题,并得出自己的验证结论或解决办法。

1、动力节点-学生宿舍管理系统

本套毕业设计是动力节点原创,系统运用了MySQL为后台数据库,easyui作为前台技术,使用了当前较为流行的框架spring MVC+hibernate+spring架构,应用服务器使用了tomcat,以eclipse为开发工具,系统实现了宿舍管理、学生管理、宿舍分配、宿舍评比、损坏管理查询等必需的功能,其操作简单,界面友好,运行比较稳定,适用于大学院校大学生宿舍管理。

2、动力节点-库存管理系统

本套毕业设计是动力节点原创,该Java毕业设计使用技术:spring mvc+hibernate+spring,数据库使用了Mysql。提供了用户模块、产品管理、供应商管理、入库管理、出库管理、库存查看、系统管理、系统监控等模块。

3、动力节点-图书管理系统

本套毕业设计是动力节点原创,系统运用了使用技术:spring mvc+spring+hibernate,数据库使用了当前较为流行的Mysql。根据本校图书馆的工作流程与实际的需求和特色,本系统需满足以下几个方面的要求:1.对新书进行登记入库、下架管理;2.对借书读者信息提供维护功能;3.提供图书借书、续借、还书功能;4.提供图书超期未还自动扣款功能;5.提供数据导入功能。

4、动力节点-学生成绩管理系统

本套毕业设计是动力节点原创,采用java作为开发语言,使用了著名的开源框架spring MVC、hibernate、spring、easyui进行开发,而后台的数据库采用MySql。 学生成绩管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。

5、动力节点-医院分诊管理系统

本套毕业设计是动力节点原创,分诊管理主要实现患者信息录入,分诊,排队等功能。该Java毕业设计使用了当前较为流行的spring MVC、hibernate、spring技术开发。本系统按功能具体可划分为四个模块:系统设置模块、患者管理模块、科室管理模块、分诊管理。1 患者查询功能:为了方便医生查找患者等信息,将所有患者信息按照需要进行分类。这样医生就能很方便的找到自己需要的信息。

6、动力节点-论坛

该论坛毕业设计使用了当前流行的框架组合springMVC + spring + mybatis框架,以myeclipse为开发工具,数据库使用了mysql,系统实现了发表帖子、 回复帖子、查看帖子等一般论坛中常用的功能,后台管理员可以对注册用户的基本管理,可直接部署在校内服务器上对校内同学进行发布,该论坛毕业 设计实现的功能较为简单,因此对于初学者来说比较容易理解和学习,是一个可以参考的Java web方面的毕业设计。

7、动力节点-超市订单管理

该超市订单管理毕业设计基于jdk7版本开发,在部署时需要使用jdk7以上的版本。使用了目前流行的框架组合spring+springMVC+mybatis的框架技术, 实现了供应商管理对供应商实现增删改查、订单管理对超市订单实现增删改查、用户管理等功能,适用于小型超市的使用,通过学习该超市订单管理 的毕业设计,对于SSM框架的组合能够有更深层次的理解。

8、动力节点-仿小米商城

该商城毕业设计仿照了小米来实现的,界面参考了小米商城的官方网站,由于时间关系,部分复杂的功能没有实现,只实现了一些常用的功能, 通过该毕业设计的学习,可以使初学者更好的理解电商系统的雏形,使用了电商系统流行的spring+springMVC+mybatis框架组合开发,数据库 方面使用了一般电商系统常用的mysql数据库。

9、动力节点-学生管理系统

该学生管理系统毕业设计基于jdk8开发,在部署时需要jdk8+的版本,使用了struts2框架,数据库操作方面使用了jdbc,虽然只使用了struts2框架, 但是前台使用了现在比较火的bootstrap,该毕业设计的特点是ui较为美观,实现了一些学生管理的基本功能,通过该毕业设计的学习,能够加深对 jdbc和struts2的理解,为后续学习hibernate、mybatis、spring、springmvc框架时打下良好基础

10、动力节点-Web在线聊天

该web在线聊天毕业设计没有涉及数据库方面的操作,系统业务不需要注册用户和保存用户聊天数据,因此只使用了springMVC+spring框架, 通信方面使用了WebSocket,通过WebSocket技术来实现了消息的发送。该web在线聊天的毕业设计有些类似互联网早期聊天室软件,对于想 学习WebSocket的同学有很大的参考价值。

11、动力节点-网站内容管理

该网站内容管理的毕业设计参考了某互联网金融机构,主要分为了前端展示和后台管理两个模块,前端展示网站的基本内容,后台管理来控 制前端所展示的内容。技术方面使用了以前经典的框架组合spring+struts+hibernate,实现了对网站内容管理的功能,通过该网站内容管 理毕业设计的学习,能够更好的理解一个网站的基本架构,为以后互联网方面技术的学习埋下伏笔。

12、动力节点-百度网盘搜索

该百度网盘搜索的毕业设计使用了最基本的servlet+jsp技术,采用eclipse开发,对于还未学习框架技术的同学有很大学习参考价值, 该系统核心部分通过调用bing、google等搜索引擎的接口,实现了搜索互联网中百度网盘分享的内容,即有人通过百度网盘对外分享文 件时,当被该文件的链接被搜索引擎抓取后就可以被搜索到了。对于想从网盘中搜索资料的同学,不妨下载该毕业设计源码研究一番。

13、动力节点-魂斗罗

该毕业设计完成了一个经典的魂斗罗小游戏,主要使用了JavaSE基础的技术,通过该魂斗罗游戏毕业设计的学习,能够使初学者巩固 自己的JavaSE基础方面的知识,为后续JavaEE方面的学习打下良好基础,对于打算自己开发小游戏的同学来说可以撸一下源码,当魂 斗罗的程序运行成功后,耳边响起熟悉的音乐,相信该毕业设计能够唤起很多人的回忆。

14、动力节点-俄罗斯方块

该毕业设计实现了一个俄罗斯方块的游戏,主要使用了JavaSE基础的技术,通过俄罗斯方块游戏毕业设计的学习,能够使初学者巩 固自己的JavaSE基础方面的知识,为后续JavaEE方面的学习打下良好基础,对于打算自己开发小游戏的同学来说可以研究一下,当 俄罗斯方块程序运行成功后,看到熟悉的画面,你一定会响起童年的乐趣。

15、动力节点-医院人事管理系统

该医院人事管理系统毕业设计基于jdk8开发,部署时需要jdk8以上的版本,使用了当前最为流行的spring MVC+spring+mybatis+bootstrap+maven技术, ui比较清爽,实现了一般人事管理的功能,诸如请假、审批、人员管理等模块,通过该医院人事管理系统毕业设计的学习,可以更改的理解ssm+maven+bootstrap组合的工作方式。

即将推出:

要看你用什么做,Java SE 做一些桌面应用, 一般只供自娱自乐。Java EE 可以做一个购物网站、员工管理系统、进销管理系统、班级管理系统 。这些系统都可以投入使用 。需求分析,可以在网上找一些例子 。

基于java扫雷的毕业论文

你好, 计算机专业的毕设一般分为这两部分: 源码+论文

首先说选题, 毕设课题以javaweb居多, 框架可以选用ssm, ssh, 或者springboot, 可以选做一些管理系统, 下面是一些常见的命题

等等, 这些课题可以按照你自己的实力做, 如果技术好的化, 或者有一些成品, 可以做的复杂一些, 比如前端可以layui优化一下, 权限系统采用shiro来做等等

论文方面比较简单但是比较麻烦, 各种文库都有很多javaweb的论文,但是直接拷贝的化会过不了查重系统, 需要你自己认真的重构调整一下

*/

//清楚原来的方形

public void clearoldretangle(Graphics D gg int c int r)

{

if(hasclickbomb)

diamonds[r][c] clickshow(gg r c);

else

{

if(!diamonds[r][c] isOpened())

diamonds[r][c] draw(gg r c);

else

diamonds[r][c] clickshow(gg r c);

}

}

/*

//清除原来的圆形

public void clearOval(Graphics D gg int c int r)

{

if(c

{

for(int y=r ;y

{

if(y< )continue;

for(int x=c ;x

{

if(x>= )

{

if(hasclickbomb)

diamonds[y][x] clickshow(gg y x);

else

{

if(!diamonds[y][x] isOpened())

diamonds[y][x] draw(gg y x);

else

diamonds[y][x] clickshow(gg y x);

}

}

}

}

}

}

*/

//设置炸弹

public void buildBombInMap()

{

int x= y= ;

for(int i= ;i

{

x=(int)(Math random()*col);

y=(int)(Math random()*row);

if(!diamonds[y][x] i *** omb())

{

diamonds[y][x] setbomb();

i++;

}

}

countRoundBomb();//计算炸弹

}

//计算附近的炸弹

public void countRoundBomb()

{

for(int i= ;i

{

for(int j= ;j

{

if(diamonds[i][j] i *** omb())

continue;

else

{

//开始计算每个附近的炸弹

int count= ;

for(int k=i ;k

{

if(k< )continue;

for(int l=j ;l

{

if(l>= )

{

if(diamonds[k][l] i *** omb())

count++;

}

}

}

if(count!= )

diamonds[i][j] setShowByte(String valueOf(count));

}

}

}

}

//踩中地雷后全部显示

public void showAllDiamonds(int ro int co)

{

Graphics D gg=(Graphics D)this getGraphics();

gg setRenderingHint(RenderingHints KEY_ANTIALIASING RenderingHints VALUE_ANTIALIAS_ON);

for(int r= ;r

{

for(int c= ;c

{

if(!diamonds[r][c] i *** omb())

diamonds[r][c] setFillColor(Color white);

else if(diamonds[r][c] i *** omb())

diamonds[r][c] setFillColor(Color red);

diamonds[r][c] clickshow(gg r c);

}

}

}

//重载paint

public void paint(Graphics g)

{

Graphics D gg=(Graphics D)g;

gg setRenderingHint(RenderingHints KEY_ANTIALIASING RenderingHints VALUE_ANTIALIAS_ON);

for(int y= ;y

{

for(int x= ;x

{

if(hasclickbomb)

diamonds[y][x] clickshow(gg y x);

else

{

if(!diamonds[y][x] isOpened())

diamonds[y][x] draw(gg y x);

else

diamonds[y][x] clickshow(gg y x);

}

}

}

gg dispose();

}

}

Diamonds java文件

import java awt BasicStroke;

import java awt Color;

import java awt Graphics;

import java awt Graphics D;

import java awt RenderingHints;

/**

* 单元方格类

* @author dragon

*

*/

public class Diamonds

{

private Color fillcolor=Color darkGray;

private Color rimcolor=Color blue;

private boolean bomb=false;

private String showbyte= ;

private int diamondWidth= ;

private boolean opened=false;

private boolean signbomb=false;

public Diamonds(Color c int width)

{

this rimcolor=c;

this diamondWidth=width;

}

public Diamonds(int width)

{

this diamondWidth=width;

}

/**

* 设置是否被标记为炸弹

* dragon

*Sep

* @param b

*/

public void setSignBomb(boolean b)

{

this signbomb=b;

}

public boolean isSignBomb()

{

return this signbomb;

}

/**

* 设置方格的边长

* dragon

*Sep

* @param width

*/

public void setDiamondWidth(int width)

{

this diamondWidth=width;

}

/**

* 返回当前方格的字符串

* dragon

*Sep

* @return

*/

public String getShowByte()

{

return this showbyte;

}

/**

* 设置方格的字符串

* dragon

*Sep

* @param b

*/

public void setShowByte(String b)

{

showbyte=b;

}

/**

* 复位

*/

public void reset()

{

fillcolor=Color DARK_GRAY;

rimcolor=Color blue;

this signbomb=false;

bomb=false;

showbyte= ;

opened=false;

}

/**

* 判断方格是否已经被打开

*/

public boolean isOpened()

{

return this opened;

}

/**

* 打开该方格

*/

public void Opened()

{

this opened=true;

}

/**

* 判断是否是炸弹

*/

public boolean i *** omb()

{

return bomb;

}

/**

* 设置为炸弹

*/

public void setbomb()

{

this bomb=true;

}

/**

* 点击时的显示函数

*/

public void clickshow(Graphics D gg int r int c)

{

gg setStroke(new BasicStroke( f));

if(bomb)

{

if(opened)

this fillcolor=Color red;

gg setColor(this fillcolor);

gg fillRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(this rimcolor);

gg drawRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(Color black);

gg drawOval(c*diamondWidth+diamondWidth/ r*diamondWidth+diamondWidth/ diamondWidth/ diamondWidth/ );

}

else

{

gg setColor(this fillcolor);

gg fillRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(this rimcolor);

gg drawRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(Color black);

gg drawString(showbyte c*diamondWidth+diamondWidth/ r*diamondWidth+diamondWidth* / );

}

}

/**

* 绘画单元格

*/

public void draw(Graphics D gg int r int c)

{

gg setStroke(new BasicStroke( f));

gg setColor(this fillcolor);

gg fillRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(this rimcolor);

gg drawRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

}

/**

* 设置边框颜色

*/

public void setRimColor(Color c)

{

rimcolor=c;

}

/**

* 设置填充颜色

*/

public void setFillColor(Color c)

{

this fillcolor=c;

}

public int time=1000* 60; //60秒倒计时 public boolean running=true;//是否一直运行 JLabel label=new JLable();//显示时间的标签 //启动计时 public void startTimer(){ new (new Runnable(){ public void run(){ while(running){ try{ (1000);//睡一秒 }catch(Exception e){} time--; ((time)); ();// 把你的界面刷新一下if(time<0){//倒计时到零,满足条件 //your code: 游戏失败,做点处理 running=false;//记得置成false否则不退出 } } } }).start(); } 使用时,在你需要使用的时候 调用 startTimer()方法即可 你可以看到, startTimer方法里的线程在不断地改变time的值,每秒减一 所以你需要在你的GUI界面上安装一个 JLabel label,不断地改变label的内容为time就行了

第一个JAVA文件import .*;import .*;import .*;/** * 显示所有按钮的面板 * @author Administrator * */public class AllButtonPanel extends JPanel implements ActionListener{ private int row;//行数 private int col;//列数 private int mineCount;//地雷数 private MineButton[][] allButtons;//所有按钮public AllButtonPanel(int row,int col,int mineCount){ ; ; ; allButtons=new MineButton[row][col]; createButtons(); createMine(); init(); } private void init(){ (new GridLayout(row,col)); for(int i=0;i<;i++){ for(int j=0;j=0&&j-1>=0){ num+=(allButtons[i-1][j-1].getCountOfSurroundMines()==-1?1:0); } if(i-1>=0){ num+=(allButtons[i-1][j].getCountOfSurroundMines()==-1?1:0); } if(i-1>=0&&j+1=0){ num+=(allButtons[i][j-1].getCountOfSurroundMines()==-1?1:0); } if(j+1=0){ num+=(allButtons[i+1][j-1].getCountOfSurroundMines()==-1?1:0); } if(i+1<){ num+=(allButtons[i+1][j].getCountOfSurroundMines()==-1?1:0); } if(i+1<=0&&j-1>=0){ showEmpty(i-1,j-1); } if(i-1>=0){ showEmpty(i-1,j); } if(i-1>=0&&j+1=0){ showEmpty(i,j-1); } if(j+1=0){ showEmpty(i+1,j-1); } if(i+1<){ showEmpty(i+1,j); } if(i+1<0){ (allButtons[i][j].getCountOfSurroundMines()+""); (); (true); } }}第二个JAVA文件import .*;import .*;import .*;/** * 扫雷游戏主界面 * @author * */public class CleanMine extends JFrame implements ActionListener{ private JLabel text1,text2; public static JLabel remainMine;//剩余地雷数 private JLabel time;//消耗时间 private JButton reset;//重新开始 private JPanel center; private int row,col,mine;public CleanMine(){ text1=new JLabel("剩余地雷:"); text2=new JLabel("消耗时间:"); remainMine=new JLabel("10"); time=new JLabel("0"); reset=new JButton("重新开始"); (this); JMenuBar bar=new JMenuBar(); JMenu game=new JMenu("游戏"); JMenu help=new JMenu("帮助"); JMenuItem item; (item=new JMenuItem("开局"));(this); (); ButtonGroup bg=new ButtonGroup(); (item=new JCheckBoxMenuItem("初级",true));(item);(this); (item=new JCheckBoxMenuItem("中级"));(item);(this); (item=new JCheckBoxMenuItem("高级"));(item);(this); (item=new JCheckBoxMenuItem("自定义..."));(item);(this); (); (item=new JMenuItem("退出"));(this); (item=new JMenuItem("查看帮助"));(this); (item=new JMenuItem("关于扫雷..."));(this); (game); (help); (bar); init(); } private void init(){ JPanel north=new JPanel(); (text1); (remainMine); (reset); (text2); (time); (north,); ; ; ; restart(); (); new Thread(){ public void run(){ while((())>0){ try { (1000); } catch (InterruptedException e) { (); } (((())+1)+""); } } }.start(); }public void actionPerformed(ActionEvent e) { if(().equals("初级")){ ; ; ; restart(); return; } if(().equals("中级")){ ; ; ; restart(); return; } if(().equals("高级")){ ; ; ; restart(); return; } if(().equals("重新开始")){ restart(); return; } } private void restart(){ if(center!=null){ (center); } center=new AllButtonPanel(row,col,mine); (center,); (mine+""); ("0"); (col*30,row*30+10); (false); (true); } /** * @param args */ public static void main(String[] args) { new CleanMine(); }}第三个JAVA文件.import ;import .*;public class MineButton extends JButton { private int row; private int col; private boolean cleared=false; private int countOfSurroundMines;//周围地雷数,如果本按钮是雷,则为-1; public MineButton(int row,int col){ ; ; (new Insets(0,0,0,0)); } public int getCol() { return col; } public int getRow() { return row; } public boolean isCleared() { return cleared; } public void setCleared(boolean cleared) { = cleared; } public int getCountOfSurroundMines() { return countOfSurroundMines; } public void setCountOfSurroundMines(int countOfSurroundMines) { = countOfSurroundMines; }}全部编译以后就可以执行了

相关百科

热门百科

首页
发表服务