6.java基础短暂总结
案例一:买飞机票
package com.china.homework;
import java.util.Scanner;
//案例一买机票
/* 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季(6-10月)头等舱9折,经济舱8.5折,其余月份为淡季头等舱7折,经济舱6.5折*/public class Test11 {
public static void main(String[] args) {
double price=getPrice();
System.out.println("现在机票的价格是:"+price+"元");
}
public static double getPrice()
{
System.out.println("请输入价格");
double price = getDada();
System.out.println("请输入月份");
double month = getDada();
System.out.println("请选择舱号类型:1.(头等舱),2.(经济舱)");
double type = getDada();
if (month >= 6 && month <= 10) {//旺季
if (type == 1) {
System.out.println("头等舱");
price *= 0.9;
} else if (type == 2) {
System.out.println("经济舱");
price *= 0.85;
} else {
System.out.println("没有该类型");
}
} else {
if (type == 1) {
System.out.println("头等舱");
price *= 0.7;
} else if (type == 2) {
System.out.println("经济舱");
price *= 0.65;
} else {
System.out.println("没有该类型");
}
}
return price;
}
public static double getDada() {//定义一个公共的获取数据//的方法
Scanner scanner = new Scanner(System.in);
double data = scanner.nextDouble();
return data;
}
}
案例二:找质数
package com.china.homework;
//找(101-200)间的质数(只能被1和自身整除的数叫质数)数字“1”、//不是质数
public class Test10 {
public static void main(String[] args) {
boolean flag=false;
for(int i=101;i<201;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
{
flag=true;//找到能被除的数那么说明不是质数
break;//不是质数就跳过
}
}
if(flag==false)//当每个101-200的数逐个和(2-本身比较的时候,发现遍历结束依然没有找到,说明就是质数)
{
System.out.println(i+"是质数");
}
flag=false;
}
}
}
案例三:开发验证码
package com.china.homework;
import java.util.Random;
//案例三验证码
//定义方法实现随机产生一个5位数的验证码,每位可能是数字、大写字//母、小写字母。
public class Test13 {
public static void main(String[] args) {
char[] c=method();
System.out.println(getCode(4,c));
}
public static String getCode(int num,char[] chars)
{
String s="";
Random random=new Random();
for(int k=0;k<num;k++)
{
int i=random.nextInt(62);//随机5个数字
s+=chars[i];//num代表拼接了次从62个字符里面选的然后再拼接
}
return s;
}
public static char[] method()
{
char[] chars=new char[62];
int index=0;//定义该变量,该变量用于统计数组长度
for(char num='0';num<='9';num++)
{
chars[index]=num;
index++;//自增
}
for (char upCase = 'A'; upCase <='Z'; upCase++) {
chars[index]=upCase;
index++;
}
for (char lowCase='a';lowCase<'z'; lowCase++) {
chars[index]=lowCase;
index++;
}
return chars;
}
}
案例四:数组·元素复制
package com.china.homework;
//案例四数组复制,将一个数组里的元素复制到另外一个数组
public class Test14 {
public static void copy(int[] arr1)
{
int[] arr2=new int[arr1.length];
for(int i=0;i<arr1.length;i++)
{
arr2[i]=arr1[i];
}
System.out.print("[");
for(int i=0;i<arr2.length;i++)
{
System.out.print(arr2[i]);
if(i< arr2.length-1)
{
System.out.print(",");
}
}
System.out.print("]");
}
public static void main(String[] args) {
int[] arr1={1,3,6,7};
copy(arr1);
}
}
案例五:数字元素加密
package com.china.homework;
import java.util.Scanner;
/*案例五加密,某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。*/
public class Test15 {
public static void method()
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个值");
int num = sc.nextInt();
int count=1;//数字位数
int[] arr = new int[num];//初始化一个数组
while (true) {
int ge = num%10;
//count--;
arr[count-1] = ge;
if (num/10==0){//当结果是0的时候,那么循环了几次//就有几位数
break;
}else {
num/=10;
count++;
}
}
// count++;
int[] newarr = new int[count];
for (int i = 0; i < count; i++) {
newarr[i] = (arr[i]+5)%10;//输出那么多数组就行,count变量很!重要!
System.out.print(newarr[i]+"\t");
}
//反转
for(int begin=0,end=newarr.length-1;begin<end;begin++,end--)
{
int temp=newarr[end];
newarr[end]=newarr[begin];
newarr[begin]=temp;
}
String s="";
for(int i=0;i<newarr.length;i++)
{
s+=newarr[i];
}
System.out.print("最后的值是"+s);
}
public static void main(String[] args) {
method();
}
}
案例六:模拟双色球方案一
//双色球 ,前面的六位数字都是红色,最后一位是蓝色
package com.china.homework;
import java.util.Random;
/* 投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择,蓝色球号码从1-16中选择 */
public class Test18 {
public static void method()
{
int[] arr=new int[7];
/*arr[0]-arr[5]是前6个红色球号码*/
arr[0]=randomNumber(arr);
arr[1]=randomNumber(arr);
arr[2]=randomNumber(arr);
arr[3]=randomNumber(arr);
arr[4]=randomNumber(arr);
arr[5]=randomNumber(arr);
arr[6]=new Random().nextInt(17)+1;//arr[6]是蓝色球号码
//增强for循环输出
for(int arr2:arr)
{
System.out.print(arr2+" ");
}
}
public static int randomNumber(int[] arr)
{
int number;
while (true) {
number = new Random().nextInt(33) + 1;
boolean flag = false;
for (int i = 0; i < arr.length - 1; i++) {
if (number == arr[i]) {
flag = true;
break;//这里的break只能打断for()循环,无法中断while()循环,所以while可以持续运行直到num符合条件
}
}
if (flag == false) {//说明符合条件
break;//这里是符合条件所以打断while()大循环·输出number
}
}
return number;//返回的一定是符合条件而且不重复的数字number
}
public static void main(String[] args) {
method();
}
}
案例六 方案二
public static void main(String[] args) {
//创建数组七位数 六位红号 一位蓝号 红号1-33 蓝号1-16
//第一步生成随机中奖号
int arr[] = new int[7];
Random random = new Random();
//随机蓝号
arr[6] = random.nextInt(16) + 1;
int crr[] = honghao(arr);
for (int i = 0; i < crr.length; i++) {
System.out.print(crr[i] + "\t");
}
//返回用户号码
int yonghu[] = suer();
bijiao(crr,yonghu);
}
// 用户号码与中奖号码取比较
//第一部分 生成随机数
public static int[] honghao(int brr[]) {
//循环遍历将随机红号赋值给数组减一
//随机红号
while (true) {
Random random = new Random();
for (int i = 0; i < 6; i++) {
boolean c = false;
int sun = random.nextInt(33) + 1;
for (int j = 0; j <= i; j++) {
if (sun == brr[j]) {
i--;
c = true;
break;
}
}
if (c != true) {
brr[i] = sun;
}
}
break;
}
return brr;
}
// 存储用户输入的数据
public static int [] suer() {
Scanner sc = new Scanner(System.in);
int brr[] = new int[7];
for (int i = 0; i < 7; i++) {
System.out.println("请输入第" +( i+1) + "位数:");
int shuru = sc.nextInt();
brr[i] = shuru;
}
return brr;
}
public static void bijiao(int crr[],int brr1[]) {
//循环遍历 去对比
//用户号码
//int arr[] = suer();
//中奖号码
// int brr1[] = honghao(arr);
//定义变量 计算红色中奖号码
int sum = 0;
//变量计算蓝号是否中奖
int sum1 = 0;
for (int i = 0; i < crr.length - 1; i++) {
for (int i1 = 0; i1 < brr1.length - 1; i1++) {
if (crr[i] == brr1[i1]) {
sum++;
}
}
}
if (crr[6] == brr1[6]) {
sum1++;
}
if