版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录程序功能简介3主体内容3设计分析3程序结构3各模块功能及程序说明4构造函数:public yunSuanQi()4新建题目函数:public void creatQuestion()5检测函数:public void test()5窗体显示函数:public void showMe()5事件处理:public void actionPerformed(ActionEvent e) 5源程序6操作方法12运行结果12设计体会13程序功能简介程序用字符界面实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。正确则提示正确并记录正确个数,错误则提
2、示错误,不做记录,但在错误时我们可以重新多次输入答案,如果实在算不出来可以选择放弃,进行下一题的测试,直到测试完十道题为止。我在程序中还设置了“开始游戏”和“退出游戏”两个按钮,增加了游戏的自主控制功能,界面也相当简洁明了,适合为儿童开发智力,提高儿童的运算能力。主体内容设计分析该程序实现的功能是产生一个100以内的加减法算术题,在程序后台将此算术式结果保存到一个参数中,通过和用户从图形界面输入的答案对比,判断答案是否正确,并弹出对话框提示信息。界面部分,主窗体包含的控件主要有:JLabel,用于显示提示语句;JTextField,用于用户输入答案;JButton,用于处理操作。界面初始化时,
3、将一些按键,例如完成测试、提交答案等按键设置成不可用,这样可以防止误操作,每次按钮按下时,都有相应的按钮属性被更改。后台部分,核心就是产生随机算术式。用一个字符串数组存放加和减的操作符,产生一个大等于于0小于2的随机数,即为0或1,通过此随机数对应操作符数组中的字符,决定产生的算术式为加法或者减法,后产生两个100以内的随机数,然后通过以上判断求出结果,保存在私有变量中,同时对应的产生一个通过连接完成的字符串,作为界面题目输出的内容,以上便完成了随机算术式的生成。程序结构程序主要流程图如下:函数的结构如下:public class YunSuanQi extends JFrame implem
4、ents ActionListener public yunSuanQi()/构造函数public void creatQuestion()/新建题目public void test()/检测是否做到10道题public void showMe()/窗体显示函数public void actionPerformed(ActionEvent e) /事件处理public static void main(String args)/主函数各模块功能及程序说明构造函数:public yunSuanQi()该函数主要是窗体的初始化,包括添加窗体、设置控件位置等,还包括对一些参数的初始化。新建题目函数:
5、public void creatQuestion()该函数是程序的核心,目的是创建一道新的算术题,程序开始先产生三个随机数,其中两个为100以内的整数,用于运算,另外一个为0或1,用作随机选择减法操作,根据选择好的运算,给一个字符变量值为对应的操作符,完成对应运算,将结果保存到成员变量中,等待比较,同时产生一个字符串,内容为:m+""+fl0+n+"=?"或者m+""+fll+n+"=?",将此字符串利用setText方法输出到JLabel中,即为题目。检测函数:public void test()该函数目的是在
6、每次新建题目前检测是否已经做够十道题,如果够,则设置对应按钮的可用性并初始化各个控件的内容,同时弹出对话框提示测试分数,如果不够,则不进行任何操作。窗体显示函数:public void showMe()该函数是对主窗体的基本初始化,this.setLocationRelativeTo(null)设置窗体在屏幕中央打开,this.setSize(300,200)设置窗体大小,this.setVisible(true)设置窗体可见,this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)设置窗体关闭方式。在主函数中调用此函数以使主界面显示。事件处理:p
7、ublic void actionPerformed(ActionEvent e) 该函数目的是处理所有按钮单击事件,通过对按钮的监听,分辨哪个按钮被单击,然后运行对应按钮事件的代码。事件代码中包括对异常的处理,如输入有误等,以保证程序顺利运行,异常均会以对话框形式弹出并显示误操作类型。在对应按钮的代码中包含了对题目及答案的处理和计数功能。源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;public class YunSuanQi extends JFrame implements ActionListener
8、 private JLabel jlQuestion1;/题目标题 private JLabel jlQuestion2;/题目内容 private JLabel jlAnswer;/答案标题 private JLabel jlW;/题号 private JLabel jlT;/正确数 private JButton jbTest;/提交答案 private JButton jbStart;/开始游戏 private JButton jbEnd;/停止游戏 private JButton jbExit;/退出游戏 private JTextField jtfAnswer;/输入答案 priva
9、te int m,n,l,answer,trueAnswer,x;/随机数m、n,计数参数 private char fl='+','-'/运算符数组 public yunSuanQi()/构造函数 this.x=0;/参数初始化 this.trueAnswer=0; this.setTitle("益智游戏");/控件初始化 this.setLayout(new GridLayout(6,2);/6行2列布局 this.jlQuestion1=new JLabel(); jlQuestion1.setText("题目:")
10、; this.jlQuestion2=new JLabel(); this.jlAnswer=new JLabel(); jlAnswer.setText("答案:"); this.jbStart=new JButton("开始游戏"); jbStart.addActionListener(this);/添加事件监听器 this.jbEnd=new JButton("完成测试"); jbEnd.setEnabled(false);/开始时不可用 jbEnd.addActionListener(this);/添加事件监听器 this.j
11、bTest=new JButton("提交答案"); jbTest.setEnabled(false);/开始时不可用 jbTest.addActionListener(this);/添加事件监听器 this.jbExit=new JButton("退出游戏"); jbExit.addActionListener(this);/添加事件监听器 this.jtfAnswer=new JTextField(); jlW=new JLabel(); jlW.setText("题号:"+x); jlT=new JLabel(); jlT.se
12、tText("正确提交:"+trueAnswer); this.add(jlW);/添加控件 this.add(jlT); this.add(jlQuestion1); this.add(jlQuestion2); this.add(jlAnswer); this.add(jtfAnswer); this.add(new JLabel();/添加空占位label this.add(new JLabel(); this.add(jbStart); this.add(jbTest); this.add(jbEnd); this.add(jbExit); public void
13、creatQuestion()/新建题目 this.m=(int)(Math.random()*100);/随机运算数this.n=(int)(Math.random()*100);this.l=(int)(Math.random()*1);/随机数0或1,匹配随机运算符if(fll='+')/l为0时加法answer=m+n;/加法结果this.jlQuestion2.setText(m+""+fll+n+"=?");/使label显示题目内容else if(fll='-')/l为1时减法answer=m-n;/减法结果
14、this.jlQuestion2.setText(m+""+fll+n+"=?");/使label显示题目内容 public void test()/检测函数,检测是否做到10道题 if(this.x=11)/如果做够数目 jlW.setText("题号:0");/界面初始化 jlT.setText("正确提交:0"); jbStart.setText("开始游戏"); this.jtfAnswer.setText("");this.jlQuestion2.setText(&
15、quot;"); JOptionPane.showMessageDialog( null , "题目数:10,测试得分:"+(10*trueAnswer),"" , JOptionPane.INFORMATION_MESSAGE);/弹出统计对话框 x=0;/数据初始化 trueAnswer=0;jbStart.setEnabled(true);/设置对应按钮是否可用jbEnd.setEnabled(false);jbTest.setEnabled(false); public void showMe()/窗体显示函数 this.setLoca
16、tionRelativeTo(null);/窗体在屏幕中央打开 this.setSize(300,200);/窗体大小 this.setVisible(true);/窗体可见 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/窗体关闭方式 public void actionPerformed(ActionEvent e) /事件处理/ TODO Auto-generated method stubif(e.getSource()=jbStart)/开始游戏或下一题按钮if(jbStart.getText()="开始游戏&quo
17、t;)/按钮为开始游戏x+;/题目增一jbStart.setText("下一题");jbEnd.setEnabled(true);/设置按钮可用jbTest.setEnabled(true);creatQuestion();/新建题目jlW.setText("题号:"+x);jlT.setText("正确提交:"+trueAnswer);else if(jbStart.getText()="下一题")/按钮为下一题x+;/题目增一creatQuestion();/新建题目test();/测试题目总数是否够10jlW
18、.setText("题号:"+x);jlT.setText("正确提交:"+trueAnswer);else if(e.getSource()=jbTest)/提交答案按钮tryint q=Integer.parseInt(jtfAnswer.getText();if(q=answer)/答案正确JOptionPane.showMessageDialog( null , "正确!","" , JOptionPane.INFORMATION_MESSAGE);/提示正确trueAnswer+;/正确回答数增一crea
19、tQuestion();/新建题目x+;jlW.setText("题号:"+x);jlT.setText("正确提交:"+trueAnswer);test();/判断题目总数this.jtfAnswer.setText("");/答案输入框置空else/答案错误JOptionPane.showMessageDialog( null , "错误!","" , JOptionPane.INFORMATION_MESSAGE);/提示错误catch(NumberFormatException nfe)
20、/转换异常处理JOptionPane.showMessageDialog( null , "输入有误!","" , JOptionPane.ERROR_MESSAGE);/提示有误else if(e.getSource()=jbEnd)/中途结束游戏按钮jlW.setText("题号:0");/界面初始化jlT.setText("正确提交:0");jbStart.setText("开始游戏");this.jlQuestion2.setText("");jbStart.setE
21、nabled(true);jbEnd.setEnabled(false);jbTest.setEnabled(false);JOptionPane.showMessageDialog( null , "题目数:"+x+",测试得分:"+(10*trueAnswer),"" , JOptionPane.INFORMATION_MESSAGE);/统计信息对话框else if(e.getSource()=jbExit)/退出游戏按钮System.exit(0);public static void main(String args)yunSuanQi y=new yunSuanQi();y.showMe();操作方法运行程序,按下“开始”按钮就可进入算数计算测试状态,然后在文本框输入你算出的答案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 爱情管家合同模板(3篇)
- G技术在物联网领域的应用前景展望
- 农业种植基地水资源利用协议
- AI在工业制造中的应用案例
- 2026年中国农业科学院第一批统一公开招聘备考题库-中国农科院茶叶研究所及一套参考答案详解
- 2026年北医三院妇产科妇科门诊医师招聘备考题库及完整答案详解一套
- 2026年宁波市江北区国有资本投资控股有限公司人员招聘备考题库及完整答案详解1套
- 2026年成都凯天电子股份有限公司招聘备考题库及参考答案详解1套
- 2026年关于庆阳市工人文化宫招募公益活动教师的备考题库完整参考答案详解
- 2026年上海对外经贸大学实验中心备考题库管理人员招聘备考题库及完整答案详解一套
- 建筑工程测量 第3版 课件 子单元8-4 工业厂房施工测量
- 储能电站安全监测与风险控制方案
- 绿色工厂课件
- 眼镜验光师试题(及答案)
- 选人用人方面存在的问题及改进措施
- 项目管理流程标准作业程序手册
- 自我介绍礼仪课件
- 卫生院孕优知识培训课件
- 2025-2030工业窑炉烟气多污染物协同控制技术
- 培训机构台账
- 电商预算表格财务模板全年计划表格-做账实操
评论
0/150
提交评论