ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:911.05KB ,
资源ID:2608884      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2608884.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数学测试题实验报告王春泽.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数学测试题实验报告王春泽.docx

1、数学测试题实验报告王春泽电子工程学院2014计算机实习 题 目:数学测试题程序的制作 院 (系): 电子工程学院 年级专业: 2012级1班 学生姓名: 王春泽 学 号: 2012210812 开始时间:2014年2月25日完成时间:2014年3月12日目录目录摘要 2前言 31实验要求 41.1基本要求 41.2功能设计 42.概要设计 52.1程序设计思路 52.2程序运行界面 52.3模块说明图 7(1) 7(2) 72.4程序流程图 72.5程序相关说明 83.程序详细设计与分析 83.1.面板布局 83.2.按钮的监听响应事件 103.2.1为开始按钮添加事件监听器,使之前被隐藏的组

2、件设为可见,并初始化第一道题, 103.3自定义的类的实现方法 143.4异常处理 154测试分析 165实验设计总结 166致谢 16参考资料 16 数学测试题程序的设计与制作 学 生:王春泽 (北京邮电大学 电子工程学院12级1班,学号:2012210812)摘要本倒计时程序使用java语言编写,能够实现数学测试题的功能,启动程序之后显示初始化界面,左上方的模块是计算模块,输入测试题数后,会出现测试试题输入答案后点击下一题按钮,在右边的显示结果模块中显示刚才做的题目,如果答案正确则显示“正确”,如果答案错误则显示“错误”,并给出正确的计算结果。题目都做完后,会给出相应的提示,此时点击“查看

3、成绩”按钮,在成绩烂显示此次做题的成绩,并且根据成绩,会给出相应的提示和动画表情,诸如不及格,优秀等等。点击“重置”按钮,会再次达到初始化的状态,并清楚之前的数据。该程序使用jdk1.6的开发环境,开发工具主要使用eclipse,用到的插件有windowbuilder,美工方面主要用到photoshop进行图片编辑美化;该程序主要用到java图形用户界面,事件监听,媒体等。关键字:数学测试题;Java语言;eclipse;java图形用户界面。前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语

4、言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Ja

5、va Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。在本程序设计中,虽然程序规模较小,内容较少,但出于本人开发android对开发工具eclipse的熟悉度较高,并且对eclipse安装了很多插件,比如windowbuilder等,因此选择目前应用较为广泛的eclipse作为开发工具。1实验要求 1.1基本要求

6、制作一个小学数学测试题的程序,能自定义题目的数量。 能对做题的结果进行判断,如果错误则给出正确的结果。 能查看答题的成绩。 其他要求: 界面美观,操作便捷,程序无BUG,功能有创意。1.2功能设计考虑到功能完整,界面美观,操作便捷,强调良好的用户体验,本数学题测试程序的功能主要体现在以下几个方面:(1) 进入主程序后,显示最开始的初始化界面,(2) 程序面板分为三个模块,左上方是答题模块,左下方是显示成绩模块,右边是答题结果模块。(3) 在答题模块输入答题的数目,点击开始按钮,下方会给出相应的题目,并且无关的部分被隐藏,直到做题结束点重置按钮,隐藏的部分才会显示,这样防止用户误操作,并使界面整

7、洁美观,形成良好的用户体验。(4) 右边的显示答题结果的模块整洁美观,并且用到滚动条,这样题目数量不管多少都可以完美显示。(5) 答题结果后,答题的相关按钮文本框等会被隐藏,代替的是答题结束的提示和相应的动画,很友好。(6) 查看成绩后,根据分数的高低同样给出相应的提示并且伴有有趣的动画效果。2.概要设计2.1程序设计思路在本程序中,设计了一个程序版面和相关按钮以及显示标签。设计过程中,程序的main类继承了JFrame,其中添加了JPanel,在JPanel中,分别添加了按钮JButton并添加相应的响应事件,显示文字和倒计时时间的标签JLabel,在面板的最下层添加JLabel用于显示背景

8、图像,自定义在textfield中显示背景图片的方法,并且自定义了一个继承JLabel的DynamicLabel,用于显示动态图片效果。2.2程序运行界面2.3模块说明图(1) 图1首先创建一个名为MathTest的类并继承JFrame类作为最底层的容器。 (2) 对于创建的DaoJiShi的类,首先要初始化容器,在容器中添加相应的组件,并添加相关的程序响应事件。2.4程序流程图 失败2.5程序相关说明 整个数学测试题程序分为三个模块:答题模块,显示结果模块,显示成绩模块。(1) 在答题模块输入答题的数目,点击开始按钮,下方会给出相应的题目,并且无关的部分被隐藏,直到做题结束点重置按钮,隐藏的

9、部分才会显示,这样防止用户误操作,并使界面整洁美观,形成良好的用户体验。(2) 右边的显示答题结果的模块整洁美观,不仅显示结果的正确与否,还能给出正确的 结果,并且用到滚动条,这样题目数量不管多少都可以完美显示(3) 答题结果后,答题的相关按钮文本框等会被隐藏,代替的是答题结束的提示和相应的动画,很友好。查看成绩后,根据分数的高低同样给出相应的提示并且伴有有趣的动画效果。3.程序详细设计与分析3.1.面板布局3.1.1、创建相关面板 /创建启动界面面板 final JPanel startPanel=new JPanel(); /创建水平分割面板 final JSplitPane hSplit

10、Pane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); /创建垂直分割面板 final JSplitPane vSplitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT); /实现两个普通面板 testPane=new JPanel(); resultPane=new JPanel(); /定义包含JTextArea的滚动面板 Final ImageIcon imageIcon = new ImageIcon(MathTest.class.getResource(/drawable/math_backgro

11、und.png); final JTextArea taShow=new JTextArea() setOpaque(false); Image image = imageIcon.getImage(); public void paintComponent(Graphics g) g.drawImage(imageIcon.getImage(), 0, 0, this); super.paintComponent(g); ;3.1.2、答题面板的布局/标签“输入题数”final JLabel lbNum=newJLabel(u8BF7u8F93u5165u672Cu6B21u6D4Bu8BD

12、5u9898u6570:);/题数输入框final JTextField tfNum=new JTextField();/显示题数标签final JLabel lbNumTitle=new JLabel(本次测试一共 +String.valueOf(count)+ 道题);/确定按钮final JButton okButton=new JButton();/题序号标签final JLabel lbExerciseOrder=new JLabel();/数字标签1final JLabel lbNum_1=new JLabel();/运算符号标签final JLabel lbOperator=ne

13、w JLabel();/数字标签2final JLabel lbNum_2=new JLabel();/等号标签final JLabel lbEqual=new JLabel();/添加文本输入框final JTextField tfResult = new JTextField();/重置按钮final JButton restartButton=new JButton();/添加下一题按钮final JButton nextButton=new JButton();/添加答题结束后的显示final JLabel lbShowAtLast=new JLabel(耶耶耶!终于做完了);3.1.

14、3、显示结果面板的布局/在textfield中添加JTextare,即文本域final JTextArea taShow=new JTextArea() setOpaque(false); 3.1.4、显示成绩面板布局/添加显示成绩标签final JLabel showResultLabel = new JLabel();/添加动态显示标签,该类是自定义的一个类final DynamicGifLabel dynamicLabel_1=new DynamicGifLabel(new ImageIcon( MathTest.class.getResource(/drawable/gif_cry.g

15、if).getImage();/测试结果提示final JLabel lbAlart=new JLabel(呜呜,又没及格。);/背景标签final JLabel Icon_Label_result=new JLabel(new ImageIcon( MathTest.class.getResource(/drawable/score_background.png);3.2.按钮的监听响应事件3.2.1为开始按钮添加事件监听器,使之前被隐藏的组件设为可见,并初始化第一道题,okButton.addActionListener(new ActionListener() public void a

16、ctionPerformed(ActionEvent e) / TODO Auto-generated method stub lbNum.setVisible(false); tfNum.setVisible(false); okButton.setVisible(false); count=Integer.parseInt(tfNum.getText(); lbNumTitle.setText(本次测试一共 +String.valueOf(count)+ 道题); lbExerciseOrder.setText(第 1 题); /产生随机数 num_1=(int) (Math.random

17、()*100); num_2=(int)(Math.random()*100); Random r= new Random(); operator=r.nextInt(4); /设置标签显示内容 if(operator=0) lbOperator.setText( +); if(operator=1) lbOperator.setText(一); if(operator=2) lbOperator.setText( x); if(operator=3) lbOperator.setText( /); lbNum_1.setText(String.valueOf(num_1); lbNum_2.

18、setText(String.valueOf(num_2); lbEqual.setText( = ); lbNumTitle.setVisible(true); tfResult.setVisible(true); nextButton.setVisible(true); restartButton.setVisible(true); lbNum_1.setVisible(true); lbNum_2.setVisible(true); lbOperator.setVisible(true); lbEqual.setVisible(true); lbExerciseOrder.setVisi

19、ble(true);/之前隐藏的设为可见 );3.2.2为重置按钮添加事件监听器,将部分组件隐藏并将需要用到的组件显示/重置按钮添加监听器 restartButton.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub sign=1; rightCount=0; str=nnn; taShow.setText(); lbNum.setVisible(true); tfNum.setVisible(t

20、rue); okButton.setVisible(true); lbNumTitle.setVisible(false); tfResult.setVisible(false); nextButton.setVisible(false); lbNum_1.setVisible(false); lbNum_2.setVisible(false); lbOperator.setVisible(false); lbEqual.setVisible(false); lbExerciseOrder.setVisible(false); lbShowAtLast.setVisible(false); r

21、estartButton.setVisible(false); showResultButton.setVisible(true); lbAlart.setVisible(false); dynamicLabel_1.setVisible(false); dynamicLabel_2.setVisible(false); showResultLabel.setVisible(false);/之前隐藏的设为可见 );3.2.3为下一题按钮添加事件监听器,对答题结果进行判断,并将结果显示到相应的显示面板,并统计答题正确的数目,判断答题是否结束。 /为下一题按钮添加监听器 nextButton.ad

22、dActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub /*if(sign=count) JOptionPane.showMessageDialog(getContentPane(),不好意思,答题已经结束!,提示,JOptionPane.OK_OPTION); else*/ if(tfResult.getText().length()!=0) lbExerciseOrder.setText(第 +(sig

23、n+1)+ 题); sign+; float fInput=Float.parseFloat(tfResult.getText(); String sInput=tfResult.getText(); float fResult = 0; int iResult=0; tfResult.setText(); /开始对运算符进行判断,将结果存入字符串str中 if(operator=0) iResult=num_1+num_2; if(iResult=(int)fInput) str+=num_1+num_2+=+(int)fInput+ +正确+n; rightCount+; else str

24、+=num_1+num_2+=+(int)fInput+ +错误+ 正确答案:+iResult+n; if(operator=1) iResult=num_1-num_2; if(iResult=(int)fInput) str+=num_1+-+num_2+=+(int)fInput+ +正确+n; rightCount+; else str+=num_1+-+num_2+=+(int)fInput+ +错误+ 正确答案:+iResult+n; if(operator=2) iResult= num_1*num_2; if(iResult=(int)fInput) str+=num_1+X+

25、num_2+=+(int)fInput+ +正确+n; rightCount+; else str+=+num_1+X+num_2+=+(int)fInput+ +错误+ 正确答案:+iResult+n; if(operator=3) fResult=(float) num_1/(float)num_2; /格式化结果,保留两位小数 DecimalFormat df=new DecimalFormat(0.00); String sResult=df.format(fResult); if(sResult=sInput) str+=num_1+/+num_2+=+sInput+ +正确+n;

26、rightCount+; else str+=num_1+/+num_2+=+sInput+ +错误+ 正确答案:+sResult+n; taShow.setText(str); if(signcount) lbNumTitle.setVisible(false); tfResult.setVisible(false); nextButton.setVisible(false); lbNum_1.setVisible(false); lbNum_2.setVisible(false); lbOperator.setVisible(false); lbEqual.setVisible(false

27、); lbExerciseOrder.setVisible(false); JOptionPane.showMessageDialog(getContentPane(),本次答题已结束!,提示,JOptionPane.OK_OPTION); /隐藏部分内容 lbShowAtLast.setVisible(true); dynamicLabel_2.setVisible(true); else /产生随机数 num_1=(int) (Math.random()*100); num_2=(int)(Math.random()*100); Random r= new Random(); operator=r.nextInt(4); /设置标签显示内容 lbNum_1.setText(String.valueOf(num_1); lbNum_2.setText(String.valueOf(num_2); if(operator=0) lbOperator.setText( +); if(operator=1) lbOperator.setText(一); if(operator=

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

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