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

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

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

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

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

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

 

《JAVA程序设计》

课程设计报告

 

题 目:

记忆游戏

姓名:

学号:

班级:

指导教师:

完成时间

成绩:

信息工程学院

2015年6月

目录

1概述1

1.1课程设计目的1

1.2课程设计内容1

2需求分析2

2.1设计目标2

2.2主体功能2

2.3开发环境2

3概要设计3

3.1系统的功能模块划分3

3.2系统流程图4

4详细设计5

5测试7

5.1测试方案8

5.2测试结果8

6小结11

参考文献12

附录13

附录1源程序清单13

 

记忆测试系统

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翻开时的图标;

}

publicImageIco

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

当前位置:首页 > 工程科技 > 能源化工

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

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