当前位置:课程学习>>第三章 运算符与流程控制>>实践活动




同学们,实践是检验真理问题的唯一标准,运用你们学到的知识实践检验一下能力提升了吗?

实践主题1:回文数

实践目标1:掌握使用if-else if多分支语句。

实践任务1:按模板要求,将[代码]处替换为Java程序代码

实践要求1:编写一个Java 应用程序,用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121,3223都是回文数。

Number.java

 import javax.swing.JOptionPane;

 public class Number {

  public static void main(String[] args) {

  int number=0,d5,d4,d3,d2,d1;

  String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");

  number=Integer.parseInt(str);

   if( [代码1] ) //判断number在1至99999之间的条件

   {

     [代码2] //计算number的最高位(万位)d5

     [代码3] //计算number的千位d4

     [代码4] //计算number的百位d3

     d2=number%100/10;

     d1=number%10;

   if( [代码5] ) { //判断number是5位数的条件

     System.out.println(number+"是5位数");

   if( [代码6] ) //判断number是回文数的条件

     System.out.println(number+"是回文数");

   else

     System.out.println(number+"不是回文数");

    }

   else if( [代码7] ) { //判断number是4位数的条件

     System.out.println(number+"是4位数");

   if( [代码8] ) //判断number是回文数的条件

     System.out.println(number+"是回文数");

   else

     System.out.println(number+"不是回文数");

   }

   else if( [代码9] ) { //判断number是3位数的条件

     System.out.println(number+"是3位数");

   if( [代码10] ) //判断number是回文数的条件

     System.out.println(number+"是回文数");

   else

     System.out.println(number+"不是回文数");

   }

   else if( d2!=0 ) {

     System.out.println(number+"是2位数");

   if( d1==d2 )

     System.out.println(number+"是回文数");

   else

     System.out.println(number+"不是回文数");

  }

   else if( d1!=0) {

     System.out.println(number+"是1位数");

     System.out.println(number+"是回文数");

  }

  }

   else

     System.out.println(number+"不在1至99999之间");

  }

  }

教师分析

这个实践主要是加强对使用if-else if多分支语句的掌握。参考代码如下:

  if( number>1 && number<99999 )   //[代码1]

  d5=number/10000;     //[代码2]

  d4=number%10000/1000;     //[代码3]

  d3=number%1000/100;     //[代码4]

  if(d5!=0)  {  // [代码5]

  if( (d1==d5) && (d2==d4) )      //[代码6]

 

实践主题2:猜数字游戏

实践目标2:使用if-else分支和while循环语句来解决问题。

实践任务2:按模板要求,将[代码]处替换为Java程序代码

实践要求2:编写一个Java应用程序,实现下列功能:

程序随机分配给客户一个1~100之间的整数。

用户从输入对话框输入自己的猜测。

程序返回提示信息,提示信息分别是“猜大了”、“猜小了”和“恭喜你,猜对了”

用户可根据提示信息再次输入猜测,直到提示信息是“恭喜你,猜对了”。

GuessNumber.java

 import javax.swing.JOptionPane;

 public class GuessNumber {

  public static void main(String[] args) {

   System.out.println("给你一个1至100之间的整数,请猜测这个数");

   int realNumber=(int)(Math.random()*100)+1;

   int yourGuess=0;

   String str=JOptionPane.showInputDialog("输入您的猜测:");

   yourGuess=Integer.parseInt(str);

   while( [代码1] ) //循环条件

   {

   if( [代码2] ) //条件代码

   {

    str=JOptionPane.showInputDialog("猜大了,再输入您的猜测:");

    yourGuess=Integer.parseInt(str);

   }

    else if ( [代码3] ) //条件代码

   {

   str=JOptionPane.showInputDialog("猜小了,再输入您的猜测:");

   yourGuess=Integer.parseInt(str);

   }

   }

    System.out.println("恭喜你,猜对了");

  }

}

教师分析: 

这个实践主要是加强对if-else分支和while循环语句的掌握。参考代码如下: 

 while( yourGuess != realNumber  )    //[代码1]

 if( yourGuess > realNumber  )  //[代码2]

 else if ( yourGuess < realNumber )   //[代码3]

 

实践主题3:输出图案。

实践目标3:使用循环语句来解决问题。

实践要求3:利用循环语句,编写一个Java应用程序(ShowCharType.java),输出以下所示图案,要求不可以直接输出"A"、"B "、"C"等

       A

       B C

       D E F

       G H I J

       K L M N

       O P Q

       R S

       T

教师分析

// 输出图案  ShowCharType.java

public class ShowCharType

 {

 public static void main(String[] args)

  {

  int i,j,k;

  int a=0;

  for (i=0;i<4;i++)

  {

    for (j=0;j<3-i;j++)

     System.out.print(" ");

    for (k=0;k<=i;k++)

   {

     System.out.print((char)(65+a)+" ");

    a++;

   }

      System.out.println();

   }

    for (i=3;i>=0;i--)

  {

    for (j=0;j<3-i;j++)

      System.out.print(" ");

    for (k=0;k<=i;k++)

  {

      System.out.print((char)(65+a)+" ");

    a++;

  }

      System.out.println();

  }    

 }

}

进入拓展资源