四则运算3
设计思想:利用数组将两个随机数分装 分别表示参与运算的数 以及运算的符号,利用条件语句对不同情况下的结果进行计算与用户输入的值进行比较实现对结果的判断,并记录正确的个数 , 将上述内容放在一个方法中再在main方法中进行调用实现实验要求;
package arithmetic3; import java.util.Scanner; public class Arithmetic3 { int count; public static void main(String[] args) { Arithmetic3 t=new Arithmetic3(); int choose=0; Scanner c=new Scanner(System.in); System.out.println("请进行以下30道四则运算,对于除法正确结果为他的最大商值"); System.out.println("请选择要做的试题类型1:两个数的四则运算,2:包含多项式的四则运算"); System.out.println("-------------------------------------------------------------"); choose=c.nextInt(); if(choose==1) { t.arithmetic(); } else if(choose==2) { t.arithmetic2(); } else { System.out.println("输入选择超出规定范围!"); } System.out.println("您一共做对了"+t.count+"道题"); } private void arithmetic() { int j; int num1[]=new int[50]; int mark[]=new int[50]; char mark1[]=new char[50]; int result1=0,result; Scanner r=new Scanner(System.in); for(j=1;j<=30;j++) { num1[j]=(int)(Math.random()*100); mark[j]=(int)(Math.random()*4); if(mark[j]==0) { mark1[j]='+'; result1=num1[j-1]+num1[j]; } else if(mark[j]==1) { mark1[j]='-'; result1=num1[j-1]-num1[j]; } else if(mark[j]==2) { mark1[j]='*'; result1=num1[j-1]*num1[j]; } else { mark1[j]='/'; result1=num1[j-1]/num1[j]; } System.out.print(num1[j-1]); System.out.print(mark1[j]); System.out.println(num1[j]+"="); result=r.nextInt(); if(result==result1) { System.out.println("回答正确!"); count++; } else { System.out.println("回答错误!"); } } } private void arithmetic2() { int j,num=3,k; int num1[]=new int[100]; int mark[]=new int[100]; char mark1[]=new char[100]; int result1=0,result; Scanner r=new Scanner(System.in); for(j=1;j<=30;j++) { for(k=1;k<num;k++) { num1[k]=(int)(Math.random()*100); mark[k-1]=(int)(Math.random()*4); // num=(int)(Math.random()*5+2); if(mark[k]==0) { mark1[k]='+'; //result1=(num1[k-1]+num1[k])+num1[k+1]; } else if(mark[k]==1) { mark1[k]='-'; // result1=(num1[k-1]-num1[k])-num1[k+1]; } else if(mark[k]==2) { mark1[k]='*'; //result1=(num1[k-1]*num1[k])*num1[k+1]; } else { mark1[k]='/'; // result1=(num1[k-1]/num1[k])/num1[k+1]; } if(mark1[1]=='+'&&mark1[2]=='-') { result1=num1[k-1]+num1[k]-num1[k+1]; } else if(mark1[1]=='-'&&mark1[2]=='+') { result1=num1[k-1]-num1[k]+num1[k+1]; } else if(mark1[1]=='*'&&mark1[2]=='/') { result1=(num1[k-1]*num1[k])/num1[k+1]; } else if(mark1[1]=='/'&&mark1[2]=='*') { result1=(num1[k-1]/num1[k])*num1[k+1]; } else if(mark1[1]=='+'&&mark1[2]=='*') { result1=num1[k-1]+(num1[k]*num1[k+1]); } else if(mark1[1]=='*'&&mark1[2]=='+') { result1=(num1[k-1]*num1[k])+num1[k+1]; } else if(mark1[1]=='+'&&mark1[2]=='/') { result1=num1[k-1]+(num1[k]/num1[k+1]); } else if(mark1[1]=='/'&&mark1[2]=='+') { result1=(num1[k-1]/num1[k])+num1[k+1]; } else if(mark1[1]=='-'&&mark1[2]=='*') { result1=num1[k-1]-(num1[k]*num1[k+1]); } else if(mark1[1]=='*'&&mark1[2]=='-') { result1=(num1[k-1]*num1[k])-num1[k+1]; } else if(mark1[1]=='-'&&mark1[2]=='/') { result1=num1[k-1]-(num1[k]/num1[k+1]); } else if(mark1[1]=='/'&&mark1[2]=='-') { result1=(num1[k-1]/num1[k])-num1[k+1]; } else if(mark1[1]=='+'&&mark1[2]=='+') { result1=num1[k-1]+num1[k]+num1[k+1]; } else if(mark1[1]=='-'&&mark1[2]=='-') { result1=num1[k-1]-num1[k]-num1[k+1]; } else if(mark1[1]=='/'&&mark1[2]=='/') { result1=(num1[k-1]/num1[k])/num1[k+1]; } else { result1=(num1[k-1]*num1[k])*num1[k+1]; } } if(mark1[1]=='/'&&mark1[2]=='/') { System.out.print("("+num1[1]+"/"+num1[2]+")"+"/"+num1[3]+"="); } else { for(k=1;k<num;k++) { System.out.print(num1[k]); System.out.print(mark1[k]); } System.out.println(num1[num]+"="); } result=r.nextInt(); if(result==result1) { System.out.println("回答正确!"); count++; } else { System.out.println("回答错误!"); } } } }
编程总结:对于实现实验要求我觉得最重要的还是对计算,比较,条件的逻辑过程,对程序本身而言将一些方法分装再在住方法中调用会显得条理更加清晰。
项目计划总结表:日期:2016/3/26
日期\任务 | 听课 | 编写程序 | 阅读课本 | 日总计 | |||
周日 | |||||||
周一 | 140 | 30 | 170 | ||||
周二 | |||||||
周三 | 140 | 140 | |||||
周四 | 30 | 30 | 60 | ||||
周五 | |||||||
周六 | 140 | 60 | 200 | ||||
周总结 |
时间记录日志:日期:2016/3/26
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 | ||
3/21 | 8:00 | 9:50 | 10 | 140 | 上课 | |||
13:00 | 1:30 | 10 | 20 | 看书 | 找作业思路 | |||
3/23 | 15:00 | 18:00 | 40 | 140 | 写程序 | 写程序,找资料,休息 | ||
3/24 | 14:30 | 3:00 | 0 | 30 | 写程序 | |||
3/26 | 15:00 | 18:00 | 40 | 140 | 写程序 | 写程序,找资料,思考 | ||
缺陷记录日志:日期:2016/3/26
日期 | 编号 | 引入阶段 | 排除阶段 | 修复时间 | 修复缺陷 | 描述 |
3/23 | 1 | 编码 | 编译 | 10min | 数组定义长度不够 | |
3/26 | 2 | 编码 | 编译 | 3min | 输出出现了换行问题 | |