感谢自己寒假能够稍稍做一点努力。
Github个人页面<构建之法阅读笔记二可见>:
https://github.com/Heartxy8990
申请教程:
http://jingyan.baidu.com/article/0a52e3f4c34347bf62ed72a5.html
阿超的运算<阅读笔记一可见>:
//桃子之——阿超的四则运算
/*要求:
1.随机产生50个四则预算,包括整数和真分数
2.要求不重复
*/
package bb;
import java.util.Random;
import java.util.Scanner;
import java.util.Vector; //阿超的运算程序
public class Cc {
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
Random ne=new Random();
Vector vet=new Vector(); for(int i=1;i<=50;i++){//50题 每题的要求在for循环里判断
boolean flag=false;//判断当真分数时进行循环
String jg=" ";int a = 0,b=0,c=0,d=0,e=0,f=0;char h='-';//初始化随机数
while(flag==false)
{
a=ne.nextInt(301);
b=ne.nextInt(301);
c=ne.nextInt(301);
d=ne.nextInt(301);
e=ne.nextInt(301); f=ne.nextInt(301);
if(a<b&&c<d){
flag=true;
Object[] obj = new Object[4];//混合数组 {整数,整数,真分数,真分数}
obj[0]=e;
obj[1]=f;
obj[2]=a+"/"+b;
obj[3]=c+"/"+d;
int objcd1=ne.nextInt(obj.length);
Object m=obj[objcd1];String str1=m.toString();
int objcd2=ne.nextInt(obj.length);//获取混合数组的一个元素
Object n=obj[objcd2];String str2=n.toString(); char[] fh={'+','-','*','/'};//符号数组
int ysfh=ne.nextInt(fh.length);
h=fh[ysfh]; //查重
jg=str1+" "+h+" "+str2+" "+"=";
for(int j=0;j<vet.size();j++){
if(vet.get(j).equals(jg))
flag=false; else vet.add(jg);
} if(flag==true)
System.out.println(str1+" "+h+" "+str2+" "+"=");
}
}
}
}
}
以上是暑假做的,只能实现选择题目数量,随机出整数,真分数,不重复。
前天写了一个程序,添加有无乘除,有无真分数,真分数题目数,选择打印方式。但是目前不能调用函数,问提可能是出在vector上了:
package 阿超超; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Random;
import java.util.Scanner;
import java.util.Vector;
public class Achao {
static Scanner sc=new Scanner(System.in);
static Random ne=new Random();
static Vector<String> vet=new Vector<String>();
static boolean cf=false;
static int i;
static String jp;
static String jg;
static String str1,str2,str3;
int cho;
public static void main(String[] args)
{
try{
System.out.println("用户您好,请对该次出题做出要求");
//char cho='A';
System.out.println("出题数目N(正整数)");
int N=sc.nextInt();
System.out.println("输入运算范围fw?(1~fw,正整数?)");
int fw=sc.nextInt();
System.out.println("是否有乘除cc(有1,无0)");
int cc=sc.nextInt();
System.out.println("是否有真分数zf(有1,无0)");
int zf=sc.nextInt(); //只有加减无真分数
if(cc==0&&zf==0)
cc0(N,fw);
//有乘除有真分数
else if(cc==0&&zf==1)
cc1(N,fw);
//有乘除,无真分数
else if(cc==1&&zf==0)
zf0(N,fw);
//有乘除,有真分数
else if(cc==1&&zf==1)
{
System.out.println("含有真分数的题目数量zfn(0<zfn<=N)");
int zfn=sc.nextInt();
zf1(N,fw,zfn);
}
//System.out.println("是否有括号(有1,无0)");
//有无负数
//打印选择 }//try
catch(Exception e)
{System.out.println("输入格式有误");} }//main public static void cc0(int NN,int fww) throws FileNotFoundException
{
//boolean cf1=false;
for(i=1;i<=NN;i++)
{
while(cf==false)//不重复
{
char[] fh={'+','-'};//符号数组
int ysfh=ne.nextInt(fh.length);
char h=fh[ysfh]; int a=ne.nextInt(fww+1);
int b=ne.nextInt(fww+1);
jg=a+" "+h+" "+b+" "+"=";
int size = vet.size();
for(int j=0;j<size;j++)
{
if(vet.get(j).equals(jg))
cf=false;
else
{
//vet.addElement(jg);
vet.add(jg);//在末尾加入字符串?而不是对象? cf=true;
}
}//查重完毕
}//while
}//for 出题 System.out.println("出题完成,请选择 1打印 0预览");
int cho=sc.nextInt();
if (cho==1)
{
for(int pt=1;pt<=vet.size();pt++)
{
System.out.print(vet.get(pt)+" ");
if(pt%5==0)System.out.println(" ");
}
}//打印 else if(cho==0)
{
System.out.println("默认地址 E://阿超//a.txt");
FileOutputStream fl=new FileOutputStream(new File("E://阿超//a.txt"));
PrintStream p= new PrintStream(fl); for(int pt=1;pt<=vet.size();pt++)
{
p.print(vet.get(pt)+" ");
if(pt%5==0)
p.println(" ");
}
p.close();
}//预览
} public static void cc1(int NN,int fww) throws FileNotFoundException
{
for(i=1;i<=NN;i++)
{
boolean zfs=false;//真分数成立
while(cf==false)//查重
{
char[] fh={'+','-','*','/'};//符号数组
int ysfh=ne.nextInt(fh.length);
char h=fh[ysfh];
while(zfs==false)
{
int a=ne.nextInt(fww+1);
int b=ne.nextInt(fww+1);
int c=ne.nextInt(fww+1);
int d=ne.nextInt(fww+1);
int e=ne.nextInt(fww+1);
int f=ne.nextInt(fww+1); if(a<b&&c<d)
{
zfs=true;
Object[] obj = new Object[4];//混合数组 {整数,整数,真分数,真分数}
obj[0]=e;
obj[1]=f;
obj[2]=a+"/"+b;
obj[3]=c+"/"+d;
int objcd1=ne.nextInt(obj.length);
Object m=obj[objcd1];
str1=m.toString(); int objcd2=ne.nextInt(obj.length);//获取混合数组的一个元素
Object n=obj[objcd2];
str2=n.toString(); str3=obj[3].toString();//含有一个真分数
} if(zfs=true)
{
String jg=str2+" "+h+" "+str1+" "+"=";
int size=vet.size();
for(int j=0;j<size;j++)
{
if(vet.get(j).equals(jg))
cf=false;
else
{
vet.addElement(jg);
cf=true;
}
}//查重
}//if
}//while
}//while
}
//for
System.out.println("出题完成,请选择 1打印 0预览");
int cho=sc.nextInt();
if (cho==1)
{
for(int pt=1;pt<=vet.size();pt++)
{
System.out.print(vet.get(pt)+" ");
if(pt%5==0)System.out.println(" ");
}
}//打印
else if(cho==0)
{
System.out.println("默认地址 E://阿超//a.txt");
FileOutputStream fl=new FileOutputStream(new File("E://阿超//a.txt"));
PrintStream p= new PrintStream(fl); for(int pt=1;pt<=vet.size();pt++)
{
p.print(vet.get(pt)+" ");
if(pt%5==0)
p.println(" ");
} p.close();
}//预览
}//for
//}//cc1 ~A.1 public static void zf0(int NN,int fww) throws IOException{
for(int i=1;i<=NN;i++)
{
while(cf==false)
{
char[] fh={'+','-','*','/'};//符号数组
int ysfh=ne.nextInt(fh.length);
char h=fh[ysfh]; int a=ne.nextInt(fww+1);
int b=ne.nextInt(fww+1);
String jg=a+" "+h+" "+b+" "+"=";
for(int j=0;j<vet.size();j++)
{
if(vet.get(j).equals(jg))
cf=false;
else
{
vet.add(jg);
cf=true;
}
}//查重完毕
}//while
System.out.println("出题完成,请选择 1打印 0预览");
int cho=sc.nextInt();
if (cho==1)
{
for(int pt=1;pt<=vet.size();pt++)
{
System.out.println(vet.get(pt)+" ");
if(pt%5==0)System.out.println(" ");
}
}//打印
else if(cho==0)
{
System.out.println("默认地址 E://阿超//a.txt");
FileOutputStream fl=new FileOutputStream(new File("E://阿超//a.txt"));
PrintStream p= new PrintStream(fl); for(int pt=1;pt<=vet.size();pt++)
{
p.print(vet.get(pt)+" ");
if(pt%5==0)
p.println(" ");
}
p.close();
}//预览 }//for
}//zf0 ~B public static void zf1(int NN,int fww,int zfnn) throws IOException{
for(int i=1;i<=zfnn;i++)
{
boolean zfs=false;
while(cf==false)
{
char[] fh={'+','-','*','/'};//符号数组
int ysfh=ne.nextInt(fh.length);
char h=fh[ysfh];
while(zfs==false)
{
int a=ne.nextInt(fww+1);
int b=ne.nextInt(fww+1);
int c=ne.nextInt(fww+1);
int d=ne.nextInt(fww+1);
int e=ne.nextInt(fww+1);
int f=ne.nextInt(fww+1); if(a<b&&c<d)
{
zfs=true;
Object[] obj = new Object[4];//混合数组 {整数,整数,真分数,真分数}
obj[0]=e;
obj[1]=f;
obj[2]=a+"/"+b;
obj[3]=c+"/"+d;
int objcd1=ne.nextInt(obj.length);
Object m=obj[objcd1];
str1=m.toString(); int objcd2=ne.nextInt(obj.length);//获取混合数组的一个元素
Object n=obj[objcd2];
str2=n.toString(); str3=obj[3].toString();//含有一个真分数
} if(zfs=true)
{
String jg=str3+" "+h+" "+str1+" "+"=";
for(int j=0;j<vet.size();j++)
{
if(vet.get(j).equals(jg))
cf=false;
else
{
vet.add(jg);
cf=true;
}
}//查重
}
}
}//while
}//for //整数运算
for(int i=zfnn+1;i<=NN;i++)
{
boolean zfs=false;
while(cf==false)
{
char[] fh={'+','-','*','/'};//符号数组
int ysfh=ne.nextInt(fh.length);
char h=fh[ysfh];
while(zfs==false)
{
int a=ne.nextInt(fww+1);
int b=ne.nextInt(fww+1);
int c=ne.nextInt(fww+1);
int d=ne.nextInt(fww+1);
int e=ne.nextInt(fww+1);
int f=ne.nextInt(fww+1); if(a<b&&c<d)
{
zfs=true;
Object[] obj = new Object[4];//混合数组 {整数,整数,真分数,真分数}
obj[0]=e;
obj[1]=f;
obj[2]=a+"/"+b;
obj[3]=c+"/"+d;
int objcd1=ne.nextInt(obj.length);
Object m=obj[objcd1];
str1=m.toString(); int objcd2=ne.nextInt(obj.length);//获取混合数组的一个元素
Object n=obj[objcd2];
str2=n.toString(); str3=obj[3].toString();//含有一个真分数
} if(zfs=true)
{
String jg=str3+" "+h+" "+str1+" "+"=";
for(int j=0;j<vet.size();j++)
{
if(vet.get(j).equals(jg))
cf=false;
else
{
vet.add(jg);
cf=true;
}
}//查重
}
} }//while
System.out.println("出题完成,请选择 1打印 0预览");
int cho=sc.nextInt();
if (cho==1)
{
for(int pt=1;pt<=vet.size();pt++)
{
System.out.print(vet.get(pt)+" ");
if(pt%5==0)System.out.println(" ");
}
}//打印
else if(cho==0)
{
System.out.println("默认地址 E://阿超//a.txt");
FileOutputStream fl=new FileOutputStream(new File("E://阿超//a.txt"));
PrintStream p= new PrintStream(fl); for(int pt=1;pt<=vet.size();pt++)
{
p.print(vet.get(pt)+" ");
if(pt%5==0)
p.println(" ");
}
p.close();
}//预览
}//for
}//zf1 ~C }//class
最近,过得有点难过。加油!