Java第二次实验要求

来源:互联网 发布:2017江苏的网络诈骗案 编辑:程序博客网 时间:2024/06/10 03:51

Java语言程序设计第二次实验要求

实验二基本数据类型与数组

一、实验目的

1、 掌握Java语言中的基本数据类型的基本概念及使用方法;

2、 掌握Java语言中数组的基本概念及使用方法;

3、 掌握Java语言中运算符以及基本控制语句的使用方法;

4、 掌握Java语言中的基本输入与输出方法;

5、 理解程序设计中健壮性的重要性。

二、实验要求

1、 根据实验步骤中提出的要求,使用记事本编写相应的Java程序;

2、 使用JDK中提供的javac以及java命令编译、运行自己所编写的Java程序;

3、 根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;

4、 记录实验中遇到的各类问题并以及解决办法。

三、实验步骤

1、 输入与输出

(1) 采用记事本编写下面所给的Java程序并保存为InputTest.java;

import java.util.*;

class InputTest {

  public static void main(String args[]){

  Scanner reader=new Scanner(System.in);

  int n;

  n=reader.nextInt();

  System.out.println("n="+n);

  }

}

(2) 如果在程序运行时输入1k,将会出现什么错误?是什么原因造成的?

(3) 请在程序的某处增加以下代码:

while (!reader.hasNextInt()){

  reader.nextLine();

  System.out.println("输入格式错误,请重新输入:");

}

(4) 以上的程序有什么含义与作用?

(5) 什么是健壮性?添加代码后的程序与之前的程序对比健壮性如何?

2、 除法运算;

(1) 采用记事本编写下面所给的Java程序并保存为Division.java;

import java.util.*;

class Division{

  public static void main(String args[]){

  Scanner reader=new Scanner(System.in);

  int a,b;

  double q;

  System.out.println("请输入被除数:");

  if (reader.hasNextInt())

   a=reader.nextInt();

  System.out.println("请输入除数:");

  if (reader.hasNextInt())

    b=reader.nextInt();

  q=a/b;

  System.out.printf("除法算式及运算结果:\n%10d / %d =%10.2f",a,b,q);

  }

}

(2) 修改Division.java直至程序编译正确为止;

(3) 该程序运行后如果输入的除数为0,则将出错,请修改程序直至程序运行正确为止;

(4) 该程序的结果始终为整数,请修改该程序使其输出正确的结果。

3、 数组

(1) 在ArrayTest.java中添加以下代码;

class ArrayTest{

  public static void main(String args[]){

  System.out.println(b);

  for (int i=0;i<=3;i++)

    System.out.println(a[i]);

  b=a;//b原来指向的内存空间将被回收

  System.out.println(b.length);

  }

}

(2) 已知数组b中有4个元素,请问将如何修改该程序;

(3) 如果不修改程序,程序在编译与运行过程中将产生什么错误?

4、 课程表

(1) 采用记事本编写下面所给的Java程序并保存为Schedule.java;

import java.util.*;

class Schedule{

  public static void main(String args[]){

  boolean[][] table =new boolean[7][5];

  int i,j;

  while(true){

    System.out.println("请输入星期:(1-7分别代表周一至周日)");

    i=input();

    System.out.println("请输入节次:(1-5分别代表1、2节至9、10节各个时间段)");

    j=input();

    if (i>0 && i<8 && j>0&& j<6){

      table[i-1][j-1]=true;

    }else

      break;

    }

System.out.println();

System.out.println(" 周一 周二 周三 周四 周五 周六 周日 ");

System.out.println();

……

}

private static int input(){

  Scanner reader=new Scanner(System.in); 

  while (!reader.hasNextInt()){

    reader.nextLine();

    System.out.println("输入格式错误,请重新输入:"); 

  }

  return reader.nextInt();

  }

}

(2) 该程序的作用是根据用户的输入生成Java周课程表,请补充省略的代码使其输出结果如下图所示。

 

5、 运算符

(1) 分析以下程序并写出其输出结果;

class OperatorTest{

public static void main(String args[]){

int a=3,b=4,c=5,d=6,m=7,n=8;

int x=64,arr[]=new int[8];

long y=-0x1000000000L,z=4;

boolean flag;

flag = a>3 && b-->4;

flag = ++c>5 || ++d>6;

flag = m==7 | ++n==8;

x>>=33;

y>>=33;

z>>=65;

System.out.printf("a=%d,b=%d;c=%d,d=%d,m=%d,n=%d\n",a,b,c,d,m,n);

System.out.printf("x=%d,y=%d,z=%d,x^z=%d\n",x,y,z,x^z);

System.out.println(arr instanceof int[]);

}

}

(2) 采用记事本编写上面所给的Java程序并验证你所写出的输出结果是否正确。

6、 流程控制

(1) 分析以下程序并写出其输出结果;

import java.util.*;

public class ControlTest{

public static void main(String args[]){

System.out.println("请输入一个整数:");

int n=input();

for (int i=0;i<n;i++){ 

if (i%2==0)

continue;

if (i%n==6)

break;

System.out.println("i="+i);

}

}

private static int input(){

Scanner reader=new Scanner(System.in);

while (!reader.hasNextInt()){

reader.nextLine();

System.out.println("输入格式错误,请重新输入:");

}

return reader.nextInt();

}

}

(2) 采用记事本编写上面所给的Java程序并验证你所写出的输出结果是否正确。

(3) 如果将语句if (i%n==6) 中的6替换为7将会产生什么结果?为什么?

四、实验结果

五、实验小结
0 0
原创粉丝点击