Provide Best Programming Tutorials

## 编程作业 – 选择

( 随机月份）编写一个随机产生1 和 12 之间整数的程序，并且根据数字12 显示相应的英文月份：January，February，…，December。

```public class Test {
public static void main(String[] args){

//程序说明：随机产生1-12之间的数，并显示相应英文月份
//产生随机数
int y = (int)(Math.random() * 12 + 1);
//显示相应英文月份
switch(y){
case 1:
System.out.println(1 + " January");
break;
case 2:
System.out.println(2 + " February");
break;
case 3:
System.out.println(3 + " March");
break;
case 4:
System.out.println(4 + " April");
break;
case 5:
System.out.println(5 + " May");
break;
case 6:
System.out.println(6 + " June");
break;
case 7:
System.out.println(7 + " July");
break;
case 8:
System.out.println(8 + " August");
break;
case 9:
System.out.println(9 + " September");
break;
case 10:
System.out.println(10 + " October");
break;
case 11:
System.out.println(11 + " November");
break;
case 12:
System.out.println(12 + " December");
break;
}
}
}```

(找到将来的日期）编写一个程序，提示用户输入代表今天日期的数字（周日为0, 周一为1, …… ，周六为6 )。同时，提示用户输入一个今天之后的天数，作为代表将来某天的数字，然后显示这天是星期几。下面是一个运行示例

```Enter today’s day: 1
Enter the number of days elapsed since today: 3
Today is Monday and the future day is Thursday```
```public class Test {
public static void main(String[] args){

//程序说明：n天后是星期几
//提示用户输入今天是星期几
System.out.print("Enter today's day:");

Scanner input = new Scanner(System.in);

int today = input.nextInt();
String str = "";

switch(today){
case 0:
str = "Today is Sunday";
break;
case 1:
str = "Today is Monday";
break;
case 2:
str = "Today is Tuesday";
break;
case 3:
str = "Today is Wednesday";
break;
case 4:
str = "Today is Thursday";
break;
case 5:
str = "Today is Friday";
break;
case 6:
str = "Today is Saturday";
break;

}

//提示用户想知道几天后的
System.out.print("Enter the number of days elapsed since today:");

int n = input.nextInt();

//输出结果
int s = (today + n) % 7;

switch(s){
case 0:
str += " the future day is Sunday";
break;
case 1:
str += " the future day is Monday";
break;
case 2:
str += " the future day is Tuesday";
break;
case 3:
str += " the future day is Wednesday";
break;
case 4:
str += " the future day is Thursday";
break;
case 5:
str += " the future day is Friday";
break;
case 6:
str += " the future day is Saturday";
break;

}
System.out.println(str);
}
}```

( 对三个整數排序）编写程序，提示用户输入三个整数。以非降序的形式显示这三个整数。

( 给出一个月的总天教）编写程序，提示用户输入月份和年份，然后显示这个月的天数。例如：如果用户输人的月份是2 而年份是 2012, 那么程序应该显示”February 2012 has 29 days”( 2012年2 月有29 天)。如果用户输人的月份为3 而年份为2015, 那么程序就应该显示”March 2015has 31 days”（2015 年3 月有31 天)。

(回文数字）编写一个程序，提示用户输人一个三位的整数，然后确定它是否回文数字。当从左到右，以及从右到左都是一样的话，这个数字称为回文数。下面是程序的一个运行示例：

```Enter a three-digit integer: 121
121 is a palindrome```
```Enter a three-digit integer: 123
123 is not a palindrome```

(游戏：猜硬币的正反面）编写程序，让用户猜一猜是硬币的正面还是反面。这个程序随机产生一个整数 0 或者 1 , 它们分别表示硬币的正面和反面。程序提示用户输人一个猜测值，然后报告这个猜测值是正确的还是错误的。

(运输成本)一个运输公司使用下面的函数，根据运输重量来计算运输成本。编写一个程序，提示用户输入包裹重量，显示运输成本。如果重量大于20，显示一条信息”the package cannot be shipped”

(计算三角形的周长)编写程序，读取三角形的三条边，如果输入值合法就计算这个三角形的周长；否则，显示这些输入值不合法。如果任意两条边的和大于第三边，那么输入值都是合法的。

(科学：某天是星期几）泽勒一致性是由 克里斯汀• 泽勒 开发的用于计算某天是星期几的算法。

• h 是一个星期中的某一天（0 为星期六；1 为星期天；2 为星期一；3 为星期二；4 为星期三；5 为星期四；6 为星期五）。
• q 是某月的第几天。
• j 是世纪数 | year/100 |
• m是月份（3 为三月，4 为四月，… ，12为十二月）。一月和二月分别记为上一年的 13 和14月。
• k 是该世纪的第几年（即 year % 100)

```Enter year: (e.g., 2012): 2015
Enter month: 1-12: 1
Enter the day of the month: 1-31: 25
Day of the week is Sunday

Enter year: (e.g., 2012): 2012
Enter month: 1-12: 5
Enter the day of the month: 1-31: 12
Day of the week is Saturday```

(使用操作符 && 、|| 和 ^ 编写一个程序，提示用户输入一个整数值，然后判定它是否能被 5 和 6 整除，是否能被 5 或 6 整除，以及是否能被 5 或 6 整除但是不能同时被它们整除。下面是这个程序的运行示例：

```Enter an integer: 10
Is 10 divisible by 4 and 5? false
Is 10 divisible by 4 or 5? true
Is 10 divisible by 4 or 5 but not both? true```

`The card you picked is Jack of Hearts`