JAVA编写俄罗斯方块设计文档详细说明书

JAVA编写俄罗斯方块设计文档详细说明书
JAVA编写俄罗斯方块设计文档详细说明书

关于设计文档详细说明书

---------俄罗斯方块的实现

一、实现此游戏的软件,即开发环境:JCreator;

二、目的:为游戏爱好者设计的一套娱乐软件。

三、开发人员:

四、具体模块划分如下(功能简要说明):

1、

ErsBlocksGame.java:

游戏主类,继承自JFrame类,负责游戏的全局控制。

内含:

1、一个GameCanvas画布类的实例引用,

2、一个保存当前活动块(ErsBlock)实例的引用,

3、一个保存当前控制面板(ControlPanel)实例的引用

ErsBox.java:

方格类,是组成块的基本元素,用自己的颜色来表示块的外观。

2、

ControlPanel.java:

控制面板类,继承自JPanel.上边安放预显窗口、等级、得分、控制按钮主要用来控制游戏进程。

3、

ErsBlock.java:

块类,继承自线程类(Thread),由4 * 4 个方格(ErsBox)构成一个块控制块的移动、下落、变形等

4、

GameCanvas.java:

画布类,内有<行数> * <列数>个方格类实例。继承自JPanel类。ErsBlock线程类动态改变画布类的方格颜色,画布类通过检查方格颜色来体现ErsBlock块的移动情况。

五、具体模块功能的实现:

(1)、

ErsBlockGame类说明(游戏主类,继承自JFrame类,负责游戏的全局控制):

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

ErsBlockGame中用到的方法具体说明如下:

1、main() ---程序入口函数;

2、ErsBlockGame() ---构造函数,初始化窗体界面;

a、setSize() ---窗口大小

b、setLocation()--利用屏幕和主窗体的大小差值,使窗口居中;

c、createMenu()---建立并设置窗口菜单;

依次添加:

菜单栏->bar

菜单项->mGame,mControl,mWindowStyle

子菜单->

mGame->miNewGame,miSetBlockColor,miSetBackColor,miTurnHarder,miTurnEasier,miExit;

mControl->miPlay,miPause,miResume,miStop;

mWindowStyle->miAsWindows,miAsMotif,miAsMetal

依次添加各子菜单的事件监听器:

miNewGame---新游戏

a、stopGame()---先停止原来的游戏(判断ErsBlock类对象Block是否为空,如不为空,即调用它的pauseMove()方法,即stoping为ture);

b、reset() ---重新还原状态(分别调用ctrlPanel.reset()控制面板复位

和canvas.reset()画布复位);

c、setLevel() ---设置级别为初始值为5

miSetBlockColor---设置活动的方块的色(JColorChooser.showDialog选择颜色对话框)

miSetBackColor---设置画布的背景色(同上)

miTurnHarder---设置高一级的级别(getLevel()与MAX_LEVEL的比较,再调用setLevel())

miTurnEasier---设低一级的级别(getLevel()与Min_LEVEL的比较,再调用setLevel())

miExit ---退出

miPlay---开始游戏(调用playGame()=>this.play()=>this.reset()=>新建线程并启动start()=>调用Game(此类实现Runnable接口)的run()方法=>判断block是否为空,判断checkFullLine()是否有满行,判断游戏是否结束;随机产生画布类的方块类型和控制面板类的方块类型)

miPause---停止游戏(调用pauseGame())

miResume---唤醒游戏(调用resumeGame()=>判断ErsBlock类对象Block是否为空,如不为空,即调用它的resumeMove()方法,即stoping为false)

miStop---停止游戏(调用stopGame()=>判断ErsBlock类对象Block是否为空,如不为空,即调用它的stopMove()方法,即moving为false)

miAsWindows----设置为windows界面(调用this.setWindowStyle(),再调用canvas,ctrlPanel的fanning())

miAsMotif ----设置为motif界面(同上)

miAsMetal ----设置为metal界面(同上)

mguanyu ----关于对话框;

d、canvas ---创建画布类对象(调用canvas的构造函数);

e、ctrlPanel ---创建控制面板类对象(调用ctrlPanel的构造函数);

f、addWindowListener--添加窗口适配器(调用stopGame());

g、addComponentListener--添加组件适配器(调用canvas.fanning());

h、show() ---显示窗体;

i、canvas.fanning() ---根据窗口的大小,自动调整方格的尺寸;

j、以下为外部类调用的方法:

isPlaying()-----判断游戏是否还在进行;

getCurBlock()----得到当前活动的块;

getCanvas()-----得到当前画布;

getScore()------得到游戏积分;

getScoreForLevelUpdate()----得到自上次升级以来的游戏积分,升级以后,此积分清零;

levelUpdate()-----当分数累计到一定的数量时,升一次级;

reportGameOver()------报告游戏结束了;

2、内部类:Game

Methord: checkFullLine()---检查是否有全填满的行;

run() ---游戏启动之处;

isGameOver() ---判断游戏是否已经结束;

a、reportGameOver()---报告游戏结束了;

3、内部类:AboutDialog------显示关于对话框;

(2)、ErsBox类的说明:(方格类,是组成块的基本元素,用自己的颜色来表示块的外观)

ErsBox中用到的方法具体说明如下:

1、ErsBox()---方格类的构造函数,接受一个布尔值,判断是否用前景色来添丛方块

2、clone() ---Cloneable接口的抽象方法在此实现

3、setSize()---设置方格的尺寸

4、getSize()---得到此方格的尺寸

5、isColorBox()--判断是否用前景色来表现此方块

6、setColor---设置方格的颜色

(3)、ControlPanel类:

import javaz.swing.*;

import javax.swing.border.Border;

import javax.swing.border.EtchedBorder;

import java.awt.*;

import java.awt.event.*;

包含的参数:

private JTextField tfLevel = new JTextField("" + ErsBlocksGame.DEFAULT_LEVEL), tfScore = new JTextField("0");定义两个文本域分别用来显示游戏级别和得分。

private JButton btPlay = new JButton("Play"), btPause = new JButton("Pause"), btStop = new JButton("Stop"), btTurnLevelUp = new JButton("Turn hard"),

btTurnLevelDown = new JButton("Turn easy"); 定义五个按钮

private JPanel plTip = new JPanel(new BorderLayout()); 定义预制窗口面版()

private TipPanel plTipBlock = new TipPanel(); 定义预制窗口类的一个实例

private JPanel plInfo = new JPanel(new GridLayout(4, 1));定义游戏级别和得分的面版(4行1列)

private JPanel plButton = new JPanel(new GridLayout(5, 1));定义按钮面版(5行1列)

private Timer timer;定义Timer类的一个对象。

private ErsBlocksGame game;定义ErsBlocksGame类的一个实例。

private Border border = new EtchedBorder(EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));定义面版的边框。

包含的方法:

A、ControlPanel:类的构造函数继承面版类(布局方式为网格布局3行1列)用来摆放:按钮(btPlay、btPause、btStop、btTurnLevelUp、btTurnLevelDown)、文本域(tfLevel、tfScore)、预显框(border)及按钮的监听事件。

按钮的监听事件包括:

addKeyListener(new ControlKeyListener()):调用内部类ontrolKeyListener

btPlay.addActionListener:btPlay按钮的监听事件,调用ErsBlocksGame 类的playGame方法。开始一个游戏。

btPause.addActionListener:btPause按钮的监听事件,调用ErsBlocksGame 类的pauseGame方法。通过判断按钮的文字实现游戏暂停和游戏继续。

btStop.addActionListener:btStop按钮的监听事件,调用ErsBlocksGame类的stopGame方法

btTurnLevelUp.addActionListener:提高级别按钮的监听事件,通过tfLevel文本域显示的级别与ErsBlocksGame类的变量MAX_LEVEL比较,小于则加1

btTurnLevelDown.addActionListener:降低级别按钮的监听事件,通过tfLevel文本域显示的级别判断level是否大于1,大于1则减1。

addComponentListener(new ComponentAdapter()):组建监听事件。当预显窗口改变大小时调用TipPanel类的fanning()方法。

初始化timer:

B、setTipStyle(int style):设置预显窗口中方块的样式,对应ErsBlock类的STYLES中的28个值。调用TipPanel类的setStyle(style)方法。将style参数传递给setStyle.

C、unsetTipStyle():清空预制面版。调用TipPanel类的unsetStyle()方法。

D、getLevel():取得用户设置的游戏等级(level)。返回level得值。(被主函数调用)

E、setLevel(int level):让用户修改游戏难度等级。(被主函数调用)

F、setPalyNuttonEnable(boolean enable):设置开始按钮的状态。Ture为可用,False为不可用。

G、setPauseButtonLable(boolean pause):设置暂停按钮的状态。(被主函数调用)

H、setBtTurnLevelUpEnable(boolean enable):设置“选择级别”按钮的状态。Ture为可用,False为不可用。(被主函数调用)

I、setBtTurnLevelDownEnable(boolean enable):设置“选择级别”按钮的状态。Ture为可用,False为不可用。(被主函数调用)

J、reset():重置控制面版,将游戏积分清零,预显窗口清空。

K、fanning():重新计算TipPanel里的boxes[][]里的小框的大小,调用TipPanel类的fanning()方法。

当游戏的窗体改变大小及风格时调用次方法。

TipPanel为内部类,继承面版类。

包含的参数:

private Color backColor = Color.darkGray, frontColor = Color.lightGray; 定义两种颜色,

backColor为背景色(暗黑色),frontColor为前景色(亮色)。

private ErsBox[][] boxes =new ErsBox[ErsBlock.BOXES_ROWS][ErsBlock.BOXES_COLS];定义一个

ErsBox类的对象数组boxes,初始化为4行4列

private int style, boxWidth, boxHeight;定义三个整型变量(style:表示方块的类型;boxWidth: 表示小方格的宽度;boxHeight:表示小方格的高度) private boolean isTiled = false;

包含的方法:

A、TipPanel():预显窗口类构造函数.初始化预显窗口,设置预显窗口的行数和列数。

B、TipPanel(Color backColor,Color frontColor):预显窗口类构造函数,backColor为窗口的被景色,frontColor为窗口的前景色(方块的颜色)。

C、setStyle(int style):设置预显窗口的方块式样。接收ControlPanel类的setTipStyle(style)方法传递过来的style的值。

D、paintComponent(Graphics g):覆盖JComponent类的函数,画组建。

E、fanning():根据窗口的大小,自动调整方格的尺寸。boxWidth值为预显窗口的大小除以列数,boxHeight值为预显窗口的大小除以行数。

内部类:ControlKeyListener继承KeyAdapter

实现方块的移动及变形。

首先判断ErsBlocksGame类的isPlaying ()方法的值Ture继续执行,False返回。

当isPlaying()的值为True时用switch..case方法检查玩家按下的是哪个键:

VK_DOWN:下键为向下移动,调用ErsBlock类的moveDown方法。

VK_LEFT:左键为向左移动,调用ErsBlock类的moveLeft方法。

VK_RIGHT:右键为向右移动,调用ErsBlock类的moveRight方法。

VK_UP:上键为方块变形,调用ErsBlock类的turnNext方法。

(4)、ErsBlock---块类

final static int BOXES_ROWS = 4//设置静态变量BOXES_ROWS=4--方格所占行数

final static int BOXES_COLS = 4//设置静态变量BOXES_ROWS=4--方格所占列数

final static int LEVEL_FLATNESS_GENE = 3//设置各级之间速度的差额

final static int BETWEEN_LEVELS_DEGRESS_TIME = 50//相近的两级之间,块每下落一行的时间差别为多少(毫秒)

final static int BLOCK_KIND_NUMBER = 7//方块的样式数目为7

final static int BLOCK_STA TUS_NUMBER = 4//每一个样式的方块的反转状态种类为4 final static int[][] STYLES = {// 共28种状态

{0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态

{0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态

{0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态

{0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态

{0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态

{0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态

{0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态

建立对象

GameCanvas canvas

ErsBox[][] boxes = new ErsBox[BOXES_ROWS][BOXES_COLS];

设置参数

style x y level

构造函数,产生一个特定的块

style 块的样式,对应STYLES的28个值中的一个

y 起始位置,左上角在canvas中的坐标行

x 起始位置,左上角在canvas中的坐标列

level 游戏等级,控制块的下落速度

canvas 画板

构造函数ErsBlock()//用于改变位置时设定方格变换方块颜色的位置

线程类的run()函数覆盖,下落块,直到块不能再下落

moveLeft()//块向左移动一格

moveRight()//块向右移动一格

moveDown()//块向下落一格

turnNext()//改变方格形状

pauseMove()//暂停块的下落,对应游戏暂停

resumeMove()//继续块的下落,对应游戏继

earse()//将当前块从画布的对应位置移除,要等到下次重画画布时才能反映出来display()//让当前块放置在画布的对应位置上,要等到下次重画画布时才能看见isMoveAble//当前块能否移动到newRow/newCol所指定的位置

newRow int, 目的地所在行

newCol int, 目的地所在列

boolean, true-能移动,false-不能

isTurnAble(int newStyle)//前块能否变成newStyle所指定的块样式,主要是要考虑边界以及被其它块挡住、不能移动的情况

newStyle int,希望改变的块样式,对应STYLES的28个值中的一个

boolean,true-能改变,false-不能改变

turnTo(int newStyle)//将当前块变成newStyle所指定的块样式

newStyle int,将要改变成的块样式,对应STYLES的28个值中的一个

boolean,true-改变成功,false-改变失败

(5)、类:GameCanvas;

包:swing,awt,swing.border.EtchedBorder;

构造函数:

GameCanvas(int rows, int cols)

GameCanvas(int rows, int cols,backcolor,frontcolor)

定义一个整型的行和整型的列作为数组ErsBox[][]的参数,用于得到整个画布。

里面的setBorder(new EtchedBorder(

EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)))用于设置画布的边框

设置画布的前景色和背景色

成员函数:

fanning() --- 根据窗口大小自动调整方格尺寸,将值赋给boxHeight,boxWidth

在主函数里调用

getBackgroundColor() --- 得到背景颜色,返回backColor

getBlockColor() --- 设置方块颜色,返回frontColor

getBox(int row, int col) --- 得到某一行某一列的方格引用

getCols() --- 得到方格列数

getRows() --- 得到方格行数

getScore() --- 得到成绩

getScoreForLevelUpdate() --- 得到上一次升级后的积分

在主函数

public int getScoreForLevelUpdate() {

if (canvas != null) return canvas.getScoreForLevelUpdate();

return 0;}

调用

paintCompontent(Graphics g) --- 覆盖JComponent类的函数,画组件。

removeLine(int row) --- 清除填满的行,由主函数调用

reset() --- 重置画布:积分清零,升级后的积分清零将方块的颜色设为假

在主函数里调用

resetScoreForLevelUpdate( ) --- 升级后将上一次升级以来的积分清零

"scoreForLevelUpdate -= ErsBlocksGame.PER_LEVEL_SCORE;"这句话

利用主函数里的public final static int PER_LEVEL_SCORE = PER_LINE_SCORE * 20;

给scoreForLevelUpdate重新赋值

setBackgroundColor(Color backColor) --- 设置背景颜色

变量:

backColor --- 设置背景色,返回给getBackgroundColor()

boxHeight --- 方块的高度

boxWidth --- 方块的宽度

boxes --- 数组变量得到画布的行和列

cols --- 画布的列

frontColor --- 设置前景色

rows --- 画布的行

score --- 成绩积分

scoreForLevelUpdate --- 每次升级后的积分

类流程:

首先导入swing,awt,swing.border.EtchedBorder这几个包.

创建一个类GameCanvas,继承自JPanel类.

写出画布的构造函数GameCanvas(int rows, int cols)

定义一个数组ErsBox[][]得到行和列

用etBorder(new EtchedBorder(

EtchedBorder.RAISED, Color.white, new Color(148, 145, 140))设置边框

然后设置背景色

public void setBackgroundColor(Color backColor){this.backColor = backColor;}

取得背景色

public Color getBackgroundColor() {return backColor}

设置前景色(方块颜色)

public void setBlockColor(Color frontColor){this.frontColor = frontColor;}

取得前景色(方块颜色)

public Color getBlockColor(){return frontColor;}

取得画布中方格的行数

public int getRows(){return rows;}

取得画布中方格的列数

public int getCols() {return cols;}

取得游戏成绩

public int getScore(){return score;}

取得自上一次升级后的积分用于计算什么时候升级

public int getScoreForLevelUpdate(){return scoreForLevelUpdate;}

计算上一次升级后的积分,给scoreForLevelUpdate重新赋值

public void resetScoreForLevelUpdate()

{scoreForLevelUpdate -= ErsBlocksGame.PER_LEVEL_SCORE;}

本类里最关键的一个成员函数

removeLine(int row)

检查被填满的行,将此行清除,并为游戏者加分,最后再逐行重新克隆

此函数被主函数调用

score积分以每100分累加

scoreForLevelUpdate升级后的积分以每100分累加

由主函数调用

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算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

俄罗斯方块游戏的开发需求分析

俄罗斯方块游戏的开发 组长:XXX 组员:XXX XXX XXX XXX 05软件工程一班 一、课程设计的目的和意义 俄罗斯方块游戏是一个经典的小游戏,由于它简单有趣,因而得到了广泛的流行,男女老幼都适合。而俄罗斯方块游戏的设计工作复杂且富有挑战性,它包含的内容多,涉及的知识广泛,与图形界面联系较大,包括界面的显示与更新、数据收集等,在设计的过程中,必将运用到各方面的知识,这对于visualbasi语言设 计者而言,是个很好的锻炼机会。 二、系统功能设计 本系统主要设计以下几种功能 1、游戏难度选择功能 游戏难度选择界面设置在程序运行开始时,一共有九种难度供玩家选择,每选一级难度,都会相应地显示出代表该难度的图片。开始时不设置任何默认的难度,如果玩家不选难度直接按“Enter”进入,将会弹出提示框,提示其先选难度再 进入。 2、方块下落、变形功能 在整个俄罗斯方块游戏中,方块的设计是核心。这里设计了一个方块类:Square(),用来生成方块以及实现块的左移、右移、向下、变形、重画、同步显 示、初始化新块等。 3、自动升级功能 当分数累积到一定大小时,系统将自动为玩家提高难度。这里设置了每消除10行方块,就增加一级难度。当难度增加的时候,方块会相应地改变颜色,以作为 对玩家的提示。 4、游戏音乐功能 游戏开始音乐就自动播放,游戏暂停与结束时音乐相应消除。 5、获取帮助功能 这里设置了一个类,用来显示帮助,按F1键就能弹出窗口,显示游戏规则。

三、系统功能设计分析 俄罗斯方块游戏根据功能的不同,设置了如下12个类:Square,Command, GameArea,GameSetting,GameOver,Help,ImagePanel,JieMian,MyPanel, MyTimer,PlayMidi,WinListener,每个类的描述如下: 1、Square,方块类。这个类中定义了生成方块的方法,用二维数组int[][]pattern,存放7种方块的四种状态。在构造方法中以随机的形式生成方块,同时提供了以下几种方法:reset(),leftTurn(),leftMove(),rightMove(),fallDown(),assertValid(int t,int s,int row,int col),dispBlock(int s)。分别实现方块的重画、翻转、 左移、右移、下落、同步显示等功能。 2、Command,处理控制类。这是一个实现ActionListener接口的类,主要处理点击按钮事件。类中定义了三个int型变量:button_play,button_quit,button_pause,和一个boolean型的变量:pause_resume,并赋值。在GameArea类中通过事件响应,在按钮执行方法中调用其值,使用switch语句,根据不同按钮不同的值, 来响应不同的事件。 3、GameArea,游戏界面类。GameArea继承了JFrame,是俄罗斯方块的主要游 戏界面。这个类定义了GameSetting类的gameScr对象和ImagePanel类的imagepanel对象作为游戏区域面板和控制区域面板。在游戏区域,主要是根据相应格子的设置标志来显示相应的图形图片,这样就实现了俄罗斯方块的实时显 示。 4、GameSetting,游戏画布类。这个类生成的对象将作为游戏界面的方块下落区域,画布的设置为15行10列,当中的方格边长为30,类中还定义了一个二维数组int[][]scrArr作为屏幕数组,表示每一个方格。游戏区域中每一个方格是否存在游戏方块是由该方格的值来决定的,如果该方格的值为1,则表示该方格中存在游戏方块;如果该方格中的值为0,则表示该方格中不存在游戏方块,因此二维数组用于记录游戏区域中每个小方格的值。此外,类中还定义了画方块的方法,根据不同的难度画出不同颜色的方块。单击Play按钮时,系统调用initScr()方法,初始化屏幕,将屏幕数组清零。当满足满行删除的条件时,系统调用deleteFullLine()方法,进行删行加分,而且每删除十行,难度自动增加一级,方块颜色改变,并在难度显示框中相应显示。 5、GameOver,游戏结束弹出提示框类。当游戏结束时,系统弹出提示,包括玩 家分数以及询问玩家要继续游戏还是退出。 6、Help,帮助类。在游戏界面,按F1键,弹出提示窗口,获取帮助。 7、ImagePanel,背景图片类。这个类继承了JPanel类,用来作为游戏界面中控 制区域的容器,并添加图片。 8、JieMian,主界面类。这个类继承了JPanel类,作为游戏的第一个界面,也是难度选择界面。定义了9个单选按钮,当玩家未选任何难度就按Enter时,系统会弹出一个提示框,提示玩家先选难度再进入。 9、MyPanel,重写MyPanel类,使Panel的四周留空间。

JAVA课程设计学籍管理系统

课程设计任务书题目:学籍管理系统 组员 学号 组员 学号 组员 学号 专业 课程JAVA 指导教师 完成时间:2011年9月——2011年12月 计算机科学系制

课程设计任务书及成绩评定

本学籍管理系统共有6个java源文件。类之间的主要关系如图所示。 该java文件的类负责创建学籍管理系统主窗口。该类含有main方法,程序从该类开始执行。 该文件的类负责创建学籍管理系统的学生信息录入界面。 该文件的类负责创建学籍管理系统的学生信息修改界面。 该文件的类负责创建学籍管理系统的学生信息查询界面。 该文件的类负责创建学籍管理系统的学生信息删除界面。 负责创建存放学生信息的对象。 1.具体设计 1.1主类StudentManager 1.成员变量(见下表) 主要成员变量(属性) 成员变量描述变量类型名称 基本信息录入界面StudentSituation 基本信息录入 基本信息修改界面ModifySituation 基本信息修改 基本信息查询界面Inquest 基本信息查询 基本信息删除界面Delete 基本信息删除 菜单选项JmenuItem 录入,修改,查询,删除存放基本信息的散列表Hashtable 基本信息 存放散列表的文件File file 2.方法(见下表) 主要方法 名称功能备注 StudentManager 创建程序主窗口构造方法actionPerformed 处理ActionEvent事件接口方法 main 程序开始运行 3.代码 import .*; import .*;

import .*; public class StudentManager extends JFrame implements ActionListener { StudentSituation 基本信息录入=null; ddActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); (card); file=new File("基本信息.txt"); if(!()) { try{ FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); (基本信息); (); (); } catch(IOException e) { } } 基本信息录入=new StudentSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); ("欢迎语界面",label); ("录入界面",基本信息录入); ("修改界面",基本信息修改); ("删除界面",基本信息删除); (pCenter,; (); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { (0); } }); setVisible(true); setBounds(100,50,420,380); validate(); } public void actionPerformed(ActionEvent e) { if()==录入) { (pCenter,"录入界面"); } else if()==修改) { (pCenter,"修改界面"); } else if()==查询) { etVisible(true); }

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课程设计报告

湖北大学 本科课程设计 题目 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语言的俄罗斯方块游戏课程设计

基于Java语言的 俄罗斯方块游戏课程设计 学院:X 专业:X 班级:X 姓名:X 学号:X 指导老师:X

摘要 第一章引言 1.1 设计的课题背景 1.2 研究课题的任务,目的和意义 1.2.1 课题的任务 1.2.2 课题的目的 1.2.3 课题的意义 1.3 系统的主要功能和特色 1.3.1 系统的主要功能 1.3.2 系统的特色 第二章系统需求分析 2.1 本课题研究现状分析 2.2 要解决的问题及解决方法 2.3 系统设计的主要内容、目标 2.3.1 系统设计的主要内容 2.3.2 设计的目标 2.4 使用的关键技术 第三章系统的详细设计 3.1 系统的总体系结构 3.2 系统各模块的界面设计及实现 3.2.1 主窗体程序模块设计与实现 3.2.2 方块变换模块设计与实现 3.2.3 满行消除并计分模块设计与实现第四章系统的安装与测试 4.1 系统的安装 4.1.1 系统的运行环境 4.1.2 系统的安装 4.2 系统的测试 结束语

参考文献 附录:有关程序代码

摘要: 在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。为此,我设计了一款简单的俄罗斯方块JAVA 游戏程序,以便更好的满足广大电脑工作者闲暇之余的消遣,并且也让我学到编程技术。 关键字:俄罗斯方块游戏、Java语言、编程

JAVA课程设计任务书 - 科学计算器

《高级语言程序设计(2)》课程设计报告 专业:班级:学号:姓名: 完成日期: 指导教师: 1、程序设计说明书 【设计题目】科学计算器 【问题描述】本程序为设计一个科学计算器,用于进行数值计算。可以进行数据的加减乘除,对数等计算。 【软件功能】 1 图形界面:应用AWT和Swing设计工作界面,按下数字时显示数字,按下“=”时显示结果。 2 计算器基本功能:加减乘除四则运算,倒数,开平方等。 3 附加运算功能:三角函数,对数,阶乘,度转化为弧度等。 4 计算器的存储功能:清除中间结果,使用中间结果,存储中间结果及累加中间结果 5 用不同颜色进行分区 【算法思想】 本程序设计一个主类和四个内部类。通过在主类中调用四个类来实现程序的各个功能。 【类的设计】 1主类SmartCalculator类,继承了JFrame类 ○1成员变量 tf是JTextField对象,单行文本框,用来显示数据。 panel1,panel2,panel3,panel4是JPanel对象,用来盛放按钮。Panel1盛放“←”,“CE”,“C”按钮,Panel2盛放功能区按钮,Panel3盛放记忆区按钮,Panel4盛放面板Panel1和Panel2 isResult,flag是布尔型变量 result是double型变量,存储结果 SpecialNumActionListener是SpecialNum类的对象,监听特殊数字按钮 df是DecimalFormat类的对象,控制输出格式 ○2方法 SmartCauculator是构造方法,完成面板的布局并调用init方法 init方法调用addButton方法向面板中增加按钮 addButtion方法统一设置按钮的使用方式,参数包括panel,name,action,color,每次完成向面板添加按钮,设置名字,添加键盘监听器和设置按钮颜色 getResult方法实现四则运算,并输出 main方法,程序入口 2内部类FunctionSigns,继承接口ActionListener,实现接口的actionProform抽象方法,完成开平方,求对数等操作 3内部类ClearArea,继承接口ActionListener,实现接口的actionProform抽象方法,对清除区三个按钮“←”,“CE”,“C”进行监听,实现删除功能。 4内部类SpecialNum,继承接口ActionListener,实现接口的actionProform抽象方法,对π,e,及数字键监听 5 Dot对小数点进行监听 【用户界面】

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程序设计课程设计 之 俄罗斯方块 年级:13级 班级:T412 网络工程 指导老师:朱林 小组成员: 20138346021 许浩洋

时间:2015年11月11日 目录 摘要................................................................. 第一章课程设计要求.................................................. 第二章设计概要...................................................... 2.1 功能设计...................................................... 2.2 功能分析...................................................... 2.2.1 系统操作界面............................................... 2.2.2 程序主要功能说明........................................... 第三章调试分析与测试结果............................................ 3.1 游戏运行界面.................................................. 3.2 测试项目...................................................... 3.2.1 功能区按键测试............................................ 3.2.2 键盘功能测试.............................................. 3.2.3 游戏结束测试.............................................. 第四章设计总结...................................................... 4.1 改进意见...................................................... 4.2 《Java课程设计》心得体会 ......................................

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 面向对象程序设计课程设计》课程设计任务书 学年学期: 2014-2015学年第 1 学期 专业班级: 2014专升本 3 班 指导教师:朱薇 设计时间: 2015.1.12—2014.1.23 学时周数: 20学时/周,共计 40 学时 一、设计目的 通过该课程设计加深学生对面向对象概念、 JAVA 面向对象程序设计思想方法的理解和掌握;使学生熟悉开发一个小型的电子商务项目的基本过程,并能综合运用所学知识,初步应用软件工程方法进行软件开发;增强学生的动手能力。为后续学习和应用打下一定的基础。 二、设计任务及要求 以学过的Java程序设计,web编程基础为工具,完成一个小型电子商务系统的设计开发。要求学生 8-10 人一大组 , 大组中又分为 A,B 组,由 A, B 组分工配合实现前台及后台功能,最后组合成一完整的电子商务系统。详细要求如下: 1、针对给定的业务规划商务模型和商务系统,确定电子商务系统的具体组成部分,写出详细的规划说明书。 2、开发环境: Jsp(JavaBean+Servlet)+Mysql 3、开发一个小型的系统。每组最终提交一个电子商务系统软件和规范的课程设计说明书。 4、每大组设组长两名,(A组,B组)组内成员分工明确、各司其职。

三、设计时间进度安排

四、成绩考核 1、项目评分方法 为更好地体现实训成果,评定学生实训成绩,特制定本评分方法。具体评分细则如下: 项目完成后,应组织同学完成项目评审。评审时,项目经理应根据本小组项目 完成情况,制作PPT介绍本项目,并运行程序,进行演示,同时完成答辩老师 的提问。 根据学生项目的优良情况,评审老师给出项目的等级分。评分有如下等级: A/B/C/D/E/F/G,可根据情况打出A+或者B-等。 A-F 等级系数为:0.9/0.8/0.7/0.6/0.5/0.4/0.3 根据项目组的人数,考评项目的等级,打出学生项目的最后得分。 女口:该项目组等级为A (系数为0.9),项目组共4人,则该小组得分为: 4*100*0.9=360 女口:该项目组等级为D (系数为0.6),项目组共5人,则该小组得分为: 5*100*0.6=300 项目经理根据项目组中每个组员的实际完成情况,打出该组员在项目开发工 作中,所占的工作量比数,如: A完成约25%勺开发工作量,则A同学为25% 项目组中,所有成员开发工作量总和为 100% 根据项目小组中,项目经理打出的工作量比数和项目考核的实际分 数,计算项目组中每位同学的实际得分。若该分高于100分,则按

俄罗斯方块Java程序设计

俄罗斯方块游戏 一、课题内容和要求 课题内容:俄罗斯方块游戏(Tetris)是一款经典单机游戏,早期常见于各个平台。设计一个俄罗斯方块,玩家根据下落的不同方块形状,通过上、下、左、右四个键实现对方块的左右移动、旋转、下落等控制。游戏中,一共有7种不同的方块形状、每种方块以1/7的概率随机出现,一旦方块到达顶部,游戏结束。当某一个行布满方块时,改行消除。 基本要求:通过图形界面实现俄罗斯方块游戏;能以图形显示游戏运行的过程;实现相应四个键游戏玩家的控制;记录消除的行数。 扩展要求:在上述功能要求的基础上,为了提高成绩,可以添加一些额外的功能;变量、方法命名符合规范;注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释;程序的层次清晰,可读性强。 系统功能要求: (1)界面设定 玩家可以在界面左侧的游戏区中堆积方块,游戏区上面有“游戏”“帮助”两个选项,界面右侧为游戏得分,玩家在游戏过程中随时可以查看游戏得分。(2)游戏控制 不同的随机图形会从区域上方缓慢落下,通过键盘的左、右、下键可以控制方块以一格为单位左右移动,长按实现快速移动;上键能以90度为单位旋转每一方块;区域中横向格子方块填满,则该行会自动消除并为玩家的得分;当固定的方块推到区域最上方,则游戏结束。 二、需求分析 1.需求分析

图-1 俄罗斯方块游戏需求分析 2.任务及实现方式 (1)绘制游戏区域 通过绘制地图方块、已经固定的方块和运动中的方块来实现(2)实现键盘对方块的实时控制 添加键盘监听者和方块位置移动的函数 (3)记录消除行数 添加记分函数和Graphics类的drawString函数实现 (4)游戏结束 添加判断游戏结束函数并给出提示 3.预期效果 (1)实现俄罗斯方块游戏的动态显示 (2)实现键盘对方块各种操作 (3)实现消行、记分 (4)游戏能够正确结束

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

Java俄罗斯方块 毕业设计论文

第1章绪论 (2) 1.1 游戏的历史 (2) 1.2游戏的意义与内涵 (3) 1.3 俄罗斯方块游戏 (4) 第2章可行性研究 (6) 2.1 设计目的 (6) 2.2 可行性研究前提 (6) 2.3 可行性分析 (6) 2.4 结论 (7) 第3章需求分析 (8) 3.1 引言 (8) 3.2 游戏功能需求 (8) 3.3 运行环境及系统性能的需求 (9) 3.4 接口需求 (9) 3.5 方案论证 (9) 3.6.方案选择 (11) 第4章概要设计 (13) 4.1 游戏设计所要遵循的规范 (13) 4.2 游戏总体设计分析 (13) 4.3 各模块的算法设计 (14) 4.4 可靠性设计 (19) 4.5 概要设计评审 (19) 第5章详细设计 (21) 5.1 客户端设计 (21) 5.2音效播放控制模块设计 (23) 5.3背景音乐播放控制模块设计 (24) 5.4网络对战模块设计 (25) 5.5道具模块设计 (26) 5.6 主模块——方块与地图模块设计 (31) 第6章游戏测试 (42) 6.1 测试的意义及注意事项 (42) 6.2测试的步骤 (43) 6.3 测试结果 (44) 结束 (46) 致谢 (47)

第1章绪论 1.1 游戏的历史 游戏是人类生活的重要组成部分,从第一个电子游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。 1.1.1 从头谈起 真正的电子游戏机产生于20世纪70年代。1971年,麻省理工学院的学生Nolan Bushnell设计了世界上的第一个业务用游戏机(俗名街机),叫做《电脑空间》。这台游戏机用一台黑白电视机作为显示屏,用一个控制柄作为操纵器,不过由于市场因素这款游戏以失败告终。但是最后他在电子游戏的发展上取得了非凡的成就。 上面介绍的是专用机游戏的历史,而最早的电脑游戏可以追溯到1972年,一个叫Crowther的工程师用当时最流行的主机――DEC公司的PDP-10编写一段简单的FORTRAN程序。在这个程序里,Crowther设计了一张地图,地图上不规则的分布着陷阱,游戏者必须寻找路径避开陷阱。这个程序被公认为是最早的电脑游戏程序。 1989年,BroderBund公司的设计师乔丹.麦克纳根据阿拉伯民族的古老传说《一千零一夜》在Apple平台上制作了一部动作冒险相结合的电脑游戏――波斯王子。这个游戏获得了第一作,它代表了当时电脑技术的最高水平。 1986年,任天堂公司发售了一款真正的游戏巨作――超级马里奥。 20世纪80年代IBM PC兼容机的出现打破了Apple公司的垄断地位。 到了20世纪90年代,游戏业才真正成熟起来,成为了一种产业。 由于PC机价格非常低而且硬件速度越来越快,游戏逐渐成为人们生活中不可缺少的一部分。游戏产业也逐渐发展成熟。 1.1.2 图形硬件的革命 图形硬件的飞速发展是近些年来的事情,部分原因是来自工业方面的压力,例如在军事和医疗方面对于实时图形的需求很强烈,而交互娱乐产业也极大的推动了图形硬件的发展。技术上的因素同样也推动着图形硬件的发展,许多图形算

Java小游戏俄罗斯方块附完整源代码_毕业设计

**** 届毕业设计Java小游戏俄罗斯方块

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ 摘要 在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为老少皆宜的娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、艺术、声音和软件,所以并不是人人皆知。直到今天,在中国从事游戏设计的人仍然很少,但是游戏行业的发展之快,远超如家电、汽车等传统行业,也正因为如此,游戏人才的教育、培养远落后于产业的发展。 俄罗斯方块是个老幼皆宜的小游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,(控制键的实现是由键盘的方向键的事件处理实现)。然后程序根据这七种方块堆叠成各种不同的模型。 论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,最后对软件进行了测试,整个开发过程贯穿软件工程的知识体系。 此次设计在Microsoft Windows 7系统下,以Java为开发语言,在eclipse开发平台上进行游戏的设计与实践。从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我在设计中在一个图片框中构造了一些的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个欲览窗体中提前展示形状供用户参考,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,最后就可以得出用户的分数。 关键词:游戏设计,算法,数组,事件

JAVA俄罗斯方块实验报告

目录 一.需求分析........................ 错误!未定义书签。二.系统运行环境 (2) 三.系统功能需求描述: (2) 四.总体设计 (2) 五.系统结构图 (3) 六.程序模块设计 (3) 七、实验总结体会 (15)

一.需求分析 在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。 此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。 二.系统运行环境 操作系统选择Windows XP 版本,运行环境选择MyEclipse 三.系统功能需求描述 俄罗斯方块游戏是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件要实现的功能如下: 1.游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况。 2.游戏控制:玩家可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。 3.级别设置:玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏速度越快,难度越大。 四.总体设计 游戏中玩家可以做的操作有: 1.以90度为单位旋转方每一格块。 2.以格子为单位左右移动方块,让方块加速落下。 3.方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的随机图形会出现在区域上方开始落下。 4.当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的得分。同时删除的列数越多,得分指数上升。 5.当固定的方块堆到区域最上方,则游戏结束。

java课程设计任务书万年历

课程设计(论文)任务书 软件学院学院_______________________________ 专业_______________________ 班一、 课程设计(论文)题目 ____________________________________________________________ 二、课程设计(论文)工作自2012 年12月_2£日起至2012年12月_28_日止。 三、课程设计(论文)地点: 软件学院实训中心 四、课程设计(论文)内容要求: 1 ?本课程设计的目的______________________________________________________________ (1)掌握Java语言的程序设计方法; ( 2)理论联系实际,进一步提高学生的软件开发技术; ( 3)培养学生分析、解决问题的能力; ( 4)提高学生实践论文撰写能力。 2 ?课程设计的任务及要求 1 )课程设计任务: (1) 设计一个万年历系统,能查看日期。 ___________________________________________ (2) 能查任意一年任意一月的日期。 _______________________________________________ (3) 背景显示当前年月。 _________________________________________________________ 2) 创新要求: (1)月份查看使用下拉菜单。 (2)查看框可随意拉大拉小,背景显示当前的年月。__________________________________ 3) 课程设计论文编写要求___________________________________________________________ (1)课程设计任务及要求____________________________________________________________ (2 )设计思路--工作原理、功能规划 (3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注 释)、界面等。 (4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。 (5 )设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些 知识,有哪些提高。

相关文档
最新文档