题目:Java基本语法

课程名称:JAVA语言程序设计

班    级:信1705-1

姓    名:刘雨馨学号:20173445

指导教师:王建民

正文部分格式要求:

1、 正文汉子部分要求宋体小四,行间距固定值20磅;首行缩进两个字符。

2、 程序英文部分要求采用Times New Roman字体,行间距固定值20磅,程序缩进采用四个字符,程序部分要求采用必要的注释。

3、 实验报告要求完成以下三项内容:

1) 按照题目内容要求编写程序实现功能。

2) 实验报告中要求包括程序设计思想、程序流程图、源程序、实现结果截图、实验总结(包括调试过程中出现的错误等)。

一、

源程序:

Calculation.java

public classCalculation {private int operator; //操作数

private int operand1; //操作数前面的数

private int operand2; //操作数后面的书

private int result; //运算结果,除法结果取整数部分

private int statistics; //统计正误

public intgetResult(){returnresult;

}public intgetStatistics(){returnstatistics;

}public Calculation( int operand1 , int operator , intoperand2 ){this.operand1 =operand1;this.operator =operator;this.operand2 =operand2;

}public voidmanager(){switch(operator){case 1:

System.out.println( operand1+" + " + operand2 +" = ");

result= operand1 +operand2;break;case 2:

System.out.println( operand1+" – " + operand2 +" = ");

result= operand1 -operand2;break;case 3:

System.out.println( operand1+" * " + operand2 +" = ");

result= operand1 *operand2;break;case 4:

System.out.println( operand1+" / " + operand2 +" = ");

result= operand1 /operand2;break;

}

}public void judge( int result ){ //判断正误

if( this.result ==result){

statistics= 1; //正确为1

}elsestatistics= 0; //错误为0

}

}

Arithmetic.java

importjava.util.Random;importjava.util.Scanner;public classArithmetic {

@SuppressWarnings("resource")public static voidmain( String[] args ){

Random rand= newRandom();

Scanner in= newScanner( System.in );int operand1 = 0;int operand2 = 0;intoperator;intresult;int count=0; //统计正确的题目数量

inti;

Calculation[] cal= new Calculation[30]; //30道题目//随机题目并显示序号与题目

for( i=0; i<30; i++){

operator= rand.nextInt(4)+1;switch( operator ){case 1:

operand1= rand.nextInt(100);

operand2= rand.nextInt(100);break;case 2: //减法不出现负数

operand1 = rand.nextInt(100);

operand2=rand.nextInt( operand1 );break;case 3: //乘除范围更小

operand1 = rand.nextInt(10);

operand2= rand.nextInt(10);break;case 4:

operand1= rand.nextInt(20);

operand2= rand.nextInt(9)+1;break;

}

System.out.print( (i+1) +" ");

cal[i]= newCalculation( operand1, operator, operand2);

cal[i].manager();

result= in.nextInt(); //输入答案并判断正误

cal[i].judge( result);

}//结算

System.out.println("错误的题目及正确答案:");for( i=0; i<30; i++){if( cal[i].getStatistics() == 0){

System.out.println( i+1 +" "+cal[i].getResult() );

}elsecount++;

}

System.out.println();

System.out.println("题目总数30道,正确"+count+"道,错误"+(30-count)+"道");

}

}

实验结果截图

实验总结:

题目不难但是做的过程中小错误频发,不够细心也缺少练习,思路不确定,经常修改

调试错误:

原因是没有实例化对象,这个错误出现很多次了,需要注意记住

二、

源代码:

Random.java

public classRandom {privateString rand;

Random(){//生成验证码

rand = "";for( int i=0; i<6; i++){int intVal = (int)(Math.random() * 26 + 97);

rand= rand + (char)intVal; //此处+用作连接符

}public voidjudge( String rand ){if( this.rand.equals(rand) )

System.out.println("验证码正确");elseSystem.out.println("验证码错误");

}publicString getRand(){returnrand;

}

}

Validate.java

importjava.util.Scanner;public classValidate {public static voidmain( String [] args ){

String rand= newString();

@SuppressWarnings("resource")

Scanner in= newScanner( System.in );

Random ran= newRandom();

System.out.println(ran.getRand());

System.out.println("请输入验证码");

rand=in.next();

ran.judge(rand);

}

}

运行结果:

总结:

总的还算顺利,第一次输出的时候在验证码前面带了一个null,需要让rand为空