搜档网
当前位置:搜档网 › java课程设计实验报告俄罗斯方块

java课程设计实验报告俄罗斯方块

java课程设计实验报告俄罗斯方块
java课程设计实验报告俄罗斯方块

成绩评定表

课程设计任务书

目录

1.课设软件主要功能 (1)

2.类总体设 (1)

类组合关系图 (1)

主类 (2)

其它类 (2)

3.类详细设计 (2)

ERS_Block主类 (2)

Command处理控制类 (4)

GameCanvas游戏画布类 (4)

Block方块类 (6)

4.关键类成员函数流程图及代码 (7)

5.软件运行结果 (17)

结论 (20)

参考文献 (20)

1.课设软件主要功能

本系统是一个俄罗斯方块游戏的系统设计[1],实现的基本功能就是能实现经典俄罗斯方块游戏的基本功能。如用键盘上的空格下左右键来控制方块的变形,移动等功能。点击控制面板上的开始游戏,游戏暂停,提高级数,降低级数退出游戏等按钮来实现游戏的开始,暂停,停止游戏,增加难度,降低难度等功能。

图功能图

2.类总体设计

类组合关系图

图. 类组合关系图

主类

ERS_Block继承Frame类负责游戏全局的控制[2]。对开始游戏、暂停/继续游戏、结束游戏、等级设置。玩家可自行设定游戏等级,主要提供10种级别,级别越高,游戏速度越快,难度越大

其他类

继承Panel类。

是方块类控制块的移动,下落变形功能。七种类型方块的父类,定义了所有类型方块的共同特征和行为。

是游戏画布类,继承Canvas类,界面设计应遵循简介美观方便易用的基本原则在游戏区显示方块。类是控制按钮类。

类继承自线程类Thead。包含run()方法,sleep()方法,控制游戏的速度。

类继承WindowAdapter类。

3.类详细设计

主类

图主类数据透视图

定义成员变量[3]

①右边信息窗体的布局

MyPanel infoScr = new MyPanel();

(new GridLayout(4,1,0,5));

(120,300);

②定义标签和初始值

Label scorep = new Label("分数:",;

Label levelp = new Label("级数:",;

③右边控制按钮窗体的布局

MyPanel controlScr = new MyPanel();

(new GridLayout(5,1,0,5));

(controlScr);

④定义按钮play

Button play_b = new Button("开始游戏");

(new Dimension(50,200));

定义按钮Level UP

Button level_up_b = new Button("提高级数");

(new Dimension(50,200));

⑤定义按钮Level Down

Button level_down_b =new Button("降低级数");

(new Dimension(50,200));

⑥定义按钮Level Pause

Button pause_b =new Button("游戏暂停");

(new Dimension(50,200));

⑦定义按钮Quit

Button quit_b = new Button("退出游戏");

(new Dimension(50,200)); ;

成员方法

①俄罗斯方块类的构造方法

方法定义:ERS_Block(String title)

②isGameOver方法

方法定义:private boolean isGameOver()

功能描述:该方法是判断游戏是否该结束了,只需要判断窗口中的最顶端那一行中是否有方块,同时也要判断最底端的是否也有,如果都有即结束。

处理控制类

图类数据透视图

成员变量[4]:

给按钮编号

int button_play

int button_levelup

int button_leveldown

int button_quit ;

int button_pause

int curButton;

GameCanvas scr;

成员方法:

①控制按钮类的构造方法

方法定义:Command(int button,GameCanvas scr)

②按钮执行方法

方法定义:public void actionPerformed (ActionEvent e) 功能:点击按钮实现游戏的开始,结束,升级,降级,暂停[5]。

游戏画布类

图类数据透视图

成员变量:

小方块边长:final int 0unitSize = 30 正方格的行数: int rowNum

方格的列数:int columnNum

允许有多少行未削:int maxAllowRowNum 新出现块的起始行坐标:int blockInitRow 出现块的起始列坐标: int blockInitCol 屏幕数组: int [][] scrArr

对方快的引用:Block b

2.画布类的构造方法

成员方法[5]:

①初始化屏幕,并将屏幕数组清零的方法

方法定义:void initScr()

②重新刷新画布方法

方法定义:public void paint(Graphics g)

③画方块的方法

方法定义: public void drawUnit(int row,int col,int type)

功能:以背景为颜色画,画正在下落的方块,画已经落下的方块。

④块的初始v行坐标方法

方法定义: public int getInitRow()

返回新块的初始行坐标:return(blockInitRow)

⑤返回新块的初始列坐标方法

方法定义:public int getInitCol()

返回新块的初始列坐标:return(blockInitCol)

⑥满行删除方法

方法定义:void deleteFullLine()

功能:这个就是实现如何将行消除的,其实就是在判断了该行该消除时候将上面的方块都向下平移一格,这样在实现程序界面也就给玩家是消一行的视觉效果[6]。

方块类

图类数据透视图

成员变量:

块的模式编号:int blockType;

块的翻转状态:int turnState;

块的下落状态:int blockState;

块在画布上的坐标:int row,col;

GameCanvas scr;

成员方法:

1)fallDown方法

方法定义:public void fallDown ()

功能描述:实现方块的运行,下落。

2)leftMove()

方法方法定义:public synchronized boolean leftMove() 功能描述:将当前画移动到所左面的位置。

3)rightMove()方法

方法定义:private boolean rightMove ()

功能描述:将方块想右边移动。

4)方法

方法定义:public void turnNext()

功能描述:实现方块的旋转。

5)leftturn方法

方法定义:private synchronized boolean leftturn()

功能描述:将当前块实现翻转。

6)deleteFullLine方法

方法定义:private boolean deleteFullLine()

功能描述:实现满行删除的方法。

7)erase方法

方法定义:private void erase()

功能描述:将当前块从画布的对应位置移除。

8)display方法

方法定义:private void display()

功能描述:实现重画画布的时候显示当前块

4.关键类成员函数流程图及代码系统流程图

图系统流程图[7]

源代码[7]

import .*;

import eight-(row+1)*unitSize,unitSize,unitSize,true); ();

}

public Block getBlock(){

return b; allDown()){

();

if()){

= false;

suspend();

}

else

().reset();

}

}

}

}

class WinListener extends WindowAdapter{

public void windowClosing (WindowEvent l){

(0);

}

}

5.软件运行结果

图系统主窗口

图方块翻转功能

图方块翻转功能

图界面消行功能

图得分情况

图游戏结束

结论

学习了《Java面向对象编程》[8]的课程,为了更进一步的提高我们对Java的深入学习,进行了

一周的课程设计,我所选择课程设计是利用Java设计一个简单的俄罗斯方块游戏。采用swing界面设计技术[9]设计窗口,按钮等,并添加事件监听,并采用线程技术[10]控制游戏的速度。俄罗斯方块的应用程序要求的功能:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况,可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏,玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大等功能都以完全实现。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。

参考文献

[1]《Java面向对象程序设计》陈明主编,清华大学出版社。

[2]《JAVA课程设计》黄明梁旭周绍斌编著,电子工业出版社。

[3]《JAVA编程宝典》李钟尉陈丹丹张振坤编著,人民邮电出版社

[4]《.JSP网站编程教程》第1版屈辉立陈可明石武,北京希望电子出版社。

[5]《B/S模式构建在线考试系统》白勇,重庆电力高等专科学校学报。

[6]《Java 编程思想》 Bruce Eckel,北京机械工业出版社

[7] 《实用Java程序设计教程》宛延闿,北京机械工业出版社。

[8] 《JAVA面向对象程序编程》张孝祥,北京清华出版社。

[9]《Java 语言使用教程》丁振凡,北京邮件大学出版社。

[10]《Java 语言使用教程实验指导》丁振凡,北京邮件大学出版社。

俄罗斯方块mfc实验报告

程序设计实践 设 计 报 告 课题名称:俄罗斯方块(MFC版)学生姓名:黄嘉慧 班级:2012211113 班内序号:27 学号:2012210389 日期:2014.6.1

1. 实验概述 1.1 课题目标和主要内容。 本课题的主要内容是用MFC 实现经典游戏俄罗斯方块的编写。目标是能够正常运行,并且无过于严重的问题。使用的平台为MFC (基于对话框)。 1.2 采用计分升级制来进行游戏。当一次消去一行时,得一分,一次两行得 4分,一次3行,得9分,一次4行,得16 分。每 50分为一个等 级,得分足够则升级并重新开始游戏。 2. 程序设计 2.1 系统总体框架 用一个4维数组DiamondStruct[7][4][4][4]来表示所有的方块,用一个POINT 类型的DiamondPos 来表示方块当前的位置,然后通过一个二维数组BlockPanel[][],来表示整个游戏界面,同时进行障碍的添加。游戏过程中,通过改变DiamondPos 来进行方块的下降以及

左右移动,通过DiamondStruct[7][4][4][4]中第二个参数的改变来进行方块的变换。 2.2系统详细设计 【1】模块划分图及描述 【2】类关系图及描述 CWinApp 与CDialog 为基类。其它为添加的类。 【3】程序流程图及描述

【4】存储结构,内存分配 主要存储结构为数组。同时分配内存的有,画笔,Diamond类的指针,Panel类的指针,Block类的指针,Mill类的指针,Manager类的指

针。 2.3 关键算法分析 【1】 bool Diamond::FullLine() { bool IsFull,Full=false; pManager->SeriesLine=0; for(int iy=0;iy<=pPanel->nVGridNum;iy++) { IsFull=true; for(int ix=0;ix<=pPanel->nHGridNum;ix++) { if(!pBlock->BlockPanel[ix][iy]) IsFull=false; } if(IsFull) { Full=true; pManager->SeriesLine++; for(int jy=iy;jy>0;jy--) { Sleep(10); for(int jx=0;jx<=pPanel->nHGridNum;jx++) { pBlock->BlockPanel[jx][jy]=pBlock->BlockPanel[jx][jy-1]; } } } } pManager->LineNumber+=pManager->SeriesLine; pManager->Result+=pManager->SeriesLine*pManager->SeriesLine; if(Full) return true; else return false; } 该算法实现的功能为,判断是否已经满行,并且若是满行,进行消行,加分的操作。该算法的时间复杂度为O(n)=【(nVGridNum)^2*nHGridNum.】/2

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

个人研修总结反思

个人研修总结反思 研修马上就要结束了,回首这一个多月的紧张的研修经历,我感到我获得了很多很多的东西。从大的方面来说,我经历和老师们合作学习,共同研讨从而在认识上我明白团队的力量是我们进步和教学水平和能力提高的能源。在研讨中,我们老师的知识经验,思想方法进行交流和相互的碰撞,从而使我们在这种交流和碰撞中激发了灵感,剧烈的触动了我们的心灵,使我们在教育教学中的思想认识有了巨大的提高。经过研修,我们真正的认识到和体会到学生是我们教学的主体,在教学中我们要充分的引导和调动学生的学习能动性,在学习活动中使学生感受到自己能够学,而且使学生在活动中学会主动去探究,学会主动学习。我想这是我们教育孩子的最终目的,而不是教授孩子课本上简单的知识。 从小的方面来说,经过研修,我认识到数学计算教学不是简单的方法的教授和反复的机械的训练,而是要使算法和算理的有效的结合,通过算理进行算法的教学从而使学生真正的理解和掌握计算的方法。通过研修,我认识到得数学概念的教学,不是让学生像鸭子吃蜗牛那样,简单的去记忆和背诵相关的数学的概念,而使的我们的数学看上去显得那样的食而无味,而是使学生的在生活中的经验的基础上去了分析总结,从而得出相关概念和

定义。学生对于概念和定义的掌握不是去背诵而是去应用。通过研修,我认识到了数学教学不应该使学生感受到枯燥无味,而是使学生在快乐中去学习,在学习中去感受探究的乐趣,体验成功的乐趣。通过研修我知道了学生的快乐学习需要学生在生活中,在学习中去积累相关的学习经验,活动经验,从而使学生真正的会学习,乐于学习。而这个学生的培养不是一朝一夕就能够完成的,需要我们持续的去关注和实施。通过研修我明白了数学模型的建立使学生解决数学应用题的关键。通过研修我更是掌握和亲身经历了磨课过程,从而在整个磨课过程中我受益匪浅。 现在研修学习就要结束,我认为这不是绕梁三月那样简单,感谢老师和专家的帮助。丘市垛庄镇圣水泉小学综合研修组共有14名学员,组长弭现玲。近两个月来,我们组在网上各位专家教授的引领指导下,以网络为载体,以远程研修为契机,以优秀课例为依托,以提高教学质量为目标,在全体参训教师的共同努力下,全体学员均圆满完成了学习任务,现将研修工作总结反思如下: “树有根故其生不断,水有源故其流无穷”。10月15日,我组15名学员汇集在计算机房大屏幕前,专心聆听专家教授对这次双对接远程研修的引领,学员们摩拳擦掌、跃跃欲试,激动不已,仿佛有一种和研修相见恨晚的感觉。自此以后,机房里多

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

c++俄罗斯方块程序实习报告

程序实习报告 学号: 姓名: 专业: 班级: 指导教师: 通信与电子工程学院 2013年7月5日

实习报告一 窗口程序基本练习 一.实习时间:6月25日 地点:207机房 二.实习过程: 1.了解Windows窗口程序的基本情况。我们这里的Windows窗口的建立需要在 VC++的环境里实现,因此就需要Visual C++ Windows程序的两种方式去得到我们需要的新建的windows窗口。: 2. 窗口程序运行的过程如下:得到应用程序的句柄→注册窗口类(RegisterClassEx)→建立窗口(CreateWindowEx)→显示窗口(ShowWindows)→刷新窗口客户区(UpdateWindow)→进入无限的消息获取和处理的循环(GetMessage DispatchMessage)。 3调试运行。调试的结果是出现一个windows的窗口。 三.实习结果:通过学习老师给的这个程序代码,知道了在建立一个窗口的时候所必需的一些程序代码。刚开始的时候得到的运行结果是一个和其他同学一样的窗口,在分析了这些代码的意义之后,经过自己的改编,可以得到一个自己需要的长度高度的窗口。这为接下来的实验打下了基础。 实习报告二 消息驱动程序练习 一.实习时间:6月26日。 地点:207机房。 二.实习过程: 1.在实习一的基础上,学习绘制一些简单的图形。

2.调试老师给的程序代码,并学习代码。在了解的基础上,改变所给的方块的 大小形状颜色位置等。 3.因为最终的任务是编写俄罗斯方块的程序,因此就在老师所给的这些方块的 基础上经过自己的研究,绘制了俄罗斯方块游戏中的七种不同的形状。将以下的程序进行改编 void Rect(COLORREF crColor) { int i,j; for(i=0;i<20;i++) for(j=0;j<20;j++) SetPixel(hdc, X*20+j,Y*20+ i, crColor);改编的程序如下 void Rect(COLORREF crColor) { int i,j; for(i=0;i<20;i++) for(j=0;j<20;j++) SetPixel(hdc, X*20+j,Y*20+ i, crColor); for(i=21;i<41;i++) for(j=0;j<20;j++) SetPixel(hdc, X*20+j,Y*20+ i, crColor); for(i=42;i<62;i++) for(j=0;j<20;j++) SetPixel(hdc, X*20+j,Y*20+ i, crColor); for(i=63;i<83;i++) for(j=0;j<20;j++) SetPixel(hdc, X*20+j,Y*20+ i, crColor); } 得到的是俄罗斯方块中的四个一排的图形。

俄罗斯方块实验报告

《软件工程与开发实践1》 软件设计报告 题目俄罗斯方块 学院计算机学院 专业计算机科学与技术 班级 学号 10109345 学生姓名 其他成员 组长 指导教师孙志海 完成日期2012年6月

一、软件设计概述(目的、任务、开发环境、参考资料) 俄罗斯方块游戏属于经典小游戏,游戏规则简单,但又不乏趣味。而计算的一大领域也是游戏,所以,成为游戏开发者,几乎是每个编程者的梦想。经过大一和大二的学习,我们已经掌握了编程基础。为了提高我们的编程能力,我们就要不断积累编程经验。 1、目的:复习和巩固C/C++编程的基本思想;掌握数据结构的核心思想;掌握C/C++中多文件的编写;初步对了解界面的设计。 2、任务:完成一个可以运行的游戏。 3、开发环境:C/C++控制台。 4、参考资料: [1] 谭浩强.C语言程序设计[M].北京:清华大学出版社.2004.6 [2] 孙鑫\余安萍.VC++深入详解[M].北京:电子工业出版社.2006.6 二、可行性研究、需求分析及分工 这是一个游戏软件,程序与用户的交流只在游戏界面上,方块的产生是随机的。 三、软件设计的基本原理和采用的主要方法与技术 1、方块类型以下7大类 ██████████ ██████ ███ █████████ 每一种方块都能够变形,所以在游戏中如何正确打印出方块的类型是重点,也是难点。我采用的是“相对坐标法”,具体实现参照“实现的过程与步骤”部分。 2、此游戏是简单的二维游戏,而且区域恒定不变,所以在存储游戏的信息时,二维数组是首选。用数组元素值模拟当前位置有无方块。 3、流程图如下

4、采用的方法 在控制台下,光标是左到右,自上而下的,所以要要调用系统函数来控制光标。同理,为了界面的美观,也要调用系统函数进行颜色控制。 5界面设置 游戏的最大特点就是界面的美观,由此才能吸引玩家的兴趣,因此如何让界面尽最大限度美观,是每个游戏程序员努力的目标。这个程序是在VC环境下基于C/C++控制台的,由于VC下没有像TC下那样丰富的图形库,画图就要调用windows API函数。但由于我对windowsAPI理解不深,所以画起图来还是比较困难。 游戏不仅要求界面美观,而且还要音乐来衬托,所以在整个程序中,尽量让方块的每一个动作与特殊的音乐像对应,此外,最好加上背景音乐。 四、实现的过程与步骤 数据结构: 1、方块的存储 如下图所示,每一种方块都由四个小方块组成,可以按顺序编号①、②、③、④,在方块旋转、输出、擦出时,可以由第一个方块位置加上(减去)第二个与第一个的偏移量,从而找到第二个方块,如此可以方便遍历四个方块。 由于方块属于宽字符,故在占两个字节,输出的时候占两位。设①号块的坐标为(x,y),那么第二块与它的偏移量的△x=2,△y=0,相对坐标即为(2,0)。 同理,③号方块的相对坐标为(2,1),④号方块的坐标为(4,1),特别的,①号方块的相对坐标为(0,0),这样一来,只要知道每一种(7大类,19种)方块的①号方块的坐标,就可以通过②、③、④方块与①号方块的偏移量而逐个输出整个方块。 明白了方块的输出,就要用一个数据结构存储方块了。19种方块都由4个

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

俄罗斯方块设计思想

南京邮电大学 通达学院 算法与数据结构设计报告( 2016/ 2017学年第二学期) 专业软件工程嵌入式 学号姓名 学号姓名 学号姓名 学号姓名 指导教师陈兴国 指导单位计算机学院计算机科学与技术系 日期2017-5-26

俄罗斯方块 一、课题内容 实现俄罗斯方块游戏。主要功能为游戏界面显示、上下左右键响应以及当前得分统计。通过该课题全面熟悉数组、字符串等的使用。掌握设计的基本方法及友好界面的设计。 课题要求: 1、游戏界面显示:下落方块和方块堆、左右移动、旋转、删除行等特效以及得分。 2、动作选择:上下左右键对应于旋转、加速、左右移动的功能。 3、得分统计判断:判定能否消除行、并统计得分总数等。 扩展要求: 1、用户数据管理。 二、算法设计与分析 I、俄罗斯方块游戏需要解决的问题包括 (1)、随机产生方块并自动下移 (2)键变体 (3)Q退出,按space暂停 II (1)、声明俄罗斯方块的结构体 (2)、函数原型声明 (3)、制作游戏窗口 (4)、制作俄罗斯方块 (5)、判断是否可动 (6)、随机产生俄罗斯方块类型序号 (7)、判断是否满行并删除满行的俄罗斯方块 (8)暂停,继续功能 (9)新游戏创建 (10)用户的创建,分数用户名的保存,查看分数

Tetris类(主要类) 该类包含m a i n方法,应为应用程序的主类。该类用来创建游戏的用户界面,事件处理功能和menu餐单,用户信息的存储。整个程序从该类的m a i n方法开始执行。 成员变量:String userName; 构造方法:Tetris 内部类:Members,Tetrisblock Tetrisblok类: 用来设计游戏界面。游戏界面显示在由Tetrisblok类创建的整个用户界面的中(Center)区,游戏的即时分数、方块的效果图及方的预览功能都在整个类里面实现。用来封装俄罗斯小方块。一个方块的属性是由方块1位置即x和y的坐标、颜色决定的。 成员变量 private int blockType; Timer timer=null; private int turnState; private int x; private int y; private int i = 0; int j = 0; static int score = 0; int flag = 0; int delay=1000; // 定义已经放下的方块x=0-12,y=0-22; int[][] map = new int[14][24]; // 方块的形状第一组代表方块类型有S、Z、L、J、I、O、T 7种第二组代表旋转几次第三四组为方块矩阵 private final int shapes[][][] 成员方法:public void newblock() public void drawwall() public void newmap() public void newgame()

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、订单管理:对用户的订单进行管理。

教师工作总结标题(多篇)【精品】

第1篇第2篇第3篇第4篇第5篇更多顶部 总结的标题分为单标题和双标题两种。单标题又可分为公文式标题和式标题。公文式标题:单位名称十时限十总结内容十文称。如标题下或文末有单位署名,标题可省略单位名称等。式标题一般是直接标明总结的基本观点,常用于专题总结。双标题是同时使用上述两种标题,一般正题用式标题;副题 技术工作总结 采用公文式标题,补充说明单位、时限、内容等。 总结的标题最常见的是由单位名称、时间、主要内容、文种组成,如《××市财政局 9年工作总结》、《××厂年上半年工作总结》。 有的总结标题中不出现单位名称,如《创先争优活动总结》、《 9年教学工作总结》。总结的标题分为单标题和双标题两种。单标题又可分为公文式标题和式标题。公文式标题:单位名称十时限十总结内容十文称。如标题下或文末有单位署名,标题可省略单位名称等。式标题一般是直接标明总结的基本观点,常用于专题总结。双标题是同时使用上述两种标题,一般正题用式标题;副题 技术工作总结 采用公文式标题,补充说明单位、时限、内容等。 总结的标题最常见的是由单位名称、时间、主要内容、文种组成,如《××市财政局 9年工作总结》、《××厂年上半年工作总结》。 有的总结标题中不出现单位名称,如《创先争优活动总结》、《 9年教学工作总结》。总结的标题分为单标题和双标题两种。单标题又可分为公文式标题和式标题。公文式标题:单位名称十时限十总结内容十文称。如标题下或文末有单位署名,标题可省略单位名称等。式标题一般是直接标明总结的基本观点,常用于专题总结。双标题是同时使用上述两种标题,一般正题用式标题;副题总结的标题分为单标题和双标题两种。单标题又可分为公文式标题和式标题。公文式标题:单位名称十时限十总结内容十文称。如标题下或文末有单位署名,标题可省略单位名称等。式标题一般是直接标明总结的基本观点,常用于专题总结。双标题是同时使用上述两种标题,一般正题用式标题;副 题 技术工作总结 采用公文式标题,补充说明单位、时限、内容等。 总结的标题最常见的是由单位名称、时间、主要内容、文种组成,如《××市财政局 9年工作总结》、《××厂年上半年工作总结》。

俄罗斯方块设计实验报告

——————数字电路与逻辑设计实验报告—————基于VHDL的简易俄罗斯方块 实验名称简易俄罗斯方块 姓名 班级电信工程学院04107班 学号 辅导老师高英 日期2006年11月6日

俄罗斯方块游戏是我们熟知的经典小游戏之一,本实验通过硬件编成实现了简易的俄罗斯方块游戏机。VHDL是一种标准的,规范的硬件描述语言,在电子设计领域有着广泛的应用。它具有很强的电路描述和建模能力,能从多个层次多电路进行描述和建模,从而大大简化了硬件设计任务,提高了设计效率和可靠性。 本实验基于VHDL语言,利用电路中心开发的实验板,用一个4×4点阵做为基本显示屏,一个发光点表示一个图形,完成俄罗斯方块游戏的基本功能:下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束。 关键字俄罗斯方块游戏VHDL 点阵 ◆设计任务 利用电路中心开发的实验板,用点阵做为显示屏,一个发光点表示一个方块,完成下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束,数码管显示的分数保持不变。 ◆设计思路 由于实验中只用到了16个点来完成显示功能,所以选用一个16位的向量STATUS(0 TO 15)来存储各点状态,再用两个整型数分别控制当前点的坐标,但是这样控制会涉及到乘法运算,因此改为4个4位向量STAN(0 TO 3),每个向量代表一行点阵,这样做不仅使控制简单,而且在扫描显示的时候很方便,代码也很简洁。 设计包括2个大的元件,一个是RUSSIA,其功能是存储状态,分频,完成左右下移动以及计分等功能;另一个是RUSSIA_SCAN,主要完成点阵扫描和数码管译码。具体设计是这样的:4个向量STA0,STA1,STA2,STA3记录游戏状态,点的坐标由COL 和ROW来控制。设置两个指针FLAG和ROW4,如果四列中有一列都为1,表示游戏结束了,置FLAG为1,程序进入NULL;当最后一行及STA3=”1111”时,置ROW4=1,当ROW4=1时,表示要消行,加分,并且将上一行的值赋到下一行。游戏继续,如按下左键或右键,程序更根据下一状态决定是否左移或右移。(BTN1为复位RESET,BTN2为左,BTN3为右)若无键按下,则根据情况当前点是否需要自动下移。

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

电子实习报告

《电子技术课程设计》 实训报告 题目:学生姓名:专业班级:电子科学与技术 学号: 系(部):电气信息工程学院 指导教师: 实训时间:15—16周 实训报告评语 等级: 评阅人: 职称: 年月日 一、实训任务要求 按照自己的想法和设计,实现预期的功能效果。 二、实训目的 1、培养动手能力,在实践中加强对理论知识的理解。 2、掌握对电子元器件识别,相应工具的操作,相关仪器的使用,电子设备制作、装调的全过程的方法。 3、掌握查找及排除电子电路故障的常用方法。 4、学习使用proteus、protel电路仿真与设计软件,动手绘制电路图。 5、使用altium designer绘制简单的pcb图,掌握印刷电路板的一些流程和步骤。 三、实训步骤: 1、设计方案的选择: 一开始准备不用锁存器,但是51单片机可控的io口只有四组,仅仅一个8*16的led 点阵就耗费了三组。为了节省io口,实现其他的功能最终选择了增加三个锁存器,详细看附录里面的实物展示图。 2、电路原理分析: 通过51单片机的控制,用8*16的led点阵实现小游戏俄罗斯方块。通过51的p2口给8*16的led点阵发送显示数据,与p2相连的是三个锁存器(74hc573),通过锁存端的控制由p2口分三次发送数据给led点阵,通过扫描的方法实现8位io口控制24位显示。单片机处理速度是很快的,人眼睛能辨别的事物变化的时间1/24秒,由于视觉暂留作用我们看到的便是整个屏幕都是同时工作者的,其实同一时刻只有一个灯在亮,我们看到的都是余辉。 通过p0口控制一个七段数码管用于俄罗斯方块的得分现实,同时蜂鸣器会发出滴滴声,表示得分了。 p1口控制一些操作按键,主要功能是控制led点阵显示的方块左右的移动、快速下降、以及暂停复盘等功能。 注:详细请查看附录一的原理图。 3、芯片封装及功能: 74hc573封装:20引脚双列直插 功能:数据的锁存,从而实现单片机8位数据端控制24位。就是通过3个锁存器分别对数据的锁存和开放实现的。 89c52封装:40引脚双列直插功能:通过io口对外部期间的控制。 4、电路制作与调试 制作pcb流程:

相关主题