四则运算03
项目计划日志
姓名:lvzekun;
日期:2016.3.22
任务 | 听课 | 阅读设计 | 编写 | 作结 | 工作时间 | |
周一 | 8---9.40 | 15.30---16.00 | 13.00--15.00 | 4.00 | ||
周二 | 15.00--16.30 | 1.30 | ||||
周三 | ||||||
周四 | ||||||
周五 | 17.00--19.00 | 2.00 | ||||
周六 |
10.00-11.30 13.00--18.00 |
6.30 | ||||
时间记录日志:
姓名:吕泽坤
日期 | 开始时间 | 中断时间 | 净时间 | 活动 | 备注 | |
3.21 | 15.30---16.00 | 16.00 | 3.00 | 发表博客 | ||
3.22 | 15.00--16.30 | |||||
1.30 | 阅读,编写设计 | 洗澡 | ||||
3.24 | 15.00--16.30 | 16.30 | 1.30 | 阅读,编写设计 | 洗澡 | |
3.26.2016 |
10.00-11.30 13.00--18.00 |
11.30 | 6.30 | 编写程序 | 中午午休 | |
缺陷日志
姓名:吕泽坤
日期:3.22.2016
日期 |
编号
|
类型 | 引入阶段 | 除阶段 | 修复时间 | 修复缺陷 |
3.22 |
.01 |
编码 | 编译 | Lmin | ||
描述 |
syntax error : missing ')' before '!' |
|||||
3.26 | 02 | 编码 | 编译 | lmin | ||
描述 |
huanstr = Int_Str(p);错误 |
|||||
3.26 | 03 | 编码 | 编译 | Lmin | ||
描述 | 描述:设计函数的结构和变量时有知识点掌握的不牢固,比如地址传递参数的使用等 | |||||
3.26 | 04 | 编码 | 编译 | Lmin | ||
描述 | :编写查重函数时候因为内层循环和外层循环的i,j问题,导致程序不能有效的查重。 |
程序名:四则运算2
实验要求:
1、学生写的程序必须能判定用户的输入答案是否正确,
例如程序输出:20 – 5 = ?用户输入15,那么程序就会反馈正确,然后继续出题。直到 30 道题目结束,程序最后告诉用户作对了几道题。
2、程序必须能处理四种运算的混合算式;
20 – 5 * 2 =? 正确答案是10.
20– 5 * 2 + 9 / 3 = ? 正确答案是13
注意:
连续的减法和除法,应该遵守左结合的规定。
连续除法要打括号,否则会引起歧义
设计思路:
第一步://第一确定题目的取值范围和数值。并进行判断,
第二步进行打印方式选择;
第三步进行括号运算选择
第四步构造输出函数,判断函数
第五步骤选择加减运算或四则运算
第6步加减运算中是否有负数?
第七部进行余数判断
判断是否含有真分数
判断定义数组来循环题目
进行简单运算,混合运算
工作截图:
实验截图:
实验代码:
import java.util.Scanner; public class Four_Operation_03 { static Scanner in=new Scanner(System.in); public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("请选择: 1.混合运算; 2.简单运算。 "); int k=in.nextInt(); System.out.print("请选择: 计算范围: "); int numF=in.nextInt(); //numF:计算范围 System.out.print("2.请选择是否有乘除法: "); System.out.print("(1):是 (2):否 "); int ccYN=in.nextInt(); //ccYN:是否有乘除法 System.out.print("4.加减法是否有负数: "); System.out.print("(1):是 (2):否 "); int fushu=in.nextInt(); //fushu:是否有负数 if(k==1) { operationComp(numF,ccYN,fushu); } else if(k==2) { operationInt(numF,ccYN,fushu); } } //简单运算 public static void operationInt(int a1,int a2,int a3) { //计算范围 乘除法 负数 int a4=5;//打印数量 int fir[]=new int[a4];//第一个数 int mid[]=new int[a4]; //符号转化的中间变量 char fh[]=new char[a4];//符号 int sec[]=new int[a4];//第二个数 int T;//控制重新生成随机数的变量 for(int i=0;i<a4;i++) { T=0; //随机产生 fir[i]=(int)(Math.random()*a1); mid[i]=(int)(Math.random()*a1); if(a2==2) { mid[i]=mid[i]%2; if(mid[i]==0)fh[i]='+'; if(mid[i]==1)fh[i]='-'; } if(a2==1) { mid[i]=mid[i]%4; if(mid[i]==0)fh[i]='+'; if(mid[i]==1)fh[i]='-'; if(mid[i]==2)fh[i]='*'; if(mid[i]==3)fh[i]='/'; } sec[i]=(int)(Math.random()*a1); if(fh[i]=='/') { while(sec[i]==0) { sec[i]=(int)(Math.random()*a1); } if(fir[i]%sec[i]!=0) { T=1; } } //负数 if(a3==2) { if(fh[i]=='-') { if(fir[i]-sec[i]<0)T=1; } } //是否重复 for(int j=i-1;j>=0;j--) { if(fh[i]==fh[j]) { //判断数字有无相同 if(fir[i]==fir[j]&&sec[i]==sec[j]) T=1; //加法与乘法前后数字也不能都相同 if(fh[i]=='+'||fh[i]=='/') { if(fir[i]==sec[j]&&sec[i]==fir[j]) T=1; } } } if(T==1)i--; } //打印 int R=0; for(int m=0;m<a4;m++) { System.out.print(fir[m]); System.out.print(fh[m]); System.out.print(sec[m]); System.out.print("="); // System.out.print(fir[m]+fh[m]+sec[m]+"="); int r1=in.nextInt(); int r2=0; if(fh[m]=='+') { r2=fir[m]+sec[m]; } if(fh[m]=='-') { r2=fir[m]-sec[m]; } if(fh[m]=='*') { r2=fir[m]*sec[m]; } if(fh[m]=='/') { r2=fir[m]/sec[m]; } if(r1==r2) R++; } System.out.print(R); } //混合运算 public static void operationComp(int b1,int b2,int b3) { //计算范围 乘除法 负数 int b4=5;//打印数量 // int numope[]=new int[b4]; //产生混合运算的运算符数量 int num[]=new int[5]; //混合运算的数字部分 char fuh[]=new char[4]; //混合运算的符号部分 int mid1; //符号中间转换变量 /* //随机产生混合运算复杂度 for(int m=0;m<b4;m++) { numope[m]=(int)(Math.random()*2);//随机产生混合运算复杂度 numope[m]=numope[m]+3; }*/ System.out.print("请输入混合运算复杂度: "); int numope=in.nextInt(); for(int k=0;k<b4;k++) { for(int i=0;i<5;i++) { num[i]=(int)(Math.random()*b1); } for(int j=0;j<4;j++) { mid1=(int)(Math.random()*100); if(b2==1) //有无乘除法 { if(mid1%4==0) fuh[j]='+'; if(mid1%4==1) fuh[j]='-'; if(mid1%4==2) fuh[j]='*'; if(mid1%4==3) fuh[j]='/'; } if(b2==2) { if(mid1%2==0) fuh[j]='+'; if(mid1%2==1) fuh[j]='-'; } } // fuh[4]='='; //打印 int N=0; for(int n=0;n<numope-1;n++) { System.out.print(num[n]); System.out.print(fuh[n]); N++; } System.out.print(num[N]); System.out.print("= "); } } }