java课程设计记忆系统报告

上传人:痛*** 文档编号:65042863 上传时间:2022-03-22 格式:DOC 页数:35 大小:388KB
收藏 版权申诉 举报 下载
java课程设计记忆系统报告_第1页
第1页 / 共35页
java课程设计记忆系统报告_第2页
第2页 / 共35页
java课程设计记忆系统报告_第3页
第3页 / 共35页
资源描述:

《java课程设计记忆系统报告》由会员分享,可在线阅读,更多相关《java课程设计记忆系统报告(35页珍藏版)》请在装配图网上搜索。

1、1 / 35 文档可自由编辑打印软软 件件 学学 院院课程设计报告书课程设计报告书课课程名称程名称 面向面向对对象程序象程序设计设计 设计题设计题目目 记忆测试记忆测试系系统统 专业专业班班级级 软软件工程(件工程(财财升本)升本)11-1 班班 学学 号号 姓姓 名名 指指导导教教师师 2011 年年 12 月月文档可自由编辑打印目录1 设计时间:.32 设计目的:.33 设计任务.34 设计内容.34.1 需求分析.34.1.1 设计目标.34.1.2 主体功能.34.1.3 开发环境.44.2 系统设计.44.2.1 系统的功能模块划分.44.2.2 系统流程图.234.2.3 系统详细

2、设计.244.3 运行与测试.304.3.1 测试方案.304.3.2 测试结果.305 总结与展望.33参考文献.34成绩评定.34文档可自由编辑打印1 1 设计时间:设计时间:2011 年 12 月 192011 年 12 月 25 日2 2 设计目的:设计目的:此次设计课程的目的在于加深对 Java 基础理论和基础知识的理解,而进行的一次全面的综合训练。掌握使用 java 进行软件设计的基本方法,提高运用 java(MyEclipse 软件)解决实际问题的能力,课程设计是对所学面向对象课程的小结,是提高学对所学知识综合应用能力的一种方式,是集中实践性环节之一。从而进一步掌握 Java 语

3、言程序设计方法,提高分析问题、解决问题的综合应用能力。3 3 设计任务设计任务记忆测试系统通过回忆法测试记忆,分为初级、中级、高级、和自定义四个级别,并通过记忆榜存储每个级别的成绩。4 4 设计内容设计内容 4.1 需求分析需求分析 4.1.1 设计目标设计目标(1)菜单栏包括“选择级别” 、 “查看排行榜” 、 “帮助”三项。其中“选择级别” ,包括“初级” 、 “中级” 、 “高级” 、 “自定义级别” ,可以分别开始初级中级高级和自定义测试。 “查看排行榜” 包括“初级排行榜” 、 “中级排行榜” 、 “高级排行榜” ,可以打开查看相应级别排行榜对话框;“帮助”又包括“新手入门” ,显示

4、系统使用方式。(2)测试面板可以装载按钮阵列,用来显示图片,并且记录统计图片信息,如果相同图片数量达到要求时,弹出记录用户信息对话框,记录用户信息。 (3)还有实时显示“你所用的时间:”和提示相应级别测试信息4.1.2 主体功能主体功能1单击“选择级别”菜单可以选择初级/中级/高级/自定义级别,单击“查看排行榜”菜,可以查看初级记忆榜、中级记忆榜或高级记忆榜。单击“帮助”菜单可以显示4 / 35 文档可自由编辑打印帮助信息。2.选择级别后,将显示相应级别的测试区域。测试区域由若干个方块组成,每个方块上都有一个图标,但该图标默认情况下不可见。用鼠标单击测试区中的任何一个方块,则计时器开始启动,同

5、时该方块上的图标将显示出来。对于初级级别,用户必须用鼠标连续单击6个图标相同的方块,也就是说,如果用户已经用鼠标连续单击出n(n6)个图标相同的方块,单击另一个方块时,如果该方块的图标和上一个相同,那么该方块的图标和前n次单击出的方块的图标仍然可见,否则,前n次单击出的方块的图标都变为不可见。3.连续单击出该级别所要求的若干个图标形同的方块后,将显示保存成绩对话框,成绩按所用时间排序。用户可以通过该对话框选择是否将自己的成绩保存到成绩表中。4.1.3 开发环境开发环境 MyEclipse 8.6 软件4.2 系统设计系统设计4.2.1 系统的功能模块划分系统的功能模块划分记忆测试系统共包含8个

6、java源文件和若干个图像文件(用户可以增加)。类之间的主要关系如下图所示。类之间的关系 (1).java文件Memory.javaMemory(主类)Block(方块)MemoryTestPane(测试版)ShowRecord(显示成绩)显示成绩)ShowHelp(帮助)RandomSetIcon(随机排列图标)Record(记录成绩)People(用户信息)5 / 35 文档可自由编辑打印该java文件定义的类负责创建记忆测试系统的“主窗口” 。该文件含有main方法,程序从该类开始执行。用户可以通过主窗口菜单选择级别,然后窗口内显示相应的MemoryTestPane对象。主窗口默认的Me

7、moryTestPane对象是初级。Memory.Javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.LinkedList;public class Memory extends JFrame implements ActionListener /主类,实现ActionListener接口 JMenuBar bar; JMenu ; JMenu helpMenu; JMenu gradeMenu; JMenuItem 初级, 中级, 高级, 初级

8、排行榜, 中级排行榜, 高级排行榜, 关于; JMenuItem 自定义级别; Block block; ImageIcon icon; MemoryTestPane 记忆测试板 = null; 初级 = new File(初级记忆排行榜.txt), file中级 = new File(中级记忆排行榜.txt), file高级 = new File(高级记忆排行榜.txt); LinkedList 成绩表 = null; ShowRecord 显示成绩表对话框 = null; ShowHelp 显示帮助文档 = null; int m = 5, n = 6; int 图标个数 = 0; Con

9、tainer con = null; JTextField 提示条 = null; = null; public Memory() block = new Blockm * n; 图标个数 = m; icon = new ImageIcon图标个数; for (int i = 0; i icon.length; i+) iconi = new ImageIcon(a + i + .png);6 / 35 文档可自由编辑打印 for (int i = 0; i block.length; i+) blocki = new Block(); blocki.设置关闭时的图标(new ImageIco

10、n(关闭.png); bar = new JMenuBar(); = new JMenu(查看排行榜); helpMenu = new JMenu(帮助); gradeMenu = new JMenu(选择级别); 关于 = new JMenuItem(新手入门); 初级 = new JMenuItem(初级); 中级 = new JMenuItem(中级); 高级 = new JMenuItem(高级); 自定义级别 = new JMenuItem(自定义级别); helpMenu.setMnemonic(H); /键盘助记符号 (F); gradeMenu.setMnemonic(X);

11、关于.setMnemonic(C); 初级.setMnemonic(B); 中级.setMnemonic(M); 高级.setMnemonic(A); 自定义级别.setMnemonic(D); 高级排行榜 = new JMenuItem(高级排行榜); 中级排行榜 = new JMenuItem(中级排行榜); 初级排行榜 = new JMenuItem(初级排行榜); 初级排行榜.setMnemonic(O); 中级排行榜.setMnemonic(N); 高级排行榜.setMnemonic(L); gradeMenu.add(初级); /将单个菜单项添加到菜单组中 gradeMenu.ad

12、dSeparator(); / 分隔线 gradeMenu.add(中级); gradeMenu.addSeparator(); / 分隔线 gradeMenu.add(高级); gradeMenu.addSeparator(); / 分隔线 gradeMenu.add(自定义级别); helpMenu.add(关于); (初级排行榜); (); / 分隔线7 / 35 文档可自由编辑打印 (中级排行榜); (); / 分隔线 (高级排行榜); bar.add(gradeMenu); bar.add(); bar.add(helpMenu); setJMenuBar(bar); 关于.addA

13、ctionListener(this); / 对每个菜单项注册监听器,并且大量使用了动作监听器 (ActionListener)。 初级.addActionListener(this); /ActionListener 只监听一个事件, 中级.addActionListener(this); / 这个事件在其相关组件上产生了动作时被触发, 高级.addActionListener(this); / 因此叫作动作事件 (ActionEvent)。 自定义级别.addActionListener(this); / ActionListener 只有一个方法需要实现, 初级排行榜.addAction

14、Listener(this); / 就是 actionPerformed(ActionEvent ae)。 中级排行榜.addActionListener(this); 高级排行榜.addActionListener(this); 成绩表 = new LinkedList(); if (!file初级.exists() try out = new (初级记忆排行榜.txt); ObjectOutputStream object_out = new ObjectOutputStream(out); object_out.writeObject(成绩表); object_out.close();

15、out.close(); catch (IOException e) if (!file中级.exists() try out = new (中级记忆排行榜.txt); ObjectOutputStream object_out = new ObjectOutputStream(out); object_out.writeObject(成绩表); object_out.close(); out.close(); catch (IOException e) if (!file高级.exists() 8 / 35 文档可自由编辑打印 try out = new (高级记忆排行榜.txt); Obj

16、ectOutputStream object_out = new ObjectOutputStream(out); object_out.writeObject(成绩表); object_out.close(); out.close(); catch (IOException e) gradeFile = file初级; setBounds(100, 100, 350, 350); setVisible(true); addWindowListener(new WindowAdapter() /使得单击 关闭 时结束应用程序 public void windowClosing(WindowEv

17、ent e) System.exit(0); ); con = getContentPane(); 记忆测试板 = new MemoryTestPane(block, icon, m, n, gradeFile); 提示条 = new JTextField(初级:您需要连续找出 + 6 + 个相同图标的方块); 提示条.setEditable(false); 提示条.setForeground(Color.red); con.add(记忆测试板, BorderLayout.CENTER); con.add(提示条, BorderLayout.SOUTH); con.validate(); th

18、is.validate(); public void 给出级别测试(int 宽, int 高, File f) m = 宽; n = 高; 图标个数 = m; gradeFile = f; block = new Blockm * n; icon = new ImageIcon图标个数; for (int i = 0; i icon.length; i+) iconi = new ImageIcon(a + i + .png);9 / 35 文档可自由编辑打印 for (int i = 0; i block.length; i+) blocki = new Block(); blocki.设置

19、关闭时的图标(new ImageIcon(关闭.png); 记忆测试板 = new MemoryTestPane(block, icon, m, n, gradeFile); con.removeAll(); con.add(记忆测试板, BorderLayout.CENTER); con.add(提示条, BorderLayout.SOUTH); con.validate(); this.validate(); public void 给出级别测试(int 宽, int 高) / 为自定义级别而写 重写了 public void 给出级别测试(int 宽,int 高,File f) 方法 /

20、由于不需要排行榜文件 所以把第三个File类型参数除去 m = 宽; n = 高; 图标个数 = m; block = new Blockm * n; icon = new ImageIcon图标个数; for (int i = 0; i icon.length; i+) iconi = new ImageIcon(a + i + .png); for (int i = 0; i block.length; i+) blocki = new Block(); blocki.设置关闭时的图标(new ImageIcon(关闭.png); 记忆测试板 = new MemoryTestPane(bl

21、ock, icon, m, n); con.removeAll(); con.add(记忆测试板, BorderLayout.CENTER); con.add(提示条, BorderLayout.SOUTH); con.validate(); this.validate(); public void actionPerformed(ActionEvent event) if (event.getSource() = 初级) 10 / 35 文档可自由编辑打印 给出级别测试(5, 6, file初级); setBounds(100, 100, 350, 350); this.validate()

22、; 提示条.setText(初级:您需要连续找出 + 6 + 个相同图标的方块); if (event.getSource() = 中级) 给出级别测试(6, 7, file中级); setBounds(100, 100, 390, 390); this.validate(); 提示条.setText(中级:您需要连续找出 + 7 + 个相同图标的方块); if (event.getSource() = 高级) 给出级别测试(7, 8, file高级); setBounds(100, 100, 440, 460); this.validate(); 提示条.setText(高级:您需要连续找出

23、 + 8 + 个相同图标的方块); if (event.getSource() = 自定义级别) try int x, y; String input = JOptionPane.showInputDialog(请输入矩形的高(小于等于14):); int k = Integer.parseInt(input); x = (k - 1) * 20 + 350; String width = JOptionPane.showInputDialog(请输入连续找出相同图标的个数:); int w = Integer.parseInt(width); y = (w - 1) * 20 + 350;

24、给出级别测试(k, w); setBounds(100, 100, x, y); this.validate(); 提示条.setText(初级:您需要连续找出 + w + 个相同图标的方块); catch (NumberFormatException e) JOptionPane.showMessageDialog(null, 你输入的格式不对, 警告, JOptionPane.ERROR_MESSAGE); if (event.getSource() = 高级排行榜) 显示成绩表对话框 = new ShowRecord(this, file高级); 显示成绩表对话框.setVisible(

25、true);11 / 35 文档可自由编辑打印 if (event.getSource() = 中级排行榜) 显示成绩表对话框 = new ShowRecord(this, file中级); 显示成绩表对话框.setVisible(true); if (event.getSource() = 初级排行榜) 显示成绩表对话框 = new ShowRecord(this, file初级); 显示成绩表对话框.setVisible(true); if (event.getSource() = 关于) 显示帮助文档 = new ShowHelp(); 显示帮助文档.setVisible(true);

26、public static void main(String args) new Memory(); Block.java该文件生成的类负责创建测试区中的Block对象。使用鼠标左键单击Block对象,可以显示该对象上的图标。Block.javaimport javax.swing.*;import java.awt.event.*;public class Block extends JButton implements ActionListener ImageIcon 翻开时的图标 = null, 关闭时的图标 = null; public Block() addActionListene

27、r(this); public ImageIcon 获取翻开时的图标() return 翻开时的图标; public ImageIcon 获取关闭时的图标() return 关闭时的图标;12 / 35 文档可自由编辑打印 public void 设置翻开时的图标(ImageIcon icon) 翻开时的图标 = icon; public void 设置关闭时的图标(ImageIcon icon) 关闭时的图标 = icon; public void 设置图标(ImageIcon icon) setIcon(icon); public void actionPerformed(ActionEv

28、ent e) this.setIcon(翻开时的图标); MemoryTestPane.java该文件生成的类负责为主类Memory创建MemoryTestPane对象,主类将级别、Block对象、图标对象等传递给MemoryTestPane。MemoryTestPane.javaimport javax.swing.*;import java.awt.event.*;import java.awt.*;import java.util.LinkedList;import java.io.*;public class MemoryTestPane extends JPanel implemen

29、ts ActionListener RandomSetIcon 排列图标 = null; Block block; ImageIcon icon; LinkedList listIocn = null, listBlock = null; int 行数 = 0, 列数 = 0; int success = 0; int time = 0; javax.swing.Timer 计时器 = null;13 / 35 文档可自由编辑打印 JTextField 显示时间 = null; = null; boolean 计时器是否启动 = false; public MemoryTestPane(Blo

30、ck block, ImageIcon icon, int m, int n, File f) 排列图标 = new RandomSetIcon(); this.block = block; this.icon = icon; 行数 = m; 列数 = n; gradeFile = f; listIocn = new LinkedList(); listBlock = new LinkedList(); setLayout(new BorderLayout(); JPanel center = new JPanel(); center.setLayout(new GridLayout(行数,

31、列数); for (int i = 0; i block.length; i+) center.add(blocki); blocki.addActionListener(this); JPanel south = new JPanel(); 显示时间 = new JTextField(12); 显示时间.setEditable(false); 显示时间.setForeground(Color.red); south.add(显示时间); add(center, BorderLayout.CENTER); add(south, BorderLayout.SOUTH); 排列图标.随机设置图标(

32、block, icon); 计时器 = new Timer(1000, this); 计时器是否启动 = false; public MemoryTestPane(Block block, ImageIcon icon, int m, int n) 排列图标 = new RandomSetIcon(); this.block = block; this.icon = icon; 行数 = m; 列数 = n;14 / 35 文档可自由编辑打印 listIocn = new LinkedList(); listBlock = new LinkedList(); setLayout(new Bor

33、derLayout(); JPanel center = new JPanel(); center.setLayout(new GridLayout(行数, 列数); for (int i = 0; i block.length; i+) center.add(blocki); blocki.addActionListener(this); JPanel south = new JPanel(); 显示时间 = new JTextField(12); 显示时间.setEditable(false); 显示时间.setForeground(Color.red); south.add(显示时间);

34、 add(center, BorderLayout.CENTER); add(south, BorderLayout.SOUTH); 排列图标.随机设置图标(block, icon); 计时器 = new Timer(1000, this); 计时器是否启动 = false; public void actionPerformed(ActionEvent e) if (e.getSource() instanceof Block) Block 方块 = (Block) e.getSource(); ImageIcon 翻开时的图标 = 方块.获取翻开时的图标(); 方块.设置图标(翻开时的图标

35、); if (listIocn.size() = 0) listIocn.add(翻开时的图标); listBlock.add(方块); success = 1; else ImageIcon temp = (ImageIcon) listIocn.getLast(); if (temp = 翻开时的图标 & !(listBlock.contains(方块) success = success + 1; listIocn.add(翻开时的图标); listBlock.add(方块); if (success = 列数) for (int i = 0; i block.length; i+) 1

36、5 / 35 文档可自由编辑打印 blocki.setEnabled(false); for (int j = 0; j listBlock.size(); j+) Block b = (Block) listBlock.get(j); b.setDisabledIcon(b.获取翻开时的图标(); 计时器.stop(); Record record = new Record(gradeFile); record.setTime(time); record.setVisible(true); else if (temp != 翻开时的图标) & (!(listBlock.contains(方块

37、) listIocn.clear(); listBlock.clear(); listIocn.add(翻开时的图标); listBlock.add(方块); success = 1; for (int i = 0; i block.length; i+) if (方块 != blocki) blocki.设置图标(blocki.获取关闭时的图标(); if (计时器是否启动 = false) time = 0; 计时器.start(); 计时器是否启动 = true; if (e.getSource() = 计时器) time = time + 1; 显示时间.setText(您的用时: +

38、 time + 秒); RandomSetIcon.java16 / 35 文档可自由编辑打印该文件生成的类负责为MemoryTestPane创建“排列图标”对象, “排列图标”可以随机设置MemoryTestPane对象中“方块”上的图标。RandomSetIcon.javaimport javax.swing.*;import java.util.Vector;class Point int x; Point(int i) x = i; public int getInt() return x; public class RandomSetIcon public RandomSetIcon

39、() public void 随机设置图标(Block block, ImageIcon icon) Vector vector = new Vector(); int n = icon.length; for (int i = 0; i block.length; i+) int x = i % n; Point p = new Point(x); vector.addElement(p); for (int i = 0; i block.length; i+) int m = (int) (Math.random() * vector.size(); Point p = (Point) v

40、ector.elementAt(m); int x = p.getInt(); blocki.设置翻开时的图标(iconx); vector.remove(m); ShowHelp.java该文件生成的类负责为“主窗口”创建“显示帮助”对象,用户通过给对象可以了解到怎么进行使用该系统。17 / 35 文档可自由编辑打印ShowHelp.javaimport java.awt.FlowLayout;import javax.swing.*;public class ShowHelp extends JFrame public ShowHelp() super(新手入门);/调用父类的构造器 th

41、is.setBounds(100, 100, 400, 470); JTextArea b = new JTextArea( 1.单击“选择级别”菜单可以选择初级/中级/高级/自定义级别n + 2.单击“查看排行榜”菜单可以选择初级排行榜/中级排行榜/高级排行榜n + 3.选择级别后,将显示相应级别的测试区域。测试区域由若干个n + 方块组成,每个方块上都有一个图标,但该图标默认情况下不n + 可见。用鼠标单击测试区中的任何一个方块,则计时器开始启n + 动,同时该方块上的图标将显示出来。n + 4.对于初级级别,用户必须用鼠标连续单击6个图标相同的方块,n + 也就是说,如果用户已经用鼠标连

42、续单击出n(n6)个图标n + 相同的方块,单击另一个方块时,如果该方块的图标和上一n + 个相同,那么该方块的图标和前n次单击出的方块的图标让n + 然可见,否则,前n次单击出的方块的图标都变为不可见。n + 5.连续单击出该级别所要求的若干个图标形同的方块后,将显示n + 保存成绩对话框,成绩按所用时间排序。用户可以通过该对n + 话框选择是否将自己的成绩保存到成绩表中。n, 8, 8); this.setLayout(new FlowLayout(); this.add(b); this.setVisible(true); ShowRecord.java该文件生成的类负责为“主窗口”创建

43、“显示成绩”对象,用户通过该对象可以查看各个级别的成绩记录。ShowRecord.javaimport java.io.*;import java.util.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;public class ShowRecord extends JDialog implements ActionListener 18 / 35 文档可自由编辑打印 = null; JButton 确定, 清除; JTextArea show = null; public ShowRecord(JFrame

44、frame, File f) super(frame, 记忆测试排行榜: + f.toString(); gradeFile = f; show = new JTextArea(6, 4); 确定 = new JButton(显示排行榜); 确定.addActionListener(this); 清除 = new JButton(清空排行榜); 清除.addActionListener(this); Container con = getContentPane(); con.add(new JScrollPane(show), BorderLayout.CENTER); JPanel p =

45、new JPanel(); p.add(确定); p.add(清除); con.add(p, BorderLayout.SOUTH); setBounds(100, 100, 320, 185); setVisible(false); setModal(true); addWindowListener(new WindowAdapter() public void windwoClosing(WindowEvent e) setVisible(false); dispose(); ); public void actionPerformed(ActionEvent e) if (e.getSo

46、urce() = 确定) try show.setText(null); in = new (gradeFile); ObjectInputStream object_in = new ObjectInputStream(in); LinkedList 成绩 = (LinkedList) object_in.readObject(); object_in.close(); sort(成绩); for (int i = 0; i 成绩.size(); i+) People people = (People) 成绩.get(i);19 / 35 文档可自由编辑打印 show.append(n +

47、people.getName() + 成绩: + people.getTime(); catch (Exception ee) if (e.getSource() = 清除) try in = new (gradeFile); ObjectInputStream object_in = new ObjectInputStream(in); LinkedList 成绩 = (LinkedList) object_in.readObject(); object_in.close(); 成绩.clear(); out = new (gradeFile); ObjectOutputStream obj

48、ect_out = new ObjectOutputStream(out); object_out.writeObject(成绩); out.close(); object_out.close(); show.setText(排行榜被清空); catch (Exception ee) public void sort(LinkedList list) for (int i = 0; i list.size() - 1; i+) for (int j = i + 1; j (People) list.get(j).getTime() People temp = (People) list.get

49、(j); list.set(j, (People) list.get(i); list.set(i, temp); Recod.java该文件生成的类负责记录各个级别的成绩。Record.java20 / 35 文档可自由编辑打印import java.io.*;import java.util.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;public class Record extends JFrame implements ActionListener int time = 0; JTextField

50、yourName, label; JButton 确定, 取消; = null; public Record(File f) super(记录你的成绩到: + f.toString(); gradeFile = f; setBounds(100, 100, 330, 160); setResizable(false); setVisible(false); 确定 = new JButton(确定); 取消 = new JButton(取消); yourName = new JTextField(8); yourName.setText(匿名); 确定.addActionListener(thi

51、s); 取消.addActionListener(this); Container con = getContentPane(); con.setLayout(new GridLayout(2, 1); label = new JTextField(输入你的姓名,将成绩存放到排行榜: + f.toString(); label.setEditable(false); con.add(label); JPanel p = new JPanel(); p.add(yourName); p.add(确定); p.add(取消); con.add(p); addWindowListener(new W

52、indowAdapter() public void windwoClosing(WindowEvent e) setVisible(false); dispose(); 21 / 35 文档可自由编辑打印 public void set f) gradeFile = f; public void setTime(int time) this.time = time; public void actionPerformed(ActionEvent e) if (e.getSource() = 确定) try in = new (gradeFile); ObjectInputStream obj

53、ect_in = new ObjectInputStream(in); LinkedList list = (LinkedList) object_in.readObject(); object_in.close(); in.close(); People people = new People(yourName.getText(), time); list.add(people); out = new (gradeFile); ObjectOutputStream object_out = new ObjectOutputStream(out); object_out.writeObject

54、(list); out.close(); object_out.close(); catch (Exception event) System.out.println(event); setVisible(false); dispose(); if (e.getSource() = 取消) setVisible(false); dispose(); People.java22 / 35 文档可自由编辑打印给文件生成的类负责存放用户的信息。People.javapublic class People implements java.io.Serializable String name = nu

55、ll; int time = 0; public People(String name, int t) this.name = name; time = t; public int getTime() return time; public String getName() return name; (2).图像文件a0.png :方块上的图标。a1. png :方块上的图标。a2. png :方块上的图标。a3. png :方块上的图标。a4. png :方块上的图标。a5. png :方块上的图标。a6. png :方块上的图标。a7. png :方块上的图标。a8. png :方块上的图

56、标。23 / 35 文档可自由编辑打印关闭. png :方块关闭时显示的图标。4.2.2 系统流程图系统流程图开始创建容器选择菜单查看排行榜选择级别查看帮助信息相应级别提示加载”方块“随机设置“方块“上的图标加载”图标“并开始计时结束显示相应级别排行榜显示操作信息相同图标满足要求显示保存成绩对话框输入玩家姓名成绩排序后保存到相应文件中是否保存成绩是是否否24 / 35 文档可自由编辑打印 系统流程图4.2.3 系统详细设计系统详细设计(1)工作原理: 系统主体部分是在底层容器上插入面板,并在面板上安排按钮阵列,当用户点击按钮,经过随机安排在按钮后面的图片显示出来。通过对比图片下标,如果所显示图

57、片和前一个显示图片一样,则没变化;如果,不一样,则把以前所有显示的图片重新用按钮遮盖。当用户点开指定数量的图片时,就进入记录数据部分。在测试过程中,显示用户测试时间。记录数据部分。是把用户输入的姓名和系统记录用户测试时间写入指定文档中保存。 查阅数据部分,是把指定文档的数据显示给用户,包括姓名和测试时间。用户此时可以清除文档中数据,即可删除排行榜。(2)算法思路: 主窗口安排指定数量按钮,是通过用户所选级别传参数计算后进行安排。随机分布图片需要随机函数随机产生指定数量的图片下标,并传给主窗口的按对应按钮通过对比所显示图片的下标,统计显示的相同图片的数量。用户测试开始后,记录测试时间,并保存。(

58、3)主类 Memorya).成员变量主要成员变量(属性):成员变量描述变量类型名称菜单条JMenuBarBar菜单JMenuItem菜单项JMenuBar初级,中级,高级,初级排行榜,中级排行榜,高级排行榜面板容器MemoryTestPane记忆测试板方块数组Blockblock显示成绩ShowRecord显示成绩表对话框图标数组ImageIconiconb).方法主要方法:25 / 35 文档可自由编辑打印名称功能备注Memory创建窗口构造方法给出级别测试选择级别actionPerformed处理ActionEvent事件接口方法Main主程序开始执行3).流程图: Memory流程图(2

59、).类Blocka).成员变量开始创建主窗口,默认的MemoryTestPane对象为初级选择级别生成记录各个级别成绩的文件查看排行榜选择“帮助”显示初级测试区域结束显示相应级别排名选择查看级别显示操作信息是否是否否是否26 / 35 文档可自由编辑打印主要成员变量(属性):成员变量描述变量类型名称方块翻开时的图标ImageIcon翻开时的图标方块关闭时的图标ImageIcon关闭时的图标b).方法主要方法:名称功能备注Block创建方块对象的构造方法获取翻开时的图标获取方块翻开时的图标获取关闭时的图标获取方块关闭时的图标设置翻开时的图标设置翻开时的图标设置关闭时的图标设置关闭时的图标设置图标

60、设置方块上的图标actionPerformed处理ActionEvent事件处理ActionEvent事件(3).类MemoryTestPanea).成员变量主要成员变量(属性):变量描述变量类型名称随机排列图标对象RandomSetIcon排列图标方块数组Blockblock图标数组ImageIconicon添加方块对象用的链表LinkedListlistIcon添加图标对象用的链表LinkedListlistIcon确定是否成功的对象intsuccess用来计时的对象Timer计时器记忆测试板的行数和列数int行数,列数b).方法主要方法:名称功能备注MemoryTestPane创建记忆测

61、试板对象的构造方法actionPerformed处理ActionEvent事件接口方法27 / 35 文档可自由编辑打印c).流程图MemoryTestPane流程图(4).类 ShowRecorda). 成员变量主要成员变量(属性):成员变量描述变量类型名称存放成绩的文件FilegradeFile按钮对象JButton确定,清除显示成绩的区域JTextAreashowb).方法开始翻开第一个方块得分,添加图标及方块到链表和上一次翻开的方块的图标是否相同计时器开始计时将图标和方块链表清空,成功次数恢复到一次,其他方块显示成关闭图标结束取上一次翻开的方块的图标成功次数是否达到规定次数本次测试成功

62、是否否是28 / 35 文档可自由编辑打印主要方法:名称功能备注ShowRecord创建显示成绩窗口构造方法actionPerformed处理ActionEvent事件接口方法c).流程图 ShowRecorde流程图(5).类 Recorda).成员变量主要成员变量(属性):成员变量描述变量类型名称用时inttime输入测试者的名字JTextFieldyourname存放成绩的文件FilegradeFile开始选择“清空排行榜”选择“显示排行榜”清空成绩记录按用时进行排序显示成绩排序结束否是否是29 / 35 文档可自由编辑打印是否保存成绩的按钮JButton确定,取消 b).方法主要方法:

63、名称功能备注Record创建保存成绩窗口构造方法actionPerformed处理ActionEvent事件接口方法setTime设置时间setFile设置文件(6).类 ShowHelpa).成员变量(无)b).方法主要方法:名称功能备注ShowHelp显示帮助文本构造方法(7).类 RandomSetIcon a).成员变量(无)b).方法主要方法:名称功能备注随机设置图标随机排列记忆测试板中方块的图标(8).类 Peoplea)成员变量主要成员变量(属性):描述变量类型名称测试者名字Stringname用时inttimeb) 方法主要方法:30 / 35 文档可自由编辑打印名称功能备注P

64、eople传递名字和时间构造方法getTime返回使用者用时getName返回使用者名字4.3 运行与测试运行与测试4.3.1 测试方案测试方案将 8 个 java 文件保存到一个文件夹中,例如,D:jiyiceshi。将 8 个文件分别编译成相应的字节码(.class)文件。然后,用 java 解释器运行主类:C:jiyiceshijava Memory 程序运行后选择各菜单,分别进行功能测试。4.3.2 测试结果测试结果(1) 运行效果:(2)当选择“自定义级别”后,自己可以设置游戏的难度,效果如图31 / 35 文档可自由编辑打印(3)当选择“查看排行榜”中的“初级排行榜”后,将显示初级

65、的成绩记录效果32 / 35 文档可自由编辑打印 (4)当选择“选择级别”中的“高级”后,在测试过程中的效果 (5)在测试过程中,当连续找到 6 个相同的图标时的效果33 / 35 文档可自由编辑打印 (6)当选择“帮助”中的“新手入门”后,将显示简单的帮助文本效果5 5 总结与展望总结与展望通过本次课程设计使我受益匪浅,java 课程是一门理论性和实践性都很强的课程,只有通过亲自编写算法、上机运行和调试程序,才能加深理解和掌握所学的知识,提高程序设计和软件研发能力,通过自己动手实践对课堂上所学习的知识有了进一步的巩固加深,并且学到了很多书本上课堂上无法学到的东西。本次课程设计锻炼了我在动手实

66、34 / 35 文档可自由编辑打印践操作的能力,对数据库有了更深的理解和认识,让我学会了用理论知识与实际问题联系在一起 ,回顾系统的开发与撰写过程,有很多收获,但也有很多不尽人意之处,同时也认识到了自身的不足,促使我在今后的学习中必须继续努力,不断的充实自己,为以后自己在今后的课程学习和将来的工作中奠定了良好的基础。35 / 35 文档可自由编辑打印参考文献参考文献 1 java 6 程序设计 实践教程刘万军等 北京 清华大学出版社 2009 2 雍俊海 java 程序设计教程(第 2 版) 北京 清华大学出版社 20073 张居敏等 java 程序设计经典教程 北京 电子工业出版社 20084 魏勇. 一种基于 Java 技术的网络管理软件的设计方案J. 硅谷,2010, (20):83.成绩评定成绩评定成绩成绩 教师签字教师签字

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!