《Java程序设计》实验指导——项目2 Java语言基础

项目2 Java语言基础

实验目的:熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。
实验性质:验证性实验+设计性实验
实验内容:
(1)分析并调试第2章中的实例。(略)

(2)分别用if语句和switch语句编写程序,实现功能:根据学生的成绩(可能取值为5、4、3、2、1),显示相应的等级(优秀、良好、中等、及格、不及格)

import java.util.Scanner;
public class Grade {
    
    

	public static void main(String []args) {
    
    

//if方法		
		System.out.print("请输入学生成绩:");
		Scanner input = new Scanner(System.in);
		int grade = input.nextInt();
		if(grade==5) System.out.println("优秀");
		if(grade==4) System.out.println("良好");
		if(grade==3) System.out.println("中等");
		if(grade==2) System.out.println("及格");
		if(grade==1) System.out.println("不及格");
		

//switch方法	
		System.out.print("请输入学生成绩:");
		int grade2 = input.nextInt();
		switch(grade2) {
    
    
		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;
		}
		input.close();
	}
}

(3)输出500以内能被5和7整除但不能被3整除的数据,并计算它们的和。

public class Divide {
    
    

	public static void main(String[] args) {
    
    
		int num = 0;
		for(int i=0;i<501;i++) {
    
    
			if(i%5==0&&i%7==0&&i%3!=0) {
    
    
				System.out.print(i+" ");
				num+=i;
			}
		}
		System.out.println("和为"+num);
	}
}

(4)利用循环语句输出如下图形:
在这里插入图片描述

public class Picture {
    
    

	public static void main(String []args) {
    
    
		for(int i = 0;i<5;i++) {
    
    
			for(int j=0;j<5;j++) {
    
    
				System.out.print("*");
				if(j==4) System.out.println();
				}
			for(int s=0;s<i+1;s++) {
    
    
				System.out.print(" ");
			}
		}
	}
}

(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();//读入一个整数

import java.util.Scanner;
public class FingerGuessing {
    
    
	public static void main(String []args) {
    
    
		
		Scanner in = new Scanner(System.in);
		System.out.println("请输入您要出的手势  1.剪刀  2.石头  3.布");
		int x = in.nextInt();
		if(x==1) 
			System.out.println("我出剪刀");
		else if(x==2) 
			System.out.println("我出石头");
		else
			System.out.println("我出布");
		
		int  y= (int)(Math.random()*3+1);
		if(y==1) 
			System.out.println("对方出剪刀");
		else if(y==2) 
			System.out.println("对方石头");
		else
			System.out.println("对方布");
		
		if(x==y) 
			System.out.println("平局");
		else if((x==1&&y==2)||(x==2&&y==3)||(x==3&&y==1))
			System.out.println("很遗憾,您输了");
		else
			System.out.println("恭喜您,获得胜利");
		in.close();
		
	}
}

(6)猜数游戏:计算机随机产生一个数x;用户输入一个数据,与随机数相比较,并给出提示信息:
若输入数据>随机数,提示用户数据大了,并要求用户重新输入数据;
若输入数据<随机数,提示用户数据小了,并要求用户重新输入数据;
如此反复,直到用户输入数据与随机数相同为止。

import java.util.Random;
import java.util.Scanner;

public class GuessNumber {
    
    

	public static void main(String []args) {
    
    
		Random obj=new Random();
		int x = obj.nextInt(100)+1;
		Scanner price=new Scanner(System.in);
		
		do{
    
    
		System.out.println("猜测一下某某的价格(0~100元)");
		int y = price.nextInt();
	
		if(x>y) {
    
    
			System.out.println("没这么便宜!");
			System.out.print("再");}
		else if(x<y) {
    
    
			System.out.println("有这么贵吗?");
			System.out.print("再");}
		else
			{
    
    System.out.println("猜对了");price.close();break;}
		}while(true);
	}
}

(7)输入年月日,显示该天是这一年中的第几天,要求对输入的日期进行合理性检查。

import java.util.Scanner;
public class Date {
    
    
	
	public static void main(String []args) {
    
    

	int year;
	int month;
	int day;
	int days;
	int monthday;
	
	Scanner in = new Scanner(System.in);
	System.out.print("请输入年份");
	year=in.nextInt();

	while(true) {
    
    
	System.out.print("请输入月份(1~12)");
	month=in.nextInt();
	if(month>0&&month<13) 
		break;
	else
		System.out.print("输入错误,");
	}
	
	while(true) {
    
    
	System.out.print("请输入日");
	day=in.nextInt();
	if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)  //31天的月份
		if(day<32&&day>0)
			{
    
    monthday=31;break;}
		else
			System.out.print("输入错误,");
	else if(month==2&&year%4==0&&year%100!=0)                                    //普通闰年
		if(day<30&&day>0)
			{
    
    monthday=29;break;}
		else
			System.out.print("输入错误,");
	else if(month==2&&year%400==0&&year%100==0)                                   //特殊闰年
		if(day<30&&day>0)
			{
    
    monthday=29;break;}
		else
			System.out.print("输入错误,");
	else if((month==2&&year%4!=0)||(year%100==0&&year%400!=0))                     //非闰年
		if(day<29&&day>0)
		   {
    
    monthday=28;break;}
		else
			System.out.print("输入错误,");
	else
		if(day<31&&day>0)                                                          //30天的月份
			{
    
    monthday=30;break;}
		else
			System.out.print("输入错误,");
	}
	days=0;
	switch(month) {
    
    
	case 12:days+=31;
	case 11:days+=30;
	case 10:days+=31;
	case  9:days+=30;
	case  8:days+=31;
	case  7:days+=31;
	case  6:days+=30;
	case  5:days+=31;
	case  4:days+=30;
	case  3:days+=31;
	case  2:{
    
    
		if(year%4==0) days+=29;
		else days+=28;
	}
	case  1:days+=31;
	}
	days=days-(monthday-day);
	System.out.println(year+"年"+month+"月"+day+"日,是今年第"+days+"天");
	in.close();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_44652589/article/details/114269474