JAVA课程设计记忆测试系统附源程序.docx

上传人:b****6 文档编号:15829129 上传时间:2023-07-08 格式:DOCX 页数:37 大小:741.74KB
下载 相关 举报
JAVA课程设计记忆测试系统附源程序.docx_第1页
第1页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第2页
第2页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第3页
第3页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第4页
第4页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第5页
第5页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第6页
第6页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第7页
第7页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第8页
第8页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第9页
第9页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第10页
第10页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第11页
第11页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第12页
第12页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第13页
第13页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第14页
第14页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第15页
第15页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第16页
第16页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第17页
第17页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第18页
第18页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第19页
第19页 / 共37页
JAVA课程设计记忆测试系统附源程序.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA课程设计记忆测试系统附源程序.docx

《JAVA课程设计记忆测试系统附源程序.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计记忆测试系统附源程序.docx(37页珍藏版)》请在冰点文库上搜索。

JAVA课程设计记忆测试系统附源程序.docx

JAVA课程设计记忆测试系统附源程序

 

《JAVA程序设计》

课程设计报告

 

题 目:

记忆游戏

姓名:

学号:

班级:

指导教师:

完成时间

成绩:

信息工程学院

2015年6月

 

记忆测试系统

1概述

1.1课程设计目的

1)巩固和提高java编程技术。

2)培养掌握成学设计的基本思路和方法。

3)加强研发、调试程序的能力。

4)增强分析、解决问题的能力。

5)提高科技论文写作能力。

1.2课程设计内容

记忆测试系统是通过回忆法测试记忆能力,测试手段分为初级,中级和高级三个级别。

记忆测试系统设计要求如下:

(1)单击“记忆测试”菜单可以选择初级、中级或高级三个级别。

(2)单击“记忆测试”菜单还可以查看初级记忆榜、中级记忆榜或高级记忆榜,通过记忆榜存储每个级别的成绩。

(3)选择级别后,将出现相应级别的测试区。

测试区由m*n个方块组成,程序通过设置m和n的值来确定相应的测试级别,例如,对于初级级别,m=3,n=3。

每个方块上都有一个图标,但该图标默认不可见。

用鼠标单击测试区中的任何一个方块,则计时器开始启动动,同时该方块上的图标将显示出来。

(4)m*n个方块组成的测试区中有m个图标,每个图标重复出现n次,并且随机分布在测试区中的m*n各方块上。

用户必须用鼠标连续单击出n个图表相同的方块,也就是说,如果用户已经用鼠标连续单击出p(p

(5)测试区能显示用户的同时,并根据级别的不同,提示用户必须用鼠标连续单击出多个图标相同的方块。

(6)测试区有提示图标所在位置的功能。

用户单击测试区中的“提示”按钮后,测试区将持续1.2秒为用户显示全部方块上的图标。

用户每单击一次“提示”按钮,用户用时将增加10秒。

(7)连续单击出级别所要求的若干个相同的方块后,将弹出保存成绩对话框,用户可以通过该对话框选择是否将自己的成绩保存到成绩表中。

2需求分析

2.1设计目标

1.单击“记忆测试”菜单可以选择初级、中级、高级三个级别,通过记忆榜可以查看初级记忆榜、中级记忆榜或高级记忆榜。

2.选择级别后,将显示相应级别的测试区域。

测试区域由若干个方块组成,每个方块上都有一个图标,但该图标默认情况下不可见。

用鼠标单击测试区中的任何一个方块,则计时器开始启动,同时该方块上的图标将显示出来。

对于初级级别,用户必须用鼠标连续单击3个图标相同的方块,也就是说,如果用户已经用鼠标连续单击出n(n<3)个图标相同的方块,单击另一个方块时,如果该方块的图标和上一个相同,那么该方块的图标和前n次单击出的方块的图标仍然可见,否则,前n次单击出的方块的图标都变为不可见。

3.连续单击出该级别所要求的若干个图标形同的方块后,将显示保存成绩对话框,成绩按所用时间排序。

用户可以通过该对话框选择是否将自己的成绩保存到成绩表中。

2.2主体功能

本游戏是通过由用户点击图片显示出图片后,如果是相同的,便保持图形,如果用户点开的是不同的图片则先前点击的图片被清空。

当用户同时点击出规定数目的图片后,弹出保存成绩框。

2.3开发环境

Win7;MyEclipse8.5软件

 

3概要设计

3.1系统的功能模块划分

记忆测试系统共包含8个java源文件和若干个图像文件(用户可以增加)。

类之间的主要关系如下图所示。

在测试系统中,可以编写6个Java源文件:

MemoryGame.java、MemoryTestArea.java、Block.java、ShowRecordDialog.java、Record.java、People.java。

记忆测试系统除了上述6个Java源文件产生的类外,还需要Java系统提供的一些重要的类。

记忆测试系统所用到的一些重要的类以及之间的组合关系如图3.1所示。

 

 

图3.1类之间的组合关系

 

图3.1类之间的关系

 

3.2系统流程图

 

图3.2系统流程图

4详细设计

4.1工作原理

系统主体部分是在底层容器上插入面板,并在面板上安排按钮阵列,当用户点击按钮,经过随机安排在按钮后面的图片显示出来。

通过对比图片下标,如果所显示图片和前一个显示图片一样,则没变化;如果,不一样,则把以前所有显示的图片重新用按钮遮盖。

当用户点开指定数量的图片时,就进入记录数据部分。

在测试过程中,显示用户测试时间。

记录数据部分。

是把用户输入的姓名和系统记录用户测试时间写入指定文档中保存。

查阅数据部分,是把指定文档的数据显示给用户,包括姓名和测试时间。

用户此时可以清除文档中数据,即可删除排行榜。

4.2算法思路

主窗口安排指定数量按钮,是通过用户所选级别传参数计算后进行安排。

随机分布图片需要随机函数随机产生指定数量的图片下标,并传给主窗口的按对应按钮通过对比所显示图片的下标,统计显示的相同图片的数量。

用户测试开始后,记录测试时间,并保存。

4.3主类Memory

a).成员变量

主要成员变量(属性):

成员变量描述

变量类型

名称

菜单条

JMenuBar

Bar

菜单

JMenuItem

FileMenu

菜单项

JMenuBar

初级,中级,高级,初级排行榜,中级排行榜,高级排行榜

面板容器

MemoryTestPane

记忆测试板

方块数组

Block[]

block

显示成绩

ShowRecord

显示成绩表对话框

图标数组

ImageIcon[]

icon

b).方法

主要方法:

名称

功能

备注

Memory

创建窗口

构造方法

给出级别测试

选择级别

actionPerformed

处理ActionEvent事件

接口方法

Main

主程序开始执行

4.4类Block

a).成员变量

主要成员变量(属性):

成员变量描述

变量类型

名称

方块翻开时的图标

ImageIcon

翻开时的图标

方块关闭时的图标

ImageIcon

关闭时的图标

b).方法

主要方法:

名称

功能

备注

Block

创建方块对象的构造方法

获取翻开时的图标

获取方块翻开时的图标

获取关闭时的图标

获取方块关闭时的图标

设置翻开时的图标

设置翻开时的图标

设置关闭时的图标

设置关闭时的图标

设置图标

设置方块上的图标

actionPerformed

处理ActionEvent事件

处理ActionEvent事件

4.5类MemoryTestPane

a).成员变量

主要成员变量(属性):

变量描述

变量类型

名称

随机排列图标对象

RandomSetIcon

排列图标

方块数组

Block

block

图标数组

ImageIcon[]

icon

添加方块对象用的链表

LinkedList

listIcon

添加图标对象用的链表

LinkedList

listIcon

确定是否成功的对象

int

success

用来计时的对象

Timer

计时器

记忆测试板的行数和列数

int

行数,列数

b).方法

主要方法:

名称

功能

备注

MemoryTestPane

创建记忆测试板对象的构造方法

actionPerformed

处理ActionEvent事件

接口方法

4.6类ShowRecord

a).成员变量

主要成员变量(属性):

成员变量描述

变量类型

名称

存放成绩的文件

File

gradeFile

按钮对象

JButton

确定,清除

显示成绩的区域

JTextArea

show

b).方法

主要方法:

名称

功能

备注

ShowRecord

创建显示成绩窗口

构造方法

actionPerformed

处理ActionEvent事件

接口方法

4.7类Record

a).成员变量

主要成员变量(属性):

成员变量描述

变量类型

名称

用时

int

time

输入测试者的名字

JTextField

yourname

存放成绩的文件

File

gradeFile

是否保存成绩的按钮

JButton

确定,取消

b).方法

主要方法:

名称

功能

备注

Record

创建保存成绩窗口

构造方法

actionPerformed

处理ActionEvent事件

接口方法

setTime

设置时间

setFile

设置文件

4.8类RandomSetIcon

a).成员变量(无)

b).方法

主要方法:

名称

功能

备注

随机设置图标

随机排列记忆测试板中方块的图标

4.9类People

a)成员变量

主要成员变量(属性):

描述

变量类型

名称

测试者名字

String

name

用时

int

time

 

b)方法

主要方法:

名称

功能

备注

People

传递名字和时间

构造方法

getTime

返回使用者用时

getName

返回使用者名字

5测试

5.1测试方案

将7个java文件保存到一个文件夹中,例如,D:

\jiyiceshi。

将7个文件分别编译成相应的字节码(.class)文件。

然后,用java解释器运行主类:

C:

\jiyiceshi\javaMemory程序运行后选择各菜单,分别进行功能测试。

5.2测试结果

(1)运行效果

图5.2.1运行效果

 

(2)当选择“记忆力测试”后,自己可以设置游戏的难度,效果如图

图5.2.2初级效果图

图5.2.3中级效果图

图5.2.4高级效果图

图5.2.5排行效果图

 

(3)当游戏结束后,查看“初级排行榜”,将显示初级的成绩记录效果

 

图5.2.5初级成绩记录

 

6小结

Java程序设计是本专业的一门重要的面向对象的程序语言。

在刚开始学习时,一直担心自己、也没把握自己能否学好,也曾担心过不了考试这一关。

经过近大半学期老师您不厌其烦的教导,引导我们去学习。

我对Java语言有了一定的了解,但那绝对是远远不够的,还是要不断地把它应用到实践中去,融会贯通。

经过为期一周的Java课程设计,亲身感受体验敲、改写Java程序代码的乐趣,我对Java编程有了较为深入的了解,不仅巩固了以前在课本上学到的知识,还学会了很多其他东西,比如Java程序不同调试平台的使用、错误的调试及数据库路径的配置等等。

一直以来,或许有不少人跟我一样,总是觉得编程是很枯燥乏味的,但是这次

的体验下来,其实以前我们的想法错误的。

感觉到看着敲击的代码变为一个个可以自娱自乐小游戏程序,其实是一件非常有趣的事情。

并且在添加功能的过程中,不仅可以启发自己的想象力,还可以培养灵活运用知识的能力。

在此过程中,我们认识到编程的重要步骤是分析,分析问题的本身和现实要求。

分析过程中采用根据设置框架选择功能使我的思路特别清晰。

拿到一个题目不能只局限在一种思想一种方法上,要尽量的多尝试其他的做法,然后比较,集各家之所长,拿出最优秀的程序来。

其次也是最重要的就是我们应当打开我们的视野,我们应当从我们的生活的这个世界中去领悟解决问题的思想和方法

通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。

作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。

参考文献

文献写法如下:

1.专著、论文集、毕业论文、报告等

疯狂Java讲义(2008-09)李刚著

附录

附录1源程序清单

Memory.java

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.util.LinkedList;

publicclassMemoryextendsJFrameimplementsActionListener

{

JMenuBarbar;

JMenufileMenu;

JMenuItem初级,中级,高级,初级排行榜,中级排行榜,高级排行榜;

Blockblock[];

ImageIconicon[];

MemoryTestPane记忆测试板=null;

Filefile初级=newFile("初级记忆排行榜.txt"),

file中级=newFile("中级记忆排行榜.txt"),

file高级=newFile("高级记忆排行榜.txt");

LinkedList成绩表=null;

ShowRecord显示成绩表对话框=null;

intm=5,n=6;

int图标个数=0;

Containercon=null;

JTextField提示条=null;

FilegradeFile=null;

publicMemory()

{

block=newBlock[m*n];

图标个数=m;

icon=newImageIcon[图标个数];

for(inti=0;i

{

icon[i]=newImageIcon("a"+i+".gif");

}

for(inti=0;i

{

block[i]=newBlock();

block[i].设置关闭时的图标(newImageIcon("关闭.gif"));

}

bar=newJMenuBar();

fileMenu=newJMenu("记忆力测试");

初级=newJMenuItem("初级");

中级=newJMenuItem("中级");

高级=newJMenuItem("高级");

fileMenu.setMnemonic('G');

初级.setMnemonic('B');

中级.setMnemonic('I');

高级.setMnemonic('E');

高级排行榜=newJMenuItem("高级排行榜");

中级排行榜=newJMenuItem("中级排行榜");

初级排行榜=newJMenuItem("初级排行榜");

初级.setMnemonic('T');

fileMenu.add(初级);

fileMenu.add(中级);

fileMenu.add(高级);

fileMenu.add(初级排行榜);

fileMenu.add(中级排行榜);

fileMenu.add(高级排行榜);

bar.add(fileMenu);

setJMenuBar(bar);

初级.addActionListener(this);

中级.addActionListener(this);

高级.addActionListener(this);

初级排行榜.addActionListener(this);

中级排行榜.addActionListener(this);

高级排行榜.addActionListener(this);

成绩表=newLinkedList();

if(!

file初级.exists())

{

try{

FileOutputStreamout=newFileOutputStream("初级记忆排行榜.txt");

ObjectOutputStreamobject_out=newObjectOutputStream(out);

object_out.writeObject(成绩表);

object_out.close();

out.close();

}

catch(IOExceptione)

{

}

}

if(!

file中级.exists())

{

try{

FileOutputStreamout=newFileOutputStream("中级记忆排行榜.txt");

ObjectOutputStreamobject_out=newObjectOutputStream(out);

object_out.writeObject(成绩表);

object_out.close();

out.close();

}

catch(IOExceptione)

{

}

}

if(!

file高级.exists())

{

try{

FileOutputStreamout=newFileOutputStream("高级记忆排行榜.txt");

ObjectOutputStreamobject_out=newObjectOutputStream(out);

object_out.writeObject(成绩表);

object_out.close();

out.close();

}

catch(IOExceptione)

{

}

}

gradeFile=file初级;

setBounds(100,100,300,260);

setVisible(true);

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

});

con=getContentPane();

记忆测试板=newMemoryTestPane(block,icon,m,n,gradeFile);

提示条=newJTextField("初级:

您需要连续找出"+6+"个相同图标的方块");

提示条.setEditable(false);

提示条.setForeground(Color.red);

con.add(记忆测试板,BorderLayout.CENTER);

con.add(提示条,BorderLayout.SOUTH);

con.validate();

this.validate();

}

publicvoid给出级别测试(int宽,int高,Filef)

{

m=宽;

n=高;

图标个数=m;

gradeFile=f;

block=newBlock[m*n];

icon=newImageIcon[图标个数];

for(inti=0;i

{

icon[i]=newImageIcon("a"+i+".gif");

}

for(inti=0;i

{

block[i]=newBlock();

block[i].设置关闭时的图标(newImageIcon("关闭.gif"));

}

记忆测试板=newMemoryTestPane(block,icon,m,n,gradeFile);

con.removeAll();

con.add(记忆测试板,BorderLayout.CENTER);

con.add(提示条,BorderLayout.SOUTH);

con.validate();

this.validate();

}

publicvoidactionPerformed(ActionEventevent)

{

if(event.getSource()==初级)

{

给出级别测试(3,3,file初级);

setBounds(100,100,300,260);

this.validate();

提示条.setText("初级:

您需要连续找出"+3+"个相同图标的方块");

}

if(event.getSource()==中级)

{

给出级别测试(4,4,file中级);

setBounds(100,100,340,280);

this.validate();

提示条.setText("中级:

您需要连续找出"+4+"个相同图标的方块");

}

if(event.getSource()==高级)

{

给出级别测试(5,5,file高级);

setBounds(100,100,360,300);

this.validate();

提示条.setText("高级:

您需要连续找出"+5+"个相同图标的方块");

}

if(event.getSource()==高级排行榜)

{

显示成绩表对话框=newShowRecord(this,file高级);

显示成绩表对话框.setVisible(true);

}

if(event.getSource()==中级排行榜)

{

显示成绩表对话框=newShowRecord(this,file中级);

显示成绩表对话框.setVisible(true);

}

if(event.getSource()==初级排行榜)

{

显示成绩表对话框=newShowRecord(this,file初级);

显示成绩表对话框.setVisible(true);

}

}

publicstaticvoidmain(Stringargs[])

{

newMemory();

}

}

Block.java

importjavax.swing.*;

importjava.awt.event.*;

publicclassBlockextendsJButtonimplementsActionListener

{

ImageIcon翻开时的图标=null,关闭时的图标=null;

publicBlock()

{

addActionListener(this);

}

publicImageIcon获取翻开时的图标()

{

return翻开时的图标;

}

publicImageIcon获取关闭时的图标()

{

return关闭时的图标;

}

publicvoid设置翻开时的图标(ImageIconicon)

{

翻开时的图标=icon;

}

publicvoid设置关闭时的图标(ImageIconicon)

{

关闭时的图标=icon;

}

publicvoid设置图标(ImageIconicon)

{

setIcon(ico

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2