java课程设计记忆测试系统.docx
- 文档编号:28207115
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:31
- 大小:245.36KB
java课程设计记忆测试系统.docx
《java课程设计记忆测试系统.docx》由会员分享,可在线阅读,更多相关《java课程设计记忆测试系统.docx(31页珍藏版)》请在冰豆网上搜索。
java课程设计记忆测试系统
课程设计(论文)
题目名称记忆测试系统
课程名称专业课程设计Ⅲ
学生姓名
学号
系、专业信息工程系、计算机科学与技术
指导教师
2013年11月2日
1前言
伴随着社会科学技术的飞速发展,信息化时代也以闪电般的速度呈现在我们的面前,所以,计算机的发展更以其惊人的速度在发展着,生活中有许多复杂的问题都需要用计算机去解决,从而产生了新的思想,Java语言就是一种伴随着社会息技术的飞速发展而发展起来的强有力的计算机编程语言,它能够透彻地反映人们的思想,巧妙而充分地使计算机本身特性发挥到极致,便于编程人员根据社会的需要,灵活地编制出高级语言程序来实现生活和工作中的各种复杂程序。
在当今众多的计算机程序设计语言中,面向对象技术正逐步替代传统的面向过程的程序设计技术,成为目前软件的主流开发方向,Java语言以它独到的面向对象特性在各类编程语言中脱颖而出,Java语言的快速发展与广泛应用有目共睹。
Java语言是计算机能提供的最快而又最有效的语言,也是能够利用计算机所有硬件特性的编程语言。
在当今信息高速发展的社会,Java语言越来越实用,可以通过Java实现更高更快的应用需求,Java语言将成为应用程序的开发和建设的核心技术,它能够有效地提高计算机性能和应用场合,满足各种用户的应用需求。
本论文主要介绍了《记忆测试系统》的相关使用方法,以及程序中应用到的相关技术和方法。
本论文包括需求分析、系统功能介绍和系统功能实现三个主要部分。
2需求分析
2.1任务和要求
通过专业课程设计Ⅲ,还有根据团队合作的内容,我们做了相应的自主练习,笑话了课堂所解的内容,通过调试典型例题或习题积累调试JAVA程序的经验。
逐渐培养了我们的编程能力,并且有助于培养学生综合运用数据库相关知识解决实际问题的能力。
本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。
同时要求对数据库的运营、管理及使用上进行必要的规划和实现。
(1)根据需求,建立ER模型。
通过ER图表示。
(2)预计每个表的大致容量和增长速度。
指定备份的方案,写出相关的备份命令。
(3)从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。
(4)从数据更新或修改的角度出发,设计至少1个存储过程。
(5)以上所有命令及脚本均需测试,在设计报告中说明其功能并记录其输出。
(6)针对常用的业务,创建包,同时实现一个函数放入包中。
(7)从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。
(8)在此基础上,设计物理表结构,编写创建数据库表的语句。
较高要求为在设计创建数据表语句的同时考虑性能上的要求,采用相关的磁盘存储技术。
(9)从数据检验的角度出发,为相关的表建立至少1个触发器
2.2运行环境
(1)WINDOWS2000/XP系统
(2)editplus或eclipse
2.3开发工具
JAVA
3分析和设计
3.1系统分析及设计思路
选择级别后,将显示相应级别的测试区域。
测试区域由若干个方块组成,每个方块都有一个图标,但该图标默认情况下不可见。
用鼠标单击测试区中的任何一个方块,则计时器开始启动,同时该方块上的图标将显示出来。
对于初级级别,用户必须用鼠标连续单击出6个图标相同的方块,也就是说,如果用户已经用鼠标连续单击出n(n<6)个图标相同的方块,单击另一个房块时,如果该方块的图标和上一个相同,那么该方块的图标和前n次单击出的方块的图标仍然可见,否则,前n次单击出的方块的图标都变为不可见。
连续单击出该级别所要求的若干个图彪相同的方块后,将显示保存成绩对话框,成绩按所用时间排序。
用户可以通过该对话框选择是否将自己的成绩保存到成绩表中。
3.2主要类图
MemoryGame
actionPerformed()
main()
Block类
getOpenStateIcon()
setOpenStateIcon()
Record类
setGradeFile()
setTime()
actionPerformed()
ShowRecordDialog类
setGradeFile()
showRecord()
actionPerformed()
ShowRecord类
setGradeFile()
showRecord()
actionPerformed()
MemoryTestArea类
initBlock()
setImageName()
actionPerformed()
run()
People类
getTime()
getName()
compareTo()
3.3函数流程图
4具体代码实现
//主类MemoryGame
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.util.LinkedList;
publicclassMemoryGameextendsJFrameimplementsActionListener{
JMenuBarbar;
JMenumenuGrade,menuResult,menuIcon;
JMenuItemoneGradeItem,twoGradeItem,threeGradeItem;
JMenuItemoneGradeResult,twoGradeResult,threeGradeResult;
JMenuItemcarImageIcon,animalImageIcon;
FilefileOneGrade,fileTwoGrade,fileThreeGrade,gradeFile;
StringimageName[];
MemoryTestAreamemoryArea;
ShowRecordDialogshowDiolag=null;
intm=5,n=6;
finalintimageNumber=7;
MemoryGame(){
fileOneGrade=newFile("初级记忆排行榜.txt");
fileTwoGrade=newFile("中级记忆排行榜.txt");
fileThreeGrade=newFile("高级记忆排行榜.txt");
bar=newJMenuBar();
menuGrade=newJMenu("选择级别");
oneGradeItem=newJMenuItem("初级");
twoGradeItem=newJMenuItem("中级");
threeGradeItem=newJMenuItem("高级");
menuGrade.add(oneGradeItem);
menuGrade.add(twoGradeItem);
menuGrade.add(threeGradeItem);
menuResult=newJMenu("查看排行榜");
oneGradeResult=newJMenuItem("初级排行榜");
twoGradeResult=newJMenuItem("中级排行榜");
threeGradeResult=newJMenuItem("高级排行榜");
menuResult.add(oneGradeResult);
menuResult.add(twoGradeResult);
menuResult.add(threeGradeResult);
menuIcon=newJMenu("选择图标");
carImageIcon=newJMenuItem("汽车图标");
animalImageIcon=newJMenuItem("动物图标");
animalImageIcon.addActionListener(this);
carImageIcon.addActionListener(this);
menuIcon.add(carImageIcon);
menuIcon.add(animalImageIcon);
bar.add(menuGrade);
bar.add(menuResult);
bar.add(menuIcon);
setJMenuBar(bar);
oneGradeItem.addActionListener(this);
twoGradeItem.addActionListener(this);
threeGradeItem.addActionListener(this);
oneGradeResult.addActionListener(this);
twoGradeResult.addActionListener(this);
threeGradeResult.addActionListener(this);
if(!
fileOneGrade.exists()){
try{fileOneGrade.createNewFile();
}
catch(IOExceptionexp){}
}
if(!
fileTwoGrade.exists()){
try{fileTwoGrade.createNewFile();
}
catch(IOExceptionexp){}
}
if(!
fileThreeGrade.exists()){
try{fileThreeGrade.createNewFile();
}
catch(IOExceptionexp){}
}
setBounds(100,100,400,360);
setVisible(true);
memoryArea=newMemoryTestArea();
imageName=newString[imageNumber];
for(inti=0;i imageName[i]=newString("car"+i+".jpg"); } m=5; n=6; gradeFile=fileOneGrade; memoryArea.initBlock(m,n,imageName,gradeFile); add(memoryArea,BorderLayout.CENTER); showDiolag=newShowRecordDialog(); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEventevent){ if(event.getSource()==oneGradeItem){ m=5; n=6; gradeFile=fileOneGrade; memoryArea.initBlock(m,n,imageName,gradeFile); } if(event.getSource()==twoGradeItem){ m=6; n=7; gradeFile=fileTwoGrade; memoryArea.initBlock(m,n,imageName,gradeFile); } if(event.getSource()==threeGradeItem){ m=7; n=8; gradeFile=fileThreeGrade; memoryArea.initBlock(m,n,imageName,gradeFile); } if(event.getSource()==carImageIcon){ for(inti=0;i imageName[i]=newString("car"+i+".jpg"); } memoryArea.setImageName(imageName); memoryArea.initBlock(m,n,imageName,gradeFile); } if(event.getSource()==animalImageIcon){ for(inti=0;i imageName[i]=newString("ani"+i+".jpg"); } memoryArea.setImageName(imageName); memoryArea.initBlock(m,n,imageName,gradeFile); } if(event.getSource()==oneGradeResult){ showDiolag.setGradeFile(fileOneGrade); showDiolag.showRecord(); showDiolag.setVisible(true); } if(event.getSource()==twoGradeResult){ showDiolag.setGradeFile(fileTwoGrade); showDiolag.showRecord(); showDiolag.setVisible(true); } if(event.getSource()==threeGradeResult){ showDiolag.setGradeFile(fileThreeGrade); showDiolag.showRecord(); showDiolag.setVisible(true); } } publicstaticvoidmain(Stringargs[]){ newMemoryGame(); } } //MemoryTestArea类 importjavax.swing.*; importjava.awt.event.*; importjava.awt.*; importjava.util.*; importjava.io.*; publicclassMemoryTestAreaextendsJPanelimplementsActionListener,Runnable{ introw,col; FilegradeFile; ArrayList StringimageFileName[]; LinkedList LinkedList intsuccess=0; ThreadhintThead; JButtonhintButton; intusedTime=0; JTextFieldshowUsedTime,hintMessage; javax.swing.Timertimer; Recordrecord; JPanelcenter,south; MemoryTestArea(){ setLayout(newBorderLayout()); allBlockList=newArrayList openIconList=newLinkedList openBlockList=newLinkedList hintThead=newThread(this); hintMessage=newJTextField(); hintMessage.setHorizontalAlignment(JTextField.CENTER); hintMessage.setEditable(false); hintMessage.setFont(newFont("宋体",Font.BOLD,18)); center=newJPanel(); south=newJPanel(); hintButton=newJButton("提示"); hintButton.addActionListener(this); showUsedTime=newJTextField(8); showUsedTime.setEditable(false); showUsedTime.setHorizontalAlignment(JTextField.CENTER); south.add(newJLabel("用时: ")); south.add(showUsedTime); south.add(newJLabel("提示图标位置(导致用时增加): ")); south.add(hintButton); add(south,BorderLayout.SOUTH); add(hintMessage,BorderLayout.NORTH); timer=newjavax.swing.Timer(1000,this); record=newRecord(); } publicvoidinitBlock(intm,intn,Stringname[],Filef){ row=m; col=n; gradeFile=f; center.removeAll(); imageFileName=name; ImageIconicon[]=newImageIcon[imageFileName.length]; for(inti=0;i icon[i]=newImageIcon(imageFileName[i]); } if(allBlockList.isEmpty()){ for(inti=0;i allBlockList.add(newBlock()); } } else{ allBlockList.clear(); for(inti=0;i allBlockList.add(newBlock()); } } for(inti=0;i allBlockList.get(i).addActionListener(this); allBlockList.get(i).setOpenStateIcon(icon[i%row]); } Collections.shuffle(allBlockList); center.setLayout(newGridLayout(row,col)); for(inti=0;i center.add(allBlockList.get(i)); } add(center,BorderLayout.CENTER); if(timer.isRunning()){ timer.stop(); } hintMessage.setText("您需要用鼠标单击出"+col+"个同样图标的方块"); usedTime=0; showUsedTime.setText(null); validate(); } publicvoidsetImageName(Stringname[]){ imageFileName=name; } publicvoidactionPerformed(ActionEvente){ if(e.getSource()instanceofBlock){ if(! timer.isRunning()) timer.start(); Blockblock=(Block)e.getSource(); ImageIconopenStateIcon=block.getOpenStateIcon(); block.setIcon(openStateIcon); if(openIconList.size()==0){ openIconList.add(openStateIcon); openBlockList.add(block); success=1; } else{ ImageIcontemp=openIconList.getLast(); if(temp==openStateIcon&&! (openBlockList.contains(block))){ success=success+1; openIconList.add(openStateIcon); openBlockList.add(block); if(success==col){ for(inti=0;i allBlockList.get(i).setEnabled(false); } for(intj=0;j Blockb=openBlockList.get(j); b.setDisabledIcon(b.getOpenStateIcon()); } timer.stop(); record.setTime(usedTime); record.setGradeFile(gradeFile); record.setVisible(true); } } elseif((temp! =openStateIcon)&&(! (openBlockList.contains(block)))){ openIconList.clear(); openBlockList.clear(); openIconList.add(openStateIcon); openBlockList.add(block); success=1; for(inti=0;i if(allBlockList.get(i)! =block) allBlockList.get(i).setIcon(null); } } } } if(e.getSource()==hintButton){ if(! hintThead.isAlive()) hintThead=newThread(this)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 记忆 测试 系统