当前位置:课程学习>>第三章 运算符与流程控制>>实践活动
同学们,实践是检验真理问题的唯一标准,运用你们学到的知识实践检验一下能力提升了吗?
实践主题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();
}
}
}