基于Java的动物换位游戏软件设计_课程设计

基于Java的动物换位游戏软件设计_课程设计
基于Java的动物换位游戏软件设计_课程设计

Java课程设计报告

题目:基于Java的动物换位游戏软件设计学院:信息科学与工程学院

专业:电子信息工程

成绩评定表

课程设计任务书

目录

1.设计目的 (5)

2.总体设计 (6)

2.1 Change A nimalWindow. java (主类) (6)

2.2 Anima l.java (6)

2.3 Point.j a v a (7)

2.4 S ton e.java (7)

2.5 HandleMou se.j a va (7)

2.6 AutoMoveA nima l.j ava (7)

2. 7 Record.j ava (7)

2.8ShowRecord.j ava (8)

3、程序流程及主要源代码 (8)

3.1 C han g e A nimal W indow 类 (8)

3.1.2 U M L图 (8)

3.2 Animal 类 (20)

3.2.1.效果图 (20)

3.2.2. UML 图 (20)

3.3 Point 类 (23)

3.4 Stone类 (26)

3.4.1.效果图 (26)

3.4.2.U ML 图 .......................................................................... 错误!未定义书签。

3.5 HandleMouse 类 ....................................................................... 错误!未定义书签。

3.5.1. 效果图..................................................................... 错误!未定义书签。

3.5.2.UML 图................................................................ 错误!未定义书签。

3.6 AutoMoveAnimal 类 ................................................................ 错误!未定义书签。

3.6.1. 效果图........................................................................... 错误!未定义书签。

3.6.2. UM L 图..................................................................... 错误!未定义书签。

3.7 Record 类.................................................................................. 错误!未定义书签。

3.7.1 效果图.......................................................................... 错误!未定义书签。

3.7.2 UML图........................................................................ 错误!未定义书签。

3.8 ShowRecord 类 (50)

3.8.1 效果图 (50)

3.8.2 UML图 (50)

4、代码调试.................................................................................. 错误!未定义书签。

5、参考文献....................................................................................... 错误!未定义书签。

设计GUI 界面的动物换位游戏,游戏的结果是让左右两组动物交

换位置。具体要求如下:

(1)程序分为3 个级别,用户可以通过界而上提供的菜单来选择"初级"、"中级"和"高级"这 3 个级别。对于"初级"级别,在水平排列的7 块石头上的左右

间的石头上没有动物;对于"中级"级别,在水平排列各有3 个类型相同的动物中,

的9 块石头上的左右各有4 个类型相同的动物,中间的石头上没有动物;对于"高级"级别,在水平排列的11 块石头上的左右各拥有5 个类型相同的动物,中间的石头上没有动物。

(2)用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但相隔的位置上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃或跳跃时不能越过2 块石头。

(3)左方的动物只能向右方跳跃,右方的动物只能向左方跳跃。

(4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。

(5)可以随时单击界面上提供的按钮,重新开始当前的级别。

(6)用户通过菜单选项,可以选择左、右方动物的图像。

(7)设置一个方法,可以在上面记录游戏成功者的成绩,并且把它记录下来,以便游戏优胜者在以后观看。

(8)设置了一个游戏英雄榜按钮,上面有一个英雄菜单选项,按下这个选项后,可以查看成绩记录。

队员:

注释:在我们这一组中,我们分工合作,在这当中,XXX负责音乐部分,XXX背景色的转换,而我主要负责游戏英雄榜,使得当用户换位成功后,系统能保存用户的成绩到用户;当用户查看换位的最好成绩时,系统能提供读取文件数据的界面。

在设计动物换位时,需要编写6 个Java 源文件:ChangeAnima l Window. java 、Poi n t.j ava、Anima l.java、Stone.java 、HandleMouse.java 和AutoMoveAnima l.java。

动物换位除了需要编写的上述6 个Java 源文件所给出的类外,还需要Java 系统提供的一些重要的类,如JMenultem,

File和JButton类。动物换位所用到的一些重要的类以及之间的组合关系如图2.1所示

2.1 Change A nimalWindow.java ( 主类)

ChangeAnimalWindow 类负责创建动物换位的主窗口,该类含有main方法,程序从该类开始执行。ChangeA nimal Window类的成员变量中有五种重要类型的对象: Animal、Point、Stone、Han d leMouse 和AutoMoveAnimal 对象。ChangeAnimal W indow 将在后面的详细设计中阐述。ChangeAnima lWindow 类创建的窗口以及其中的主要成员对象如图2.2所示

2.2 Anima l.java

Animal 类是JPanel的一个子类,创建的对象是ChangeAnimalWindow 类的重要成员之一,用来表示"动物"。如图2.3所示

图2.3 Animal类效果图

2.3 Point.j a v a

Point类负责创建确定位血的对象.使用Point对象.可以确定Animal 以及Stone对象在窗体中的位置.

2.4 Ston e.java

Stone类是JBut ton的一个子类,创建的对象表示"石头”。

2.5 H andleMou se.j a va

HandleMouse类所创建的对象负责处理鼠标事件。

2.6 AutoMoveA nima l.j ava

AutoMoveAnimal类所创建的对象使用算法完成动物的自动换位。

2. 7 Record.j ava

Record类是JDialog对话框的子类,当换位成功后,Record对象负责保存用户的成绩到用户。

2.8 ShowRecord .j ava

ShowRecord 类是JDialog 对话框的子类,当用户查看换位的最好成绩时,ShowRecord 对象负责提供读取文件数据的界面。

3、程序流程及主要源代码

3.1 C han g eA nimal W indo w 类

ChangeAnimal W indow 创建的窗口效果如图 3.1 所示.

图3.1 ChangeAnimal W indow 类效果图

3.1.2 U M L 图

Change An imalWindow 类是java x . swing 包JFra me 的 一 个 子类, 并实 现 了

Action L i s t e n e r 接口,标明该类的主要成员变量和方法的 UML 图,如图3.2 所示。

以下是U M L 图中有关方法的详细说明.

3.1.2.1 成员变量

? amo untOfAnim a l是In t型数据,默认值是6. amountOfAnim al的值用来确定ChangeAnima l Window窗体中"动物"的数目,即Anima l对象的数目。

? d i stance 是int型数据,默认值是80.distance的值用来确定Point

Stone 之间的距离以及

对象之间的距离,进而可以确定Animal 之间,

Animal 和Sto n e 对象外观的大小。

? a n i ma l 是Anima l 型数组,其长度为amountOfAnima l。

? Point 是Point 型数组,其长度为amountOfAnima l +1。

? Stone是Stone 型数组,其长度为amountOfAnimal +1。

? Handle Mouse是H and l e Mou se 类创建的鼠标事件监视器,用来监视anim al 数组中Animal 对象触发的鼠标事件。

?auroMoveA n ima l是AutoMoveAnimal 类创建的对话框。通过该对话框可以实现程序向将左右动物交换位置。

? bar 是JMenuBar 创建的菜单条,用来添加菜单, bar 被放置在窗口的顶部。

其名字为"选择级别"m e nuImage 也是

? M e nuGrade 是JMenu 创建的菜单,

JM e nu 创建的菜单,其名字为"选择动物图像(jPG,G IF)"menuGrad e和

m e nu I mage被添加到菜单条ba r中。

? o n eG ra d e It e m,t woGrade I tem和threeGrade I tem是JM enultem创建的菜

单项,它们的名字依次为"初级"、"中级"和..高级",这三个菜单项

被添加到菜单项m e nuGr a de 中。L e ft I ma ge、righ tI m age和d efa u l tI ma g e

也是JM e n ultem创建的菜单项,其名字依次为"左面动物的图像"、"右面动

物的图像"、"左右面的动物的默认图像",这三个菜单项被添加到菜单项

menumage 中。oneG r ade I t e m,t w oGrade It em和1 threeGrade I tem 以及

left I mage、rightImage 和 d e f a u ltImage 都将当前窗口注册为向己的

ActionEvcnt 事件监视器。

? r e n e w、quit 和au toButton 是J But t on创建的按钮对象,名字依次为"重

新开始"、"撤销"和"自动演示"R e n e w、quit和au toButton都将在当前接

口注册为自己的A c tionEvent 事件监视器。

3.1.2.2 方法

? C hangcAnimalWindow()是构造方法,负责完成窗口的初始化。

init( )方法负责完成Anima l Stone Point对象的创建。

? setamountOfAnimal(int)方法负责设置动物的个数,即a mountOfAnimal的值。? removeAnimal AndSto n e()方法负责从窗体中移掉动物和石头,即移掉

Animal 对象和Stone 对象。

? n eedDoing( )方法负责执行一些经常需要重复执行的代码。

? Act ionPerformed( ActionEvent)方法是C hang e Animal Window类实现的

Action List e ner接口中的方法。C hang e AnimalWindo w创建的窗口是

on eG radelt e m,tw o Gra d e I t e m、thr e eGrade I t em 、l e ft I mage、right I mage

default I ma g e菜单项和re ne w quit autoButton按组的ActionEv e n t 事件监视器。当用户选中某个菜单项或单击按钮时,筒口将执行actionPerformed (ActionEvent )方法进行相应的操作。如果用户选中o ne Grade I t e m、twoG r a d eItem 和thr ee Grade It e m三个菜单项的某一项时,actionPerformed ( ActionEven t ) 方法所执行的操作就是改变amountOfAnimal的值,_执行needDoing()方法,完成必要的初始化。如果用户选中l e ftlma g e和rightImage

a ctionP erform ed(ActionE vent)方法所执行的操作就是改变菜单项的某一个时,

l e ftIm ageFile和rightIm ageFile的引用。当用户单击renew 按钮

时,a c tionPerform ed (A c t ionEvent)方法所进行的操作是保持当前的amountofAnim al的值,并执行n eedDoing()方法,完成必要的初始化,当用户单击quit 按钮时,Ac tion P e for m ed (Ac tionEv e nt) 方法所进行的操作是撤销当

a ction P erformed

前"动物"的前一次跳跃。当用户单击autoButton按钮时,

(ActionEvent)方法所进行的操作是弹出autoMoveAnima l对话框,用户可以通过

该对话框让程序显示动物换位过程。

? main( String)方法是程序运行的入口方法。

3.1.2.3 源代码

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.ArrayList;

import java.io.*;

import java.util.*;

import javax.swing.filechooser.*;

public class ChangeAnimalWindow extends JFrame implements ActionListener{ int amountOfAnimal=6;

int distance=80;

Animal [] animal;

Hashtable hashtable=new Hashtable();

Point [] point;

Stone [] stone;

HandleMouse handleMouse;

AutoMoveAnimal autoMoveAnimal;

File leftImageFile,rightImageFile,heroFile;

JButton renew,quit,autoButton=null;

JMenuBar bar;

JMenu menuGrade,menuImage,menuHero,yingyue;

JMenuItem oneGradeItem,twoGradeItem,threeGradeItem;

JMenuItem leftIamge,rightIamge,defaultImage;

JMenuItem hero,bofang;

ShowRecord showHeroRecord=new ShowRecord(this,hashtable);

JPanel pCenter;

ChangeAnimalWindow(){

pCenter=new JPanel();

pCenter.setBackground(Color.lightGray);

pCenter.setLayout(null);

handleMouse=new HandleMouse();

autoMoveAnimal=new AutoMoveAnimal();

leftImageFile=new File("dog.jpg");

rightImageFile=new File("cat.jpg");

heroFile=new File("英雄.txt");

init();

bar=new JMenuBar();

menuGrade=new JMenu("选择级别");

yingyue =new JMenu("音乐");

menuImage=new JMenu("选择动物图像(JPG,GIF)"); menuHero=new JMenu("游戏英雄榜");

oneGradeItem=new JMenuItem("初级");

twoGradeItem=new JMenuItem("中级");

threeGradeItem=new JMenuItem("高级");

bofang=new JMenuItem("播放");

bofang.addActionListener(this);

leftIamge=new JMenuItem("左面动物的图像");

rightIamge=new JMenuItem("右面动物的图像");

defaultImage=new JMenuItem("左右动物的默认图像"); hero=new JMenuItem("英雄");

hero.addActionListener(this);

menuGrade.add(oneGradeItem);

menuGrade.add(twoGradeItem);

menuGrade.add(threeGradeItem);

menuImage.add(leftIamge);

menuImage.add(rightIamge);

menuImage.add(defaultImage);

menuHero.add(hero);

bar.add(menuGrade);

bar.add(menuImage);

bar.add(yingyue);

yingyue.add(bofang);

bar.add(menuHero);

setJMenuBar(bar);

oneGradeItem.addActionListener(this);

twoGradeItem.addActionListener(this);

threeGradeItem.addActionListener(this);

leftIamge.addActionListener(this);

rightIamge.addActionListener(this);

defaultImage.addActionListener(this);

hero.addActionListener(this);

renew=new JButton("重新开始");

renew.addActionListener(this);

autoButton=new JButton("自动演示");

autoButton.addActionListener(this);

quit=new JButton("撤消");

quit.addActionListener(this);

JPanel north=new JPanel();

north.add(renew);

north.add(quit);

north.add(autoButton);

String mess="互换左右动物位置";

JLabel hintMess=new JLabel(mess,JLabel.CENTER); north.add(hintMess);

add(north,BorderLayout.NORTH);

add(pCenter,BorderLayout.CENTER);

JPanel south=new JPanel();

south.add(handleMouse);

add(south,BorderLayout.SOUTH);

setVisible(true);

setBounds(60,60,710,300);

validate();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void init(){

animal=new Animal[amountOfAnimal];

point=new Point[amountOfAnimal+1];

stone=new Stone[amountOfAnimal+1];

int space=distance;

for(int i=0;i

point[i]=new Point(space,100);

space=space+distance;

}

for(int i=0;i

animal[i]=new Animal();

animal[i].addMouseListener(handleMouse);

if(i

animal[i].setIsLeft(true);

}

else{

animal[i].setIsLeft(false);

}

}

for(int i=0;i

stone[i]=new Stone();

pCenter.add(stone[i]);

stone[i].setSize(distance*8/9,18);

int w=stone[i].getBounds().width;

int h=stone[i].getBounds().height;

stone[i].setLocation(point[i].getX()-w/2,point[i].getY()); point[i].setThisStone(stone[i]);

}

for(int i=0;i

animal[i].setSize(distance*6/7,distance*3/4);

int w=animal[i].getBounds().width;

int h=animal[i].getBounds().height;

pCenter.add(animal[i]);

if(i

animal[i].setIsLeft(true);

animal[i].setLeftImage(leftImageFile);

animal[i].repaint();

animal[i].setLocation(point[i].getX()-w/2,point[i].getY()-h); animal[i].setAtPoint(point[i]);

point[i].setThisAnimal(animal[i]);

point[i].setIsHaveAnimal(true);

}

else{

animal[i].setIsLeft(false);

animal[i].setRightImage(rightImageFile);

animal[i].repaint();

animal[i].setLocation(point[i+1].getX()-w/2,point[i+1].getY()-h);

animal[i].setAtPoint(point[i+1]);

point[i+1].setThisAnimal(animal[i]);

point[i+1].setIsHaveAnimal(true);

}

}

handleMouse.setPoint(point);

handleMouse.setCountTime(true);

autoMoveAnimal.setPoint(point);

autoMoveAnimal.setStep();

}

public void setAmountOfAnimal(int m){

if(m>=2&&m%2==0)

amountOfAnimal=m;

}

public void removeAnimalAndStone(){

for(int i=0;i

if(point[i].getThisAnimal()!=null)

pCenter.remove(point[i].getThisAnimal()); }

for(int i=0;i

if(point[i].getThisStone()!=null)

pCenter.remove(point[i].getThisStone()); }

pCenter.validate();

pCenter.repaint();

}

public void needDoing(){

init();

handleMouse.initStep();

handleMouse.initSpendTime();

handleMouse.setCountTime(true);

autoMoveAnimal.setPoint(point);

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==oneGradeItem){

distance=80;

removeAnimalAndStone();

setAmountOfAnimal(6);

needDoing();

}

else if(e.getSource()==twoGradeItem){

distance=70;

removeAnimalAndStone();

setAmountOfAnimal(8);

needDoing();

}

else if(e.getSource()==threeGradeItem){

distance=60;

removeAnimalAndStone();

setAmountOfAnimal(10);

needDoing();

}

else if(e.getSource()==bofang){

Sound s=new Sound("D:\\h\\dyd.wav");

s.start();

}

else if(e.getSource()==renew){

removeAnimalAndStone();

needDoing();

}

else if(e.getSource()==autoButton){

removeAnimalAndStone();

needDoing();

handleMouse.setCountTime(false);

autoMoveAnimal.setStep();

int x=this.getBounds().x+this.getBounds().width/2;

int y=this.getBounds().y+this.getBounds().height;

autoMoveAnimal.setLocation(x,y);

autoMoveAnimal.setSize(this.getBounds().width/2,120); autoMoveAnimal.setVisible(true);

}

else if(e.getSource()==quit){

ArrayList step=handleMouse.getStep();

int length=step.size();

int start=-1,end=-1;

if(length>=2){

end=step.get(length-1);

start=step.get(length-2);

step.remove(length-1);

step.remove(length-2);

Animal ani=point[end].getThisAnimal();

int w=ani.getBounds().width;

int h=ani.getBounds().height;

ani.setLocation(point[start].getX()-w/2,point[start].getY()-h); ani.setAtPoint(point[start]);

point[start].setThisAnimal(ani);

point[start].setIsHaveAnimal(true);

point[end].setIsHaveAnimal(false);

}

}

else if(e.getSource()==hero){

showHeroRecord.setVisible(true);

}

else if(e.getSource()==leftIamge){

JFileChooser chooser=new JFileChooser();

FileNameExtensionFilter filter = new FileNameExtensionFilter(

"JPG & GIF Images", "jpg", "gif");

chooser.setFileFilter(filter);

int state=chooser.showOpenDialog(null);

File file=chooser.getSelectedFile();

if(file!=null&&state==JFileChooser.APPROVE_OPTION){

leftImageFile=file;

for(int i=0;i

if(animal[i].getIsLeft()==true){

animal[i].setLeftImage(leftImageFile);

animal[i].repaint();

}

}

}

}

else if(e.getSource()==rightIamge){

JFileChooser chooser=new JFileChooser();

FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif");

chooser.setFileFilter(filter);

int state=chooser.showOpenDialog(null);

File file=chooser.getSelectedFile();

if(file!=null&&state==JFileChooser.APPROVE_OPTION){

rightImageFile=file;

for(int i=0;i

if(animal[i].getIsLeft()==false){

animal[i].setRightImage(rightImageFile);

animal[i].repaint();

}

}

}

}

else if(e.getSource()==defaultImage){

leftImageFile=new File("dog.jpg");

rightImageFile=new File("cat.jpg");

for(int i=0;i

if(animal[i].getIsLeft()==true)

animal[i].setLeftImage(leftImageFile);

else

animal[i].setRightImage(rightImageFile);

animal[i].repaint();

}

}

validate();

}

public static void main(String args[]){

new ChangeAnimalWindow();

}

}

3.2 Animal 类

3.2.1.效果图

Animal 创建的对象效果如图3.2.1所示

图3.2.1Animal 类效果图

3.2.2. UML 图

Animal 类是 javax. swing 包j Pancl 容器的一个子类,创建的对象是数组 animal 的单元巾的对象a nim a l 型数组a nim al 是 C h a ngeA nim a l Wind ow 窗口的重要成员之一。标明 Anima l 类的主要成员变量和方法以及和 ChangeAnima l W indow 类之间组合关系的 U ML 图如图 3.3 所示

扫雷的课程设计报告

西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3

说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。

信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日

信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日

成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班

摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse

大学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/9717835089.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.360docs.net/doc/9717835089.html,ng.Math; class Calculator extends JFrame implements ActionListener

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页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

动物换位程序报告v2

包头师范学院 基于动物换位的java程序数学科学学院 第二小组 2_0 刘慧杰(44) 2_3 王福芹(27) 2_1 张嘉欣(23) 2_4 赵星芳(43) 2_2 秦凯(50) 2_5 石慧(03) 2015.06.27

目录 一:摘要 (3) 二:关键字 (3) 三:任务分配 (3) 四:系统功能介绍 (4) 2 游戏程序规则说明: (4) 2 自定义改进 (5) 3 排行榜改进 (6) 五:UML图 (6) 六:模块功能说明及模块流程图 (7) 1 程序流程图 (7) 2 模块功能说明 (8) 1 ChangeAnimalWindow.java(主类) (8) 2 Animal.java (8) 3 Point.java (8) 4 Stone.java (8) 5 HandleMouse.java (8) 6 AutoMoveAnimal.java (8) 7 Customdlg.java (8) 8 People.java (9) 9 Record.java (9) 10 ShowRecordDialog.java (9) 七:系统改进部分说明 (9) 1.Customdlg.java (9) 2 People.java (11) 3 Record.java (12) 4 ShowRecordDialog.java (14) 八:总结 (17) 九:参考文献 (17) 十:附件清单 (18)

一:摘要 本实践报告主要是基于Java语言的程序设计,在Netbean平台上设计的“动物换位”小游戏。本游戏主要的实现内容为让左右两边相同数量的动物利用中间一个空的石头,左边的动物要全部跳到右边的石头上,右边的动物要全部跳到左边的石头上。由于本程序先期任课教师提供了一些最初的原代码,故本报告主要介绍的是之后的改进部分内容。主要改进的内容有: 1.自定义等级的增加; 2.各等级排行榜的增加; 基于对于以上的改进,程序增加了Customdlg.java、People.java、Record.java、ShowRecordDialog.java类,实现了以上功能。但是改进的程序仍然有许多不足,希望读者可以进一步指正。 二:关键字 动物换位,自定义等级,排行榜 三:任务分配 2_0 刘慧杰:主类部分方法、游戏者类及显示类排行榜写入类的编辑; 2_1 张嘉欣:主类窗口设计; 2_2 秦凯:鼠标事件类,排行榜写入类的编辑; 2_3 王福芹:自动演示类; 2_4 赵星芳:石头和动物类和自定义等级类; 2_5 石慧:位置类和自定义等级类。 具体代码分工详见:附件:2附件动物换位最终分工.doc

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页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

软件工程课程设计样本

软件工程课程设计 学校:大连交通大学 专业:软件工程 班级:072班 姓名: 学号:0701030216

目录 1总体设计 (1) 1.1本系统的主要功能描述 (1) 1.2系统包含的类及类之间的关系 (1) 1.3 Java源文件及其功能 (2) 2 详细设计 (2) 2.1主类ChangeAnimalWindow (2) 2.2类Animal (3) 2.3类 HandleMouse (4) 2.4类 AutoMoveAnimal (4) 2.5类Point (5) 3功能测试及运行效果 (6) 3.1 系统初始界面 (6) 3.2 自动演示后界面 (6) 3.3游戏成功预览界面 (7) 3.4英雄榜界面 (7) 参考文献 (7) 附录软件源程序 (8)

1总体设计 1.1本系统的主要功能描述 在科技飞速发展、知识日新月异的今天,很多人已经离不开电脑了,包括玩一些休闲小游戏,一个功能齐全的动物换位小游戏应该是很受人们喜爱的。通过图形技术,实现图片的导入。通过消息响应机制,使程序可以响应用户的鼠标操作,进行动物换位游戏的操作。 对于本系统,我们需要实现以下一些基本功能: (1) 要实现人机交互,用户可以通过鼠标来操作动物位置。 (2)在游戏成功时会出现成功提示。 (3)用户在玩游戏的时候可以在游戏界面上选择音乐播放。 (4)用户可以选择插入任意已存储的图片。 (5)具有英雄榜功能,可以查看自己的成绩。 (6)具有帮助功能,可以查看游戏规则,和不懂得选项。 1.2系统包含的类及类之间的关系 本系统共包括9个Java源文件。类之间的关系如图1-1所示。 图1-1

C程序课程设计报告(扫雷游戏)

C程序设计 扫雷游戏 一、设计题目:扫雷游戏 二、设计目的 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基

本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 三、设计要求 1.汪洋和孔维亮组成设计小组。小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。 2.查阅相关资料,自学具体课题中涉及到的新知识。 3.采用结构化、模块化程序设计方法,功能要完善,界面要美观。 4.按要求写出课程设计报告,并于设计结束后1周内提交。 一概述 1)掌握数组指针的概念及其应用 2)培养团结合作精神 2. 课程设计的要求 要求我们有扎实的C语言知识,以及良好的编程习惯,能够熟练的应用循环,有毅力,还要求我们有较强的合作精神,善于总结。同时还要求我们自学C语言作图部分知识。在必要时还要上网查相关资料。 3.课程设计的主要设计思想 扫雷游戏主要用了一个10行10列的二维数组,刚开始利用random随机布雷。 每一个程序最主要的是算法。扫雷游戏算法的重点是一开始统计好每个格子周围有多少雷,当鼠标左键点在格子上时做出判断,如果周围8个格子有雷则显示出雷数,如果没有雷则显示空白格(在四个角的格子显示周围3个格子,其它边缘的格子显示周围5个的状态),我们在主函数中用两个for语句来判断周围雷数。我们还加了鼠标处理函数。 如果格子上有雷则调用函FailExitGame(),显示“Fail!”,游戏结束。若所有的雷都标出,且所有的格子都处理过,则调用函数ExitGame(),显示“OK,Good!”,游戏结束。游戏结束后,按任意键出去。

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的动物换位游戏软件设计课程设计

课程设计任务书

成绩评定表

目录 1 课设软件主要功能 (1) 2 类总体设计 (2) 2.1 类组合关系图 (2) 2.2 主类 (2) 2.3 其他类 (2) 3 类详细设计 (3) 3.1 CHANGEANIMALWINDOW类 (3) 3.2 ANIMAL类 (5) 3.3 POINT类 (7) 3.4 STONE类 (8) 3.5 HANDLEMOUSE类 (9) 3.6 AUTOMOVEANIMAL类 (10) 4 关键类成员函数流程图及代码 (13) 5 软件运行结果 (35) 结论 (37) 参考文献 (37)

动物换位系统的设计 1 课设软件主要功能 程序分为不同的级别,左右各有动物,中间石头没有动物,将左右动物交换,不可后退。用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跃到石头上,其他情形时,该动物不能跳跃。不能持续玩的可以点自动演示,将自动完成游戏,可以帮助游戏者更好的了解系统的主体功能。 设计GUI界面的动物换位游戏,游戏的结果是让左右两组动物交换位置。具体内容如下: 1) 程序分为4个级别,用户可以通过界面上提供的菜单选择“初级”、“中级”、“高级”、“自定义” 这4个级别。对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物;对于“自定义”级别,用户可以输入自己想设置的一个动物数量(输入的数必须是偶数),在水平排列的N块石头上的左右各有(N-1)/2个类型相同的动物,中间的石头上没有动物。 2)用鼠标单击一个的动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跃到石头上,其他情形时,该动物不能跳跃(跳跃时不能超过2块石头)。 3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。 4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。 5)可以随时单击界面上提供的按钮,重新开始当前的级别。 6)用户可以通过菜单选项,可以选择左、右动物的图像。

游戏开发课程设计报告模版-扫雷游戏报告(定稿)

中原工学院信息商务学院 课程设计报告 2016~2017学年第一学期 课程游戏开发课程设计 课程设计名称扫雷游戏 学生姓名*** 学号***** 专业班级数媒141 指导教师郑全录 2016年12月

目录 第一章设计内容及要求 (1) 1.1 扫雷游戏的基本要求 (1) 1.2 游戏需要实现的主要功能 (1) 第二章需求分析 (2) 2.1扫雷游戏界面设计 (2) 2.2 雷区的设计 (2) 2.3 音效的设计 (3) 2.4 扫雷英雄榜的设计 (3) 第三章总体设计 (5) 3.1 总体功能图 (5) 3.2 总体流程图 (5) 第四章主要功能设计流程 (6) 4.1 雷区设计流程图 (6) 4.2 音效设计流程图 (6) 4.3 英雄榜设计流程图 (7) 第五章主要功能设计流程 (8) 5.1 类之间关系图 (8) 5.2程序运行效果图 (8) 5.2.1 游戏登录界面 (8) 5.2.2游戏菜单界面 (9) 5.2.3游戏运行界面 (10) 5.2.4游戏英雄榜界面 (12) 第六章总结 (13) 参考文献 (14) 附录 (15)

第一章设计内容及要求 1.1扫雷游戏的基本要求 当前各种游戏层出不穷,因为游戏的开发成本非常大,所以游戏的开发具有一定的风险性,但是一些小游戏的开发成本具有成本小,编写简单的优势,所以这些小游戏在游戏开发中也占有一席之地。在这类小游戏中包括益智类游戏,它以画面精美、游戏方法简单等特点得到大家的认可。成为人们在工作之余不可或缺的好伙伴。针对这种情况我选择了扫雷游戏该课题作为我的课程题目。 Windows XP和Windows 7系统提供的扫雷游戏是一个很有趣的游戏。本次课程设计的主要任务是使用JA V A语言编写一个与其类似的扫雷游戏。具体要求如下: 1、扫雷游戏分为初级、中级和高级三个级别,同时扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 2、选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击雷区中任何一个方块便启动了计时器。 3、用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下没有雷,则显示一个数字,该数字代表此方块周围的8个方块中共有多少颗雷。 4、如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),窗口左上角的雷数计数器将会减少一个。 5、扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 6、用户如果遇到疑问的方块,可以勾选游戏菜单下的标记选项卡(或者用快捷键Alt+G然后点击M)即可标记该可疑方块,此时双击右键并可出现“?”标记。另有颜色选项,当用户选中该项时,游戏将以最低图像像素来显示。 7、如果用户需要使用提示声,可选中声音选项,此时将听到计时的咔嗒声。当用户点中雷时,将有爆炸声产生;胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2游戏需要实现的主要功能 1、用户可以自定义级别并且可以任意输入雷数; 2、具有计时功能,既显示用户完成所有扫雷任务所需要的时间; 3、自动保存扫雷英雄榜。

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()

基于Java的动物换位游戏软件

目录 1. 软件主要功能 (2) 2. 类总体设计 (2) 2.1 类组合关系图 (2) 2.2 系统流程图 (3) 2.3 主类 (4) 2.4 其他类 (4) 2.4.1 Animal.java (4) 2.4.2 Point.java (4) 2.4.3 Stone.java (4) 2.4.4 HandleMouse.java (4) 2.4.5 AutoMoveAnimal.java (4) 2.4.6 Customdlg.java (4) 2.4.7 People.java (4) 2.4.8 Record.java (4) 2.4.9 ShowRecordDialog.java (4) 3. 类详细设计 (4) 3.1 主类 (4) 3.2 其他类 (6) 4. 关键成员函数代码 (7) 5. 软件运行结果 (15) 结论 (16) 参考文献 (16) 1. 软件主要功能

采用java技术设计动物换位游戏软件,设计要求如下: (1)程序分为3个级别,用户可以通过界面上提供的菜单来选择“初级”、“中级”和“高级”这三个级别。对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物。 (2)用鼠标单击一个动物,如果该动物的前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃(跳跃时不能超过2块石头)。(3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。 (4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。 (5)可以随时单击界面上提供的按钮,重新开始当前的级别。 (6)用户通过菜单选项,可以选择左、右动物的图像。 2. 类总体设计 2.1 类组合关系图 在设计动物换位时需要编写10个Java源文件:ChangeAnimalWindow.java、Animal.java、Point.java、Stone.java、HandleMouse.java、AutoMoveAnimal.java、Customdlg.java、People.java、Record.java和ShowRecordDialog.java。 动物换位除了需要编写上述10个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如:JmenuItem、File和Jbutton类等。动物换位所用到的一些重要的类以及之间组合关系如图2.1所示。 图2.1 类之间的组合关系 2.2 系统流程图

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)计算器主界面

动物换位游戏java课设

成绩评定表 学生姓名班级学号 专业课程设计题目基于Java的动物 换位游戏软件设 计 评 语 组长签字: 成绩 日期2013 年月日

课程设计任务书 学院信息学院专业 学生姓名班级学号 课程设计题目基于Java的动物换位游戏软件设计 实践教学要求与任务: 采用java技术设计动物换位游戏软件,设计要求如下: (1)程序分为3个级别,用户可以通过界面上提供的菜单来选择“初级”、“中级” 和“高级”这三个级别。对于“初级”级别,在水平排列的7块石头上的左右 各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水 平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物; 对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物。 (2)用鼠标单击一个动物,如果该动物的前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃(跳 跃时不能超过2块石头)。 (3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。 (4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。 (5)可以随时单击界面上提供的按钮,重新开始当前的级别。 (6)用户通过菜单选项,可以选择左、右动物的图像。 工作计划与进度安排: 第18周:布置课程设计任务,查阅资料,分组设计,程序调试。 第19周:程序调试,编写课程设计报告,验收,答辩。 指导教师: 2013年 6月20日专业负责人: 2013年 6月20日 学院教学副院长: 2013年 6月20日

java扫雷游戏课程设计报告

Java课程设计报告 姓名 号学 系院 级班 业专 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 (2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。. (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为

是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 (6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。 (7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2 需实现的主要功能 (1)用户可以自定义级别并且可以任意输入雷数; (2)具有计时功能,即显示用户完成移动盘子所花费的时间; (3)用户可以选择是否有音效; (4)自动保存扫雷英雄榜; 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了菜单、按钮、面板…等组件,菜单主要包括开始,选择级别,标记,扫雷英雄榜,退出,按钮的功能是重新开始新的游戏。 2.2 雷区的设计 MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成 图2-1 MineArea类的UML图

Java程序设计课程设计指导

《Java程序设计》课程设计指导 课程编号:02 学时:2周 适用对象:信息与计算科学专业 先修课程:《Java程序设计》 一、课程的性质与任务 《Java 程序设计》课程设计是《Java 程序设计》课程的独立实践性环节,旨在结束或即将结束《Java 程序设计》课程后通过2 周的集中性强化训练,使学生消化运用已学的知识,全面掌握Java 的基本知识,提高Java 编程技术,初步尝试利用Java 语言从事软件开发工作。 二、课程设计目的与要求 1. 课程设计的目的 通过实验手段,使学生进一步加深面向对象的编程设计思想,提高学生在软件设计过程中分析问题和解决问题的实际动手能力,使学生的理论知识和实践技能得到共同发展。 2.课程设计的要求 (1)关于选题:参加课程设计的学生首先要了解设计的任务,仔细思考设计要求,然后根据自身的基础和能力情况选择具体的题目。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则; (2)关于设计的总要求:在进行设计时应根据所选题目写出设计目标,按照设计目标进行设计; (3)验收:在课程设计完成后应由指导教师当场运行、验收,只有在验收合格后才能算设计部分的结束。 (4)设计报告:课程设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告一般要以固定规格的纸张书写并装订字迹及图形要清楚、工整(电子文档尤佳)。内容及要求如下: ●设计任务、要求及所用软件环境或工具; ●软件开发框架; ●模块化程序设计; ●界面及运行效果、测试工具与测试效果; ●设计总结和体会。

三、课程设计的内容与安排 课程设计教材中共有12个题目,根据学生人数将学生2~4人分为一组,每组从9个课程设计题目中选择一个来完成。课程设计题目如下: 一记忆测试系统 实验内容: 改进记忆测试系统程序,具体要求如下: (1)改进程序,使用户能为方块选择更多种图标 (2)改进测试条件。 (3)改进程序,增加更加丰富的音乐效果。 (4)在“选择级别”菜单中增加“自定义”菜单选项,当用户单击“自定义”的菜单选项时,将弹出一个对话框,在该对话框中设置要求点击同样图标的个数。 二保存计算过程的计算器 实验内容: 参考Windows 2000/XP系统提供的计算器,改进计算器程序:(1)应增加以下功能:提供二进制运算;增加sqrt、1/x、x n、n!、log、ln、PI、sin、cos、exp及 ( )运算。(2)设置标准运算界面和科学运算界面,合理组织每个界面中的运算。(3)保存计算过程和结果及当前时间到文件。 三 Hannoi塔 实验内容: 改进Hannoi塔程序,增加一些新的功能: (1)增加计时功能,即显示用户完成移动盘子所花费的时间。 (2)用户可以设置最大和最小盘子的大小。 (3)用户可以选择播放和暂停音乐。 (4)用户可以设置盘子的数目。 (5)用户可以设置盘子的颜色及背景的颜色。 (6)用户可以将自动移动盘子的文本信息保存到文件。

扫雷游戏-课程设计报告

J A V A课程设计题目:扫雷游戏 院(系)计算机信息工程学院 专业网络工程 班级 13级网络工程1班 学生姓名方琴刘莉虹程子卿薛中意 设计时间 2015年8月 指导教师万中英

提交日期 2015年10月8日 摘要 《扫雷》是一款大众类的益智小游戏。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。先任意点开少量的方格,没有爆炸时,会出现一个数字,这个数字代表的意思是以它为中心的9个格子内所有雷的个数。一般围在一堆数字中间的有可能是雷,你在你认为是雷的那里插旗,就可以把它设定为雷,然后在数字区用鼠标左右键双击,可以打开非雷区,等打开所有非雷区,你就赢了。 采用GUI界面设计,窗口定位,绘图机制,鼠标监听等Java技术。用户可以自己选择地雷的数量,地雷随机分布在17*24的方块矩阵中,地雷数量越多,难度越大。鼠标放在方格上,单击鼠标左键开始游戏,按空格键插旗。如果插旗错误,或是点击到了地雷,则游戏失败。

1 引言 该设计的目的及意义 该设计的要求 相关技术 2 总体设计 功能设计 3 详细设计 系统界面设计 流程图 界面截图

程序描述 选择地雷数量 游戏界面 4 课程设计总结 遇到问题解决问题过程 系统存在的问题,进一步要做的工作 课程设计心得体会 5 附录(程序代码) 该设计的目的及意义

1.利用扫雷游戏巩固和Java语言程序设计这一课程的基本 知识的理解和掌握; 2.掌握Java语言程序设计中编程和程序调试的基本技能; 3.基本掌握完全面向对象程序设计的基本思路和方法; 4.利用Java语言程序设计学会基本的软件设计; 5.掌握书写程序设计说明文档的能力。 课程设计要求 1. 分析课程设计题目的思路及要求; 2. 编写程序代码,调试程序使其能正确运行; 3. 设计完成的软件要便于操作和使用,有整齐、美观的使用界面; 4. 能实现简单的扫雷游戏; 相关技术

VB课程设计报告——扫雷游戏

VB课程设计报告 -------扫雷游戏马学清1008260132 指导老师:张小兵 一、题目介绍 在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用Turbo C编写了与它功能相仿的扫雷游戏,寓学于乐。 程序功能 二、程序功能 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的“开始”按钮可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时失败。 三、程序设计目的 1.培养综合运用所学知识独立完成课题的能力。 2.更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 3.提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 4.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 5.培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核 四、游戏规则 设计10×10格区域,单击鼠标后,在此格中显示的数字,则表示它周围就有几个空格内含有的地雷数,周围没有地雷的显示空白,则不能再单击了。如果是地雷,则游戏结束。如果判断是地雷,可以单击鼠标右键标出,显示红色,要取消红旗标志则再单击鼠标右键,当所有地雷都标出,每个空格都处理过,那么游戏就胜利结束。 五、程序源代码 '级别 Private Sub Form_Load() '默认初级 dengji = 1 Call nandu(dengji)

相关文档
最新文档