(1)卖机票
class Test01 {
public static void main(String[] args) {
//卖机票
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票的原价");
int ticket = sc.nextInt();
System.out.println("请输入旅游的月份");
int month = sc.nextInt();
System.out.println("请选择机票舱位 0:头等舱 1:经济舱");
int seat = sc.nextInt();
//判断月份
if (month >= 5 && month <= 10) {
ticket=getPrice(ticket,seat,0.9,0.85);
/*if(seat==0){
ticket = (int) (ticket*0.9);
}
else if(seat == 1){
ticket = (int) (ticket*0.85);
}
else {
System.out.println("输入不合法");
}*/
} else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {
ticket=getPrice(ticket,seat,0.7,0.65);
/* if(seat==0){
ticket = (int) (ticket*0.7);
}
else if(seat == 1){
ticket = (int) (ticket*0.65);
}
else {
System.out.println("输入不合法");
}*/
} else {
System.out.println("输入月份不合法");
}
System.out.println(ticket);
}
//2: 创建方法
public static int getPrice(int ticket, int seat, double v0, double v1) {
if(seat==0){
ticket = (int) (ticket*v0);
}
else if(seat == 1){
ticket = (int) (ticket*v1);
}
else {
System.out.println("输入不合法");
}
return ticket;
}
}
(2)找质数
public class Test02 {
public static void main(String[] args) {
//找质数
/*
* j 表示被除数的范围,i表示除数的范围
* */
for (int i =101 ; i <=200 ; i++) {
boolean flag = true;
for (int j = 2; j <=99 ; j++) {
//j表示2-99之间的每一个数子
if (i % j == 0){
flag= false;
break;
}
}
if (flag){
System.out.println("当前数字 "+ i + "是一个质数");
}
}
}
}
(3)生成随机验证码,长度为5 前面四为是大写字母或者小写字母 后面一位为数字
public class Test03 {
public static void main(String[] args) {
/*生成随机验证码
长度为5
前面四为是大写字母或者小写字母
后面一位为数字
* */
//(1)0将大小写字母放在一个数组中
char [] chs = new char[52];
for (int i = 0; i < chs.length; i++) {
if (i <= 25){
//添加小写字母
chs[i]= (char) (97 + i);//强转,将int 类型的转为字符形
}else {
chs[i]= (char) (65 + i - 26);
}
}
String result ="";
//(2)生成前面四个随机数随机数
Random rd = new Random();
for (int i = 0; i < 4; i++) {
int randomIndex=rd.nextInt(chs.length);
// System.out.println(chs[randomIndex]);
result+= chs[randomIndex];
}
//System.out.println(result);
int num = rd.nextInt(10);
result += num;
System.out.println(result);
}
}
(4)复制数组:将一个数组里面的元素复制到另外一个数组
public class Test04 {
public static void main(String[] args) {
//复制数组:将一个数组里面的元素复制到另外一个数组
//(1)创建被复制的数组
int [] arr ={45,12,22,58,69,33,58,54};
//(2)创建一个新数组
int [] newArr = new int[arr.length];
int index = 0;
//(3)遍历久数组拿到里面的元素
for (int i = 0; i < arr.length; i++) {
newArr[index] =arr[i];
index++;
}
//(4)将拿到的元素复制给新的数组
for (int i = 0; i < newArr.length; i++) {
System.out.print(newArr[i]+" ");
}
}
}
(5)评委打分 * 分数范围:0-100 * 规则:六个评委的分,去掉最高分,去掉最低分 取其余的平均分
public class Test05 {
public static void main(String[] args) {
/*
* 评委打分
* 分数范围:0-100
* 规则,六个评委的分,去掉最高分,去掉最低分 取其余的平均分
* */
//(1)定义数组存储六个分数,键盘录入
int [] scoresArr =getScore();
for (int i = 0; i < scoresArr.length; i++) {
System.out.print(scoresArr[i] + " ");
}
System.out.println();
//(2)求数组中的最大值
int maxNum=getMax(scoresArr);
System.out.println("最大值"+maxNum);
//(3)求数组中的最小值
int minNum = getMin(scoresArr);
System.out.println("最小值为"+minNum);
//(4) 求六个分数的总和
int sumNum = getSum(scoresArr);
System.out.println("和为"+sumNum);
//(5)(总和 - 最高分 -最低分 )/4
int avg = (sumNum -maxNum -minNum) /scoresArr.length-2;
System.out.println("平均分为"+avg);
}
public static int[] getScore(){
int [] scores = new int[6];
Scanner sc = new Scanner(System.in);
System.out.println("请输入评委的打分");
for (int i = 0; i < 6; ) {
int score=sc.nextInt();
if (score>= 0 && score <= 100){
scores[i]=score;
i++;
}else {
System.out.println("成绩输入不合法");
}
}
return scores;
}
public static int getMax(int [] scoresArr){
int max = scoresArr[0];
for (int i = 0; i < scoresArr.length; i++) {
if (scoresArr[i]>max){
max= scoresArr[i];
}
}
return max;
}
public static int getMin(int [] scoresArr){
int min = scoresArr[0];
for (int i = 0; i < scoresArr.length; i++) {
if (scoresArr[i]<min){
min=scoresArr[i];
}
}
return min;
}
public static int getSum(int [] scoresArr){
int sum =0;
for (int i = 0; i < scoresArr.length; i++) {
sum += scoresArr[i];
}
return sum;
}
}
(6)
某系统的的数字密码(大于0) 采用加密的方式进行传输 * 规则如下: * 每一位数先+5 * 再对10取余 * 最后将数反转
public class Test06 {
public static void main(String[] args) {
/*
* 某系统的的数字密码(大于0) 采用加密的方式进行传输
* 规则如下:
* 每一位数先+5
* 再对10取余
* 最后将数反转
* */
int [] arr =createArr();
//(1)把整数的每一位添加进数组
//int [] arr ={1,9,8,3};
//(2)加密
//一个循环只能做一件事
for (int i = 0; i < arr.length; i++) {
arr[i]+=5;//先将每一位数都加5
}
for (int i = 0; i < arr.length; i++) {
arr[i]%= 10;//将+5后的数对10取余
}
//将加密过后的数反转
for (int i = 0,j=arr.length-1; i < j; i++,j--) {
int temp = arr[i];
arr[i] =arr[j];
arr[j] = temp;
}
//(3)拼接加密后的数组元素
int num = 0;
for (int i = 0; i < arr.length; i++) {
num= num * 10 +arr[i];
// System.out.println(num);
}
System.out.println(num);
}
//将整数添加进数组里面
public static int[] createArr(){
//(1)计算出数组的长度
int num = 1983;
int temp = num;//记录num 的值,为第三步使用
int count = 0;
while(num != 0){
num=num/10;
count++;
}
//(2)先创建一个数组容器
int [] arr = new int[count];
//(3)得到每一位数字
int index = arr.length-1;
while (temp != 0){
int ge = temp % 10;
temp = temp / 10;
arr[index] = ge;
index--;
}
return arr;
}
}
(7)
/* * 抽奖 * 奖品:2,588,888,1000,10000 * 需求:打印出每个奖项,奖项出现的顺序不能重复 * */
public class Test07 {
public static void main(String[] args) {
/*
* 抽奖
* 奖品:2,588,888,1000,10000
* 需求:打印出每个奖项,奖项出现的顺序不能重复
* */
//(1)定义数组表示奖池
int [] arr = {2,588,888,1000,10000};
//(2)定义新数组存放已经被抽过的奖
int [] newArr = new int[arr.length];
//(4)抽奖
Random rd = new Random();
for (int i = 0; i < 5; ) {
int randomIndex = rd.nextInt(arr.length);
int prize =arr[randomIndex];
boolean flag = contain(newArr,prize);
if (!flag){
newArr[i]=prize;
i++;
}
}
for (int i = 0; i < newArr.length; i++) {
System.out.println(newArr[i]);
}
}
//(3)判断抽到的奖在之前有没有被抽到过(有没有在新数组里面)
public static boolean contain(int [] arr,int prize){
for (int i = 0; i < arr.length; i++) {
if (arr[i] == prize){
return true;
}
}
return false;
}
}