我刚做了一个java的小游戏,贪吃蛇,算是草稿版,比较粗糙,不知能否帮上忙!
import javaawt;
import javaawtevent;
public class GreedSnake //主类
{
/
@param args
/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyWindow();
}
}
class MyPanel extends Panel implements KeyListener,Runnable//自定义面板类,继承了键盘和线程接口
{
Button snake[]; //定义蛇按钮
int shu=0; //蛇的节数
int food[]; //食物数组
boolean result=true; //判定结果是输 还是赢
Thread thread; //定义线程
static int weix,weiy; //食物位置
boolean t=true; //判定游戏是否结束
int fangxiang=0; //蛇移动方向
int x=0,y=0; //蛇头位置
MyPanel()
{
setLayout(null);
snake=new Button[20];
food=new int [20];
thread=new Thread(this);
for(int j=0;j<20;j++)
{
food[j]=(int)(Mathrandom()99);//定义20个随机食物
}
weix=(int)(food[0]01)60; //十位60为横坐标
weiy=(int)(food[0]%10)40; //个位40为纵坐标
for(int i=0;i<20;i++)
{
snake[i]=new Button();
}
add(snake[0]);
snake[0]setBackground(Colorblack);
snake[0]addKeyListener(this); //为蛇头添加键盘监视器
snake[0]setBounds(0,0,10,10);
setBackground(Colorcyan);
}
public void run() //接收线程
{
while(t)
{
if(fangxiang==0)//向右
{
try
{
x+=10;
snake[0]setLocation(x, y);//设置蛇头位置
if(x==weix&&y==weiy) //吃到食物
{
shu++;
weix=(int)(food[shu]01)60;
weiy=(int)(food[shu]%10)40;
repaint(); //重绘下一个食物
add(snake[shu]); //增加蛇节数和位置
snake[shu]setBounds(snake[shu-1]getBounds());
}
threadsleep(100); //睡眠100ms
}
catch(Exception e){}
}
else if(fangxiang==1)//向左
{
try
{
x-=10;
snake[0]setLocation(x, y);
if(x==weix&&y==weiy)
{
shu++;
weix=(int)(food[shu]01)60;
weiy=(int)(food[shu]%10)40;
repaint();
add(snake[shu]);
snake[shu]setBounds(snake[shu-1]getBounds());
}
threadsleep(100);
}
catch(Exception e){}
}
else if(fangxiang==2)//向上
{
try
{
y-=10;
snake[0]setLocation(x, y);
if(x==weix&&y==weiy)
{
shu++;
weix=(int)(food[shu]01)60;
weiy=(int)(food[shu]%10)40;
repaint();
add(snake[shu]);
snake[shu]setBounds(snake[shu-1]getBounds());
}
threadsleep(100);
}
catch(Exception e){}
}
else if(fangxiang==3)//向下
{
try
{
y+=10;
snake[0]setLocation(x, y);
if(x==weix&&y==weiy)
{
shu++;
weix=(int)(food[shu]01)60;
weiy=(int)(food[shu]%10)40;
repaint();
add(snake[shu]);
snake[shu]setBounds(snake[shu-1]getBounds());
}
threadsleep(100);
}
catch(Exception e){}
}
int num1=shu;
while(num1>1)//判断是否咬自己的尾巴
{
if(snake[num1]getBounds()x==snake[0]getBounds()x&&snake[num1]getBounds()y==snake[0]getBounds()y)
{
t=false;
result=false;
repaint();
}
num1--;
}
if(x<0||x>=thisgetWidth()||y<0||y>=thisgetHeight())//判断是否撞墙
{
t=false;
result=false;
repaint();
}
int num=shu;
while(num>0) //设置蛇节位置
{
snake[num]setBounds(snake[num-1]getBounds());
num--;
}
if(shu==15) //如果蛇节数等于15则胜利
{
t=false;
result=true;
repaint();
}
}
}
public void keyPressed(KeyEvent e) //按下键盘方向键
{
if(egetKeyCode()==KeyEventVK_RIGHT)//右键
{
if(fangxiang!=1)//如果先前方向不为左
fangxiang=0;
}
else if(egetKeyCode()==KeyEventVK_LEFT)
{ if(fangxiang!=0)
fangxiang=1;
}
else if(egetKeyCode()==KeyEventVK_UP)
{ if(fangxiang!=3)
fangxiang=2;
}
else if(egetKeyCode()==KeyEventVK_DOWN)
{ if(fangxiang!=2)
fangxiang=3;
}
}
public void keyTyped(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
public void paint(Graphics g) //在面板上绘图
{
int x1=thisgetWidth()-1;
int y1=thisgetHeight()-1;
gsetColor(Colorred);
gfillOval(weix, weiy, 10, 10);//食物
gdrawRect(0, 0, x1, y1); //墙
if(t==false&&result==false)
gdrawString("GAME OVER!", 250, 200);//输出游戏失败
else if(t==false&&result==true)
gdrawString("YOU WIN!", 250, 200);//输出游戏成功
}
}
class MyWindow extends Frame implements ActionListener//自定义窗口类
{
MyPanel my;
Button btn;
Panel panel;
MyWindow()
{
super("GreedSnake");
my=new MyPanel();
btn=new Button("begin");
panel=new Panel();
btnaddActionListener(this);
paneladd(new Label("begin后请按Tab键选定蛇"));
paneladd(btn);
paneladd(new Label("按上下左右键控制蛇行动"));
add(panel,BorderLayoutNORTH);
add(my,BorderLayoutCENTER);
setBounds(100,100,610,500);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
Systemexit(0);
}
});
}
public void actionPerformed(ActionEvent e)//按下begin按钮
{
if(egetSource()==btn)
{
try
{
mythreadstart(); //开始线程
myvalidate();
}
catch(Exception ee){}
}
}
}
哈哈,这个太多了
说实话,javaweb的毕业设计说来说去就那么些,比如那框架做一个管理系统,不要看这么多年都是这么些题目,但是对于大部分同学来说重新完整实现还是比较困难的
所以一般都是弄一个成品或者整合框架做二次开发,论文东拼西凑只要过了查重就可以了,look at my name,上面有好多项目源码,希望你仔细找一下
1:D;
2:A;
3:B;
4:A;
5:B;
6:A;
7:B;
8:D;
9:C
10:D
11:B
12:D
给你写完了 很容易的:
/ Catalanjava
Contains 2 methods factorial and cata
catalan calculates the n-th catalan number
factorial calculates the factorial recursively
Receive: n
Return: n-th catalan number
/
public class Catalan {
private long factorial(int n) {
if (n == 0) {
return 1;
} else {
return n factorial(n - 1);
}
}
public long calCatalan(int n) {
return factorial(2 n) / (factorial(n + 1) factorial(n));
}
}
import javautilScanner;
import javautilregexPattern;
/
Calculates the value of a specific Catalan number
Input: integer value
Output: n-th Catalan number
/
public class CatalanDemo {
public static void main(String[] args) {
Scanner in = new Scanner(Systemin);
Catalan catalan = new Catalan();
while (true) {
Systemoutprintln("Which catalan number do you want to calculate (-1 to stop): ");
String s = innextLine();
if (Patternmatches("[0-9]", s)) {
int n = IntegerparseInt(s);
Systemoutprint("n=" + n);
Systemoutprintln(": catalan number is " + catalancalCatalan(n));
} else {
if (Patternmatches("-[0-9]", s)) {
int n = IntegerparseInt(s);
if (n == -1) {
Systemoutprintln("(program exits)");
break;
} else {
Systemoutprintln("Invalid input:\nValid input range is an input >= 0");
}
}
}
}
}
}
粘的有点乱,凑合看吧。
毕业论文(设计)开题报告 论文题目 学生管理系统设计与实现
学生姓名 学 号 专 业 指导教师 职 称 学 历 开题报告文献综述)内容: 一、开发背景 学校学生信息管理是学校教务管理中的一个极为重要的环节,它是整个学校管理的核心和基础。现在我国的大中小学校档案的管理水平还停留在纸介质的基础上,这样的机智已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被以计算机为基础的信息管理所取代。信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。为了适应现代社会人们高度强烈的时间观念,学籍管理系统软件将会为教学办公室带来极大的方便。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。 二、选题的意义 通过学生管理系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。 三系统研究内容 此学生信息管理系统需要完成的功能主要有: ● 有关学籍信息的输入,包括学生基本信息、所在班级、所学课程和成绩等 ● 学生信息的查询,包括学生基本信息、所在班级、已学课程和成绩等 ● 学生信息的修改 ● 班级管理信息的输入,包括班级设置、年级信息等 ● 班级管理信息的查询 ● 班级管理信息的修改 ● 学校基本课程信息的输入 ● 学校课程信息的修改
● 学校课程的设置和修改 ● 学生成绩的输入 ● 学生成绩信息的修改 ● 学生信息的查询 ● 学生信息的统计 四、毕业设计思路框架 (一)设计方法 1查询相关资料,了解本系统的研究意义。可以上网搜索或者是去图书馆查阅相关资料。 2通过查询资料了解该系统要如何做,及要做哪些东西。 3设计出大体上的功能模块,画出模块图。 4通过进一步的了解,对每个功能模块进行细化,将每一步都想清楚。制定出每一步的做法和注意的地方。 5对设计好的程序进行调试,通过调试发现存在的问题并解决,从而达到完善系统的目的。 6最后,整理各阶段的设计记录文档,写成论文稿。 开发工具开发工具开发工具开发工具 选用设计语言 目前的可用的设计技术在设计此类系统上的数据库技术已经非常成熟,可提供的开发工具也很多,例如:Visual C++ ,Visual Basic,PowerBuilder,Dephi, visual foxpro等,它们都是很好的数据库开发工具,都是可视化开发工具,功能强大,开发容易,开发周期短,对于本任务都能够胜任。 Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
总的来说,Visual Basic具有以下特点: 可视化编程: 用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的 *** 作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。 面向对象的程序设计 40版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。 结构化程序设计语言 Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。 Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(EXE),脱离Visual Basic环境,直接在Windows环境下运行。 52选用ACCESS作为后台数据库 ACCESS2000 就是关系数据库管理工具,数据库能汇集各种信息以供查询、存储和检索。ACCESS 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel的电子表格,可以使数据库一目了然。另外,ACCESS允许创建自定义
报表用于打印或输出数据库中的信息。ACCESS也提供了数据存储库,可以使用桌面数据库文件把数据文件置于网络文件服务器,与其他网络用户共享数据库。ACCESS 是一种关系数据库管理工具,关系数据库是已开发的最通用的数据库之一。如上所述,ACCESS 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。 (三)设计要求 数据库相关理论。汽车租赁管理是一个典型的数据库管理信息系统,系统的开发用到许多数据库相关的理论,因此要求作者具有这方面的基础知识,能够正确运用数据库理论进行系统的分析、逻辑设计、实体属性以及ER图等的转换,明白范式的相关内容,从而能够根据系统实际要求,设计出满足要求的合理的数据库。 面向对象理论。当前流行的编程思想是面向对象思想,而且许多工具,如Visual Basic,体现的也正是这种思想。面向对象思想与传统的面向过程编程思想相比,具有明显的优势,而且汽车租赁系统的设计也要求用面向对象编程工具来实现。这就要求作者在进行毕业设计时,应该明白面向对象的思想,并能够运用其思想到实际的工作中。 软件工程思想。大型系统的开发要用到软件工程相关的理论。虽然汽车租赁系统比较小,但是最好也能按照系统设计的生命周期模型来进行。严格按照软件工程思想和管理信息系统的开发步骤,设计并实现一个汽车租赁管理信息系统。以系统开发过程为主线,从需求分析,逻辑设计,总体设计,详细设计以及系统测试、实施各阶段的主要内容和成果,包括系统结构图、业务流程图、数据流程图、E-R模型、数据字典、物理表实现及其关系、功能模块算法流程、界面设计等等。 一定的实际动手能力和实际编程经验。系统最后要落实到windows下的编程,因此要求作者对windows下的数据库编程具有一定的基础,能够较为熟练的进行数据库相关程序的开发。以Microsoft公司的Visual Basic 60为开发工具,以ACCESS为后台数据库,对上述逻辑设计的成果进行转换,实现一个完整的可运行的汽车租赁管理系统。 (四)设计环境 硬件环境 随着计算机硬件的高速发展,现在普通的机子已经可以做为一个服务器端使用。 CPU:CⅣ 20或更高 硬盘:40G或更多 内存:128M或更高(建议使用256M)
软件环境软件环境软件环境软件环境 *** 作系统 Windows 2000 Server /Windows XP 网络协议 TCP/IP 数据库 ACCESS 开发语言 VB 其它辅助软件:Microsoft Word等 四、参考文献 [1] 丁宝康:《数据库实用教程》, 清华大学出版社,2004年。 [2] 赛奎春等:《VB数据库开发关键技术与实例应用》,人民邮电出版社,2003年。 [3] 汪诗林等:《数据结构算法与应用》,机械工业出版社,2005年。 [4] 罗征等:《VB 60从入门到精通》,电子工业出版社,2004年。 [5] 冯博琴等:《面向对象分析与设计》,机械工业出版社,2003年。 [6] AwadEM, Gotterer MH: Visual Basic 60, 1992 [7] RobertHDependahl:《Database Principles and Applications》Williams Brown,2003 报告人签名: 年 月
指导教师对开题报告指导教师对开题报告指导教师对开题报告((((文献综述文献综述文献综述文献综述))))的评语的评语的评语的评语:::: 指导教师签名: 年 月
以上就是关于我们老师要一份JAVA大作业,但是我不会,想让帮帮我写一个不能太短的程序全部的内容,包括:我们老师要一份JAVA大作业,但是我不会,想让帮帮我写一个不能太短的程序、求好心人给个基于java的毕业设计和论文、Java面向对象程序设计第一次作业等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)