Java 实验2 基本语法练习

Java 实验2 基本语法练习

一言准备中...

本文章所有代码使用类名为blog,使用环境为JDK17,使用程序为IntelliJ IDEA 2023.3.5版本

一、实验目的

1. 了解 Java 的数据类型
2. 掌握各种变量的声明方式。
3. 理解运算符的优先级。
4. 掌握 Java 基本数据类型、运算符与表达式。
5. 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
6. 通过以上内容,掌握 Java 语言的编程规则。


二、实验内容

(1) 使用逻辑运算符编写程序,输出 1 到 1000 之间,找出所有能 3 整除又可以被7 整除的数。



代码示例

public class blog {
    public static void main(String[] args) {
        // Loop through numbers from 1 to 1000
        for (int i = 1; i <= 1000; i++) {
            // Check if the number is divisible by both 3 and 7
            if (i % 3 == 0 && i % 7 == 0) {
                System.out.println(i);
            }
        }
    }
}

这段程序中,i % 3 == 0 && i % 7 == 0 这个条件会检查变量 i 是否同时能被3和7整除。如果能够整除,则会打印出这个数。程序会遍历从1到1000的每一个数,检查每个数是否满足条件。如果满足,就会输出这个数。


(2)分别使用 if 语句和 switch 语句编写程序,功能如下:/**

功能:输入百分制考试成绩,打印出相应的等级。设 A 为 90 分以上、B 为80 分以上、C
为 70 分以上、D 为 60 分以上、E 为 59 分以下。分别使用if语句和switch语句实现,使用switch语句,建议使用default语句。

注:Scanner scanner = new Scanner(System.in);
System.out.println("Please input a score");
float score = Float.parseFloat(scanner.nextLine());


代码示例(if)

// 使用if实现
import java.util.Scanner;

public class blog {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入分数:");
        float score = Float.parseFloat(scanner.nextLine());

        if (score > 100 || score < 0) {
            System.out.println("输入错误,请重新输入!");
        }else if (score >= 90 && score <= 100) {
            System.out.println("A");
        } else if (score >= 80 ) {
            System.out.println("B");
        } else if (score >= 70) {
            System.out.println("C");
        } else if (score >= 60) {
            System.out.println("D");
        } else if (score < 60) {
            System.out.println("E");
        } else {
            System.out.println("输入错误,请重新输入!");
        }
    }
}



代码示例(Switch)

import java.util.Scanner;

public class blog {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入分数:");
        float score = Float.parseFloat(scanner.nextLine());

        if (score < 0 || score > 100) { // 输入错误的情况
            System.out.println("输入错误,请重新输入");
            return; // 结束程序
        }

        int scoreCategory = (int) score / 10; // 转换成等级区间
        switch (scoreCategory) {
            case 10:
            case 9:
                System.out.println("A");
                break;
            case 8:
                System.out.println("B");
                break;
            case 7:
                System.out.println("C");
                break;
            case 6:
                System.out.println("D");
                break;
            default:
                System.out.println("E");
                break;
        }
    }
}



(3)使用 for 循环编写程序,输出九九乘法表,功能如下:

* 功能:打印九九乘法表
* 输入如下:
* 1 * 1 = 1
* 2 * 1 = 2 2 * 2 = 4
* 3 * 1 = 3 3 * 2 = 6 3 * 3 = 3
* 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
* 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
* 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
* 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
* 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8*8=64
* 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9*8=64 9*9=81



代码示例

public class blog {
    public static void main(String[] args) {
        // 外层循环控制行数
        for (int i = 1; i <= 9; i++) {
            // 内层循环控制每行显示的列数
            for (int j = 1; j <= i; j++) {
                System.out.print(j + " * " + i + " = " + (j * i) + "\t"); // 使用 \t 使输出对齐
            }
            System.out.println(); // 每完成一行打印后换行
        }
    }
}



这个程序中,我们首先开始外层循环,它遍历从1到9的数字,代表乘法表的每一行。对于每一行,我们再执行一个内层循环,这个循环遍历从1到当前行号(包含)的所有数字,代表乘法表的列。在内层循环中,我们打印当前列数 j 和当前行数 i 的乘积,而且使用 \t(代表一个制表符)来确保列之间有适当的间距,使输出结果更加整齐。每完成一行的打印后,我们使用 System.out.println() 来换行,以便开始打印下一行。


(4)使用 for 循环打印三角形

* 打印三角形-行数由用户控制台输入决定
* 例如:用户输入4
* *
* **
* ***
* ****
* ***
* **
* *



代码示例

import java.util.Scanner;

public class blog {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入三角形行数:");
        int rows = scanner.nextInt();

        // 打印上半部分
        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println(); // 完成一行后换行
        }

        // 打印下半部分
        for (int i = rows - 1; i > 0; i--) {
            for (int j = i; j > 0; j--) {
                System.out.print("*");
            }
            System.out.println(); // 完成一行后换行
        }
    }
}



在这个程序中,我们首先从控制台读取用户输入的行数。随后,第一个 for 循环用于打印三角形的上半部分。在这个循环中,对于每一行,我们打印的星号(*)数量等于当前的行数。

完成上半部分的打印后,第二个 for 循环用于打印三角形的下半部分。这个循环从 rows - 1 开始,逐渐递减至1,每行打印的星号数量与当前行数相等。

这样,整个程序就可以根据用户输入的行数来打印一个上下对称的三角形。


(5)使用 while 或 do{…}while 编写程序,完成猜数字游戏,功能如下:

* 类名:GuessNumber * 功能:猜数字游戏
* 1、系统随机给出一个0-1000之间一个随机整数
* 2、用户输入一个数字 系统给出提示--太小 太大 正确, 如果正确,直接结束游戏
* 3、10次都未猜中 结束游戏



参考代码

import java.util.Scanner;
import java.util.Random;
public class blog {
    public static void main(String[] args) {
        // 创建Random对象用于生成随机数
        Random random = new Random();
        // 生成一个0-1000之间的随机整数
        int numberToGuess = random.nextInt(1001);

        // 创建Scanner对象用于获取用户输入
        Scanner scanner = new Scanner(System.in);
        int numberOfTries = 0; // 初始化猜测次数
        int userGuess = -1; // 用户的猜测值初始化为-1

        System.out.println("欢迎来到猜数字游戏!");
        System.out.println("我已经生成了一个0到1000范围内的数字。");

        // 猜测次数少于10次且用户猜测不正确时继续循环
        while (numberOfTries < 10 && userGuess != numberToGuess) {
            System.out.print("输入你的猜想: ");
            userGuess = scanner.nextInt(); // 读取用户输入的猜测值
            numberOfTries++; // 猜测次数加1

            // 提供反馈
            if (userGuess < 0 || userGuess > 1000) {
                System.out.println("请保证你猜想的范围在0到1000内。");
            } else if (userGuess < numberToGuess) {
                System.out.println("太小了,再猜一次吧!");
            } else if (userGuess > numberToGuess) {
                System.out.println("太大了,再猜一次吧!");
            } else {
                System.out.println("恭喜!你猜到了正确的数字!");
            }
        }

        // 如果10次都没猜中,游戏结束,告诉用户正确答案
        if (userGuess != numberToGuess) {
            System.out.println("游戏结束!正确数字是: " + numberToGuess);
        }

        scanner.close(); // 关闭scanner对象
    }
}



(4)编写学生成绩管理系统,系统分管理员、教师和学生三个不同角色登录,登录时需用户身份验证,验证成功后可以选择角色里的功能

1.管理员登录
2.教师登录
3.学生登录
4.退出系统

管理员功能
1.教师管理
2.学生管理
3.课程管理
4.信息维护
5.退出系统

教师功能
1.录入成绩
2.统计成绩
3.查看成绩
4.信息维护
5.退出系统

学生功能
1.查看成绩单
2.信息维护
3.退出系统

编写程序,完成以下功能:
管理员登录时,判断是否为“administrator”,密码“123”;登录成功显示管理员菜单
教师登录时,判断是否是“teacher”,密码“123”,登录成功显示教师菜单
学生登录时,判断是否为自己的姓名,密码为自己的学号;登录成功显示学生菜单(此处以张三 2024040601为例)


代码示例

import java.util.Scanner;

public class blog {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请选择登录角色:");
            System.out.println("1. 管理员登录");
            System.out.println("2. 教师登录");
            System.out.println("3. 学生登录");
            System.out.println("4. 退出系统");
            System.out.print("请输入选项: ");
            int role = scanner.nextInt();
            scanner.nextLine(); // 吃掉换行符

            switch (role) {
                case 1:
                    if (adminLogin(scanner)) {
                        showAdminMenu(scanner);
                    }
                    break;
                case 2:
                    if (teacherLogin(scanner)) {
                        showTeacherMenu(scanner);
                    }
                    break;
                case 3:
                    if (studentLogin(scanner)) {
                        showStudentMenu(scanner);
                    }
                    break;
                case 4:
                    System.out.println("系统退出,感谢使用!");
                    scanner.close();
                    return;
                default:
                    System.out.println("无效的输入,请重新输入!");
            }
        }
    }

    private static boolean adminLogin(Scanner scanner) {
        System.out.print("请输入管理员用户名: ");
        String username = scanner.nextLine();
        System.out.print("请输入密码: ");
        String password = scanner.nextLine();

        if ("administrator".equals(username) && "123".equals(password)) {
            System.out.println("管理员登录成功!");
            return true;
        } else {
            System.out.println("用户名或密码错误!");
            return false;
        }
    }

    private static boolean teacherLogin(Scanner scanner) {
        System.out.print("请输入教师用户名: ");
        String username = scanner.nextLine();
        System.out.print("请输入密码: ");
        String password = scanner.nextLine();

        if ("teacher".equals(username) && "123".equals(password)) {
            System.out.println("教师登录成功!");
            return true;
        } else {
            System.out.println("用户名或密码错误!");
            return false;
        }
    }

    private static boolean studentLogin(Scanner scanner) {
        System.out.print("请输入学生姓名: ");
        String username = scanner.nextLine();
        System.out.print("请输入学号: ");
        String password = scanner.nextLine();

        if ("张三".equals(username) && "2024040601".equals(password)) {
            System.out.println("学生登录成功!");
            return true;
        } else {
            System.out.println("姓名或学号错误!");
            return false;
        }
    }

    private static void showAdminMenu(Scanner scanner) {
        int choice;
        do {
            System.out.println("管理员功能:");
            System.out.println("1. 教师管理");
            System.out.println("2. 学生管理");
            System.out.println("3. 课程管理");
            System.out.println("4. 信息维护");
            System.out.println("5. 退出系统");
            System.out.print("请选择功能: ");
            choice = scanner.nextInt();
            scanner.nextLine(); // 吃掉换行符
            // 此处需要添加对应选项的功能实现
        } while (choice != 5);
    }

    private static void showTeacherMenu(Scanner scanner) {
        int choice;
        do {
            System.out.println("教师功能:");
            System.out.println("1. 录入成绩");
            System.out.println("2. 统计成绩");
            System.out.println("3. 查看成绩");
            System.out.println("4. 信息维护");
            System.out.println("5. 退出系统");
            System.out.print("请选择功能: ");
            choice = scanner.nextInt();
            scanner.nextLine(); // 吃掉换行符
            // 此处需要添加对应选项的功能实现
        } while (choice != 5);
    }

    private static void showStudentMenu(Scanner scanner) {
        int choice;
        do {
            System.out.println("学生功能:");
            System.out.println("1. 查看成绩单");
            System.out.println("2. 信息维护");
            System.out.println("3. 退出系统");
            System.out.print("请选择功能: ");
            choice = scanner.nextInt();
            scanner.nextLine(); // 吃掉换行符
            // 此处需要添加对应选项的功能实现
        } while (choice != 3);
    }
}
  • 本文作者:被杀戮的咸鱼
  • 本文链接: https://blog.xyweb.cc/?post=644
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
138
5
1
3
忠于原创,乐于分享

自然语言处理实验二

上一篇

.NET7学习笔记(基础语法篇)第一弹

下一篇
评论区
内容为空

这一切,似未曾拥有

  • 复制图片
按住ctrl可打开默认菜单