2022年算术运算测试程序 .pdf
兰州商学院陇桥学院工学系课程设计报告课程名称: java课程设计设计题目:算术运算测试程序系别:工学系专业 ( 方向):信息管理与信息系统年级、班: 2012 级信本(2)班学生姓名:苗学兵学生学号: 20120651233 指导教师:张鑫2014 年6月 30日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 目录一、系统开发的背景 . 1 二、系统分析与设计 . 1 (一)系统功能要求 . . 1 (二)系统模块结构设计 . 1 三、系统的设计与实现 . 2 (一)主界面的设计和输出. . 2 (二)算术的计算和评分. . 4 四、系统测试 . 6 五、总结 . 8 六、附件(代码、部分图表) . 8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 1 学生综合测评系统一、系统开发的背景为了实现小学简单的数学算术运算,提高数学计算能力和速度。因此我们设计简单的数学测试系统,可以随机抽取100 以内的加减法,并且能计算正确答案和测试出你的得分。是一个很好地简单数学测试函数。二、系统分析与设计( 一) 系统功能要求该程序实现十道100 以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。界面要求:用图形界面实现。(二)系统模块结构设计通过对系统功能的分析,计算测测试系统功能如下图所示。图 1 学生综合测评系统功能图程序运行输出正误判断结果分析输入总分输出题号,抽取随机数加减预算符输入个人结果提交进入下一题显示正确答案答案错误并输出正确答案退出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 2 该计算运算测试程序系统具备调用Math.random()*100抽取 100 以内随机数并自加减运算、输入个人运算结果、对比答案并进行加分运算,得出总分。具体功能的详细描述如下:1. 当进入“运算测试程序”界面时,根据计算机随机得出的题目,在输入框中输入运算结果。选择“提交”按钮时将看到运算出错。正确时界面框中,输出“恭喜,回答正确。”并自行加分。错误时界面框中,输出“抱歉,回答错误、”和正确答案。2选择“下一题”按钮进入下一题。3. 计算机通过 if语句判断执行次数是否达到10 次,当小于 10 次时进入下次循环。否则跳入下一步。4. 算出最终分数并显示“您的得分是”。5. 退出。三、系统的设计与实现(一)主界面的设计和输出分析:利用JFrame(窗口) 、JPanel(容器)函数进行主界面的输出,分别对窗口的大小,窗口内的标题框,答案框,还有其中的输出,都进行了大小的设置,导入了 java 中的有用的包,判断窗口具体流程图和代码下图所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 3 输出主界面涉及的函数如下: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.*; import javax.swing.*; import javax.swing.plaf.SliderUI; public class Random_problem JFrame jf = new JFrame(); JPanel jp = new JPanel(); JLabel jl = new JLabel(); /显示题目JLabel jl2 = new JLabel(); /显示结果正确与否JButton jb = new JButton(提交 ); JButton jb2 = new JButton(next); JTextField jtf = new JTextField(); /输入答案0-99 以内抽取两个数事 件进行加减运算判断正误,判断运行次数,分数叠加输出总分输入个人运算结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 4 (二)算术的计算和评分主要包括的代码有:private int num1, num2, sum = 0, score = 0, temp,count=0; public Random_problem() jf.setSize(300,300); jf.add(jp); jp.setLayout(null); jp.add(jl); jl.setBounds(18,18,100,10); /调整位置,大小jp.add(jtf); jtf.setBounds(120,10,40,20); jp.add(jb); jb.setBounds(10,50,60,40); jp.add(jb2); jb2.setBounds(80,50,60,40); jp.add(jl2); jl2.setBounds(60,100,200,50); jf.setVisible(true); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); public void produce() Random rand = new Random(); num1 = (int) (Math.random() * 100); num2 = (int) (Math.random() * 100); sum = 0; temp = (int) (Math.random() * 10) % 2; if (temp = 0) jl.setText(第+(count)+题: +num1 + + + num2 + =); count+; sum = num1 + num2; else count+; jl.setText(第+(count)+题: +num1 + - + num2 + =); sum = num1 - num2; jb.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 5 int s = Integer.parseInt(jtf.getText(); if(s=sum) jl2.setText(恭喜,回答正确!); score += 10; else jl2.setText(抱歉,回答错误。+ 正确答案: + sum); ); jb2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(count=10) JOptionPane j= new JOptionPane(); j.showMessageDialog(jf, 您的得分是:+score); jf.setVisible(false); Random rand = new Random(); num1 = (int) (Math.random() * 100); num2 = (int) (Math.random() * 100); sum = 0; temp = (int) (Math.random() * 10) % 2; if (temp = 0) count+; jl.setText(第+(count)+题: +num1 + + + num2 + =); sum = num1 + num2; else count+; jl.setText(第+(count)+题: +num1 + - + num2 + =); sum = num1 - num2; ); public static void main(String args) Random_problem a = new Random_problem(); a.produce(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 6 四、系统测试测试该函数使用的eclipse,输出界面主要是窗口的设置,包括随机题目、提交按钮、下一题按钮,关闭、最小化、还原按钮。界面比较清晰,操作简单。下面是测试程序的各界面:图 1. 程序主界面图 2. 输入答案回答正确名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 7 图 3. 输入答案回答错误图 4. 按下 next 进入下一题图 5. 答完 10 道计算出得分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 8 五、总结优点:系统完成了实现十道100 以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数功能。能够进行各种小学数学的运算,还能够计算出分数,是一个很好地测试自己的数学水平的程序。不足:系统界面还是比较单调,需要进一步美化,提高用户的兴趣。点击下一题时上次输入的答案还在新题的答案框内。收获:老实的说刚开始听说要写java 课程设计的时候真的好紧张,想想自己学的并不好,要编程真的。后来开始慢慢试着去写,也查了不少资料,看了几遍书,稍微还是有点懂了。接下来就是调试、完善,这次java 课程设计让我对 java 课程设计有了更深入的了解,同时又激励了我,相信一件事只要自己认真去做就会有收获的。这次了解到java 在日常生活中的无处不在的强大功能,不仅可以字符界面实现,还可以图形界面实现,让我觉得下学期我要学好类似的编程语言。六、附件(代码、部分图表)程序的主要代码如下:import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.*; import javax.swing.*; import javax.swing.plaf.SliderUI; public class Random_problem JFrame jf = new JFrame(); JPanel jp = new JPanel(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 9 JLabel jl = new JLabel(); /显示题目JLabel jl2 = new JLabel(); /显示结果正确与否JButton jb = new JButton(提交 ); JButton jb2 = new JButton(next); JTextField jtf = new JTextField(); /输入答案private int num1, num2, sum = 0, score = 0, temp,count=0; public Random_problem() jf.setSize(300,300); jf.add(jp); jp.setLayout(null); jp.add(jl); jl.setBounds(18,18,100,10); /调整位置,大小jp.add(jtf); jtf.setBounds(120,10,40,20); jp.add(jb); jb.setBounds(10,50,60,40); jp.add(jb2); jb2.setBounds(80,50,60,40); jp.add(jl2); jl2.setBounds(60,100,200,50); jf.setVisible(true); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); public void produce() Random rand = new Random(); num1 = (int) (Math.random() * 100);/产生 100 以内的随机整数num2 = (int) (Math.random() * 100); sum = 0; temp = (int) (Math.random() * 10) % 2;判断是题目是加发还是减法 if (temp = 0) jl.setText(第+(count)+题: +num1 + + + num2 + =);/加法题目抽到count+; sum = num1 + num2; else count+; jl.setText(第+(count)+题: +num1 + - + num2 + =);/抽到减法题目 sum = num1 - num2; jb.addActionListener(new ActionListener() /事件监听器public void actionPerformed(ActionEvent e) int s = Integer.parseInt(jtf.getText(); if(s=sum) jl2.setText(恭喜,回答正确!); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 10 score += 10; else jl2.setText(抱歉,回答错误。+ 正确答案: + sum); ); jb2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(count=10) JOptionPane j= new JOptionPane(); j.showMessageDialog(jf, 您的得分是:+score); jf.setVisible(false); Random rand = new Random(); num1 = (int) (Math.random() * 100); num2 = (int) (Math.random() * 100); sum = 0; temp = (int) (Math.random() * 10) % 2; if (temp = 0) count+; jl.setText(第+(count)+题: +num1 + + + num2 + =); sum = num1 + num2; else count+; jl.setText(第+(count)+题: +num1 + - + num2 + =); sum = num1 - num2; ); public static void main(String args) Random_problem a = new Random_problem(); a.produce(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -