今天是学习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();//获取选课学生列表
}
}