java基础—综合练习

目录

练习一:猜数游戏

1.题目

2.逻辑:  

3.实现:

练习二:杨辉三角

1.题目      

2.逻辑:

3.实现

练习三:数组的运用

1.题目

2.逻辑

3.实现



练习一:猜数游戏

1.题目

在Guessing类(第五章练习3)猜数字游戏的基础上,添加游戏难度的选择,难度以产生随机数的大小为标准,分3等级:1(0-100)2(0-1000)3(0-10000):

2.逻辑:  

      1.main方法:接收用户选择的等级,判断其猜数范围,将猜数的范围传给自定义方法

      2.自定义方法guessing():

                   接收猜数的范围;

                   生成范围内的一个随机数randomNumber;

                   使用循环,条件为true,每次让用户输入猜测的数字,如果输入-1,则退出

                   输入的数字,使用分支语句与随机数比较,猜大猜小输出对应的提示

                  每猜一次次数+1:guessCount++

                   猜对了输出对应的次数和分数

3.实现:

package com.hqyj.javacode.comprehensivecase;

/*
在:Guessing猜数字游戏的基础上,
添加游戏难度的选择,难度以产生随机数的大小>标准,
分3等级:1(0-100)2(0-1000)3(0-10000)
 */

import java.util.Scanner;

public class IntegratedCase1 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int numGrade;  //用来存储用户输入的随机数范围

        System.out.println("--------------游戏开始---------------");
        System.out.println("请输入随机数等级:1:(0-100);2:(0-1000);3:(0-10000)");

        numGrade = scanner.nextInt();   //输入等级

        if (numGrade == 1){       //判断等级的范围
            guessing(100);
        } else if (numGrade == 2) {
                  guessing(1000);
                }else if (numGrade == 3){
                           guessing(10000);
                      } else {
            System.out.println("输入范围错误,游戏结束.......");
                     }
    }

    public static  void guessing(int gradeNumber){

        int userNumber;
        int guessCcount = 0;
        int guessScore = 100;
        int randomNumber  = (int)(Math.random()*gradeNumber);

        System.out.println(randomNumber);
        System.out.println("请开始猜数,您猜数的范围是:0~"+gradeNumber);
        Scanner scanner = new Scanner(System.in);


        while(true) {
            userNumber = scanner.nextInt();

            if (userNumber == -1){
                System.out.println("用户终止游戏,退出............");
                break;
            }
            if (userNumber > randomNumber) {
                System.out.println("猜大了");
                guessCcount ++;

            } else if (userNumber < randomNumber) {
                System.out.println("猜小了");
                guessCcount ++;

            }  else{
                guessCcount ++;

                System.out.println("恭喜您,猜对了......");
                System.out.println("您经过"+guessCcount+"次猜对了,总计分数为"+(guessScore-guessCcount*3));
                break;
            }


        }



    }
}

练习二:杨辉三角

1.题目      

          编写程序,用户输入杨辉三角形的行数,在控制台打印对应行数的杨辉三角形

              

java基础—综合练习_第1张图片

2.逻辑:

              使用三个for循环来实现

               外层for控制打印杨辉三角的行数

               包含两个内存for:

                                一是控制空格的打印,条件为 循环变量<=行数-1

                                二是控制星号的打印,条件为 循环变量<=外层循环变量 * 2 -1

3.实现

package com.hqyj.javacode.comprehensivecase;

/*
编写程序,用户输入杨辉三角形的行数,在控制台打印对应行数的杨辉三角形
 */

import java.util.Scanner;

public class IntegratedCase2 {

    public static void main(String[] args) {

       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入要打印杨辉三角的行数:");

       int i = scanner.nextInt();
       triangle(i);

    }
    public static  void  triangle(int n) {

        for (int i = 1; i <= n ; i++) {
            for (int j = 1; j <= n-i; j++) {
                System.out.print(" ");
            }

            for (int j = 1; j <= 2 * i -1; j++) {

                    System.out.print("*");


                }
            System.out.println();
            }
        }



    }



练习三:数组的运用

1.题目

              编写程序,用户输入数组的长度、产生随机数的范围,最终打印的结如下:

              请输入长度:  4

              请输入范围:  20

              生成的数组为:[12,15,13,6]

              排序后的结果为:[6,12,13,15]

              平均数为:

              数组中的质数为:

              数组中的奇数为:

2.逻辑

             创建5个自定义方法:

                  生成随机数组方法:arrrandom()

                  排序方法:bubbsort()

                  平均数方法:average()

                  质数方法:primenumber()

                  奇数方法:oddnumber()

            分别实现功能

3.实现

package com.hqyj.javacode.comprehensivecase;

/*
编写程序,用户输入数组的长度、产生随机数的范围,最终打印的结如下:
请输入长度:4
请输入范围:20
生成的数组为:[12,15,13,6]

排序后的结果为:[6,12,13,15]

平均数为:[]
数组中的质数为:[]

数组中的奇数为:[]
 */

import java.util.Arrays;
import java.util.Scanner;

public class IntegratedCase3 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数组的长度:");
        int arr_length =scanner.nextInt();    //数组的长度
        System.out.println("请输入产生随机数的范围:");
        int arr_range = scanner.nextInt();    //数组的范围

        //随机生成一个数组
        int[] arr = new int[arr_length];
        arr = arrrandom(arr_length,arr_range);
        System.out.println("生成的数组为:"+Arrays.toString(arr));

        //从小到大排序
        arr = bubbsort(arr);
        System.out.println("排序后为:"+Arrays.toString(arr));

        //平均数
        System.out.print("数组的平均数为:");
        average(arr);
        //数组中的质数
        System.out.print("数组中的质数为:");
        primenumber(arr);
        //数组中的奇数
        System.out.print("数组中的奇数为:");
        oddnumber(arr);

    }

    //生成一个随机数组
    public static int[]  arrrandom(int length,int range) {
        int[] arr = new int[length];
        for (int i = 0; i < length; i++) {
            arr[i] = (int)(Math.random()*range);
        }
        return arr;
    }

    //从小到大排序
    public  static int[] bubbsort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i -1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;

                }
            }
        }
        return arr;
    }
    //平均数
    public static void average(int[] arr){
        int sum =0,average;
        for (int i = 0; i < arr.length; i++) {
            sum  += arr[i];
        }
        average = sum / arr.length;
        System.out.println(average);
        return ;
    }
    //质数
    public static void primenumber(int[] arr){
        int count = 0;
        int flags = 0;

        for (int i = 0; i < arr.length; i++) {
            int j = 2;
            for (; j < arr[i] ; j++) {
                if (arr[i] % j == 0) {
                    break;
                }
            }
            if ( j >= arr[i] ) {
                System.out.print(arr[i]+" ");
            }
        }
        System.out.println();
        return ;
    }
    //奇数
    public static void oddnumber(int[] arr){
        int count = 0;
        int flags = 0;
        int[] arr3 = new int[arr.length];

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] %2 != 0) {
                System.out.print(arr[i]+" ");

            }
        }
        System.out.println();
        return ;
    }
}



到此java的基本语法结束,下一节是面向对象编程...........

你可能感兴趣的:(java基础语法,java)