java-捕鱼达人课程设计要点

java-捕鱼达人课程设计要点
java-捕鱼达人课程设计要点

武汉理工大学华夏学院课程设计报告书

课程名称:智能手机软件开发

题目:捕鱼达人

系名:信息工程系

专业班级:计算机1112

姓名:梁海传

学号: 10210411209

指导教师:刘春燕

2014 年 6 月 20 日

武汉理工大学华夏学院信息工程系

课程设计任务书

课程名称:智能手机软件开发课程设计指导教师:凌伟

班级名称:计算机1111 开课系、教研室:自动化与计算机

三、课程设计目的与任务

本课程的设计的目的是通过实践使同学们经历智能手机软件开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的智能手机开发的知识。结合具体的开发案例捕鱼达人,理解并初步掌握智能手机开发的主要环节和步骤以及智能手机游戏开发的知识。

二、课程设计的内容与基本要求

1、课程设计题目

捕鱼达人

2、课程设计内容

要求学生根据所学的软件工程的理念,利用所学的Android 手机开发的知识,开发一个智能手机游戏捕鱼达人,并针对该手机游戏软件进行需求分析,总体设计、详细设计、编码、测试。

游戏操作

鼠标移动/键盘方向键←→控制炮台射击方向,点击鼠标左键/按空格键射击撒网抓鱼,点击下方的红色+号和-号按钮/数字键1-8键/方向键↑键/滑动鼠标滑轮切换炮台游戏背景音乐设计

游戏背景动画设计

游戏界面设计

游戏关卡设计

游戏积分榜的设计

三、课程设计步骤及时间进度和场地安排

本课程设计将安排在第18周, 教育技术中心。具体安排如下:

第一天,系统开发平台搭建及主流开发工具安装

第二天,游戏界面的设计

第三天,游戏业务的设计

第四天,游戏关卡的设计

第五天,系统调试测试打包和验收

星期一星期二星期三星期四星期五周次

第18周第1-8节第1-8节第1-8节第1-8节第1-8节

地点现教221 现教221 现教221 现教221 现教221

四、课程设计考核及评分标准

课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。具体评分标准如下:

设置六个评分点

(1)设计方案正确,具有可行性、创新性;25分

(2)系统开发效果较好;25分

(3)态度认真、刻苦钻研、遵守纪律;10分

(4)设计报告规范、课程设计报告质量高、参考文献充分20分

(5)课程设计答辩概念清晰,内容正确10分

(6)课程设计期间的课堂考勤、答疑与统筹考虑。10分

按上述六项分别记分后求和,总分按五级记分法记载最后成绩。

优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69

分),

不及格(0~59分)

1.设计题目 (1)

2.开发环境 (1)

3.需求分析 (1)

3.1设计目的 (1)

3.2、设计要求 (1)

4.概要设计 (2)

4.1设计原理及其分析 (2)

4.2本游戏的模块图 (2)

5.详细设计 (4)

5.1游戏欢迎界面的设计 (4)

5.2 游戏背景的设计 (5)

5.3游戏中鱼的设计 (6)

5.4 渔网的设计 (8)

5.5游戏的平衡设计 (9)

6.测试与运行 (11)

6.1进行游戏测试 (11)

6.2体力值为零的时弹出对话框。 (11)

6.3游戏结束后进行选择 (12)

7.心得体会 (13)

8.参考文献 (13)

附录: (14)

1.设计题目

捕鱼达人

2.开发环境

Eclipse软件开发环境,PC机一台,windows操作系统。

3.需求分析

3.1设计目的

捕鱼达人这个项目是一个娱乐性的游戏开发,该游戏可以给人们带来娱乐的同时还可以给人感官上的享受,所以很受人们的欢迎。本次游戏的程序设计包含,java swing组件的合理运用,还有图像的变动达到一个动态的动画效果,线程的运用,游戏的异常处理,等方面的知识。培养学生运用所学知识的基础理论、基本知识和基本技能,分析解决实际问题能力的一个重要环节。它与课堂教学环节彼此配合,相辅相成,在某种程度上是课堂学习的继续、深化和检验。它的实践性和综合性是其它教学环节所不能代替的。课程设计能使学生受到必需的综合训练,在不同程度上提高各种能力。通过课程设计,使学生熟练掌握Java语言课程中所学的理论知识,通过综合Java语言的基本知识来解决实际问题,加强学生分析和解决问题的能力。

3.2、设计要求

框架:2个场景,WelcomePanel,FishGame。

流程:1)WelcomePanel :该场景是专门用来做一个欢迎动画的。

2)FishGame :用来运行游戏的载体窗口。与用户交流的界面,鱼儿在该window窗体上游动,玩家在上面捕鱼,然后计分等等。

4.概要设计

4.1设计原理及其分析

1.初始化界面需要800*500大小,需要一个游戏开始欢迎界面,游戏框上显示“欢迎捕鱼达人游戏”,3秒之后进入游戏界面,命名为“捕鱼达人”

2.在程序中,我们需要对每一条鱼进行操作(移动,游动,捕鱼,死亡,复活),所以每条鱼我们将它定义为一个对象的线程,便于对鱼的完美操作与控制,游戏中我们定义了7种小鱼和4种大鱼,每条鱼都有两条,所以鱼池中有22条鱼,鱼的数量达到了一定的饱和。

3.鱼的每次移动,它的水平坐标改变了,所以我们需要将它移动之后的状态重画(repaint ()方法)出来,从而达到鱼是在移动的。

4.捕鱼的效果,我们被网赋一个能量值,可以改变网的大小,来改变网的能量的大小,而鱼就需要有一个血量值(大鱼的血量高,小鱼血量低),当网在鱼的范围之内的时候,点击鼠标左键让鱼扣除相应的血量值,鼠标右键控制网的大小,点击一下改变一下网的大小,当鱼的血量小于0的时候,鱼就会弹跳几下然后消失,达到捕鱼成功。

5.每个游戏都是需要平衡的,所以我们不能一直捕鱼下去。体力值,计分,捕鱼条数,等数据来平衡游戏。当体力值小于0 的时候就结束游戏,而捕一条鱼,加上相应鱼的分数,而捕鱼条数上就加1,体力值也相应的回复一部分,不同的鱼分数不同,回复体力值也不同,基本上大鱼分数高,小于分数低。最后判定输赢就是看分数的高低。

4.2本游戏的模块图

分别有:鱼的模块,网的模块,鱼池的模块,游戏的模块,每一个模块相当于一个类,鱼模块:主要实现鱼图片的加载,鱼游动效果,鱼游动,还有鱼的一些基本属性,比如鱼的坐标,大小,还有血量值。一些基本方法,鱼的构造方法。

网模块:主要实现渔网图片的加载,渔网的属性有坐标,大小的宽和高,还有渔网的powe r值,渔网中还有一个改变渔网大小的方法。

鱼池模块:将鱼类的对象,网类的对象都在本类中进行调用,并将相应对象的图片显示出来,并将游戏的背景‘画’出来。

欢迎模块:将欢迎的图片加载进来。

图4.1系统模块图

图4.2 系统类图

游戏模块

鱼 模 块 网 模 块

鱼 池 模 块 欢 迎 模 块

5.详细设计

5.1游戏欢迎界面的设计

创建游戏的运行界面的框架,带有main()函数的类,FishGame.java类,专门用来承载游戏的运行,在主函数中创建JFram类的一个对象,即创建window视窗,然后设置大小,默认居中显示,大小不可以改变等功能,具体代码如下:

final JFrame welcome =new JFrame("欢迎光临");

welcome.setSize(643,435);

welcome.setLocationRelativeTo(null);

welcome.setResizable(false);

welcome.setVisible(true);

图5.1游戏运行的框架

创建WelcomePanel.java类,专门用来创建‘画笔’(即paint()方法),画出要显示出来的欢迎界面,既然是开始界面,我们还要去掉边框,还要等待几秒钟后才能进入游戏界面。所以王某要创建一个Timer类的一个对象,来合理分配时间上的任务。实现代码如下:

在WelcomePanel类中:

public class WelcomPanel extends JPanel{

BufferedImage bg;

public WelcomPanel(){

try {

bg=ImageIO.read(new File("images/welcome.jpg"));//加载本地的图片} catch (IOException e) {

e.printStackTrace();} }

public void paint(Graphics g){ //g相当于是画笔

g.drawImage(bg,0,0,null); //画图片

} }

然后在FishGame类中的main()函数中创建WelcomPanel类的一个对象,将画出来的动画在创建好的JFrame框架上显示出来。具体代码如下:

welcome.setUndecorated(true);//隐藏框架,大小不可变

WelcomPanel wel=new WelcomPanel();

welcome.add(wel);

welcome.setVisible(true); //显示

显示效果如下:

图5.2欢迎图画显示

5.2 游戏背景的设计

创建的Pool.java类要继承JPanel类,用paint()的方法画出游戏运行的效果出来,首先画出游戏的背景出来。具体画出的过程如WelcomPanel类的方法类似。

然后再在FishGame.java类中的main()添加如下代码:

final JFrame win = new JFrame("捕鱼达人游戏");

win.setSize(800,500);

win.setLocationRelativeTo(null);

win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Pool buyu=new Pool();win.add(buyu);

Timer timer = new Timer();

timer.schedule(new TimerTask() {

public void run() { //3秒之后,欢迎界面关闭,游戏窗口打开

welcome.setVisible(false);

win.setVisible(true);

}

}, 3000);

buyu.action(); //调用Pool类对象buyu的action()方法运行后的游戏背景如下图:

图5.3游戏运行背景

5.3游戏中鱼的设计

创建Fish.java类。在这个类之中,我们要创建鱼的对象,但是为了方便启动每一条鱼,我们将Fish.java的类继承了Thread类,这样,每一条鱼就相当于一个线程,每一个线程我们就可以对它分别进行控制,比如移动,速度,血量,当然还有鱼游动的效果。在玩家所看见鱼儿游动的效果其实就是鱼儿游动的一张张图片在不停的变换。我们所做的鱼儿素材只有静态的图片。根据研究,只要换的图片帧数达到23张每秒我们就会认为图片就是动的。所以在鱼儿游动的时候我们还要调用Tread.sleep(1000/60)相当于1秒钟换了60张图片。速度上已经相当快了。这里我们在构造方法里面写出BufferedImage类的一个数组对象,将鱼游动的不同图片用缓冲技术将图片加载到游戏中去,加快游戏运行速度,当然由于鱼的类型不同,所以需要写出两个变量出来s1和s2,s1代表不同种类的鱼类,s2代表同一种鱼的不同的游动的样子。将代码写入Fish.javaL类的构造方法中,如下:

for(int i=0;i<10;i++)

{images[i]=ImageIO.read(new File("images/fish"+s1+"_"+s2+".png")); }

该构造函数是一个带参数的构造函数,s1就是传过来的参数,鱼的种类有1~9种,加上大于2种共11种鱼。

鱼的移动,鱼有几个属性如下:x,y代表鱼的左上角的坐标,width,height代表当前鱼的图片的一个宽和高。我们就对这次的实验做一个简单的要求。所有的鱼儿都是从最右边开始的。用一个Random 的随机函数随机出鱼出场的位置:

x=random.nextInt(780+width)-width;y=random.nextInt(470+height)-height;

speed=random.nextInt(4)+3;//3~6 这几句代码的意思是随机出鱼出场的位置在右边,且高度不能超过游戏界面的高度,而随机出来的速度,可以使鱼儿游的快与慢。不至于所有的鱼儿以相同频率游动。再写一个step()方法,每Thread.sleep(1000/10)秒,鱼儿就左移一次:x-=speed;图片也相应的换一次image=images[i++%10]; 这里与10取余的意思是我们每一种鱼都有10张游动的图片。当然鱼游出界的时候,鱼儿就重新随机出新的位置来具体实现代码如下:

public void run(){

int i=0;

while(true){

x-=speed;

image=images[i++%10];//鱼儿每游动一下换一帧图片

if(x<-width){//如果鱼过了左边界,就出场

getOut(); } //该方法是用来对鱼的出场处理,给鱼重新随机出新的位置try {

Thread.sleep(1000/10) ;

} catch (InterruptedException e) {e.printStackTrace(); } } }

鱼的类王某已经创建完毕,所以王某接下来就是要在Pool类的piant()方法中画出鱼,在此游戏中,王某把每一条鱼都创建了两次,使得鱼池中的鱼不至于嫌少,

代码如下:

for (int i = 0; i < fishes.length; i++) {

Fish f = fishes[i];

g.drawImage(f.image, f.x, f.y, null);

}

以上代码中,g相当于是paint方法中的一个画笔,用循环的方法将各种鱼画出来,fishes[22]数组代表的是22条鱼,即Fish类的一个数组对象(或者线程)。在画板中画出鱼后,王某还要启动该鱼的线程:用for循环将每条鱼的线程启动:fishes[i].start(),i取值0~22。

其实这样的话鱼已经可以移动了,但是,在运行出来以后,其实鱼还没动,这是因为,画面定格了,所以我们需要调用系统的repaint()方法,将鱼游动之后的样子画出来,通过不停的重画,使鱼儿游动起来。在Pool类中添加action()方法,用一个死循环,不停的重画,然后线程停顿一下Tread.sleep(1000/10)。最后在FishGame.java中的main()方法中用Pool 的对象调用action()方法即可。运行效果如下:

图5.4 在游戏中画出鱼

5.4 渔网的设计

创建Net.java类。与创建鱼的方法类似。渔网有x,y,表示渔网左上角的坐标,width,height表示渔网的款和高,power,代表渔网的能量值,渔网的网号鱼大,power值越大。渔网有7中图片,用BufferedImage 的数组将本地的7个渔网图片都加载进来,在构造方法中写如下主要代码:

for (int i = 0; i < 7; i++)

images[i] = ImageIO.read(new File("images/net_" + (i + 1)+ ".png"));

同样的道理,在Pool类中的piant()方法中画出渔网,

if (net.show) {

g.drawImage(net.image, net.x - net.width / 2, net.y - net.height/ 2, null);}

show是渔网的一个boolean属性,当他为true时,显示渔网,否则不显示,这是因为当我们鼠标出去游戏界面的时候,不需要显示渔网。而且在游戏中,王某的渔网是跟着鼠标动的,鼠标在哪,我们的渔网就在哪,所以我们用鼠标监听来处理该事件,鼠标右键点击一下,我们就换一下网,同样的网的power值也将改变。具体代码在Pool类中写:

public void initMouseAdapter() {

MouseAdapter m = new MouseAdapter() { // 监听鼠标移动的方法

public void mouseMoved(MouseEvent e) { //渔网的位置等于鼠标的位置

int x = e.getX();int y = e.getY();

net.x = x;net.y = y;}

public void mousePressed(MouseEvent e) { //鼠标右键触发来改变渔网的大小// 点击左键捕鱼,右键改变网的大小

int n = e.getModifiers(); // 获得鼠标的左右位置

System.out.println(n);

if (n == 4) {

net.power++;net.changeThePower(net.power);}

public void mouseEntered(MouseEvent e) { //鼠标进入,渔网显示

net.show = true;}

public void mouseExited(MouseEvent e) { //鼠标出来,渔网不显示

net.show = false;} };

this.addMouseListener(m); //添加鼠标事件监听

this.addMouseMotionListener(m);

}

5.5游戏的平衡设计

这个游戏的基本元素都已经设计出来了。鱼池,鱼,网等都已经实现了,但毕竟这是一个游戏,所以我们还在本游戏中添加了一些游戏的分数,鱼的条数,体力值,还有血量。大体的就是

在我们有限的体力值内,可以改变渔网的大小(鼠标右键点击,点一下,渔网变大一下,当渔网的编号大于6时,渔网编号重新变为0),来扣除鱼的血量。当网的中心位置在鱼的图片范围之内是,鼠标左键点击一下就扣除鱼的血量值,具体扣多少要看当前渔网的power值。而鱼的血量是根据鱼的大小来设定的,大于血量厚,小鱼血量薄,当鱼死之后,鱼就会翻身弹跳几下,实现过程是在鱼死之后根据以上鱼儿游动的效果一样,换上几张鱼被捕之后的图片即可实现。而当鱼死后,会加上相应的分数,和回复一定的体力值。当体力值为0的时候,游戏就结束,判断输赢就根据分数来判断。

在Fish.java定义属性有:int blood; //鱼的血量

static int count; //捕鱼条数的计数,静态的属性实现累加

static int score; //捕鱼后得到的分数

再在该类中添加如下方法,使鱼在死之后进行翻身,达到更好的捕鱼体验,鱼死后就会count++代表又捕到了一条鱼,而分数根据鱼的种类(index属性)的5倍。

private void turnOver() {

for(int j=0;j<3;j++) {

for(int i=0;i

{image=catchFish[i];

try {Thread.sleep(1000/15);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}}}count++;

score+=index*5;

}

在Pool.java类中我们添加static int physics_power;属性,用来记录当前的用户体力值。该游戏的主要操作是靠鼠标来操作的,所以添加了鼠标监听,然后通过n =

e.getModifiers()这句代码获得鼠标的左右位置,左边点击时n=4,代表我们捕鱼的动作。点击鼠标右边,n=16,代表我们可以变换渔网的大小,在鼠标左击之后,鱼儿扣血,相应的体力值减少,然后判断,体力值是否小于零,如果小于零就弹出对话框,问用户是否结束。。具体实现的代码如下:

public void initMouseAdapter() {

public void mousePressed(MouseEvent e) {

int n = e.getModifiers();// 获得鼠标的左右位置

if (n == 4) {net.power++;

if (net.power == 8) {net.power = 1;}

if(physics_power

net.changeThePower(net.power);}

if (n == 16) { //捕鱼

if(physics_power<=0){

JOptionPane.showMessageDialog(getRootPane(), "游戏结束了");

int m=JOptionPane.showConfirmDialog(getRootPane(), "是否进行下一局");

if(m==JOptionPane.YES_OPTION){

System.out.println("下一局");

newPool();//该方法是将所有数据清零,然后重新开始游戏

}else if(m==JOptionPane.NO_OPTION){

System.out.println("游戏结束");

System.exit(0);}}else{

for(int i=0;i

net.catchThe(fishes[i]);//网捕鱼

physics_power-=net.power;

if(physics_power

{net.power=physics_power;

net.changeThePower(net.power);}}}}

为了提高用户的体验度,我们将以上的属性都在页面上显示出来,有如下属性:当前的网的大小或者所当前渔网的power值,还有当前的体力值,还有捕鱼的条数,分数,所以我们需要在Pool.java类中的piant()方法中添加如下代码:

g.setColor(Color.yellow);

Font font = new Font("宋体", Font.BOLD, 25);g.setFont(font);

g.drawString("当前的能量大小为:" + net.power, 0, 30);

g.drawString("体力值为"+physics_power, 400,30 );

g.setColor(Color.red);

Font font1 = new Font("宋体", Font.BOLD, 15);g.setFont(font1);

g.drawString("点击右键改变网的大小", 0, 50);

g.drawString("当前的条数为"+Fish.count,0 ,70);

g.drawString("得分为:"+Fish.score, 0, 90);

6.测试与运行

6.1进行游戏测试

图6.1捕鱼过程6.2体力值为零的时弹出对话框。

图6.2 游戏结束

6.3游戏结束后进行选择

点击确定按钮后,再度提示,增加游戏体验度。点击‘是’就会重新开始一局游戏,所有数据清零,点击‘否’就会结束游戏,而点击‘取消’不做任何操作。

图6.3 游戏结束后选择

经过以上的测试与运行,游戏的效果已经很好了,至于其他的问题暂时还没有找到。

7.心得体会

这一个新星期的课程设计我相信我学到了很多。通过老师给我们带入门,我们终于看到了游戏编程的过程。一个星期,5天的时间,我们经过老师的悉心教导,我们完成了2048,捕鱼达人,FlappyBird等三个游戏,其进度不可谓不快。在学习的过程中,我们充分利用了所学的知识,将之融汇,贯通,最后得到这样的成品出来,心中不免有点小激动。

在试验过程中我们对与java的swing组建的应用更是如鱼得水,游戏的各个板块都与之相关,比如JFrame类创建游戏运行的视窗也是相当于画板,将游戏的效果显示出来,Pannel 类画出背景,鱼,网等。还有,我对于面向对象的理念更加的清晰,以前对于面向过程,面向对象的概念还不是很懂,如今明白,面向对象,简而言之是万物皆对象,在我编程的过程中,鱼是一个对象,渔网也是一个对象,还有里面的鱼池也是一个对象,甚至是游戏运行的视窗也是JFrame的一个对象。每个对象都有自己的属性,方法,单斐然还有构造器,对对象进行初始化。

在我的程序设计过程中,我充分的体会到了“实践出真知”这一点,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。一个游戏的设计,不可能一步到位,还需要不断的完善和补充。同时,游戏中还存在许多问题,有待在日后的使用中发现和解决。编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。

8.参考文献

[1]徐迎晓.JAVA语法及网络应用设计[M].清华大学出版社.

[2]李尊朝苏军.JAVA语言程序设计(第二版)[M].北京:中国铁道出版社,2007.10

[3]李明袁晓君.Java计算机语言函数应用[M].北京:科学出版社,2000

[4]黄晓东.JAVA课程设计案例精编(第二版)[M].北京:中国水利水电出版社,2007

附录:

游戏运行类:

package com.lhc.fishgame;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JFrame;

public class FishGame {

public static void main(String[] args) {

final JFrame welcome =new JFrame("欢迎光临");

welcome.setSize(643,435);

welcome.setLocationRelativeTo(null);

welcome.setResizable(false);

welcome.setUndecorated(true);//隐藏框架,大小不可变

WelcomPanel wel=new WelcomPanel();

welcome.add(wel);

welcome.setVisible(true); //显示游戏界面

final JFrame win = new JFrame("捕鱼达人游戏");

win.setSize(800,500);

win.setLocationRelativeTo(null);

win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Pool buyu=new Pool();

win.add(buyu);

Timer timer = new Timer();

timer.schedule(new TimerTask() {

public void run() {

welcome.setVisible(false);

win.setVisible(true);

}

}, 3000);

buyu.action();}}

鱼类:

package com.lhc.fishgame;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.Random;

import javax.imageio.ImageIO;

import javax.swing.JPanel;

public class Fish extends Thread{

BufferedImage image;

BufferedImage[] images=new BufferedImage[10];

BufferedImage[] catchFish;

int speed;//鱼的游动速度

int x;

int y;

int height;

int width;

int blood;

int index;//鱼的下标

static int count;

static int score;

Random random=new Random();//随机函数生成器

public Fish(int index){

this.index=index;

if(index<8){

catchFish=new BufferedImage[2];

}else{

catchFish=new BufferedImage[4]; }

String s1=(index<10?"0":"")+index;

String s2;

try {

//image=ImageIO.read(new File("images/fish"+s1+"_01.png"));

for(int i=0;i<10;i++)

{

s2=(i==9?"":"0")+(i+1);

images[i]=ImageIO.read(new File("images/fish"+s1+"_"+s2+".png"));

}

for(int j=0;j

catchFish[j]=ImageIO.read(new

File("images/fish"+s1+"_catch_0"+(j+1)+".png"));

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace(); }

//设置图片的长宽高

width=images[0].getWidth();

height=images[0].getHeight();

//设置图片的显示范围

x=random.nextInt(780+width)-width;

y=random.nextInt(470+height)-height;

speed=random.nextInt(4)+3;//3~6

blood=index*3;}

public void run(){

int i=0;

while(true){

x-=speed;

image=images[i++%10];

if(x<-width){//如果鱼过了左边界,就出场 getOut(); }

if(blood<=0){

turnOver();

getOut();

blood=index*3; }

try {

Thread.sleep(1000/10) ;

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} }}

//死鱼翻身

private void turnOver() {

for(int j=0;j<3;j++) {

for(int i=0;i

{image=catchFish[i];

try {

Thread.sleep(1000/15);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace(); }}}

count++;

score+=index*5;}

/*鱼出场地方法*/

private void getOut() {

// TODO Auto-generated method stub

x=800;

y=random.nextInt(470+height)-height;

speed=random.nextInt(4)+3;//3~6 }}

渔网类:

package com.lhc.fishgame;

import java.awt.image.BufferedImage;

智能手机软件开发

武汉理工大学华夏学院课程设计报告书 课程名称:智能手机软件开发 题目:飞扬的小鸟 系名: 专业班级: 姓名: 学号: 指导教师:凌伟 年月日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:智能手机软件开发课程设计指导教师:凌伟 班级名称:计算机1111 开课系、教研室:自动化与计算机 三、课程设计目的与任务 本课程的设计的目的是通过实践使同学们经历智能手机软件开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的智能手机开发的知识。结合具体的开发案例飞扬的小鸟,理解并初步掌握智能手机开发的主要环节和步骤以及智能手机游戏开发的知识。 二、课程设计的内容与基本要求 1、课程设计题目 飞扬的小鸟 2、课程设计内容 要求学生根据所学的软件工程的理念,利用所学的Android 手机开发的知识,开发一个智能手机游戏飞扬的小鸟,并针对该手机游戏软件进行需求分析,总体设计、详细设计、编码、测试。《飞扬的小鸟》是由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍,而这只鸟其实是根本不会飞的……所以玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩家必须控制节奏,拿捏点击屏幕的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡。 游戏玩法:在游戏开始后,点击屏幕,要记住是保持一定的规律的仔细观察点击屏幕,不要让小鸟掉下来。 游戏过程:让小鸟不要撞到管子,每穿过一个管子的缝隙得1分。 游戏背景音乐设计 游戏背景动画设计 游戏界面设计 游戏关卡设计 游戏积分榜的设计

java课程设计报告书

《Java程序设计》课程设计报告2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年7 月2 日

目录 1.JAVA程序设计书 3 1.1《简易连连看》 3 1.1.1具体要求 3 1.2本系统设计的知识点 3 2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

大学java课程设计实验报告_计算器

JAVA课程设计报告 组员信息: 第(二)组 计算器的实现问题 问题描述:制作一个计算器 基本要求:要求实现类似Windows操作系统里面的标准计算器。 在此基础上实现部分科学性的功能。 测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试 算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用 addActionListener()对各个时间进行监听。调用 系统库函数对数值进行运算。 模块划分:1、主函数main()创建一个计算器。 2、void actionPerformed(ActionEvent e)对鼠标 点击的事件进行响应以及在文本框中的显示。 3、各Buuton对应的功能: “开方”:对输入数字开方 “平方”:对输入数字平方

“getResult()”:对四则运算进行分别运算操 作 “backspace”:取消上一次的操作 “CE”:取消上一次运算的操作 “C”:清空作用 “sin”:对输入数据进行sin运算 “cos”:对输入数据进行cos运算 “tan”:对输入数据进行tan运算 “+/-”:对输入的数据取反 “+”,“-”,“*”,“/”:对数据进行四则 运算 源程序: package hechongwei; import https://www.360docs.net/doc/966753060.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.360docs.net/doc/966753060.html,ng.Math; class Calculator extends JFrame implements ActionListener

JAVA课程设计报告

《JA V A程序设计》 课程设计报告 设计题目:学生信息管理系统学院名称:信息工程学院 专业班级:13计本1 姓名: 学号:

目录 一需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 三详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.1 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2 模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.1 数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.2 用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.3用户信息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (1)密码修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (2)用户信息添加和删除。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 3.2.4 学生息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (1)添加信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (2)信息查看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 (3)信息修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 (4)删除信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14 3.2.5 系统管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 3.2.6 主窗体菜单设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 四软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 五总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 参考资料:.......................................................17

Java课程设计报告模板

Java课程设计报告 模板

浙江科技学院 《Java程序设计》课程设计报告 设计题目:学生信息管理系统 姓名:邱焕明 学号: 所属院系:信息学院 专业:软件工程 小组成员:邱焕明 设计时间: -1-6 指导教师:虞建东

一、课程设计目的 (1)实验目的:结合开发的系统,给出学生信息管理系统 二、课程设计完成的任务 三、设计过程 (一)需求分析 1、基础资料管理 基础资料管理包括对院系、班级和学期的设置。该模块可实现以下功能: 添加、修改、删除和显示院系代码、院系名称和电话号码。 添加、修改、删除和显示班级代码、班级名称、学生人数和所属院系名。 添加、修改、删除和显示学期代码、学期名称。 2、学生信息管理 学生信息管理包括对学生档案和学籍的管理。该模块可实现以下功能: 添加、修改、查询和显示学生的基本信息、所属班级和院系。 记录学生学籍、学生离校信息和学生调动信息。 3、课程信息管理 课程信息管理包括对课程设置和班级选课的管理。该模块可实

现以下功能: 添加、修改、删除和显示课程代码、课程名称、学分和院系名称。 添加、删除和提交班级所选课程。 4、成绩信息管理 成绩信息管理包括对成绩录入和成绩分析的管理。该模块可实现以下功能: 录入班级课程成绩,以不同形式(列表统计、图表分析)显示班级课程成绩。 (二)系统设计概念、流程初定义 1、实体名:院系 2、实体名:班级 3、实体名:学生 4、实体名:课程 (三)系统内容规划 1、班级信息表 表3-1 班级信息表 2、课程信息表 表3-2 课程信息表

(四)系统总体设计 内 (五)系统详细设计 (六)系统测试 列名 数据类型 长度 备注 课程代码 char 10 主键 课程名称 varchar 50 无 学 分 tinyint 1 无 所属院系 varchar 50 无

Java课程设计实验报告

Java课程设计实验报告 导语:日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。以下是小编为大家整理分享的Java课程设计实验报告,欢迎阅读参考。 1、加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2、使用本学期学习的Java SE技术完成多功能日历GUI 程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3、在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 1、问题描述准确、规范。 2、程序结构合理,调试数据准确、有代表性、。 3、界面布局整齐,人机交互方便。 4、输出结果正确。 5、正确撰写实验报告。 编写一个GUI程序实现日历的功能。一年日历用12页

显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农 历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报 时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 1、在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2、在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3、各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4、根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5、详细的上机实验步骤见任务分工及程序设计进度表。 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

JAVA课程设计题目

Java课程设计题目 一、课程设计的目的 为了进一步巩固java程序设计课程所学到的知识,深刻把握Java语言的重 要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了一周的Java程序设计课程设计。 通过此次课程设计,巩固所学java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通 过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程 思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 二、课程设计的基本要求 1、明确题目要求,进行需求分析; 2、进行功能设计,编写设计说明; 3、进行程序设计与调试; 4、对设计过程进行系统的总结; 5、界面美观大方; 6、完成设计报告 7、课程设计建议在Editplus +JDK、JCreator +JDK、myeclipse平台上开发、调试。 8、 Java源程序应加上详尽的注释语句,对所设计的类、属性、方法说明其用途,对方法的调用说明其用意和使用参数的原因。特别是有深刻理解、有独 特见解的地方,用注释语句加以说明。 三、课程设计的主要内容 利用学到的编程知识和编程技巧,通过具体项目的分析、设计和开发,掌握开发Java大型软件项目过程中所需要的软件技术并熟悉软件。 可以以小组为单位,每组1至2名学生,在教师的指导下,每组完成一个题目。题目可由下面提供的选题中选择或学生自选经教师审核后方可。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。 题目类型大致分配如下: 1、网络通讯类,编制网络聊天(Chat)程序,以下简称“网络”类。

Java课程设计报告

湖北大学 本科课程设计 题目 ATM 自助机模拟程序姓名 学号 专业年级 指导教师 职称

目录 第一章系统描述 (2) 1 前言 (2) 2 系统功能需求 (2) 第二章系统分析与设计 (3) 1 功能模块划分 (3) 2 功能模块的描述 (3) 3 系统设计流程图 (4) 4 测试数据及期望结果 (6) 第三章系统详细设计 (7) 1 主界面开发设计 (7) 2 功能选择界面开发设计 (7) 3 取款界面开发设计 (7) 4 存款界面开发设计 (8) 5 转账界面开发设计 (8) 6 查询界面开发设计 (9) 7 修改密码界面开发设计 (9) 8 界面开发设计使用函数 (9) 第四章系统测试 (11) 第五章源程序部分清单 (21) 第六章实验心得 (30) 参考文献 (31)

第一章系统描述 1 前言 Java技术是一门简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,它也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。Java编程语言与众不同之处在于:Java程序既是编译型的,又是解释型的。 Java平台是一种纯软件平台,它有三个版本Java SE、Java EE、Java ME。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 本课程设计采用Eclipse作为开发工具,并采用Window Builder下的SWT Designer来实现相应的功能。着重通过模拟实现当前非常快捷又使用的ATM机来加深对java开发设计的了解,从而进一步提高自己对java图像界面的设计及相关知识的认识。 2 系统功能需求 当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行: (1)查询余额:初始余额为10000元。 (2)ATM取款:每次取款金额为100的倍数,一次取款不能超过1000,总额不 超过5000元,支取金额不允许透支,有快捷取款和用户自定义取款。 (3)ATM存款:每次存款金额为100的倍数,一次存款不能超过1000,不能出 现负存款。 (4)ATM转账:只有在两次输入账号相同且输入转账金额正确的情况下才允许 转账,不允许透支。 (5)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

2013级JAVA课程设计题目

Java课程设计题目 一、课程设计总体要求: 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JA V A的应用系统综合实例,来掌握Java语言编程技巧。 重要说明日程说明: 1、4月21日前分组选题,查询资料,21-27日程序设计以及上机调试。最多2人一组。 2、设计报告打印一份,并将电子版以”13信算xx班第XX组报告.rar”的压缩包发到邮 箱:325822013@https://www.360docs.net/doc/966753060.html,邮箱。 3、压缩包里包含:设计报告的word版,word名称参考说明2,程序源代码文件。 注意:4月27日23点59分之后不再接收电子以及纸质稿,逾期成绩一律按不及格计算,联系方式qq:325822013,TEL:670705。 机房开放安排说明: 1.机房地点:求中502、503 2.时间安排共开放2.5天: 21日(周一):1-2节信算1、2班/ 3-4节数学1、2班/ 5-6节信算3班 23日(周三)全天,25日(周五)上午自由开放 二、参考题目及要求: 1、编写一个记事本程序(2人) 要求:用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 2、ATM柜员机模拟程序(3人) 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: 1、查询余额:初始余额为10000元 2、A TM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 3、A TM存款:不能出现负存款。 4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 3、超市收银系统(3人) 要求:使用图形用户界面。 由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。

孙跃_捕鱼达人游戏项目开发_626(最终确定)

学校代码: 10128 学号: 201220905048 课程设计说明书 题目:捕鱼达人游戏项目开发 学生姓名:孙跃 学院:理学院 班级:信计12-2 指导教师:侯睿 二〇一五年六月二十六日

内蒙古工业大学课程设计(论文)任务书 课程名称:数据库应用课程设计学院:理学院班级:信计12-2 学生姓名:孙跃学号: 201220905048 指导教师:侯睿

摘要 捕鱼达人游戏采用Java高级程序语言设计,游戏后台数据存储、调用,使用SQL Server 2005数据库管理系统。 捕鱼达人游戏的设计目的是是以深海为游戏场景,各种鱼儿在其中游动的姿态自然,炮弹打击粒子效果华丽,打击感强烈,很具有趣味性。实现如用数据库存储用户名和密码,凭正确的用户名和密码登录游戏;需要有不同种类的鱼;让鱼游动起来,被炮击中时有特效(翻滚),并获得金币;炮台可以根据鼠标的位置调整方向;炮台发射时消耗金币;可以切换背景,增加趣味性等功能。 主要依靠如FishPanel.java,Fish.java,FishNet.java,sqljdbc4.jar等一些类和框架实现相关功能。 关键词:Java;SQL Server;Eclipse;数据库连接

目录 引言 (1) 第一章开发环境 (2) 1.1 Java (2) 1.1.1 Java简介 (2) 1.1.2 Java程序的优势 (2) 1.2 Eclipse (2) 1.3 SQL Server 2005 (2) 1.3.1 SQL Server数据库的优点 (2) 1.3.2 SQL语言 (3) 第二章需求分析与功能设计 (4) 2.1用户需求 (4) 2.2系统分析 (4) 2.3主要功能实现 (6) 2.3.1 Fish类 (6) 2.3.2 FishNet类 (7) 2.3.3 FishPanel类 (7) 第三章数据库建立及维护 (8) 3.1数据库的建立 (8) 3.1.1数据库的建立 (8) 3.1.2表的建立 (9) 3.1.3向表中插入数据 (10) 3.2数据库的备份与维护 (12) 第四章数据库连接 (13) 4.1 SQL Server的调试 (13) 4.1.1 SQLServer身份验证 (13) 4.1.2 MSSQLSERVER的协议 (16) 4.2 使用JDBC连接数据库 (16) 4.2.1 LoginCheck类连接测试 (16) 4.2.2 LogInFrame类连接测试 (18) 第五章功能展示 (20) 5.1进入游戏 (20) 5.2发射炮弹没捕到鱼 (20) 5.3发射炮弹捕到鱼 (21) 5.4切换游戏风格 (21) 5.5游戏结束提示功能 (22) 5.6其他功能 (22) 5.7课程设计总结 (23) 参考文献 (24) 附录 (25)

java课程设计报告书

《Java程序设计》课程设计报告 2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年 7 月 2 日 目录 1.JAVA程序设计书 3 1.1《简易连连看》3 1.1.1具体要求 3 1.2本系统设计的知识点 3

2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

JavaWeb课程设计实验报告

湖南科技大学计算机科学与工程学院 WEB编程课程设计报告 题目:网上购物商店 学号:1111111111 姓名: 1 指导老师: 1 完成时间:111111111

目录 一、设计内容 (3) 二、设计方法 (4) 1、网站的整体结构设计 (4) 2、网站设计的技术方案 (5) 3、网站的界面设计 (6) 三、实现方法 (8) 1、数据库的设计 (8) 2、网站具体的实现过程 (10) 开发环境: (10) 设计思路 (10) 四、心得体会 (11)

随着互联网时代的迅猛发展,人们的生活方式已经发生了翻天覆地的变化,传统的实体店购物方式已经不能满足人们的需求,传统购物方式购物不方便,非得出门才能购物,去到了实体店有不一定有自己满意的商品,有时候会浪费大量的时间和精力。 随着网络的全面覆盖,网上支付系统的逐步完善,物流业的快速兴起,网上购物已经成为了当今购物的潮流。 网上购物商店主要满足人们足不出户就能买到自己想要的物品的需要,同时也为商家省去了昂贵的门面租赁费用,而且商品还可以卖到全国各地,大大的扩大了客源又节省了成本。 网上购物商店主要有以下几个方面的功能: 顾客可以浏览整个网站的商品,可以再网站进行注册,注册之后可以登录并购买商品,同时也可以查看和修改自己的个人信息,为了安全的需求,还可以修改密码。 商家,也就是店主,管理员,可以管理网站所出售的所有商品,同时也可以对在网站进行注册的用户进行管理。 1、用户登录、注册功能 (1)注册功能:用户进入网站,如果有兴趣在该商店购买商品,那么用户就可以注册。 (2)登录功能。已经注册的用户可以登录,登录之后方可购买商品。 (3)查看、修改用户信息功能。 (4)修改密码,为了用户安全的需要,经常更换密码可以保证用户账户的安全。 2、购物功能 (1)物品浏览:顾客进入网站,就可以浏览网站的商品。 (2)商品购买:顾客注册自己的账户,并登录之后就可以在网站购买商品了。购买商品的步骤如下; a)添加商品到购物车 b)确定购买 3、商品管理:管理网站所出售的商品。 4、用户管理:管理员对在网站注册的用户进行管理。 5、订单管理:对用户的订单进行管理。

java课程设计参考题目

参考题目 选题原则:所完成的系统应能够在生活、学习中使用,以实用性为主。模仿生活、学习中使用到的各种软件,做mini版本。开发的目标是自己、同学愿意使用你所开发的软件完成一些简单任务。从小功能着手,一点点的添加功能。添加一个功能就运行试试,减少越来越难于调试的可能。也可自选。jsp或java完成都可。 1.文件复制 完成一个程序,这个程序可以将指定文件夹中的内容复制到另一个文件夹中去。 设计要求: 1)实现文件夹复制; 2)程序中需要考虑输入输出异常处理; 3)用户可以指定不同的参数:用-ext指定要复制的文件的扩展名,可以 同时指定多个扩展名;用-empty指定不复制空目录;用-zip表示进行压缩; 还可以增加其它选项 4)在dos控制台窗口环境下,通过命令行参数运行程序,如: 2.图片浏览器 类似于ACDSEE的图片浏览器 设计要求: 1)可以对图片进行不同的分类,并能够按分类显示 2)备份功能,用压缩实现用户选定文件的备份,用户指定文件的方式 要多样,如在分类上、在实际文件夹上。 3)幻灯功能,通过分类、实际文件夹等多种方式指定要幻灯浏览的图 片; 3.压缩文件浏览器 仿照Winrar浏览压缩文件。 设计要求: 1)能够以图形方式显示zip、tar、jar压缩文件中的内容

2)能解压用户选定的文件到选定的目录,注意winrar中指定解压整个 目录的方式 3)能够对压缩文件增加注释 4.文件加密工具 能够对文件、文件夹进行加密,可以由用户选择加密算法。 设计要求: 1)图形界面选定加密、解密的文件。 5.提醒簿(使用数据库) 仿照雪狐提醒簿。 设计要求: 1)由用户定义时间及提醒的内容; 2)定时时间到弹出窗口提醒或使用其它方式; 3)用户可以更改、删除提醒; 4)提醒的方式中包括使用邮件; 5)可以浏览提醒,已完成和未完成使用不同的图标; 6)用户可以注册、登录,登录的显示属于自己的提醒事项; 7)可以导出、导入提醒。 6.部门员工管理系统(使用数据库) 图形界面实现对部门、员工的管理。部门可以增、删、改,员工可以增、删、改及在不同的部门间调动。部门放JComboBox中,所属员工信息用多个JTextField 或JTable显示都可。要用菜单实现不同的功能。 7.备忘录(使用数据库) 设计要求: 1)系统界面的左侧是日历,该日历可以按年份前后翻动,在某年内按 月可以前后翻动; 2)单击选定的日期,系统界面的右侧显示相应的记事,可增、删、改; 3)每日的记事可有多条。 8.学生成绩管理系统(使用数据库) 功能要求: 2

Java课程设计报告书

华东交通大学理工学院课程设计报告书( 2010-- 2011年度第 2 学期) 所属课程名称 Java面向对象程序设计题目设计一个多功能计算器分院电信分院 专业班级 09信管<1>班 学号 20090210450106 蔡炜指导教师黄建华 2011年06月23日

华东交通大学理工学院 课程设计(论文)任务书专业09信管班级 <1>班姓名蔡炜 一、课程设计(论文)题目设计一个多功能计算器 二、课程设计(论文)工作:自 2011 年06 月 13日起至2011年 06 月 23日止。 三、课程设计(论文)的内容要求: 本应用程序继承自框架类(JFrame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button(); b.addActionListener(事件监听器); 事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、清零按钮事件(“C”)。

在事件处理触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。 学生签名: ( ) 2011 年06 月 23 日 课程设计(论文)评阅意见 评阅人职称 20 年月日

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

捕鱼达人2-详细技巧攻略图文解析

捕鱼达人2-详细技巧攻略图文解析 《捕鱼达人2》相比于前作来说,既丰富了原有的捕鱼元素,又大大提高鱼群的智能AI,挑战性和趣味性都更强。今天就给大家抢先带来捕鱼达人2攻略技巧,神器圈钱、十种大炮、神器卡片这些新增的捕鱼达人2功能全覆盖。 任何想让玩家迅速上手的游戏,都会有一个设计精妙的新手指引。《捕鱼达人2》便有着这样的设定,玩家初入游戏,若是没有其他捕鱼游戏的基础,便可以跟随新手指引的节奏,迅速熟悉游戏,成为新生的捕鱼达人。 捕鱼达人2攻略技巧之华丽炫目的新渔场: 缤纷珊瑚群是《捕鱼达人2》的第一幕渔场。幽蓝的深海世界,加上绚丽多姿的鱼群,组成了动感十足的游戏界面。一炮未能击杀的鱼,会迅捷的做出闪躲的动作来躲避接下来的攻击。鱼儿都有了各自华丽转身的动画,比起继续呆呆的游曳,更加富有动感。而对于玩家,想要每发子弹消

灭一只小鱼,将会成为捕鱼达人们今后交流的重点。 捕鱼达人2攻略技巧之丰富多样的十种炮: 捕鱼达人2初始时之有1级、3级、4级和8级四种炮弹攻击鱼群。1级的单发机枪,3级的蓝色、4级的绿色和8级的紫色球状炮弹,都分别有着不同的攻击力和攻击范围。而随着玩家等级的提升,其他等级的炮弹也将随之解锁。2级炮的双管机枪,5级炮的激光束也都有自己独特的攻击动画和强劲的攻击效果。 捕鱼达人2攻略技巧之多种卡牌神奇奖励: 捕鱼达人2中拥有卡牌奖励模式。玩家在捕获任意鱼类时,便有机会得到卡牌奖励。卡牌会在屏幕的左下角累计。点击卡牌可以触发卡牌特效,火山卡牌能够在海底形成爆发的火山,秒杀所有游过火山上方的鱼群;幸运贝壳卡牌让玩家有机会逐层抽奖获得丰厚奖励,但是一旦抽到螃蟹,抽奖将结束;如果触发回旋镖卡牌,屏幕上将会有弹射的回旋镖来帮助玩家捕鱼,凡是被回旋镖撞击的

计算器设计的java课程设计报告

计算器设计的java 课程设计报告

华东交通大学课程设计课程设计题目:计算器设计 课程: Java程序设计 题目:计算器设计 年级:级 专业:信息一班 学号: 姓名: 组员: 指导教师:

课程设计(论文)任务书 基础学院信息与计算科学专业—1班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自年 6 月23日起至年6月27日止。 三、课程设计(论文) 地点: 计算机中心 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。

3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献: (1)丁振凡.《J ava语言程序设计》清华大学出版社 (2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社 (3)http:/ /https://www.360docs.net/doc/966753060.html, 6)课程设计进度安排 内容天数地点

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面

相关文档
最新文档