练习
卖飞机票
需求:
- 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
- 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
package com.example.demo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 输入相关数据:票价,月份,座位类型
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票原价");
int ticket = sc.nextInt();
System.out.println("请输入月份");
int mouth = sc.nextInt();
System.out.println("请输入头等舱或经济舱");
String seat = sc.next();
// 判断淡季还是旺季
if (5 <= mouth && mouth <= 10){
// 调用计算票价方法
discount(seat, ticket,0.9,0.85);
} else if ( (1<= mouth && mouth <= 4) || (11<=mouth && mouth <=12)){
discount(seat,ticket,0.7,0.65);
}else{
System.out.println("输入月份不合法");
}
}
// 定义计算票价方法
private static void discount(String seat, int ticket,double d1,double d2) {
if (seat == "头等舱"){
double price = ticket * d1;
System.out.println(price);
}else {
double price = ticket * d2;
System.out.println(price);
}
}
}
找质数
需求:
判断101-200之间有多少个素数,并输出所有素数。
package com.example.demo;
public class Test {
public static void main(String[] args) {
// 定义一个变量来统计有多少个质数
int count = 0;
// 外循环:遍历101~200这个范围
for (int i = 101; i <= 200; i++) {
// i表示101~200之间的每一个数字
boolean flag = true;
// 内循环:判断当前数字是否为一个质数
for (int j = 0; j < i; j++) {
// j表示2~99之间的每一个数字
if(i % j == 0){
flag = false;
// 跳出单层循环,内循环
break;
}
}
if(flag){
System.out.println("数字"+i+"是质数");
count++;
}else {
System.out.println("数字"+i+"不是质数");
}
}
}
}
开发验证码
需求:
-
定义方法实现随机产生一个5位的验证码
-
验证码格式:
长度为5
前四位是大写字母或者小写字母
最后一位是数字
package com.example.demo;
import java.util.Random;
public class Test {
public static void main(String[] args) {
// 方法:
// 要在一对没有什么规律的数据中随机抽取,可以把这些数据放大数组当中,再随机抽取一个索引
// 1.把大写字母和小写字母都放到数组当中
char[] chs = new char[52];
for (int i = 0; i < chs.length; i++) {
if(i <= 25) {
// 添加小写字母
chs[i] = (char) (97 + i);
}else{
// 添加大写字母
chs[i] = (char) (65+ i -26);
}
}
// 定义一个字符串类型的变量,用来记录最终的结果
String result = "" ;
// 2.随机抽取4次
Random random = new Random();
for (int i = 0; i < 4; i++) {
int randomIndex = random.nextInt(chs.length);
// 拼接字母
result += chs[randomIndex];
}
// 3.随机抽取一次数字0~9
int num = random.nextInt(10);
// 拼接数字
result += num;
System.out.println(result);
}
}
数组元素的复制
需求:
把一个数组中的元素复制到一个新数组中去。
package com.example.demo;
public class Test {
public static void main(String[] args) {
// 定义一个数组
int arr[] = {1,2,3,4,5};
// 定义一个长度跟老数组相同的新数组
int newArr[] = new int[arr.length];
// 将老数组中的东西复制到新数组中
for (int i = 0; i < arr.length; i++) {
newArr[i] = arr[i];
}
// 打印新数组里面的元素
for (int i = 0; i < newArr.length; i++) {
System.out.println(newArr[i]);
}
}
}
评委打分
需求:
在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
解题思路:
1.定义一个数组,用来存储6名评委打分(0~100)
2.求出数组中的最大值
3.求出数组的最小值
4求出数组中6个分数的总和
5.(总和-最大值-最小值)/4
数字加密
需求:
某系统的数字密码(大于0),比如1983,采用加密方式进行传输
规则如下:
先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字翻转,得到一串新数。
解题思路:
1.把整数里面的每一位放到数组当中
2.加密:每位数+5,再对10求余,将所有数字反转
3.把数组里面的每一个数字进行拼接,变成加密之后的结果。