学习java随堂练习-20220616

本文展示了7个Java编程练习,包括根据月份输出季节、计算整数次幂、近似计算π值、输出金字塔图形、寻找数组及可变参数中的最大值、打印前100个回文素数以及课程信息类的设计与操作。这些练习涵盖了基本的条件判断、循环、数学计算以及面向对象编程的概念。
摘要由CSDN通过智能技术生成

今天是学习Java的第十三天
7道练习题

第1题

题目:

1、输入月份,输出季节

运行结果:

请添加图片描述

代码如下:

/**
 * 1、输入月份,输出季节
 * */
public class Season {
	int month;//月份
	
	
	public void getSeason(int month) {//输入月份,输出季节
		switch(month) {
		case 1:
			System.out.println(month+"月是冬季");
			break;
		case 2:
			System.out.println(month+"月是冬季");
			break;
		case 3:
			System.out.println(month+"月是春季");
			break;
		case 4:
			System.out.println(month+"月是春季");
			break;
		case 5:
			System.out.println(month+"月是春季");
			break;
		case 6:
			System.out.println(month+"月是夏季");
			break;
		case 7:
			System.out.println(month+"月是夏季");
			break;
		case 8:
			System.out.println(month+"月是夏季");
			break;
		case 9:
			System.out.println(month+"月是秋季");
			break;
		case 10:
			System.out.println(month+"月是秋季");
			break;
		case 11:
			System.out.println(month+"月是秋季");
			break;
		case 12:
			System.out.println(month+"月是冬季");
			break;
		}
	}

}




import java.util.Scanner;
public class SeasonTest {
	public static void main(String[] args) {
		Season s = new Season();
		System.out.println("输入月份,输出季节");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		
		s.getSeason(num);
	}
}

第2题

题目:

2、计算a的b次幂(b为整数,可正可负可0)

运行结果:

请添加图片描述

请添加图片描述

请添加图片描述

代码如下:

/**
 * 2、计算a的b次幂(b为整数,可正可负可0) 
 * */
public class CalPower {
	
	public double power(int a,int b) {
		double result=1;
		if(b==0) {//b=0
			result=1;
			return result;
		}else if(b>0) {//b>0
			for(int i=0;i<b;i++) {
				result*=a;
			}
			return result;
		}else {//b<0
			for(int i=0;i<-b;i++) {//b小于0时,先算a的-b次幂
				result*=a;
			}
			result=1/result;
			return result;
		}
		
	}
}


import java.util.Scanner;
public class CalPowerTest {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("计算a的b次幂(b为整数,可正可负可0)");
		CalPower cal = new CalPower();
		System.out.println("请输入a和b");
		int a = input.nextInt();
		int b = input.nextInt();
		System.out.println(a+"的"+b+"次幂为:"+cal.power(a, b));
		
		

	}

}

第3题

题目:

请添加图片描述

运行结果:

请添加图片描述

代码如下:

/**
 * 3、近似求π
 * */
public class Findπ {
	
	public double calculate(int n) {
		double result = 0;
		for(int i=1;i<=n;i++) {
			if(i%2==1) {//i为奇数
				result+=1.0/(2*i-1);
			}else {//i为偶数
				result+=(-1)*1.0/(2*i-1);
			}
		}
		return 4*result;
	}
}





public class FindπTest {

	public static void main(String[] args) {
		Findπ c = new Findπ();
		System.out.println("第一个多项式的值为:"+c.calculate(6));
		
		System.out.println("第二个多项式的值为:"+c.calculate(7));
		
	}

}

第4题

题目:

请添加图片描述

运行结果:

请添加图片描述

代码如下:

/**
 * 4、根据行数,输出图形
      *
     ***
    *****
   *******
  *********

 * */
public class Pyramid {

	public void printPyramid(int n) {
		
		
		for(int i=0;i<n;i++) {//打印n行
			
			/**
			 * n=5
			 * i	空格	星星
			 * 0	4	1
			 * 1	3	3
			 * 2	2	5
			 * 3	1	7
			 * 4	0
			 * */
			for(int j=0;j<n-1-i;j++) {//打印每行的空格
				System.out.print(" ");
			}
			
			
			for(int k=0;k<2*i+1;k++) {//打印每行的星星
				System.out.print("*");
			}
			System.out.println();
		}
	}
}





import java.util.Scanner;
public class PyramidTest {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("根据行数,输出图形");
		Pyramid a = new Pyramid();
		System.out.print("请输入行数:");
		int rowNum = input.nextInt();
		
		a.printPyramid(rowNum);

	}

}

第5题

题目:

5、求一组序列中的最大值(使用数组和可变长度的参数分别实现)

运行结果:
请添加图片描述

代码如下:

/**
 * 5、求一组序列中的最大值(使用数组和可变长度的参数分别实现)
 * */
public class Max {
	
	public int getMax1(int[] nums) {
		int result = nums[0];
		for(int i=0;i<nums.length;i++) {
			if(nums[i]>result) {
				result=nums[i];
			}
		}
		return result;
	}
	
	public int getMax2(int... nums) {
		int result = nums[0];
		for(int i=0;i<nums.length;i++) {
			if(nums[i]>result) {
				result=nums[i];
			}
		}
		return result;
	}
}





public class MaxTest {

	public static void main(String[] args) {
		System.out.println("求一组序列中的最大值(使用数组和可变长度的参数分别实现)");
		int[] nums = {1,4,3,64,6,32,65};
		Max a = new Max();
		int max1 =a.getMax1(nums);
		System.out.println("法一:使用数组,最大值是:"+max1);
		

		int max2 = a.getMax2(1,3,45,6,3534,4,345);
		System.out.println("法二:使用可变长度的参数,最大值是:"+max2);
	}

}

第6题

题目:

6、输出前100个回文素数,且每10个换行

运行结果:

请添加图片描述

代码如下:

/**
 * 6、输出前100个回文素数,且每10个换行
 * */
public class PalindromicPrimeNumbers {
	
	public boolean getPalindromesNum(int num) {//判断num是否是回文数
		int endNum=0;//记录每次末尾数字
		int flipNum=num%10;//存放翻转后的数字,初始时存放个位数字
		int count=0;
		int numcopy = num;
		
		while(num!=0) {
			//获取末尾数字
			endNum = num%10;
			count++;
			if(count!=1) {
				flipNum=flipNum*10+endNum;
			}
			num/=10;
			
		}
		if(flipNum==numcopy) {
			return true;
		}else {
			return false;
		}
	}
	
	
	public boolean getPrimeNum(int num) {//判断num是否是素数
		boolean flag=true;//true 是素数  false不是素数
		for(int i=2;i<num;i++) {//1不是素数
			if(num%i==0) {
				flag = false;
				break;
			}
		}
		return flag;
	}
	
}





public class PalindromicPrimeNumbersTest {

	public static void main(String[] args) {
		PalindromicPrimeNumbers n = new PalindromicPrimeNumbers();
		int i=2;//从2开始
		int count=0;
		while(true) {
			if(n.getPalindromesNum(i)&&n.getPrimeNum(i)) {
				System.out.print(i+" ");
				count++;
				if(count%10==0) {//只有输出了并且够10个了才换行
					System.out.println();
				}
			}
			if(count==100) {
				break;
			}
			i++;
		}

	}
}

第7题

题目:

请添加图片描述

运行结果:

请添加图片描述

代码如下:

/**
 * 7、课程信息类
 * 课程Course: 
属性:课程名称	学生名称列表 String[] 
方法:String getCourse():获取课程名称 
	boolean addStudent(String stuName):添加学生 
	dropStudent(String stuName):删除学生
	searchStudent(String stuName):查找学生 
	getStuNums():获取选课学生人数 
	String[] getStus():获取选课学生列表
 * */
public class Course {
	String name;//课程名称
	String[] stus = new String[30];//学生名称列表
	
	
	public String getCourse() {//获取课程名称 
		return name;
	}
	
	
	public boolean addStudent(String stu){//添加学生 
		boolean flag=false;//false添加失败		true添加成功
		for(int i=0;i<stus.length;i++) {
			if(stus[i]!=null) {
				stus[i]=stu;
				flag = true;
				break;
			}
		}
		return flag;
	}
	
	
	public boolean dropStudent(String stu) {//删除学生
		boolean flag = false;
		for(int i=0;i<stus.length;i++) {
			if(stu.equals(stus[i])) {
				stus[i]=null;
				flag=true;
				break;
			}
		}
		return flag;
	}
	
	
	public int searchStudent(String stu) {//查找学生 
		int result = -1;
		for(int i=0;i<stus.length;i++) {
			if(stu.equals(stus[i])) {
				result = i;
				return result;
			}
		}
		return result;
	}
	
	
	public int getStuNums() {//获取选课学生人数 
		int count = 0;
		for(int i=0;i<stus.length;i++) {
			if(stus[i]!=null) {
				count++;
			}
		}
		return count;
	}
	
	
	public void getStus() {//获取选课学生列表
		System.out.println();
		for(int i=0;i<stus.length;i++) {
			if(stus[i]!=null) {
				System.out.print(stus[i]+" ");
			}
		}
	}

}




public class CourseTest {
	public static void main(String[] args) {
		Course c = new Course();
		c.name="AF2205";
		c.stus[0]="张三";
		c.stus[1]="李四";
		c.stus[2]="王五";
		c.stus[3]="赵六";
		c.stus[4]="田七";
		
		System.out.print(c.getCourse());//获取课程名称
		
		String stus1="李白";
		System.out.print("\n"+(c.addStudent(stus1)?"添加成功":"添加失败"));//添加学生 

		System.out.print("\n"+(c.dropStudent("李白")?"删除成功":"删除失败"));//删除学生

		int loc = c.searchStudent("王五");
		System.out.print("\n"+((loc>=0&&loc<30-1)?("查找到了,下标为:"+loc):"没有找到"));//查找学生
		
		System.out.print("\n选课人数有"+c.getStuNums()+"人");//获取选课学生人数 
		
		c.getStus();//获取选课学生列表
		
		
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值