广东海洋大学学生实验报告书(学生用表)
实验名称实验三. 分支与循环语句课程名称Java程序设计与开发
技术
课程号16232204
学院(系) 信息学院专业计算机科学与技术班级计科
学生姓名学号实验地点钟海楼
04019
实验日期
2015年
9月22日
一、实验目的
(1)学习掌握Java中的if-else if-else多分支语句;
(2)学习使用Java 程序中的if-else分支和while循环语句解决问题。
二、实验任务
完成实验三指导上实验1、实验2的实验任务。
三、实验仪器设备和材料
安装有J2SE开发工具的PC机。
四、实验内容和步骤
实验1 回文数
编写一个Java应用程序。
用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。
代码如下:
Number.java
import java.util.Scanner;
public class Number{
public static void main(String args[]){
int number=0,d5,d4,d3,d2,d1;
Scanner reader=new Scanner(System.in);
System.out.println("输入一个1至99999之间的数");
number=reader.nextInt();
if(number>=1&&number<=99999){
d5=number/10000;
d4=number%10000/1000;
d3=number%1000/100;
d2=number%100/10;
d1=number%10;
if(d5!=0){
GDOU-B-11-112
System.out.println(number+"是5位数");
if(d5==d1&&d4==d2){
System.out.println(number+"是回文数");
}
else{
System.out.println(number+"不是回文数");
}
}
else if(d4!=0){
System.out.println(number+"是4位数");
if(d4==d1&&d3==d2){
System.out.println(number+"是回文数");
}
else{
System.out.println(number+"不是回文数");
}
}
else if(d3!=0){
System.out.println(number+"是3位数");
if(d3==d1){
System.out.println(number+"是回文数");
}
else{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0){
System.out.println(number+"是2位数");
if(d2==d1){
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.printf("\n%d不在1至99999之间",number);
}
}
}
运行结果:
课后的练习
(1)程序运行时,用户从键盘输入2332,程序提示怎样的提示。
(2)程序运行时,用户从键盘输入654321,程序提示怎样的提示。
(3)程序运行时,用户从键盘输入33321,程序提示怎样的提示。
实验2 猜数字游戏
编写一个Java应用程序,实现下列功能:
·程序随机分配客户一个1~100之间的整数。
·用户输入自己的猜测。
·程序返回提示信息,提示信息分别是“猜大了”、“猜小了”、“猜对了”。
·用户可根据提示信息再次输入猜测,知道提示信息是“猜对了”。
代码如下:
GuessNumber.java
import java.util.Scanner;
import java.util.Random;
public class GuessNumber{
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
Random random=new Random();
System.out.println("给你一个1至100之间的整数,请猜测这个数");
int realNumber=random.nextInt(100)+1;
int yourGuess=0;
System.out.print("输入您的猜测:");
yourGuess=reader.nextInt();
while(yourGuess!=realNumber){
if(yourGuess>realNumber){
System.out.print("猜大了,再输入你的猜测:");
yourGuess=reader.nextInt();
}
else if(yourGuess<realNumber){
System.out.print("猜小了,再输入你的猜测:");
yourGuess=reader.nextInt();
}
}
System.out.println("猜对了!");
}
}
运行结果:
课后的练习
(1)用“yourGuess>realNumber”替换代码1可以吗?
不可以,如果代替,则会令程序在检测到用户猜测数字大于正确数字时就会提示
“猜对了”。
(2)语句“System.out.println(“猜对了!”);”为何要放在while循环语句之后?
放在while语句的循环体中合理吗?
因为while循环中的退出条件是当用户输入的yourGuess等于realNumber,所以一旦程序正确退出while循环就说明用户输入的数字是正确的,从而提示“猜对了”。
如果放在while循环体中,则会在每次用户输入后不管对错都会提示“猜对了”。
成绩指导教师孙兵日期2015年9月23日注:请用A4纸书写,不够另附纸。
第页,共页。