目录
练习一:猜数游戏
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.题目
编写程序,用户输入杨辉三角形的行数,在控制台打印对应行数的杨辉三角形
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的基本语法结束,下一节是面向对象编程...........