赞
踩
- 变量、数组
- 运算符:基本运算符、关系运算符、逻辑运算符......
- 程序流程控制:if、switch;for、while;死循环、嵌套循环
- 跳转关键字:break、continue、return。
- 方法等等
- public static void main(String[] args) {
- //需求:机票价格按淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
- //机票的最终优惠价格的计算方案如下:旺季(5-10月)头等舱9折,经济舱8.5折;
- // 淡季(11月到来年4月)头等舱7折,经济舱6.5折。
- Scanner sc = new Scanner(System.in );
- //1、让用户输入机票原价,月份,舱位类型
-
- 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){
- //3、判断用户选择的信息情况
- if (month >= 5 && month <=10){
- //旺季
- switch (type){
- case "头等舱" :
- money *=0.9; // money = money * 0.9;
- break;
- case "经济舱" :
- money *=0.85; // money = money * 0.8;
- break;
- default:
- System.out.println("您输入的舱位类型有误--");
- money = -1; //表示当前无法计算价格!
- }
- }else if (month == 11||month == 12 || month >=1 && month <=4){
- //淡季
- switch (type) {
- case "头等舱":
- money *= 0.7; // money = money * 0.7;
- break;
- case "经济舱":
- money *= 0.65; // money = money * 0065;
- break;
- default:
- System.out.println("您输入的舱位类型有误--");
- money = -1; // 表示当前无法计算价格!
- }
- }else{
- System.out.println("对不起,您输入的月份有问题---");
- money = -1; // 表示当前无法计算价格!
- }
- return money; //最终的价格。
- }
- /*
- 分析:101-200采用循环可以拿到,每拿到一个数,判断它是否是素数
- 判断规则:从2开始遍历到该数字的一半的数据,看有没有数据能整除它,如果有,不是素数;如果没有,是素数。
- */
- public static void main(String[] args) {
- // 1、定义一个循环,找到101 到200之间的全部数据
- for (int i = 101; i <= 200; i++) {
- // i= 101 102 。。。。。200
-
- //信号位:标记
- boolean flag = true;//一开始认为当前数据是素数。
-
- //2、判断当前遍历的这个数据是否是素数
- for (int j = 2; j < i/ 2; j++) {
- if (i % j == 0){
- flag = false;
- break;
- }
- }
- //3、根据判断的结果选择是否输出这个数据,是素数则输出
- if (flag){
- System.out.print(i + "\t");
- }
- }
- }
- 分析:1、定义一个方法,生成验证码返回:方法参数是位数,方法的返回值类型是String。
- 2、方法内部,使用for循环生成指定位数的随机字符,并连接。
- 3、把连接好的随机字符作为一组验证码返回
- */
- public static void main(String[] args) {
- //5、调用生成验证码的方法
- String code = Code(5);
- System.out.println("生成验证码是:" + code);
- // System.out.println(Code(5));//简写
- }
-
- //1、定义一个方法,生成验证码返回,方法参数为:int a 返回值类型为String。
- //num指的是几位验证码
- public static String Code (int a ){
- //定义一个字符串接随机生成的字母或数字
- String code = "";
- //2、遍历num位数的随机字符char
- for (int i = 0; i < a; i++) {
- Random r = new Random();
- //3、随机生成三种(数字1,大写字母2,小写字母3)
- int type = r.nextInt(3)+1;
- //4、使用switch,1时生成数字,2时生成大写字母,3时生成小写字母。
- switch (type){
- case 1:
- code += r.nextInt(10);//0-9
- break;
- case 2:
- //使用强制类型转换,转换成char类型。
- char letter1 = (char)(r.nextInt(26)+65);//大写字符(A:65 Z:65+25) (0-25) + 65
- code += letter1;
- break;
- case 3:
- //使用强制类型转换,转换成char类型。
- char letter2 = (char)(r.nextInt(26)+97);//小写字符(a:97 z:97+25) (0-25) + 97
- code += letter2;
- break;
- }
- }
- return code;
- }
- 分析:1、定义一个打印数组的方法
- 2、定义一个复制数组的方法。输入原始数组的长度,将原始数组的元素复制给新数组
- 两个方法都没有返回值类型
- 3、调用方法实现数组复制
- */
- public static void main(String[] args) {
- int arr1 [] = {11,22,33,44,55,66};
- int arr2 [] = new int[arr1.length];
- copy(arr1,arr2);
-
- printArray(arr1);
- printArray(arr2);
- }
-
- //1、打印数组的方法
- public static void printArray(int arr[]){
- System.out.print("[");
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + "\t");//\t代表空格的意思。
- }
- System.out.println("]");
- }
-
- //2、复制的方法
- //a是指数组的长度
- public static void copy(int arr1[] , int arr2 []){
- //数组复制
- for (int i = 0; i < arr2.length; i++) {
- arr2[i] = arr1[i];
- }
- }
- /**
- * 分析:1、使用数组,接到六名评委的打分分数范围为0-100
- * 2、定义变量:得分之和sum,最高分max,最低分min
- * 遍历数组,求和。在找出最高分和最低分
- * 3、输出最后得分为sum - max - min /数组长度-2
- */
-
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- //1、定义一个长度为6的数组
- int array [] = new int[6];
- //2、遍历数组,输入打的分数
- for (int i = 0; i < array.length; i++) {
- System.out.println("输入第" + (i+1) + "位评委的打分(0-100之间的整数):");
- array[i] = sc.nextInt();//把输入的数,存入到相应索引的位置上去。
- }
- printArray(array);//可以打印出来数组看一下。
-
- //3、定义变量:得分之和sum,最高分max,最低分min
- int sum = 0;
- int max = array[0];
- int min = array[0];//默认最大值和最小值都是数组里的第一个值。
-
- for (int i = 0; i < array.length; i++) {
- sum += array[i];//遍历数组求和
- //找数组里的最大值:
- if (array[i] > max){
- max = array[i];//替换最大值变量里的值
- }
- //找数组里的最小值:
- if (array[i] < min){
- min = array[i];//替换最小值变量里的值
- }
- }
-
- //4、统计平均分即可
- double result = (sum - max - min) / (array.length-2);
- System.out.println("去掉一个最高分,去掉一个最低分,选手的最后得分为:" + result);
- }
-
- //打印数组的方法
- public static void printArray(int arr[]){
- System.out.print("[");
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + "\t");//\t代表空格的意思。
- }
- System.out.println("]");
- }
- /**
- * 1 9 8 3
- * +5 6 14 13 8
- * %10 6 4 3 8
- * 反转 8 3 4 6
- */
-
- /*、
- 思考,如何给数字解密呢???
- */
-
- public static void main(String[] args) {
- //1、定义一个数组存入要加密的数字
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入您要加密的数字的位数:");
- int num = sc.nextInt();
- //定义一个num位长度的数组
- int array [] = new int[num];
-
- //2、遍历数组将要加密的数字放进去
- for (int i = 0; i < array.length; i++) {
- System.out.println("请输入要加密的第" + (i+1) + "个数字(1-9):");
- array[i] = sc.nextInt();
- }
- // printArray(array);//可以打印出来数组看一下//[1 9 8 3 ]
- //3、将数组中的数字进行加密
- for (int i = 0; i < array.length; i++) {
- //每位数加5
- array[i] += 5;
- //对10取余
- array[i] %= 10;
- }
- // printArray(array);//[6 4 3 8 ]
- // i j
- //4、将所有数字反转(换数组元素的位置)重点
- //定义两个变量i和j ,分别在数组的首尾位置
- //i变量往后走,j变量往前走,同步交换双方位置处的值
- //当i < j时停止交换。
- for (int i = 0 , j = array.length-1 ; i < j; i++ , j--) {
- //交换两者位置的值。
- int temp = array[j];
- array[j] = array[i];
- array[i] = temp;
- }
- printArray(array);//[8 3 4 6 ]
- }
-
- //打印数组的方法
- public static void printArray(int arr[]){
- System.out.print("[");
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + "\t");//\t代表空格的意思。
- }
- System.out.println("]");
- }
- //1、随机生成一组中奖号码的方法
- //2、定义一个用户输入投注号码的方法
- //3、对比用户投注号码与中奖号码,得到命中红球和蓝球的个数
- //4、根据命中个数输出获得什么奖项
- public static void main(String[] args) {
- //1、
- int [] luckNumber = winningNumber();
- //2、
- int [] userNumber = usersNumber();
-
- //3、
- result(luckNumber,userNumber);
-
- }
-
- //3、对比用户投注号码与中奖号码,得到命中红球和蓝球的个数,根据命中个数输出获得什么奖项
- public static void result (int[] arr1 , int [] arr2){
- /*
- 对比用户投注号码与中奖号码
- [24 33 18 13 9 32 8 ]
- [24 33 18 13 9 32 8 ]
- */
- //用两个变量接红球和蓝球个数
- int redBallNum = 0;
- int blueBallNum = 0;
- //比较红球号码相同的个数
- for (int i = 0; i < arr1.length-1; i++) {
- for (int j = 0; j < arr2.length-1; j++) {
- if (arr1[i] == arr2[j]){
- redBallNum += 1;
- break;
- }
- }
- }
- //判断蓝球相同不
- /*if (arr1[arr1.length-1] == arr2[arr2.length-1]){
- blueBallNum = 1;
- }else{
- blueBallNum = 0;
- }*/
- blueBallNum = arr1[arr1.length-1] == arr2[arr2.length-1] ? 1 : 0 ;
-
- System.out.println("中奖号码是:");
- printArray(winningNumber());//打印随机的中奖号码看一下
- System.out.println("您投注的号码是:");
- printArray(usersNumber());//打印用户投注的号码看一下
- System.out.println("您命中的红球数量为:" + redBallNum);
- System.out.println("您是否命中蓝球:" + (blueBallNum == 1? "是":"否"));
-
-
- if (redBallNum == 6 && blueBallNum == 1){
- System.out.println("恭喜您,中了一等奖,最高1000万。");
- }else if (redBallNum == 6 && blueBallNum == 0){
- System.out.println("恭喜您,中了二等奖,最高500万。");
- }else if (redBallNum == 5 && blueBallNum == 1){
- System.out.println("恭喜您,中了三等奖,3000元。");
- }else if ((redBallNum == 4 && blueBallNum == 1) || (redBallNum == 5 && blueBallNum == 0)){
- System.out.println("恭喜您,中了四等奖,200元。");
- }else if ((redBallNum == 3 && blueBallNum == 1) || (redBallNum == 4 && blueBallNum == 0)){
- System.out.println("恭喜您,中了五等奖10元。");
- }else if (redBallNum < 3){
- System.out.println("恭喜您,中了六等奖5元。");
- }else{
- System.out.println("感谢你为彩票事业做出的贡献,您本次没有中奖。");
- }
-
- }
-
-
-
- //2、定义一个用户输入投注号码的方法
- public static int [] usersNumber(){
- //1、定义一个7位的数组接用户猜测的七位数字
- int [] numbers = new int[7];
- //2、用户输入猜测的红球数字
- Scanner sc = new Scanner(System.in);
- for (int i = 0; i < numbers.length-1; i++) {
- System.out.println("请输入您猜测的第" +(i+1)+ "个红球数字(1-33)(要求不重复):");
- numbers[i] = sc.nextInt();
- }
- //2、用户输入猜测的蓝球数字
- System.out.println("请输入您猜测的蓝球数字(1-16):");
- numbers[numbers.length-1] = sc.nextInt();
- return numbers;
- }
-
-
- //1、随机生成一组中奖号码的方法
- public static int [] winningNumber(){
- Random r = new Random();
- //1、定义一个数组接一个中奖的七位号码
- int numbers [] = new int[7];
- //2、遍历数组,随机生成中奖的号码(红球)(1-33):
- for (int i = 0; i < numbers.length-1; i++) {
- /* numbers[i] = r.nextInt(33)+1;
- //判断它是否重复方法1
- for (int j = 0; j < i; j++) {
- if (numbers[i] == numbers[j]){
- i--;
- break;
- }
- }*/
- //判断是否重复方法2
- while (true){
- //定义一个临时数据生成随机数
- int data = r.nextInt(33)+1;
- //定义一个标记位
- Boolean flag = true;
- for (int j = 0; j < i; j++) {
- if (data == numbers[j]){
- //数字重复时,输出false
- flag = false;
- break;
- }
- }
- //说明没有重复数字,可以将数据放到数组里去了
- if (flag){
- numbers[i] = data;
- break;
- }
- }
- }
- //3、随机生成中奖的蓝球号码
- numbers[numbers.length-1] = r.nextInt(16) + 1;
- return numbers;
- }
-
- //打印数组的方法
- public static void printArray(int arr[]){
- System.out.print("[");
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + "\t");//\t代表空格的意思。
- }
- System.out.println("]");
- }
使用GUI的JOptionPane方法:
大家可以看这位博主写的,链接如下:
- public static void main(String[] args) {
- JOptionPane.showMessageDialog(null,"* * * * * *欢迎使用学员状态转换器* * * * * *");
- input();
- }
-
- //定义一个输入学员状态的方法
- public static void input(){
- String letter = JOptionPane.showInputDialog("请输入学员状态的英文单词:");
- //使用switch循环
- switch (letter){
- case "E":
- case"e":
- JOptionPane.showMessageDialog(null,"优");
- isBack();
- break;
- case "G":
- case "g":
- JOptionPane.showMessageDialog(null,"良");
- isBack();
- break;
- case "S":
- case "s":
- JOptionPane.showMessageDialog(null,"中");
- isBack();
- break;
- case "F":
- case "f":
- JOptionPane.showMessageDialog(null,"差");
- isBack();
- break;
- default:
- JOptionPane.showMessageDialog(null,"输入错误,无法转换");
- }
- }
-
- //定义一个您想继续吗(是否退出)的方法
- public static void isBack(){
- String letter = JOptionPane.showInputDialog("您想继续吗?(y(继续)/n(退出系统))");
- if (letter.equals("y")){
- input();
- }else if (letter.equals("n")){
- JOptionPane.showMessageDialog(null,"退出系统");
- }else{
- JOptionPane.showMessageDialog(null,"输入错误,请重新输入:");
- isBack();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。