项目2 Java语言基础
实验目的:熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。
实验性质:验证性实验+设计性实验
实验内容:(1)分析并调试第2章中的实例。
(2)分别用if语句和switch语句编写程序,实现功能:根据学生的成绩(可能取值为5、4、3、2、1),显示相应的等级(优秀、良好、中等、及格、不及格)
* 划分等级
* 分别用if语句和switch语句编写程序,
* 实现功能:根据学生的成绩(可能取值为5、4、3、2、1),显示相应的等级(优秀、良好、中等、及格、不及格)
* if语句
*/
package 实验二;
import java.util.Scanner;
public class Dengji {
public static void main(String[] args) {
System.out.print("输入学生成绩1-5:");
Scanner read=new Scanner(System.in);
int f=read.nextInt();//分数
if(f==5)
System.out.println("优秀");
if(f==4)
System.out.println("良好");
if(f==3)
System.out.println("中等");
if(f==2)
System.out.println("及格");
if(f==1)
System.out.println("不及格");
}
}
package 实验二;
import java.util.Scanner;
/**
* 划分等级
* 分别用if语句和switch语句编写程序,
* 实现功能:根据学生的成绩(可能取值为5、4、3、2、1),显示相应的等级(优秀、良好、中等、及格、不及格)
* switch语句
*/
public class Dengji2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("输入学生成绩1-5:");
Scanner read=new Scanner(System.in);
int f=read.nextInt();//分数
switch(f)
{case 5:System.out.println("优秀");break;
case 4:System.out.println("良好");break;
case 3:System.out.println("中等");break;
case 2:System.out.println("及格");break;
case 1:System.out.println("不及格");break;
default:break;
}
}
}
(3)输出500以内能被5和7整除但不能被3整除的数据,并计算它们的和。
package 实验二;
/**
*除数:输出500以内能被5和7整除但不能被3整除的数据,并计算它们的和
*/
public class Chushu {
public static void main(String[] args) {
int i=1;
int sum=0;
System.out.print("500以内能被5和7整除但不能被3整除的数据:");
while(true)
{
if(i==500)
break;
if(i%3!=0)
{
if(i%5==0)
if(i%7==0)
{
sum+=i;
System.out.print(i+"、");
}
}
i++;
}
System.out.println();
System.out.println("它们的和"+sum);
}
}
(4)利用循环语句输出如下图形:
*****
*****
*****
*****
package 实验二;
/**
* 利用循环语句输出如下图形:
* *****
* *****
* *****
* *****
*/
public class Tuxing {
public static void main(String arg[])
{
for(int i=0;i<4;i++)
{
for(int j=i;j>0;j--)
System.out.print(" ");
System.out.println("****");
}
}
}
(5)人机猜拳:编写一个人机进行石头剪刀布的小游戏,进行完一轮猜拳后,显示输赢信息。
提示:程序流程:
[1]产生一个随机数(范围1-3)
[2]用户输入一个整数(范围1-3)(要有良好的信息提示)
[3]根据石头、剪刀、布的规则,判断用户输入数据与随机数的关系,给出输赢信息。
随机数产生说明
方法一:使用Math.random()方法
1.需要在程序开始导入Math类,如下
import java.lang.;
也可以不导入,因为java.lang包系统默认使用
2. 产生[m,n]之间的整数(m<= x <=n)的表达式:
int x= (int)(Math.random()(n-m+1)+m) 方法二:使用Random类的方法
1.需要在程序开始导入Random类,如下
import java.util.*;
2. 产生[m,n]之间的整数(m<= x <=n)的语句:
Random obj=new Random();
int x=obj.nextInt(n-m+1)+m;
输入:
在文件开始需加入: import java.util.*;
Scanner read=new Scanner(System.in);
int x=read.nextInt();//读入一个整数
/**
* 猜拳游戏:1-石头、2-剪刀、3-布
*/
package 实验二;
import java.lang.*;
import java.util.Scanner;
public class Caiquan {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("1-石头、2-剪刀、3-布");
System.out.print("请输入:");
int i=(int)(Math.random()*3+1);
Scanner read=new Scanner(System.in);
int x=read.nextInt();//读入一个整数
switch(i)
{case 1:{System.out.print("机器出了石头 ");
if(x==1)
System.out.println("平局");
else if(x==2)
System.out.println("你输了");
else if(x==3)
System.out.println("你赢了");break;}
case 2:{System.out.print("机器出了剪刀");
if(x==1)
System.out.println("你赢了");
else if(x==2)
System.out.println("平局");
else if(x==3)
System.out.println("你输了");break;}
case 3:{System.out.print("机器出了布");
if(x==1)
System.out.println("你输了");
else if(x==2)
System.out.println("你赢了");
else if(x==3)
System.out.println("平局");break;}
}
}
}
(6)猜数游戏:计算机随机产生一个数x;用户输入一个数据,与随机数相比较,并给出提示信息:
若输入数据>随机数,提示用户数据大了,并要求用户重新输入数据;
若输入数据<随机数,提示用户数据小了,并要求用户重新输入数据;
如此反复,直到用户输入数据与随机数相同为止。
/**
* 猜数游戏
* 若输入数据>随机数,提示用户数据大了,并要求用户重新输入数据;
* 若输入数据<随机数,提示用户数据小了,并要求用户重新输入数据;
* 如此反复,直到用户输入数据与随机数相同为止。
*/
package 实验二;
import java.util.Scanner;
import java.lang.*;
public class Caishu {
public static void main(String arg[])
{
int i,x;
System.out.println("已经生成1-10的数");
i=(int)(Math.random()*10+1);
System.out.print("请输入你要猜的数:");
Scanner s=new Scanner(System.in);
x=s.nextInt();
while(true)
{
if(x>i)
{
System.out.println("数据偏大,请继续输入");
x=s.nextInt();
}
if(x<i)
{
System.out.println("数据偏小,请继续输入");
x=s.nextInt();
}
if(x==i)
{
System.out.println("数据正确");break;
}
}
}
}
(7)输入年月日,显示该天是这一年中的第几天,要求对输入的日期进行合理性检查。
package 实验二;
import java.util.Scanner;
/**
* 输入年月日,显示该天是这一年中的第几天,要求对输入的日期进行合理性检查
*
*/
public class Nianyueri {
public static void main(String a[])
{
Scanner sc=new Scanner(System.in);
System.out.print("输入年:");
int Year=sc.nextInt();
System.out.print("输入月:");
int Month=sc.nextInt();
System.out.print("输入日:");
int Day=sc.nextInt();
boolean y=false;
int sum=0;//第几天
/*
判断日期是否合理
*/
do
{
if(Month==0)
{
System.out.println("日期不合理、是否从小输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.println("输入年:");
Year=sc.nextInt();
System.out.println("输入月:");
Month=sc.nextInt();
System.out.println("输入日:");
Day=sc.nextInt();
}
else
{y=false;
break;}
}
else if(Month>12)
{
System.out.println("日期不合理、是否从小输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.print("输入年:");
Year=sc.nextInt();
System.out.print("输入月:");
Month=sc.nextInt();
System.out.print("输入日:");
Day=sc.nextInt();
}
else
{y=false;
break;}
}
else if(Day==0)
{
System.out.println("日期不合理、是否从小输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.print("输入年:");
Year=sc.nextInt();
System.out.print("输入月:");
Month=sc.nextInt();
System.out.print("输入日:");
Day=sc.nextInt();
}
else
{y=false;
break;}
}
else if(Day>31)
{
System.out.println("日期不合理、是否从小输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.println("输入年");
Year=sc.nextInt();
System.out.println("输入月");
Month=sc.nextInt();
System.out.println("输入日");
Day=sc.nextInt();
}
else
{y=false;
break;}
}
else if(Month==4||Month==6||Month==9||Month==11)
{
if(Day==31)
{ System.out.println("日期不合理、是否从新输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.print("输入年:");
Year=sc.nextInt();
System.out.print("输入月:");
Month=sc.nextInt();
System.out.print("输入日:");
Day=sc.nextInt();
}
else
{y=false;
break;}
}
else
y=false;
}else if(Month==2)
{
if(Year%4==0)
{
if(Day>29)
{
System.out.println("日期不合理、是否从小输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.print("输入年:");
Year=sc.nextInt();
System.out.print("输入月:");
Month=sc.nextInt();
System.out.print("输入日:");
Day=sc.nextInt();
}
else
{y=false;
break;}
}else
y=false;
}else if(Day>28)
{
System.out.println("日期不合理、是否从小输入,是则输入1,否则输入其他");
if(1==sc.nextInt())
{
y=true;
System.out.print("输入年:");
Year=sc.nextInt();
System.out.print("输入月:");
Month=sc.nextInt();
System.out.print("输入日:");
Day=sc.nextInt();
}
else
{y=false;
break;}
}else
y=false;
}
}while(y);
for(int i=1;i<Month;i++)
{
/*
*计算第几天天数
*/
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum+=31;
}
if(i==2)
{
if(Year%4==0)
{
sum+=29;
}
else
sum+=28;
}
if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
}
sum+=Day;
System.out.println("该天是这"+Year+"中的第"+sum+"天");
}
}