7.完成生成N位验证码(大写字母、小写字母、数字)——————————练习数组、循环和方法
package practice;
import java.util.Random;
public class Saturday {
public static void main(String[] args) {
/**
* 7.完成生成N位验证码(大写字母、小写字母、数字)———————————————————练习数组、循环和方法
*/
String capt = captcha(6);
System.out.println(capt);
}
public static String captcha(int len){
String capt = "";
Random rand = new Random();
char[] cap = {'a','b','c','d','e','f','g','h','i','j','k',
'l','m','n','o','p','q','r','s','t','u','v',
'w','x','y','z','A','B','C','D','E','F','G',
'H','I','J','K','L','M','N','O','P','Q','R',
'S','T','U','V','W','X','Y','Z','0','1','2',
'3','4','5','6','7','8','9'};//验证码字符可选范围
for(int i=0;i<len;i++){//len次
int index = rand.nextInt(cap.length);//随机下标(0到61)
capt += cap[index];//根据随机下标获取对应字符并拼接到capt中
}
return capt;
}
}
8.完成找到2到100之内的所有素数——————————————练习嵌套循环
for(int num=2;num<=100;num++) {
boolean flag = true;//假设每个num都是true
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.print(num + "\t");
}
}
/*
// 7%2/3/4/5/6,但凡有1个为0的,就能说明它不是素数,只有都不为0的,才是素数
int num = 7; //7,8,9,11
boolean flag = true; //1)假设num是素数
for(int i=2;i<=num/2;i++){ //i=2/3
if(num%i==0){
flag = false; //2)修改num为不是素数
break;
}
}
if(flag){ //3)判断flag标记
System.out.println(num+"是素数");
}else{
System.out.println(num+"不是素数");
}
*/
9.完成飞机票打折—————————————————————练习分支和方法
需求:
机票价格按照季节(淡季、旺季)、舱位(头等舱、商务舱、经济舱)收费
要求:
输入机票原价、月份和舱位,实现不同的折扣
--旺季(5月到10月)时,头等舱9折,商务舱85折,经济舱8折
--淡季(11月到来年4月)时,头等舱7折,商务舱65折,经济舱6折
package practice;
import java.util.Scanner;
public class Saturday {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入机票原价");
double price = sc.nextDouble();
System.out.println("请输入月份");
int month = sc.nextInt();
System.out.println("请输入舱位:1.头等舱 2.商务舱 3.经济舱");
int type = sc.nextInt();
double airfare = airFinalPrice(price,month,type);
if(airfare!=-1){
System.out.println(airfare);
}
}
/**
* 根据原价、月份、舱位,计算飞机票的最终价格
*/
public static double airFinalPrice(double price,int month,int type){
double airfare = 0.0;
int air;
if(price<0 || month<1 || month>12 || type<1 || type>3){
System.out.println("输入错误");
return -1;//只要数据输入错误,都统一返回-1
}
if(month>=5 && month <=10){//旺季
switch (type){//根据舱位类型做不同折扣
case 1:
airfare = price*0.9;
break;
case 2:
airfare = price * 0.85;
break;
case 3:
airfare = price * 0.8;
}
}else {//淡季
switch (type){//根据舱位类型做不同折扣
case 1:
airfare = price*0.7;
break;
case 2:
airfare = price * 0.65;
break;
case 3:
airfare = price * 0.6;
}
}
return airfare;
}
}
10.完成评委打分:去掉最高分和最低分之后的平均分——————练习数组、循环和方法
需求:
《主持人大赛》有N名评委给选手打分,要求分数范围为0到100之间的浮点数
选手的最终得分为: 去掉最高分和最低分后的N-2个评委的平均分
训练目标: 方法的设计
package practice;
import java.util.Scanner;
public class Saturday {
public static void main(String[] args) {
/**
* 10.完成评委打分:去掉最高分和最低分之后的平均分——————练习数组、循环和方法
* 需求:
* 《主持人大赛》有N名评委给选手打分,要求分数范围为0到100之间的浮点数
* 选手的最终得分为: 去掉最高分和最低分后的N-2个评委的平均分
* 训练目标: 方法的设计
*/
double[] scores = finalScore(6);//假设有6个评委
double avg = averagScore(scores);//1)录入评委的评分
System.out.println("平均分为:"+avg);//2)计算平均分
}
//录入评委分数
public static double[] finalScore(int num) {
Scanner sc = new Scanner(System.in);
double[] scores = new double[num];//评分数组
for (int i = 0; i < scores.length; i++) {
System.out.println("第" + (i + 1) + "个评委打分:");
/*double judgesScore = sc.nextDouble();*/
scores[i] = sc.nextDouble();
}
return scores;
}
//计算平均分
public static double averagScore(double[] scores){
double sum = sumScore(scores);//获取去掉最高分和最低分之后的总分
double avg = sum/(scores.length-2);//平均分
return avg;
}
//减去最高分和最低分后的总分
public static double sumScore(double[] scores){
double sum = 0.0;
double max = scores[0];//假设第1个元素为最大值
double min = scores[0];//假设第1个元素为最小值
for(int i=0;i<scores.length;i++){
if(scores[i]>max){//找最大值
max = scores[i];
}
if(scores[i]<min){//找最小值
min = scores[i];
}
sum += scores[i];//计算总分
}
return sum-max-min;//返回去掉最高分和最低分之后的总分
}
}