java学习之余的几个简单基础案例()-java
java学习之余的几个简单基础案例()
最近跟着B站上的黑马程序员学习Java,在上课期间老师讲解了几个有趣的基础案例,我想将下面几个案例分享给大家。
1.买飞机票
需求:
1.机票价格按着淡季旺季,头等舱与经济舱收费,输入机票原价、月份和经济舱还是头等舱。
2.机票的优惠价格如下:旺季(5-10月)头等舱九折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折
这道小题主要是来练习switch语句,if语句在Java语言上的用法(跟c++用法一样)
package 练习;
import java .util. Scanner;
public class plane {
public static void main (String[] args) {
//目标:完成买飞机票的价格计算。
//1.让用户输入机票原价,月份,仓位类型
Scanner sc =new Scanner(System.in);
System.out.println("请输入机票原价: ");
double money =sc.nextDouble();
System.out.println("情请输入机票的月份(1-12):");
int month =sc.nextInt();
System.out.println(" 请选择仓位类型: ");
String type=sc.next();
//4.调用方法
System.out.println("机票优惠后的价格是:"+ calc(money,month,type));
}
//2.定义方法接收信息,统计优惠后的价格返回
public static double calc(double money,int month,String type)
{
//判断用户选择的信息情况
if(month>=5&&month<=10)
{
//旺季
switch(type)
{
case "头等舱":
money*=0.9;
break;
case"经济舱":
money*=0.85;
break;
default :
System.out.println("您输入的仓位类型有误");
money=-1;//表示信息错误
}
}else if(month==11||month==12||month>=1&&month<=4)
{
//淡季
switch(type)
{
case "头等舱":
money*=0.7;
break;
case"经济舱":
money*=0.65;
break;
default :
System.out.println("您输入的仓位类型有误");
money=-1;//表示信息错误
}
}else {
System.out.println("对不起,你输入的月份有误");
money=-1;//表示信息错误
}
return money;
}
}
2.找素数
需求:判断101-200之间有多少个素数,并输出所有素数。
package 练习;
/**
* 需求:找到101-200之间的所有素数输出;
*/
public class sushu {
public static void main(String[] args)
{
//定义一个循环,找101-200之间的素数
for(int i=101;i<=200;i++)
{
//1.i=101 102 103 104 .....199 200
//信号位:标记
boolean flag=true;//一开始都认为是素数
//2.判断当前遍历的这个数据是否为素数
for(int j=2;j<i/2;i++)
{
if(i%j==0)
{
flag=false;
break;
}
}
//3.根据判断的结果选择是否输出
if(flag)
{
System.out.println(i +"\t");
}
}
}
}
3.开发验证码
需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母
package 练习;
import java.util.Random;
//需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母
public class yanzhengma {
public static void main(String [] args)
{
//调用获取验证码的方法得到一个随机验证码
String code =creatcode(5);
System.out.println("随机验证码:"+code);
}
/**
* 1.定义一个方法返回一个随机验证码
*/
public static String creatcode (int n)
{
String code=" ";
Random r=new Random();
//2.定义一个for循环,循环n次,生成随机字符
for(int i=0;i<n;i++)
{
//3.生成一个随机字符;
int type =r.nextInt(3);
switch(type)
{
case 0:
//大写字符(A 65-Z 65+25) (0-25)+65
char ch =(char)(r.nextInt(26)+65);
code+=ch;
break;
case 1:
//小写字符(a 97-z 97+25) (0-25)+97
char ch1 =(char)(r.nextInt(26)+97);
code+=ch1;
break;
case 2:
//数字字符
code+= r.nextInt(10);
break;
}
}
return code;
}
}
4.数组元素的复制
需求:把一个素组中的元素复制到一个新数组中去
package 练习;
public class shuzu {
public static void main (String[] args)
{
int []arr1= {11,22,33,44};
int []arr2=new int [arr1.length];
copy(arr1,arr2);
}
public static void printArray(int[]arr)
{
System.out.println("[");
for(int i=0;i<arr.length;i++)
{
System.out.println(i==arr.length-1 ? arr[i]:arr[i]+",");
}
System.out.print("]");
}
public static void copy(int[] arr1,int[]arr2)
{
for(int i=0;i<arr1.length;i++)
{
arr2[i]=arr1[i];
}
}
}
5.评委打分
需求:在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值
package 练习;
/**
在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,
选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值
*/
import java.util.Scanner;
public class dafen {
public static void main (String[] args)
{
//1.定义一个动态初始化的数组,用于后期录入6个评委的分数
int []scores =new int [6];
//2.录入6个评委的分数
Scanner sc=new Scanner(System.in);
for(int i=0;i<scores.length;i++)
{
System.out.println("请输入第"+(i+1)+"个评委的打分");
int score =sc.nextInt();
//3.把这个分数存入到数组的对应位置处
scores[i]=score;
}
//4.遍历数组中的每个数组,找出最大值、最小值、总分
int max=scores[0];
int min =scores[0],sum=0;
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];
}
System.out.println("选手的最高分为:"+max);
System.out.println("选手的最低分为:"+min);
//统计平均分
double result =(sum-max-min)*1.0/(scores.length-2);
System.out.println("选手最终得分为:"+result);
}
}
最近跟着B站上的黑马程序员学习Java,在上课期间老师讲解了几个有趣的基础案例,我想将下面几个案例分享给大家。
1.买飞机票
需求:
1.机票价格按着淡季旺季,头等舱与经济舱收费,输入机票原价、月份和经济舱还是头等舱。
2.机票的优惠价格如下:旺季(5-10月)头等舱九折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折
这道小题主要是来练习switch语句,if语句在Java语言上的用法(跟c++用法一样)
package 练习;
import java .util. Scanner;
public class plane {
public static void main (String[] args) {
//目标:完成买飞机票的价格计算。
//1.让用户输入机票原价,月份,仓位类型
Scanner sc =new Scanner(System.in);
System.out.println("请输入机票原价: ");
double money =sc.nextDouble();
System.out.println("情请输入机票的月份(1-12):");
int month =sc.nextInt();
System.out.println(" 请选择仓位类型: ");
String type=sc.next();
//4.调用方法
System.out.println("机票优惠后的价格是:"+ calc(money,month,type));
}
//2.定义方法接收信息,统计优惠后的价格返回
public static double calc(double money,int month,String type)
{
//判断用户选择的信息情况
if(month>=5&&month<=10)
{
//旺季
switch(type)
{
case "头等舱":
money*=0.9;
break;
case"经济舱":
money*=0.85;
break;
default :
System.out.println("您输入的仓位类型有误");
money=-1;//表示信息错误
}
}else if(month==11||month==12||month>=1&&month<=4)
{
//淡季
switch(type)
{
case "头等舱":
money*=0.7;
break;
case"经济舱":
money*=0.65;
break;
default :
System.out.println("您输入的仓位类型有误");
money=-1;//表示信息错误
}
}else {
System.out.println("对不起,你输入的月份有误");
money=-1;//表示信息错误
}
return money;
}
}
2.找素数
需求:判断101-200之间有多少个素数,并输出所有素数。
package 练习;
/**
* 需求:找到101-200之间的所有素数输出;
*/
public class sushu {
public static void main(String[] args)
{
//定义一个循环,找101-200之间的素数
for(int i=101;i<=200;i++)
{
//1.i=101 102 103 104 .....199 200
//信号位:标记
boolean flag=true;//一开始都认为是素数
//2.判断当前遍历的这个数据是否为素数
for(int j=2;j<i/2;i++)
{
if(i%j==0)
{
flag=false;
break;
}
}
//3.根据判断的结果选择是否输出
if(flag)
{
System.out.println(i +"\t");
}
}
}
}
3.开发验证码
需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母
package 练习;
import java.util.Random;
//需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母
public class yanzhengma {
public static void main(String [] args)
{
//调用获取验证码的方法得到一个随机验证码
String code =creatcode(5);
System.out.println("随机验证码:"+code);
}
/**
* 1.定义一个方法返回一个随机验证码
*/
public static String creatcode (int n)
{
String code=" ";
Random r=new Random();
//2.定义一个for循环,循环n次,生成随机字符
for(int i=0;i<n;i++)
{
//3.生成一个随机字符;
int type =r.nextInt(3);
switch(type)
{
case 0:
//大写字符(A 65-Z 65+25) (0-25)+65
char ch =(char)(r.nextInt(26)+65);
code+=ch;
break;
case 1:
//小写字符(a 97-z 97+25) (0-25)+97
char ch1 =(char)(r.nextInt(26)+97);
code+=ch1;
break;
case 2:
//数字字符
code+= r.nextInt(10);
break;
}
}
return code;
}
}
4.数组元素的复制
需求:把一个素组中的元素复制到一个新数组中去
package 练习;
public class shuzu {
public static void main (String[] args)
{
int []arr1= {11,22,33,44};
int []arr2=new int [arr1.length];
copy(arr1,arr2);
}
public static void printArray(int[]arr)
{
System.out.println("[");
for(int i=0;i<arr.length;i++)
{
System.out.println(i==arr.length-1 ? arr[i]:arr[i]+",");
}
System.out.print("]");
}
public static void copy(int[] arr1,int[]arr2)
{
for(int i=0;i<arr1.length;i++)
{
arr2[i]=arr1[i];
}
}
}
5.评委打分
需求:在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值
package 练习;
/**
在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,
选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值
*/
import java.util.Scanner;
public class dafen {
public static void main (String[] args)
{
//1.定义一个动态初始化的数组,用于后期录入6个评委的分数
int []scores =new int [6];
//2.录入6个评委的分数
Scanner sc=new Scanner(System.in);
for(int i=0;i<scores.length;i++)
{
System.out.println("请输入第"+(i+1)+"个评委的打分");
int score =sc.nextInt();
//3.把这个分数存入到数组的对应位置处
scores[i]=score;
}
//4.遍历数组中的每个数组,找出最大值、最小值、总分
int max=scores[0];
int min =scores[0],sum=0;
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];
}
System.out.println("选手的最高分为:"+max);
System.out.println("选手的最低分为:"+min);
//统计平均分
double result =(sum-max-min)*1.0/(scores.length-2);
System.out.println("选手最终得分为:"+result);
}
}