四则运算程序-Java程序设计
java swing实现简易计算器

简易计算器【案例介绍】1.案例描述本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。
2.运行结果运行结果【案例目标】●学会分析“简易计算器”程序实现的逻辑思路。
●能够独立完成“简易计算器”程序的源代码编写、编译及运行。
●掌握Java Swing界面编程的应用。
●了解计算器逻辑运算实现。
【案例分析】要制作一个计算器,首先要知道它由哪些部分组成,如下图所示:一个简单的图形化界面计算器,需要由界面组件、组件的时间监听器和具体的事件处理逻辑组成。
实现一个简易图形化界面计算器可分以下几个步骤:1.UI组件创建和初始化:包括窗体的创建,显示计算结果文本框、清除按钮、数字按钮、运算符等按钮的初始化。
2.在窗体中添加UI组件:包括放置数字键及运算符面板、放置清除框面板。
3.布局结束之后,就是计算器的难点:编写事件处理程序。
4.按键的响应实现。
5.计算逻辑的实现。
6.注册监听器【案例实现】Calculator.java1 package chapter1102;2 import java.awt.*;3 import java.awt.event.*;4 import javax.swing.*;5 import java.util.Vector;6 import java.math.BigDecimal;7 public class Calculator {8 // 操作数1,为了程序的安全,初值一定设置,这里我们设置为0。
9 String str1 = "0";10 // 操作数211 String str2 = "0";12 // 运算符13 String signal = "+";14 // 运算结果15 String result = "";16 // 以下k1至k5为状态开关17 // 开关1用于选择输入方向,将要写入str1或str218 // 为 1 时写入 str1,为 2 时写入 str219 int k1 = 1;20 // 开关 2 用于记录符号键的次数21 // 如果 k2>1 说明进行的是 2+3-9+8 这样的多符号运算22 int k2 = 1;23 // 开关3用于标识 str1 是否可以被清 024 // 等于 1 时可以,不等于1时不能被清025 int k3 = 1;26 // 开关4用于标识 str2 是否可以被清 027 // 等于 1 时可以,不等于1时不能被清028 int k4 = 1;29 // 开关5用于控制小数点可否被录入30 // 等于1时可以,不为1时,输入的小数点被丢掉31 int k5 = 1;32 // store的作用类似于寄存器,用于记录是否连续按下符号键33 JButton store;34 //vt 存储之前输入的运算符。
java计算器程序代码及文档(带异常处理,括号等。注释详细易懂)

四则运算计算器设计说明书一.设计目标本次计算器的程序设计,通过使用JA V A中的AWT包和Swing包的类库设计图形界面的计算器。
此计算器能够完成加减乘除的四则混合运算。
利用面向对象程序设计的思想,将各个组件的事件响应分别用不同的方式表达出来,并且使用了图形界面中的事件委托机制来处理事件响应。
二.设计流程1. 分析该计算器需要完成的功能。
用户能够完成添加括号和负号的四则混合运算,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。
同时还完成了计算器中C按钮清屏功能和Backspace退格键。
2. 考虑异常处理。
(1)当输入的表达式中出现除零的操作,显示框将显示“Infinity(无穷大)”。
(2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入”(3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮,将弹出提示框显示“对不起,您没有任何输入,请重新输入:”。
(4)当第一次输入乘号键,除号键,右括号,小数点,求余键,等号键,ce 键,Backspace键时提示错误。
4. 考虑数据的处理目标计算表达式通过点击计算器界面上的按钮进行输入,当按下等号之后,计算器通过调用JA V A中script这个包中的相关类和方法来实现数据的处理。
5. 编码实现计算器的功能。
(1)新建相关的文件。
(2)引入JA V A中相关的包。
(3)新建类Jsq,并继承了类Frame,而且实现了接口ActionListener(4)定义相关的变量,创建相关组件,并对组件的属性进行设置。
(5)对所创建的组件进行布局,完成界面的实现。
(6)为各个组件添加事件监听器。
(7)重写事件接口ActionListener的方法public void actionPerformed(ActionEvent e)。
(8)为各个组件编写事件代码,完成每个按钮的不同功能。
三.测试过程的截图1. 程序初始运行界面2运算测试3.混合运算测试:异常处理测试:1.输入错误的表达式2、除数为0时:四.设计结果此计算器以完成设计,所有功能都以实现,并达到了预想的设计目标。
java随机出题四则运算

java随机出题四则运算作业要求来源于:我的github地址:https:///kdaysl/fshost/blob/master/mar.java⼀、需求分析 具体要求:任何编程语⾔都可以,命令⾏程序接受⼀个数字输⼊,然后输出相应数⽬的四则运算题⽬和答案。
例如输⼊数字是 30,那就输出 30 道题⽬和答案。
运算式⼦必须⾄少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。
并且要求能处理⽤户的输⼊,并判断对错,打分统计。
⼆、功能设计 1. 输出相应数⽬的四则运算(加减乘除)题⽬及答案; 2. 随机产⽣具有三个操作数和两个运算符的四则运算; 3. 四则运算的答案不能为负数,如果为负数则重新输⼊该道题⽬; 4. 对⽤户的输⼊答案进⾏判断,正确则加分,错误则不加分,并予以提⽰。
满分为100分; 5. 输出⽤户的总分数。
_____________________________________________________________________________________________________________________________________________________________三、详细设计 1. 由于时间问题使⽤嵌套switch来完成多步计算 1.1随机产⽣前两个数字并和第⼀个运算符:front = random.nextInt(100);back = random.nextInt(100);symbol = random.nextInt(4); 2.1嵌套switch-外:switch (Symbol) {case 0:{sSymbol = random.nextInt(4);end = random.nextInt(100);switch (ssymbol){...}case 1:{while (front < back) {front = random.nextInt(100);back = random.nextInt(100);}sSymbol = random.nextInt(4);end = random.nextInt(100);switch (ssymbol){...}break;}case 2:{sSymbol = random.nextInt(4);end = random.nextInt(100);switch (ssymbol){...}break;}case 3:{if (back == 0) {back = random.nextInt(99) + 1;}while (front % back != 0) {front = random.nextInt(100);back = random.nextInt(99) + 1;}sSymbol = random.nextInt(4);end = random.nextInt(100);switch (ssymbol){...}break;}}} 2.2switch嵌套-⾥,switch (sSymbol){case 0:{...inResult = input.nextInt();corResult = front / back +end;if (inResult == corResult)correct++;else {...}break;}case 1:{...inResult = input.nextInt();corResult = front / back -end;if (inResult == corResult)correct++;else {...}break;}case 2:{...inResult = input.nextInt();corResult = front / back -end;if (inResult == corResult)correct++;else {...}break;}case 3:{if (end == 0) {end = random.nextInt(100);}while ((front + back)% end != 0) {front = random.nextInt(100);back = random.nextInt(100);end = random.nextInt(99) + 1;}...inResult = input.nextInt();corResult = front / back / end;if (inResult == corResult)correct++;else {...}break;}} 31.错题录⼊数组errorSymbol[j] = ( front + "/" + back +"/"+end+ "="+corResult); errorId[k] = i + 1; 3.2⽤户输⼊答案对⽐Scanner input = new Scanner(System.in);inResult = input.nextInt();corResult...if (inResult == corResult){...}四、过程耗时估计统计表PSP2.1Personal SoftwareProcess Stages Time SeniorStuden(h)Time(h)Planning计划0.10.1 Estimate估计这个任务需要多少时间11 Development开发23 Analysis需求分析0.10 Design Spec⽣成设计⽂档00 DesignReview设计复审00CodingStandard代码规范00 Design具体设计1 1.5 Coding具体编码23 Code Review代码复审00 Test测试(⾃我测试,修改代码,提交修改)11 Reporting报告00测试报告00计算⼯作量23并提出过程修改计划00。
Java+SpringBoot实现四则运算

Java+SpringBoot实现四则运算1.,关于这个题⽬,要求是基于控制台,但是我善做主张(⾃以为是?)的⽤⽹页的形式去呈现。
2.学⽣登录这个平台,可以在上⾯看到⽼师布置的题⽬,学⽣可以进⾏做题,然后提交题⽬,会有相应的参考答案。
⽽⽼师具有查看同学们的答题情况及其统计做题信息。
3.基本功能:⽣成表达式,表达式运算扩展功能:对⽂件的读写,主要也是对题⽬和答案的存储功能,也可以借助数据库。
⾼级功能:查重。
虽然我实现了查重功能,但是我觉得这个功能在实际的运⽤中可能不会使⽤。
因为我没能想到⼀个⽐较优雅的⽅式去除重复的式⼦,每次⽣成⼀个四则运算都要检查是否和已经⽣成的四则运算重复,⽽且实际上⽣成的四则运算重复的可能性不能特别⼤。
我想到⼀个办法可能会⽐较好解决⼀点,就是相对于答案⼀样的四则运算才去⽐较它们是否重复。
但是⽣成的式⼦还是需要⽐较是否重复的问题。
我觉得很不优雅,⽽且我觉得实际运⽤中可能最简单粗暴的查重⽅式就是:避免答案⼀样的题⽬。
4.CalculateExp:最主要的类,⾥⾯包括了运算符优先级的存储,表达式解析成中缀表达式,中缀表达式转为后缀表达式,对后缀表达式进⾏计算,其中是除号和分数则进⾏分数处理,⽣成若⼲个表达式和结果的⽅法,中缀表达式⽣成⼆叉树。
Create:表达式⽣成类,成员变量包括了⽣成总数,数值范围,难度(最多操作符个数),涵盖了⽣成⼀个数(有可能是分数),⽣成操作符,⽣成表达式,⽣成⼀批表达式的⽅法Fraction:计算分数的类,拥有成员变量:分⼦和分母,然后对分⼦和分⼦通过辗转相除法进⾏约分,然后有两个分数的加减乘除运算。
Input:读取⽂件类,读取⽣成的题⽬和答案Output:写⼊⽂件类,将⽣成的题⽬和答案写到⽂件中Node:⼆叉树⽣成类,拥有成员变量:值,左⼦树,右⼦树,和后序遍历的⽅法Test:测试类,测试⼀个编写代码时需要测试的功能点。
5.下⾯对分数计算的代码我觉得很啰嗦,列出来说⼀下,实际上代码省去了,减号,乘号,除号,和捕获异常的代码。
java解析四则运算为树形的方法_概述及解释说明

java解析四则运算为树形的方法概述及解释说明1. 引言1.1 概述:本文将讨论Java解析四则运算为树形结构的方法。
四则运算是数学中最基础的运算,包括加法、减法、乘法和除法。
通过对四则运算表达式进行解析,可以将其转化为树形结构,以提供更方便的处理和计算方式。
在本文中,我们将介绍四则运算及其解析方式的简介,并重点关注树形结构在这种解析中的应用。
1.2 文章结构:本文共分为5个部分:引言、正文、解释说明、结论和后记。
在引言部分,我们将给出文章的概述,简述整篇文章的内容与目标。
在正文部分,我们将详细介绍四则运算及其解析方式的简介,并探究树形结构在这种解析中的作用。
在解释说明部分,我们会阐述将四则运算表达式转化为树形结构的基本概念和原理,并讨论Java中实现这一过程的方法。
接着,我们还会探讨树形结构在四则运算解析中的优势和应用场景。
在结论部分,我们将总结文章要点和重点论述内容,并对Java解析四则运算为树形的方法进行评价并展望未来的发展方向。
最后,在后记部分,我们将留下一些附加信息和感想。
1.3 目的:本文的目的是提供一个全面且易懂的解析四则运算为树形结构的方法,并探讨这种方法在Java中的应用。
通过深入了解四则运算的解析和树形结构的应用,读者可以更好地理解并使用这些技术,进一步提高程序设计和算法实现能力。
本文还旨在为Java开发者提供一个可靠而有效的工具,以便于他们处理复杂的四则运算表达式。
跟随本文学习并实践这种方法可以增强编码技巧和培养抽象思维能力,在日常开发中收获不少益处。
2. 正文:2.1 四则运算及其解析方式简介:在数学中,四则运算指的是加法、减法、乘法和除法这四种基本运算。
它们是最常见和基础的数学运算,广泛应用于各个领域。
在计算机科学中,我们通常需要将四则运算表达式进行解析,以便计算机能够理解和执行。
2.2 树形结构在四则运算解析中的应用:树形结构是一种非常适合表示嵌套层次关系的数据结构。
四则运算程序

四则运算程序作业题⽬:1.需求分析: 根据⽤户所给参数设置出题难度,操作数范围,题⽬和答案输出路径 根据⽤户提供的题⽬和答案⽂件来对⽤户答案进⾏判断对错 实现+,-,x,÷四则运算 实现分数的计算,包括真分数 ⽣成的表达式包含括号且在计算时要精准识别计算 实现表达式的查重,例如1+2+3和3+2+1是重复的2.功能设计 在开始程序前先验证命令⾏传⼊参数是否正确 根据难度系数和操作数范围随机⽣成整数和分数 随机⽣成运算符并将其与随机数组成算式 计算题⽬结果 将题⽬和答案输出到指定⽂件 读⼊现有题⽬和⽤户答案⽂件对其作答进⾏判断对错 将作答情况输出到指定⽂件 设置题⽬难度系数:1--含+-运算,操作数不含分数; 2--含+-x运算,操作数含分数; 3--含+-x÷运算,操作数含分数;3.设计实现 采⽤Java实现,共有四个类: Question类:主类,识别⽤户输⼊参数,根据参数调⽤不同函数 Arithmetic类:根据难度系数和操作数范围⽣成整数或分数,还有运算符,随机对局部添加括号最后将其拼接成算式将其返回 Calculate类:对题⽬进⾏计算,返回题⽬答案 Save类:将题⽬,答案,成绩信息存储到⽂件中4.代码说明//合成算式public String CreateArith(int degree,int range){String s = new String();//存储加完括号的算式String ss = new String();s = s + Createnum(degree,range);//⽣成算式运算符个数的随机数Random random = new Random();int pis= random.nextInt(3)+1;//⾄多三个操作数,两个运算符for(int i = 0;i < pis;i++){//利⽤随机数控制新⽣成的运算符和数字添加在原来公式的前⽅还是后⽅//以实现括号可以出现在前半部和后半部String sym = CreateSymbol(degree);String num = Createnum(degree,range);int dir = (int)( Math.random() * 10)+1;if(dir>5){s = s + sym + num ;}else{s = num + sym + s;}//对算式添加括号if(i<2){int r = (int)( Math.random() * 10);if(r<5) {AddBracket(s);}}}return s;}//将表达式中含括号的表达式找出并局部计算之public String FindBrack(String equation){String temp = new String();String result = new String();String ans = new String();//查找左括号在表达式中的位置int left = stIndexOf('(');//若表达式没有括号则直接计算if(left==-1){ans = cal(equation);return ans;} else{//查找与之匹配的右括号int right = equation.indexOf(')', left);if(right==-1){throw new RuntimeException("the equation is wrong!");}else{//匹配成功则截取出括号内算式进⾏计算temp = equation.substring(left+1, right);result = cal(temp);//将计算完的结果直接拼接回原算式!⽅便得到最终结果equation = equation.substring(0,left)+result+equation.substring(right+1);return FindBrack(equation);}}}//获取操作数private List<String> GetNum(String equation) {equation = FindMinus(equation);Pattern pt = pile("\\+|\\-|\\*|\\÷");String[] split = pt.split(equation);//对提取出的数字进⾏判断是否含F,是的话将其转成负数List<String> list = new ArrayList<>();for(int i=0;i<split.length;i++){String number = split[i];if(number.equals("F")){number = "-"+number.substring(1);}if(number.contains("/")) {list.add(number);}else {number = number+"/"+String.valueOf(1);list.add(number);}}return list;}//计算拿除法举例public String cal(String equation){//每次调⽤获取最新的算式中的操作符List<String> operator = GetSym(equation);//获取操作符List<String> number = GetNum(equation); //获取操作数String str = new String();String ans = new String();String num1 = new String();String num2 = new String();int[] a = {};int[] b = {};//先乘除后加减:先操作乘除号,操作完移除,最后遍历加减号即可完成操作for(int i=0;i<=operator.size()-1;i++){str = operator.get(i);//运算并⽤运算结果替换操作数的位置if(str.equals("*")){num1 = number.remove(i);num2 = number.remove(i);int temp = 0;temp = num1.indexOf('/');a[0]= Integer.parseInt(num1.substring(0,temp));a[1]= Integer.parseInt(num1.substring(temp+1));temp = num2.indexOf('/');b[0]= Integer.parseInt(num2.substring(0,temp));b[1]= Integer.parseInt(num2.substring(temp+1));a[0] = a[0]*b[0]; //分⼦相乘a[1] = a[1]*b[1]; //分母相乘int d=common_divisor(a[0],a[1]);a[0] = a[0]/d;a[1] = a[1]/d;num1 = String.valueOf(a[0])+"/"+String.valueOf(a[1]);operator.remove(i);number.add(i, num1);i--; //防⽌漏掉运算符}//返回计算结果if(operator.size()==0) {num1 = number.get(0);int temp = 0;temp = num1.indexOf('/');a[0]= Integer.parseInt(num1.substring(0,temp));a[1]= Integer.parseInt(num1.substring(temp+1));//真分数结果if(a[0]>a[1]) {temp = a[0] / a[1];a[0] = a[0] % a[1]; if(a[0]!=0) num1 = String.valueOf(temp)+"'"+String.valueOf(a[0])+"/"+String.valueOf(a[1]); else num1 = String.valueOf(temp);}if(a[0]==a[1]) num1 = String.valueOf(1);}return num1;}//读⼊题⽬和答案并判断对错public boolean judge(String que,String ans,String gra){List<String> answer = new ArrayList<String>();List<String> question = new ArrayList<String>();List<String> grade = new ArrayList<String>();File ansFile=new File("D:\\"+ans); //答案⽂件File queFile=new File("D:\\"+que);//题⽬⽂件if(!queFile.isDirectory()||!ansFile.isDirectory()){System.out.println("⽂件不存在!");}else{System.out.println("正在加载中...");}BufferedReader reader=null;String s=null;int line=1;try{reader=new BufferedReader(new FileReader(ansFile));while((s=reader.readLine())!=null){answer.add(s);line++;}BufferedReader bufferedReader = reader=new BufferedReader(new FileReader(queFile)); System.out.println("读⼊的题⽬为:");while((s=reader.readLine())!=null){question.add(s);System.out.println(s);line++;}}catch(Exception e){e.printStackTrace();}finally{if(reader!=null){try{reader.close();}catch(Exception e){e.printStackTrace();}}}//判断是否正确Calculate cal = new Calculate();String rightNum = "(";String wrongNum = "(";int rightCnt = 0;int wrongCnt = 0;int ansCnt = answer.size();int queCnt = question.size();if(ansCnt!=queCnt){System.out.println("题⽬数量与答案数量不符,请检查。
JSP。JavaBean实例---四则运算bean

JSP。
JavaBean实例---四则运算beanJSP JavaBean实例——四则运算BeanXXX是一种可重用的组件,我们可以在不同的程序中调用它来完成一定的逻辑功能。
现在,我们将创建一个案例,演示JavaBean的创建和调用。
该案例实现求取两个数的和、差、积和商等,包括一个JavaBean和两个JSP文件。
首先,我们需要创建JavaBean文件。
打开记事本,输入以下代码:package test;public class SiExample{private double num1;private double num2;public void setNum1(double num1){this.num1=num1;public void setNum2(double num2){ this.num2=num2;public double getNum1(){return num1;public double getNum2(){return num2;public double add(){double num3=num1+num2;return num3;public double jian(){double num3=num1-num2;return num3;public double cheng(){double num3=num1*num2;return num3;public double chu(){double num3=num1/num2;return num3;将上述代码保存,名称为SiExample.java。
在该文件中,我们创建了两个私有变量num1和num2,用来接收外部传递的参数。
接下来创建了set和get方法组,实现对变量num1和num2的赋值和获取。
最后创建了四个方法add()、jian()、cheng()和chu(),用来求取两个数的和、差、积和商。
接下来,我们需要创建客户输入页面。
Java程序设计案例教程第二版课程设计

Java程序设计案例教程第二版课程设计1. 简介本课程设计是基于《Java程序设计案例教程》第二版的内容展开的,旨在加深学生对Java编程语言的理解,并通过编写实际代码来提高编程能力。
在课程设计过程中,学生需要独立完成多个小项目的编写,以综合应用已学知识,实现目标程序的功能。
2. 课程设计要求本课程设计要求学生独立完成三个项目的编写,每个项目都需要具体的功能实现,如下所示:2.1 计算器设计编写一个 Java 简单计算器,实现四则运算的功能,包括加、减、乘、除、开方、百分号等运算。
样式上需要参考Windows系统的计算器界面。
通过此项目,学生将掌握Java语言的基本运算符的使用方法,理解基本数学运算的实现机制,并且学习掌握Java图形用户界面(GUI)的设计方法。
2.2 用户信息管理系统编写一个Java用户信息管理系统,实现对用户信息的增、删、改、查的操作,其中信息包括姓名、性别、年龄、联系方式等内容。
通过此项目,学生将掌握Java类的设计和使用,了解Java中不同访问控制修饰符的使用方法,并且学习掌握Java文件的读写操作。
2.3 图书管理系统编写一个Java图书管理系统,实现对图书信息的增、删、改、查的操作,其中信息包括图书名称、作者、价格、出版时间等内容。
通过此项目,学生将进一步掌握Java类、方法的设计和使用,了解Java面向对象的编程思想,并且学习掌握Java集合类的使用方法。
3. 实现过程学生可以自行选择开发环境和使用的编程语言版本,推荐使用Java 1.8及以上的版本。
在编写项目代码过程中,学生需要采用面向对象的编程思想,遵循良好的编程规范,严格按照课程设计要求完成每个项目。
为了方便批改和评分,学生需要实现以下功能:•实现项目功能的详细描述文档•代码注释规范,注明作者及编写时间等信息•提供具有实用意义的测试数据,并能够正确输出结果•有清晰、简洁、易懂的代码质量4. 评分标准课程设计是学生综合理解Java编程语言并学以致用的一个重要机会,因此在评分时将重点关注以下几点:•代码的正确性:能否实现各项功能要求•代码的规范性:是否符合规范,是否有良好的注释•代码的可读性:是否具有良好的代码结构,是否易于阅读和理解•前端UI:是否有良好的交互效果,是否美观5. 总结通过本课程设计,学生将掌握Java语言的基本运算符的使用方法,理解基本数学运算的实现机制,并且学习掌握Java图形用户界面(GUI)的设计方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计实践》题目:小学生四则运算练习程序
学校:
学院:
班级:
学号:
姓名:_
2014 年11月24 日
实践基础程序设计实践
一、实践目的
1、掌握基本输入输出。
2、掌握方法定义与调用,理解参数传递方式。
二、实践要求
利用方法、数组、基本输入输出等Java基础知识,给出所选项目的基本设计与实现。
三、项目需求
所选项目名称:小学生四则运算练习程序
实现对小学生简单加法、减法、乘法、除法的四则运算练习。
要求通过键盘输入两个运算数,并回显输入数,将运算结果输出。
四、项目设计方案
Test类:
数据域:sum,总分数。
方法:core()负责随机生成题目,并对其打上分数。
main(String[] args)是程序的入口,负责程序的开始。
五、核心算法详细设计
1.public static void main(String[] args) {
Test t = new Test();
// 提示用户考试信息
System.out.println("本次测试共十道题,每题十分,满分一百分");
// 将分数sum初始化为0;
t.sum = 0;
// 创建一个随机类
Random r = new Random();
// 进行10个循环,对应着10道题
for (int i = 0; i < 10; i++) {
t.core();
}
//打印出考试成绩
System.out.println(" 考试结束");
System.out.println(" 您的总分为" + t.sum);
}
2.//考试的题目。
private void core() {
//产生一个随即生成器
Random r = new Random();
//产生一个在0,1,-1之中的数
int m, n;
m = r.nextInt() % 10;
n = m % 2;
六、完整源码
package test;
import java.util.Random;
import java.util.Scanner;
public class Test {
int sum;
public static void main(String[] args) {
Test t = new Test();
// 提示用户考试信息
System.out.println("本次测试共十道题,每题十分,满分一百分");
// 将分数sum初始化为0;
t.sum = 0;
// 创建一个随机类
Random r = new Random();
// 进行10个循环,对应着10道题
for (int i = 0; i < 10; i++) {
t.core();
}
//打印出考试成绩
System.out.println(" 考试结束");
System.out.println(" 您的总分为" + t.sum);
}
//考试的题目。
private void core() {
//产生一个随即生成器
Random r = new Random();
//产生一个在0,1,-1之中的数
int m, n;
m = r.nextInt() % 10;
n = m % 2;
switch (n) {
//如果n为-1,则进行加法运算
case -1:
int a,b,c;
//a为操作数,b为被操作数,都是10以内的数字。
a = r.nextInt() % 10;
b = r.nextInt() % 10;
//给出运算式,让用户输入答案
System.out.println(a + "+" + "(" + b + ")=?");
Scanner x = new Scanner(System.in);
c = x.nextInt();
//判断用户的答案正确与否,若正确则加10分,错误就只提示错误
if (c != a + b)
System.out.println("回答错误");
else {
System.out.println(" 回答正确");
sum = sum + 10;
}
break;
//如果n为0,则进行乘法运算
case 0:
int q,w,e;
//q为操作数,w为被操作数,都是10以内的数字。
q = r.nextInt() % 10;
w = r.nextInt() % 10;
//给出运算式,让用户输入答案
System.out.println(q + "*" + "(" + w + ")" + "=?");
Scanner y = new Scanner(System.in);
e = y.nextInt();
//判断用户的答案正确与否,若正确则加10分,错误就只提示错误
if (e != q * w)
System.out.println("回答错误");
else {
System.out.println(" 回答正确");
sum = sum + 10;
}
break;
//如果n为1,则进行除法运算
case 1:
double j,k,l;
//j为操作数,k为被操作数,都是10以内的数字。
j = r.nextInt() % 10;
k = r.nextInt() % 10;
//k作为被除数不能为0
if (k == 0)
k++;
//给出运算式,让用户输入答案
System.out.println(j + "/" + "(" + k + ")" + "=?");
Scanner z = new Scanner(System.in);
l = z.nextDouble();
//判断用户的答案正确与否,若正确则加10分,错误就只提示错误
if (l != (j / k) / 1.00)
System.out.println("回答错误");
else {
System.out.println(" 回答正确");
sum = sum + 10;
}
break;
}
}
}
七、使用说明与运行结果截图
1.运行程序,出现提示页面,弹出第一个题目
2.
2.输入结果“-1”,单击回车,提示回答正确,弹出下一题3.输入结果“-5”,单击回车,提示正确,弹出下一题
4.输入错误答案“53”,提示错误
5.输入结果“7”,单击回车,弹出下一题。
6.继续做题,直到完成10道计算,在此不一一阐述
7. 当10道题目做完结束后,显示最终成绩
八、实践总结
本次实践是第一次实践,自己的基本功不扎实就更要努力了,老师说了这个学期的实践对于自己的动手能力和以后的学习都很有帮助,所以我也下定决心好好学,这个程序自己打
的很累,其中张昊给了我很大的帮助,结果还算满意,不过还有不足,也希望自己能够在今后越做越好,能够提高自己,也希望老师能更加督促我,成绩能有一个大的进步。
感谢下载!
欢迎您的下载,资料仅供参考。