四则运算2作业实验报告

Posted 解昊兴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四则运算2作业实验报告相关的知识,希望对你有一定的参考价值。




//
2017.3.10 //20153278解昊兴 //信1505-2班 package jisuan; import java.util.Random; import java.text.DecimalFormat; import java.util.Scanner; import java.util.*; public class arithmetic { public static void main(String args[]) { int ch;//是否继续 int option,range,negative_OK,fraction,decimal,num; Scanner cin=new Scanner(System.in); do{ menu0(); option=cin.nextInt(); switch(option) { case 1:System.out.println("您选择了的是:“加减法简单运算”!"); System.out.print("输入操作数最大值:"); range=cin.nextInt(); //System.out.println(); System.out.print("输入题目的个数:"); num=cin.nextInt(); String list[]; list=new String[num]; list[0]=jiaFa(range,0,0,0); for(int i=1;i<num;i++) { int flag; //避免题目重复 do{ flag=0; if((int)(Math.random()*2)==1) { list[i]=jiaFa(range,0,0,0); } else { list[i]=jianFa(range,0,0,0); } for(int t=0;t<i;t++) { if(list[i].equals(list[t])) flag=1; } }while(flag==1); } System.out.print("请输入每行的题目数:"); int n=cin.nextInt(); for(int i=0;i<num;i++) { System.out.print(list[i]+"="+"\\t"); if((i+1)%n==0) System.out.println(); } break; case 2: System.out.println("您选择了的是:“含乘、除法的四则运算”!"); System.out.print("输入操作数最大值:"); range=cin.nextInt(); System.out.print("输入题目的个数:"); num=cin.nextInt(); System.out.print("输入每行题目的个数:"); n=cin.nextInt(); for(int i=0;i<num;i++) { int flag=(int)(Math.random()*4); if(flag==0) System.out.print(jiaFa(range,0,0,0)+"="+"\\t"); else if(flag==1) System.out.print(jianFa(range,0,0,0)+"="+"\\t"); else if(flag==2) System.out.print(chuFa(range,0)+"="+"\\t"); else if(flag==3) System.out.print(chengFa(range,0)+"="+"\\t"); if((i+1)%n==0) System.out.println(); } break; case 3: System.out.println("您选择了的是:“包括真分数的四则运算”!"); System.out.print("输入操作数最大值:"); range=cin.nextInt(); System.out.print("输入题目的个数:"); num=cin.nextInt(); System.out.print("输入每行题目的个数:"); n=cin.nextInt(); for(int i=0;i<num;i++) { String str=""; int flag=(int)(Math.random()*4); if(flag==0) { str=jiaFa(range,0,1,0)+"="; System.out.print(str); } else if(flag==1) { str=jianFa(range,0,1,0)+"="; System.out.print(str); } else if(flag==2) { str=chengFa(range,1)+"="; System.out.print(str); } else if(flag==3) { str=chuFa(range,1)+"="; System.out.print(str); } for(int k=0;k<20-str.length();k++) { System.out.print(" "); } if((i+1)%n==0) System.out.println(); } break; case 4: System.out.println("您选择了的是:“包括假分数的四则运算”!"); System.out.print("输入操作数最大值:"); range=cin.nextInt(); //System.out.println(); System.out.print("输入题目的个数:"); num=cin.nextInt(); System.out.print("输入每行题目的个数:"); n=cin.nextInt(); for(int i=0;i<num;i++) { String str=""; int flag=(int)(Math.random()*4); if(flag==0) { str=jiaFa(range,0,2,0)+"="; System.out.print(str); } else if(flag==1) { str=jianFa(range,0,2,0)+"="; System.out.print(str); } else if(flag==2) { str=chengFa(range,2)+"="; System.out.print(str); } else if(flag==3) { str=chuFa(range,2)+"="; System.out.print(str); } for(int k=0;k<20-str.length();k++) { System.out.print(" "); } if((i+1)%n==0) System.out.println(); } break; case 5: System.out.println("您选择了的是:“包括小数的运算”!"); System.out.print("输入所要保留小数点的位数:"); int r=cin.nextInt(); // System.out.println(); System.out.print("输入操作数最大值:"); range=cin.nextInt(); System.out.println(); System.out.print("输入题目的个数:"); num=cin.nextInt(); System.out.print("输入每行题目的个数:"); n=cin.nextInt(); for(int i=0;i<num;i++) { String str=""; int flag=(int)(Math.random()*4); if(flag==0) { str=jiaFa(range,0,0,r)+"="; System.out.print(str); } else if(flag==1) { str=jianFa(range,0,0,r)+"="; System.out.print(str); } else if(flag==2) { str=chengFa(range,0)+"="; System.out.print(str); } else if(flag==3) { str=chuFa(range,0)+"="; System.out.print(str); } for(int k=0;k<20-str.length();k++) { System.out.print(" "); } if((i+1)%n==0) System.out.println(); } break; case 6: System.out.println("您选择了的是:“持带括号的运算”!"); System.out.print("输入题目的个数:"); num=cin.nextInt(); System.out.print("输入每行题目的个数:"); n=cin.nextInt(); for(int i=0;i<num;i++) { String str=""; str=three_Operands()+"="; System.out.print(str); for(int k=0;k<15-str.length();k++) { System.out.print(" "); } if((i+1)%n==0) System.out.println(); } break; } System.out.print("是否继续(1:继续,0:退出):"); ch=cin.nextInt(); }while(ch==1); } public static void menu0()//主菜单函数 { System.out.println(" 欢迎使用出题器!"); System.out.println(); System.out.println("|| 1、加、减法简单运算 ||"); System.out.println("|| 2、含乘、除法的四则运算 ||"); System.out.println("|| 3、包括真分数的四则运算 ||"); System.out.println("|| 4、包括假分数的四则运算 ||"); System.out.println("|| 5、包括小数的运算 ||"); System.out.println("|| 6、支持带括号的运算 ||"); System.out.println(); System.out.print(" 请选择您需要的功能: "); } public static String jiaFa(int range/*数值范围*/,int negative_OK/*0表示无负数,1表示可有负数*/, int fraction/*0表示无分数,1表示真分数,2表示支持假分数*/,int decimal/*支持小数位数*/)//加法运算 { String str1="",str2=""; int rdm1,rdm2,rdm,rdm0; if(fraction==0)//不支持分数 { rdm1=((int)(Math.random()*range)); rdm2=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm1=-rdm1; } if((int)(Math.random()*2)==1) { rdm2=-rdm2; } } if(((int)(Math.random()*2)==1)&&(decimal>0)) { double rdm00; switch(decimal) { case 1:DecimalFormat df1 = new DecimalFormat( "0.0"); rdm00=Math.random(); str1=df1.format(rdm00+rdm1); break; case 2:DecimalFormat df2 = new DecimalFormat( "0.00"); rdm00=Math.random(); str1=df2.format(rdm00+rdm1); break; case 3:DecimalFormat df3 = new DecimalFormat( "0.000"); rdm00=(Math.random()); str1=df3.format(rdm00+rdm1); break; case 4:DecimalFormat df4 = new DecimalFormat( "0.0000"); rdm00=(Math.random()); str1=df4.format(rdm00+rdm1); break; case 5:DecimalFormat df5 = new DecimalFormat( "0.00000"); rdm00=(Math.random()); str1=df5.format(rdm00+rdm1); break; } } else { str1=""+rdm1; } if(((int)(Math.random()*2)==1)&&(decimal>0)) { double rdm00; switch(decimal) { case 0:DecimalFormat df0 = new DecimalFormat( "0."); rdm00=Math.random(); str2=df0.format(rdm00+rdm2); break; case 1:DecimalFormat df1 = new DecimalFormat( "0.0"); rdm00=Math.random(); str2=df1.format(rdm00+rdm2); break; case 2:DecimalFormat df2 = new DecimalFormat( "0.00"); rdm00=Math.random(); str2=df2.format(rdm00+rdm2); break; case 3:DecimalFormat df3 = new DecimalFormat( "0.000"); rdm00=(Math.random()); str2=df3.format(rdm00+rdm2); break; case 4:DecimalFormat df4 = new DecimalFormat( "0.0000"); rdm00=(Math.random()); str2=df4.format(rdm00+rdm2); break; case 5:DecimalFormat df5 = new DecimalFormat( "0.00000"); rdm00=(Math.random()); str2=df5.format(rdm00+rdm2); break; } } else { str2=""+rdm2; } if(rdm1<0) { str1="("+str1+")"; } if(rdm2<0) { str2="("+str2+")"; } } else if(fraction==1)//支持真分数 { if((int)(Math.random()*2)==0)//rdm1为整数 { rdm1=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm1=-rdm1; } } str1=""+rdm1; if(rdm1<0) { str1="("+rdm1+")"; } } else { rdm1=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str1="("+(rdm1>rdm?(""+rdm+"/"+rdm1):(""+rdm1+"/"+rdm))+")"; } if((int)(Math.random()*2)==0)//rdm2为整数 { rdm2=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm2=-rdm2; } } str2=""+rdm2; if(rdm2<0) { str2="("+rdm2+")"; } } else { rdm2=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str2="("+(rdm2>rdm?(""+rdm+"/"+rdm2):(""+rdm2+"/"+rdm))+")"; } } else if(fraction==2)//支持假分数 { if((int)(Math.random()*2)==0)//rdm1为整数 { rdm1=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm1=-rdm1; } } str1=""+rdm1; if(rdm1<0) { str1="("+rdm1+")"; } } else { rdm1=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str1="("+rdm+"/"+rdm1+")"; } if((int)(Math.random()*2)==0)//rdm2为整数 { rdm2=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm2=-rdm2; } } str2=""+rdm2; if(rdm2<0) { str2="("+rdm2+")"; } } else { rdm2=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str2="("+rdm2+"/"+rdm+")"; } } return(str1+"+"+str2); } public static String jianFa(int range/*数值范围*/,int negative_OK/*0表示无负数,1表示可有负数*/, int fraction/*0表示无分数,1表示真分数,2表示支持假分数*/,int decimal/*支持小数位数*/)//加法运算 { String str1="",str2=""; int rdm1,rdm2,rdm,rdm0; if(fraction==0)//不支持分数 { rdm1=((int)(Math.random()*range)); rdm2=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm1=-rdm1; } if((int)(Math.random()*2)==1) { rdm2=-rdm2; } } if(((int)(Math.random()*2)==1)&&(decimal>0)) { double rdm00; switch(decimal) { case 1:DecimalFormat df1 = new DecimalFormat( "0.0"); rdm00=Math.random(); str1=df1.format(rdm00+rdm1); break; case 2:DecimalFormat df2 = new DecimalFormat( "0.00"); rdm00=Math.random(); str1=df2.format(rdm00+rdm1); break; case 3:DecimalFormat df3 = new DecimalFormat( "0.000"); rdm00=(Math.random()); str1=df3.format(rdm00+rdm1); break; case 4:DecimalFormat df4 = new DecimalFormat( "0.0000"); rdm00=(Math.random()); str1=df4.format(rdm00+rdm1); break; case 5:DecimalFormat df5 = new DecimalFormat( "0.00000"); rdm00=(Math.random()); str1=df5.format(rdm00+rdm1); break; } } else { str1=""+rdm1; } if(((int)(Math.random()*2)==1)&&(decimal>0)) { double rdm00; switch(decimal) { case 0:DecimalFormat df0 = new DecimalFormat( "0."); rdm00=Math.random(); str2=df0.format(rdm00+rdm2); break; case 1:DecimalFormat df1 = new DecimalFormat( "0.0"); rdm00=Math.random(); str2=df1.format(rdm00+rdm2); break; case 2:DecimalFormat df2 = new DecimalFormat( "0.00"); rdm00=Math.random(); str2=df2.format(rdm00+rdm2); break; case 3:DecimalFormat df3 = new DecimalFormat( "0.000"); rdm00=(Math.random()); str2=df3.format(rdm00+rdm2); break; case 4:DecimalFormat df4 = new DecimalFormat( "0.0000"); rdm00=(Math.random()); str2=df4.format(rdm00+rdm2); break; case 5:DecimalFormat df5 = new DecimalFormat( "0.00000"); rdm00=(Math.random()); str2=df5.format(rdm00+rdm2); break; } } else { str2=""+rdm2; } if(rdm1<0) { str1="("+str1+")"; } if(rdm2<0) { str2="("+str2+")"; } } else if(fraction==1)//支持真分数 { if((int)(Math.random()*2)==0)//rdm1为整数 { rdm1=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm1=-rdm1; } } str1=""+rdm1; if(rdm1<0) { str1="("+rdm1+")"; } } else { rdm1=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str1="("+(rdm1>rdm?(""+rdm+"/"+rdm1):(""+rdm1+"/"+rdm))+")"; } if((int)(Math.random()*2)==0)//rdm2为整数 { rdm2=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm2=-rdm2; } } str2=""+rdm2; if(rdm2<0) { str2="("+rdm2+")"; } } else { rdm2=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str2="("+(rdm2>rdm?(""+rdm+"/"+rdm2):(""+rdm2+"/"+rdm))+")"; } } else if(fraction==2)//支持假分数 { if((int)(Math.random()*2)==0)//rdm1为整数 { rdm1=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm1=-rdm1; } } str1=""+rdm1; if(rdm1<0) { str1="("+rdm1+")"; } } else { rdm1=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str1="("+rdm+"/"+rdm1+")"; } if((int)(Math.random()*2)==0)//rdm2为整数 { rdm2=((int)(Math.random()*range)); if(negative_OK==1) { if((int)(Math.random()*2)==1) { rdm2=-rdm2; } } str2=""+rdm2; if(rdm2<0) { str2="("+rdm2+")"; } } else { rdm2=((int)(Math.random()*range)); rdm=((int)(Math.random()*range)); str2="("+rdm2+"/"+rdm+")"; } } return(str1+"-"+str2); } public static String chengFa(int range,int fraction)//乘法运算 { String str1="",str2=""; int rdm0,rdm1,rdm2,temp; if(fraction==0) { rdm1=((int)(Math.random()*range)); rdm2=((int)(Math.random()*range)); str1=""+rdm1; str2=""+rdm2; } else if(fraction==1) { rdm1=((int)(Math.random()*range)); rdm2=((int)(Math.random()*range)); str1=""+rdm1; str2=""+rdm2; if((int)(Math.random()*2)==0) { rdm0=(int)(Math.random()*range); if(rdm0>rdm1) { temp=rdm1; rdm1=rdm0; rdm0=temp; } str1="("+rdm0+"/"+rdm1+")"; } if((int)(Math.random()*2)==0) { rdm0=(int)(Math.random()*range); if(rdm0>rdm2) { temp=rdm2; rdm2=rdm0; rdm0=temp; } str1="("+rdm0+"/"+rdm2+")"; } } else if(fraction==2) { rdm1=((int)(Math.random()*range)); rdm2=((int)(Math.random()*range)); str1=""+rdm1; str2=""+rdm2; if((int)(Math.random()*2)==0) { rdm0=(int)(Math.random()*range); if(rdm0<rdm1) { temp=rdm1; rdm1=rdm0; rdm0=temp; } str1="("+rdm0+"/"+rdm1+")"; } if((int)(Math.random()*2)==0) { rdm0=(int)(Math.random()*range); if(rdm0<rdm2) { temp=rdm2; rdm2=rdm0; rdm0=temp; } str1="("+rdm0+"/"+rdm2+")"; } } return (str1+"*"+str2); } public static String chuFa(int range,int fraction)//除法运算 { String str1="",str2=""; 实验四:201571030116/201571030106《小学四则运算练习软件需求说明》结对项目报告

数据结构与算法大作业:走迷宫程序(实验报告)

课程作业02实验报告

20165337第五周实验报告

20172333 2017-2018-2 《程序设计与数据结构》实验四则运算报告

课程作业03实验报告