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

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

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

java课程设计实验报告

俄罗斯方块

组员:左冬艳(14)蔡玲玲(63)

周雪(73)杨方蓉(74)

任课教师:张宇晴

日期:2006.1.1

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

◎实验名称:俄罗斯方块

◎实验目的:

1)面向对象程序设计的思想及编程方法的认识和掌握。

2)熟悉java的编程环境J2SDK,掌握Application 和Applet的程序结构,并能熟练编写和调试两类程序。

3)理解和掌握各种修饰符

(public protected private static final abstract)的用法。

4)引入包,应用定时器,可变长数组,随机类,。

5)熟练使用各种常用类库。

6)理解JDK的事件处理机制,掌握java.awt 、javax.swing,

javax.swing.event中的GUI标准组件的用法,学会合理运用布局策

略、综合运用各种界面元素,编程构造满足应用需要的图形工作界面。◎实验要求:PC机一台,JA V A编程软件,书籍资料,源代码再加以文挡说明,图表的说明,文档要尽量详细,图要清晰明了

◎实验步骤:

1)需求分析:设计一个用户可参与,有背景音乐,可由用户控制任意暂停,可计时,可计分的俄罗斯方块游戏;

2)概要设计:一个游戏运行界面,计分面板,开始按扭,暂停按扭

3)详细设计:

对整个设计进行总体分析如下:

1.定义7种砖块的类型,用两个4*4的二维数组来表示。 2.在屏幕上用一个10*20表示游戏区域

3.上下左右的出界问题的考虑

3.砖块的变形问题

4.砖块的移动(向左向右向下)问题

5.满一行后消掉砖块

6.记分问题

7.用开始按扭启动游戏

8.暂停按扭暂停游戏

9.界面的设定

10.背景音乐的加入

4)编写代码

5)调试程序

◎功能实现:按开始按扭能进行简单的游戏,并对其进行记分,暂停按扭暂停

◎函数功能 BrickCtrl()构造函数用来初始化游戏面板 IsMoveable()判断方块是否能够移动

NewBrick( ) 产生新的砖块

DrawBrick( ) 填充方块

CleanCurrentBrick( ) 清楚当前的方块

MoveToPos(int cx,int cy) 移动到某个位置

MoveRight( ) 向右移动

MoveLeft( ) 向左移动

addspeed( )加速度

BrickSpeed( )方块下落的速度

CheckLineUp( ) 清除满的一行

BrickChange( ) 方块改变形状

IsGameOver( ) 判断游戏是否结束,每行都被块填满了,则

游戏结束

class TimeListener 实现定时器的监听

class KeyProcessor 实现对键盘的监听

class ButtonListener 实现对按扭的监听

◎实验中尚未来解决的问题:

1.音乐不能播放

2.按暂停按扭之后不能再进行游戏,不知道应该对暂停按扭的监听如何改进

3.每次都是随机产生的方块类型,但是不知道为什么每次游戏时方块的顺序

都是一样的.

◎实验体会:基本实现本游戏后,觉得最重要的是平常还要多实践,纸上谈兵是没用的。不过,还是学到了很多知识并得到了一定的编程经验。

俄罗斯方块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

C#面向对象课程设计--拼图游戏

《C#程序设计》课程设计 题目:拼图游戏 专业:计算机科学与技术 学号: 姓名: 指导老师: 完成日期: 2012/12/26

《C#课程设计》评分标准 题目:拼图游戏专业:计算机科学与技术学号:姓名:

目录 1 前言 (4) 2 需求分析 (4) 要求 (4) 任务 (4) 运行环境 (4) 开发工具 (4) 3 概要设计与详细设计 (5) 系统流程图 (5) 结构功能图 (5) 4 编码与实现 (6) 编码分析 (6) 具体代码实现(附源代码) (9) 5 课程设计总结 (18) 参考文献 (19)

1.前言 拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。拼图的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼机会。拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个拼图游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。一个3×3的魔板,有一个格子是空的,其他格子内随机放置1-8共8个编号的方块,通过单击任意一个与空格子相邻的方块可以把该方块移入空格子,不断的移动方块,直到方块按照图片的原来的顺序排好。 2 需求分析 要求 (1)用C#语言实现程序设计; (2)利用PictureBox控件来实现图片的移动 (3)超过200步提示重新来 (4)界面友好(良好的人机互交),程序要有注释。 任务 (1)制作流程图 (2)编写代码; (3)程序分析与调试。 运行环境 (1)WINDOWS2000/XP/win7系统 (2)编译环境 开发工具

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

个人研修总结反思

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

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

基于Android 益智拼图游戏设计毕业论文

基于Android 益智拼图游戏设计毕业论文 目录 摘要........................................................... I I Abstract....................................................... I II 1 绪论. (1) 1.1 课题开发的背景 (1) 1.2 课题意义 (1) 2 Android架构与开发平台搭建 (2) 2.1 Android的系统架构 (2) 2.2 Window下Android开发环境的搭建 (4) 3 流程介绍与概要设计 (5) 3.1 游戏流程介绍 (5) 3.2 系统概要设计 (6) 3.2.1 界面布局模块 (6) 3.2.2 难度选择模块 (6) 3.2.3 图片选择模块 (7) 3.2.4 步数和时间模块 (7) 3.2.5 游戏实现模块 (7) 4 系统详细设计与实现 (8) 4.1 界面布局实现 (8) 4.1.1 选择界面布局 (8) 4.1.2 游戏界面布局 (9) 4.2 游戏功能实现 (11) 4.2.1 难度选择 (11) 4.2.2 图片选择 (12) 4.2.3 步数和时间设置 (13) 4.2.4 拼图的实现 (14)

5 系统测试 (17) 5.1 Android仿真器介绍 (17) 5.2 功能模块测试 (17) 5.3 出现的错误及解决方案 (20) 6 总结与展望 (21) 参考文献 (22) 附录 (23) 致谢 (33)

基于Android益智拼图游戏设计 摘要 随着移动设备的日益普及,使用Android技术开发手机软件受到越来越多人的青睐。在此背景下,本课题开发了一款Android平台下的手机游戏——益智拼图。 本文首先对Android的研究背景,系统架构以及开发环境进行介绍,然后就玩家对游戏的需求进行一定的分析,最后运用Android技术实现拼图游戏的开发,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最终可以让玩家享受拼图游戏的乐趣。 关键词:Android;拼图游戏;Activity;架构

Java课程设计——拼图游戏

拼图游戏 1.游戏规则介绍 (1)本游戏中有一个格子是空的,其他格子内随机放置由要拿来拼图切割成的8个小图片。在开始游戏之前,会出现一张完整的图片,点击“菜单”里面的“开始”, 进行拼图游戏,通过将空格旁边的小图片与空格交换位置(不断的移动方块), 来实线拼图,直到方块一行一行的按图片的原始样子拼好即可完成该游戏。在 移动过程中,窗口右边会显示移动的步数。 (2)游戏拼完后,会弹出一个信息框,询问是否再玩一局,点击“Yes”将再打开一个游戏开始的界面,可以继续新的一局游戏,点击“No”将结束游戏,关闭所有窗 口。 2.游戏实现的功能 (1)点击运行程序,将弹出一个窗口,显示一张完整的图片。 (2)菜单栏的菜单,会出现3个菜单项:“开始”、“重新开始”、“结束”。 点击“开始”,即开始一局游戏;“在游戏的任何时候点击”重新开始“,即结束 当前游戏,重新开始一局新的游戏;点击“退出“,立即退出游戏,关闭窗口。 (3)在游戏过程中,游戏界面右边会同步显示当前的步数。 游戏的一些界面: (1)主界面: (2)菜单项:

(3)帮助--->关于 (4)点击开始 (5)游戏过程 (6)游戏成功

(7)破纪录 3.程序实现 Pt类: (1)建立一个类Pt,public class Pt extends JFrame implements KeyListener{}。该类继承父类JFrame,实现KeyListener接口。 (2)Pt类的构造函数Pt()。定义窗口参数,添加菜单栏和多个标签;调用读文件函数read (),读取该游戏的最高记录,并将该记录输出到标签上;为各个菜单添加事件,鼠标点击“开

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课程设计实验报告及全部源码流程图

课程设计 一、实验目的 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()

MFC课程设计之拼图游戏设计报告

拼图游戏 实验报告 一、实验目的

1、通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。 2、通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力,初步掌握MFC变成的基本功能。 3、通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力,为后续的相关课程的学习打下基础。 二、小组分工 为了发挥组内同学的各自特长,我们小组分工如下: 1、苏嘉彬——前期进行系统需求分析,系统结构设计,完成拼图界面的设计工作, 后期完成课程设计报告 2、嵇鹏飞(组长)——完成主要程序的编写工作(图形分割、存储、拼图) 3、依代吐力·艾尼——搜集资料,完成计时器的设计工作,软件接口的设计及测 试 三、程序设计思路 1、初步方案讨论 拼图游戏是同学们喜欢的益智游戏之一,带着浓厚的兴趣,我们选择拼图游戏设计 作为我们小组本次MFC课程设计的课题。在讨论中,有的同学希望用单文档(SDI) 的形式完成本次设计,有的同学则偏向于用对话框(Dialogue)的形式,最终我们小组 讨论决定最终的设计采用对话框形式实现拼图功能。 2、方案变更、疑难解决 (1)最初我们决定采用对话框形式来实现拼图的基本功能,但是在实施过程中出 现了几次很严重的错误:Debug Assertion Failed,缺少ivewers.dll文件等等,在最后的 尝试中我们发现如果采用单文档(SDI)形式写拼图的话,可以实现最基本的功能,因 此我们最终决定使用单文档来完成该课程设计。 (2)一开始我们讨论决定采用的方式是将位图读入后再进行图片的分割,而在实 际的操作过程中由于图片的分割有一定的困难,因此我们最后采用的方式是将位图进行 分割完毕后再逐个用Brush在指定位置上进行绘画,实现图形的分割。 3、系统需求分析 (1)系统功能 简单的拼图游戏应该有拼图、计时、判断拼图成功、游戏者用时统计排名等功能, 拼图内部还应该有难度选择、相邻拼图块自动拼图等功能。图1所示是拼图游戏的用例 图,表明拼图游戏的主要功能。 图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课程设计实验报告

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流程:

俄罗斯方块实验报告

俄罗斯方块实验报告 编写“俄罗斯方块”游戏 1、问题分析。 编写俄罗斯方块游戏,首先是界面问题,要有一个相对美观的游戏界面,可以有很多种解决的方法,可以用DOS的界面,也可以用MFC做。 界面做好后,最重要的就是七个方块如何存放,翻转,显示等等一系列问题,首先,我们要把这七个方块用一种数据结构存储起来;其次,在游戏中将这七个方块随机挑选出来并显示在屏幕上,根据键盘事件进行旋转;最后,判断到达底部的方块是简单叠加还是引发消除事件。 普通俄罗斯方块游戏中,只有七个基本方块:|,Z,N,L,7,|-,O,方块都可以画在一个4*4的方格中。于是就有两个方法:一个是只存储七个方块,在游戏运行的时候计算旋转后的方块形状;另一个是将所有的方块全部存储起来,在游戏运行的时候计算取其中的哪个方块。 另外,考虑到4*4是16,而一个int正好是16位(TC2是16位,其他的是32位),所以可以把一个方块存储在一个int数据中,取出的时候,判断它的每个bit位,为1处有小方块,为0处是空白。 所以可以分别用二维数组和bit的方法来表示这些方块。 对于二维数组而言,其控制旋转的操作会很简单,就是控制数组的行列以决定到底该取出哪一种方块,所以程序中我会采用这种方法。 如何控制方块的下落速度,如何让实现左移,右移,下落,如何销行,如何计分,又如何加速等等都是需要考虑的问题。 对于控制方块的下落速度,首先应该现弄明白方块是怎样下落的,目前最常用的就是每隔一定得时间进行重新绘图,就像动画片一样,当很多副相关的画面不断在人眼前播放,由于人眼的掩蔽效应就会形成动着的画面,看起来就是物体在那里移动,于此原理相同,当改变方块在画面上的位置,再以一定得时间间隔进行重新刷图,其效果看起来就是方块在移动;也就是说控制方块下落速度的其实就是控制重新绘图的时间间隔,控制时间的函数有以下几种:a)调用函数SetTimer()设置定时间隔,如SetTimer(0,200,NULL)即为设置 200毫秒的时间间隔。 b)在应用程序中增加定时响应函数OnTimer(),并在该函数中添加响应的处理 语句,用来完成时间到时的操作。这种定时方法是非常简单的,但其定时功能如同Sleep()函数的延时功能一样,精度较低,只可以用来实现诸如位图的动态显示等对定时精度要求不高的情况,而在精度要求较高的条件下,这种方法应避免采用。 c)精度时控函数,在要求误差不大于1毫秒的情况下,可以采用

相关主题
文本预览
相关文档 最新文档