像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。(有能力者改编成网页版)
撰写一篇博文要求将程序的设计思想,源程序代码、运行结果截图以及分析一下个人上课未按时完成的原因,博客标题:软件工程个人作业01
【程序设计思想】
此次是我编写的四则运算的第一版,只是实现最基本的出题、判断答案对错和对大队的题和答错的题的数量的统计
定义一个字符串为“+-*/”,通过从0-3中随机出数,对应“+-*/”字符。同时从0-100随机出数,进行二元运算
用判断具体是哪个运算符号来计算正确答案
将答题人手动输入的答案正确答案进行判等,若相等,答对题目数量+1,若不相等,答错题目数量+1,并显示正确答案
最后显示共答对题目的数量和答错题目的数量
通过System.currentTimeMillis()函数实现答题的记时。
【源程序代码】
1 package pkg; 2 3 import java.util.Scanner; 4 5 public class YunSuan 6 { 7 public static void main(String[] args) 8 { 9 // TODO Auto-generated method stub 10 long timeStart = System.currentTimeMillis(); 11 int num1,num2,result=0; 12 int fu; 13 int tcount=0; 14 int fcount=0; 15 String str="+-*/"; 16 System.out.println("请输入出题数量"); 17 Scanner input=new Scanner(System.in); 18 int number=input.nextInt();//手动输入题目数量 19 for(int i = 0 ; i < number ; i ++) 20 { 21 int intVal = (int)(Math.random() * 100 ); 22 num1=intVal; 23 fu =(int)(Math.random() *3 ); 24 char ysf=str.charAt(fu); 25 num2=(int)(Math.random() * 100 ); 26 System.out.println(num1 +""+ysf+""+num2+"="); 27 System.out.println("请输入本题的答案:"); 28 int outcome=input.nextInt(); 29 if(ysf=='+') 30 { 31 result=num1+num2; 32 } 33 else if(ysf=='-') 34 { 35 result=num1-num2; 36 } 37 else if(ysf=='*') 38 { 39 result=num1*num2; 40 } 41 else if(ysf=='/') 42 { 43 result=num1/num2; 44 } 45 46 if(outcome==result) 47 { 48 System.out.println("结果正确!"); 49 tcount++; 50 } 51 else 52 { 53 System.out.println("回答错误,正确答案为:"+result); 54 fcount++; 55 } 56 } 57 System.out.println("题目数量共为"+number+"条,大队题目数量为:"+tcount+",答错题目数量为:"+fcount); 58 long timeEnd=System.currentTimeMillis(); 59 System.out.println("总共花费:"+(timeEnd-timeStart)+"ms"); 60 } 61 62 }
【未完成部分】
支持真分数的四则运算、题目避免重复、没有控制所有题目的答案在0-100内、没有做成网页版