(2022级)成都工业学院Java程序设计(JAVA)实验二:类和对象

news2024/9/23 9:36:26

写在前面

1、基于2022级软件工程/计算机科学与技术实验指导书

2、代码仅提供参考

3、如果代码不满足你的要求,请寻求其他的途径

运行环境

window11家庭版

IntelliJ IDEA 2023.2.2

jdk17.0.6

实验要求

1、 控制台菜单。在 Exp02_x 类中添加一个方法 menu_x,其他要求要同实验 01-1。

2、 编写一个矩形类 Exp02Rectangle_x,要求如下:

1) 矩形的宽度和高度由构造方法来确定,要求长和高的范围为 0~30。为此类的方法 有 getArea_x 返回矩形的面积;getPerimeter_x 返回矩形的周长;draw_x 使用星号 (*)作为描绘字符画出该矩形。

2) 在 Exp02_x 类中添加一个方法 rectangleExec_x 调用 Exp02Rectangle_x 对象的方法, 它被 menu_x 调用。

3、 编写一个三角形类 Exp02Triangle_x,要求如下:

1) 能根据三个实数(范围为 0~30)构造三角形对象,如果三个实数不满足三角形的条 件,则自动构造以最小值为边的等边三角形。输入任意三个数,输出构造的三角形 面积。

2) 在 Exp02_x 类中添加一个方法 triangleExec_x 调用 Exp02Triangle_x 对象的方法, 它被 menu_x 调用。

4、 编写一个二维平面上的点的类 Exp02Point_x,要求如下:

1) 表示坐标的两个成员变量 x_x,y_x;

2) 两个构造方法,不带参数的功能是置成员变量为 0;带参数的传值给成员变量,要 使用 this 关键字;

3) 定义 distance_x 方法,计算两个坐标点的距离;定义 graph_x 方法,参照上面的 draw_x 绘制与两个坐标点有关的图形,如矩形、圆形等(选做,加分)

4) 在 Exp02_x 类中添加一个方法 pointExec_x 调用 Exp02Point_x 对象的方法,它被 menu_x 调用。

5、 设计一个成绩管理系统。要求如下:

1) 系统的主要功能有(1)初始化至少三位教师、三门课程、五位同学和 N 个成绩数 据,(2)使用教师编号、学生学号登录,(3)教师录入、显示、查询、修改、统计 (选做)成绩,(4)学生查看成绩(同时显示总分和平均分);

2) 新建类文件 Exp02Score_x,类 Exp02Score_x 的成员变量至少有分数。在此类文件 中现分别添加:(1)Exp02Teacher_x 类,成员变量至少有教师编号、教师姓名;(2) Exp02Student_x 类,成员变量至少有学生学号、学生姓名;(3)Exp02Course_x 类, 成员变量至少有课程编号、课程名称。根据自己的理解,为前述 4 个类设计成员方 法以实现 1)中的功能;

3) 新建类文件 Exp02ScoreManage_x,类 Exp02ScoreManage_x 的主要功能初始化数据 和用方法 scoreManageExec_x 调用 2)中各个(不一定是所有)类的成员方法,它 被 menu_x 调用以及其他方法;

4) 其他要求:(1)定义的成员变量必须在恰当的地方使用;(2)要能保证数据合法, 如成绩应该在 0~100 之间;录入或修改时超过范围应能提示;(3)功能应该符合逻 辑,如教师未录入成绩前,学生应该查询不到成绩等。

源代码

Exp02_x.java

import java.util.Scanner;

//实验题目1:编写一个矩形类
class Exp02Rectangle_x {
    private int width;
    private int height;

    // 构造方法确定矩形的宽度和高度
    public Exp02Rectangle_x(int width, int height) {
        if (width >= 0 && width <= 30 && height >= 0 && height <= 30) {
            this.width = width;
            this.height = height;
        } else {
            System.out.println("宽度和高度必须在0~30之间");
        }
    }

    // 计算矩形的面积
    public int getArea_x() {
        return width * height;
    }

    // 计算矩形的周长
    public int getPerimeter_x() {
        return 2 * (width + height);
    }

    // 绘制矩形
    public void draw_x() {
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

//实验题目2:编写一个三角形类
class Exp02Triangle_x {
    private double side1;
    private double side2;
    private double side3;

    // 构造方法确定三角形的三条边
    public Exp02Triangle_x(double side1, double side2, double side3) {
        // 如果输入的边长不满足三角形的条件,则构造以最小值为边的等边三角形
        if (isValidTriangle(side1, side2, side3)) {
            this.side1 = side1;
            this.side2 = side2;
            this.side3 = side3;
            System.out.println("输入的边长满足条件,按输入的三边长构建三角形");
        } else {
            this.side1 = this.side2 = this.side3 = findShortestSide(side1,side2,side3);
            System.out.println("输入的边长不满足条件,按最小值的边长构建普通三角形");
        }
    }

    // 判断三边是否构成三角形
    private boolean isValidTriangle(double side1, double side2, double side3) {
        return side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1;
    }
    //找出最小值的边
    private double findShortestSide(double side1,double side2,double side3){
        if (side1<=side2&&side1<=side3){
            return side1;
        }
        else if (side2<=side1&&side2<=side3){
            return side2;
        }
        else {
            return side3;
        }
    }

    // 计算三角形的面积
    public double getArea_x() {
        // 海伦公式计算面积
        double s = (side1 + side2 + side3) / 2;
        return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
    }
}

//实验题目3:编写一个二维平面上的点类
class Exp02Point_x {
    private double x_x;
    private double y_x;

    // 不带参数的构造方法,将坐标置为0
    public Exp02Point_x() {
        this.x_x = 0;
        this.y_x = 0;
    }

    // 带参数的构造方法,传值给成员变量
    public Exp02Point_x(double x_x, double y_x) {
        this.x_x = x_x;
        this.y_x = y_x;
    }

    // 计算两个点之间的距离
    public double distance_x(Exp02Point_x other) {
        double dx = this.x_x - other.x_x;
        double dy = this.y_x - other.y_x;
        return Math.sqrt(dx * dx + dy * dy);
    }
}

public class Exp02_x {
    // 调用 Exp02Rectangle_x 对象的方法
    public void rectangleExec_x() {
        Scanner scanner = new Scanner(System.in);
        int width, height;
        // 获取矩形的宽度和高度
        System.out.print("请输入矩形的宽度:");
        width = scanner.nextInt();
        System.out.print("请输入矩形的高度:");
        height = scanner.nextInt();
        // 创建矩形对象
        Exp02Rectangle_x rectangle = new Exp02Rectangle_x(width, height);
        // 输出矩形的面积和周长
        System.out.println("矩形的面积为:" + rectangle.getArea_x());
        System.out.println("矩形的周长为:" + rectangle.getPerimeter_x());
        // 绘制矩形
        System.out.println("绘制的矩形为:");
        rectangle.draw_x();
    }

    // 调用 Exp02Triangle_x 对象的方法
    public void triangleExec_x() {
        Scanner scanner = new Scanner(System.in);
        double side1, side2, side3;
        // 获取三角形的三条边长
        System.out.print("请输入三角形的第一条边长:");
        side1 = scanner.nextDouble();
        System.out.print("请输入三角形的第二条边长:");
        side2 = scanner.nextDouble();
        System.out.print("请输入三角形的第三条边长:");
        side3 = scanner.nextDouble();
        // 创建三角形对象
        Exp02Triangle_x triangle = new Exp02Triangle_x(side1, side2, side3);
        // 输出三角形的面积
        System.out.println("三角形的面积为:" + triangle.getArea_x());
    }

    // 调用 Exp02Point_x 对象的方法
    public void pointExec_x() {
        Scanner scanner = new Scanner(System.in);
        double x1, y1, x2, y2;
        // 获取两个点的坐标
        System.out.print("请输入第一个点的 x 坐标:");
        x1 = scanner.nextDouble();
        System.out.print("请输入第一个点的 y 坐标:");
        y1 = scanner.nextDouble();
        System.out.print("请输入第二个点的 x 坐标:");
        x2 = scanner.nextDouble();
        System.out.print("请输入第二个点的 y 坐标:");
        y2 = scanner.nextDouble();
        // 创建两个点对象
        Exp02Point_x point1 = new Exp02Point_x(x1, y1);
        Exp02Point_x point2 = new Exp02Point_x(x2, y2);
        // 输出两点之间的距离
        System.out.println("两点之间的距离为:" + point1.distance_x(point2));
    }

    // 显示菜单
    public void menu_x() {
        int choice;
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请选择实验题目:");
            System.out.println("0.结束");
            System.out.println("1.编写一个矩形类");
            System.out.println("2.编写一个三角形类");
            System.out.println("3.编写一个二维平面上的点的类");
            System.out.println("4.设计一个成绩管理系统");
            System.out.print("请输入你的选择:");
            choice = scanner.nextInt();
            switch (choice) {
                case 0:
                    System.out.println("程序已退出");
                    return;
                case 1:
                    rectangleExec_x();
                    break;
                case 2:
                    triangleExec_x();
                    break;
                case 3:
                    pointExec_x();
                    break;
                case 4:
                    Exp02ScoreManage_x scoreManage = new Exp02ScoreManage_x();
                    scoreManage.scoreManageExec_x();
                    break;
                default:
                    System.out.println("输入的数据无效,请重新输入");
                    break;
            }
        }
    }
}

Exp02Score_x.java

import java.util.HashMap;
import java.util.Map;

// 实验题目5:设计一个成绩管理系统
class Exp02Teacher_x {
    private String teacherId;
    private String teacherName;
    private String courseId;

    public Exp02Teacher_x(String teacherId, String teacherName, String courseId) {
        this.teacherId = teacherId;
        this.teacherName = teacherName;
        this.courseId = courseId;
    }

    public String getTeacherId() {
        return teacherId;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public String getCourseId() {
        return courseId;
    }
}

// Exp02Student_x 类
class Exp02Student_x {
    private String studentId;
    private String studentName;
    private int score1;
    private int score2;
    private int score3;

    public Exp02Student_x(String studentId, String studentName) {
        this.studentId = studentId;
        this.studentName = studentName;
        this.score1 = -1;
        this.score2 = -1;
        this.score3 = -1;
    }

    public String getStudentId() {
        return studentId;
    }

    public String getStudentName() {
        return studentName;
    }

    public int getScore1() {
        return score1;
    }

    public int getScore2() {
        return score2;
    }

    public int getScore3() {
        return score3;
    }

    public void setScore1(int score1) {
        this.score1 = score1;
    }

    public void setScore2(int score2) {
        this.score2 = score2;
    }

    public void setScore3(int score3) {
        this.score3 = score3;
    }
}

// Exp02Course_x 类
class Exp02Course_x {
    private String courseId;
    private String courseName;

    public Exp02Course_x(String courseId, String courseName) {
        this.courseId = courseId;
        this.courseName = courseName;
    }

    public String getCourseId() {
        return courseId;
    }

    public String getCourseName() {
        return courseName;
    }
}

// Exp02Score_x 类
public class Exp02Score_x {
    private Map<String, Exp02Student_x> students;
    private Map<String, Exp02Teacher_x> teachers;
    private Map<String, Exp02Course_x> courses;
    private Map<String, Integer> scores;

    public Exp02Score_x() {
        students = new HashMap<>();
        teachers = new HashMap<>();
        courses = new HashMap<>();
        scores = new HashMap<>();
    }

    // 初始化学生、老师、课程及成绩
    public void initialize() {
        initializeTeachers();
        initializeStudents();
        initializeCourses();
        initializeScores();
    }

    // 初始化老师
    public void initializeTeachers() {
        teachers.put("T1", new Exp02Teacher_x("T1", "张老师", "C1"));
        teachers.put("T2", new Exp02Teacher_x("T2", "李老师", "C2"));
        teachers.put("T3", new Exp02Teacher_x("T3", "王老师", "C3"));
    }

    // 初始化学生
    public void initializeStudents() {
        students.put("S1", new Exp02Student_x("S1", "小明"));
        students.put("S2", new Exp02Student_x("S2", "小红"));
        students.put("S3", new Exp02Student_x("S3", "小刚"));
        students.put("S4", new Exp02Student_x("S4", "小亮"));
        students.put("S5", new Exp02Student_x("S5", "小美"));
    }

    // 初始化课程
    public void initializeCourses() {
        courses.put("C1", new Exp02Course_x("C1", "语文"));
        courses.put("C2", new Exp02Course_x("C2", "数学"));
        courses.put("C3", new Exp02Course_x("C3", "英语"));
    }

    // 初始化成绩,默认为未录入成绩,显示为-1
    public void initializeScores() {
        for (Exp02Student_x student : students.values()) {
            scores.put(student.getStudentId(), -1);
        }
    }

    // 教师登录
    public boolean teacherLogin(String teacherId) {
        return teachers.containsKey(teacherId);
    }

    // 学生登录
    public boolean studentLogin(String studentId) {
        return students.containsKey(studentId);
    }

    // 录入成绩
    public void addScore(String studentId, int score, String teacherId) {
        Exp02Student_x student = students.get(studentId);
        Exp02Teacher_x teacher = teachers.get(teacherId);
        if (student != null && score >= 0 && score <= 100) {
            String courseId = teacher.getCourseId();
            if (courseId.equals("C1")) {
                student.setScore1(score);
            } else if (courseId.equals("C2")) {
                student.setScore2(score);
            } else if (courseId.equals("C3")) {
                student.setScore3(score);
            }
            System.out.println(student.getStudentName() + "成绩录入成功!");
        } else if (student == null) {
            System.out.println("学生学号不存在!");
        } else {
            System.out.println("成绩录入失败!成绩必须在0到100之间,请重新录入。");
        }
    }


    // 显示学生的成绩
    public void displayStudentScores(String studentId,String teacherId) {
        Exp02Teacher_x teacher=teachers.get(teacherId);
        Exp02Student_x student = students.get(studentId);
        if (student != null) {
            String courseId = teacher.getCourseId();
            Exp02Course_x course=courses.get(courseId);
            if (course != null) {
                if (courseId.equals("C1")) {
                    int score = student.getScore1();
                    if (score == -1) {
                        System.out.println("学生的成绩还未录入!");
                    } else {
                        System.out.println("学生 " + student.getStudentName() + " " + course.getCourseName() + " 的成绩:" + score);
                    }
                } else if (courseId.equals("C2")) {
                    int score = student.getScore2();
                    if (score == -1) {
                        System.out.println("学生的成绩还未录入!");
                    } else {
                        System.out.println("学生 " + student.getStudentName() + " " + course.getCourseName() + " 的成绩:" + score);
                    }
                } else if (courseId.equals("C3")) {
                    int score = student.getScore3();
                    if (score == -1) {
                        System.out.println("学生的成绩还未录入!");
                    } else {
                        System.out.println("学生 " + student.getStudentName() + " " + course.getCourseName() + " 的成绩:" + score);
                    }
                }
            } else {
                System.out.println("课程编号不存在!");
            }
        } else {
            System.out.println("学生学号不存在!");
        }
    }

    // 修改学生成绩
    public void modifyScore(String studentId, int newScore, String teacherId) {
        Exp02Student_x student = students.get(studentId);
        Exp02Teacher_x teacher = teachers.get(teacherId);
        if (student != null && newScore >= 0 && newScore <= 100) {
            String courseId = teacher.getCourseId();
            if (courseId.equals("C1")) {
                student.setScore1(newScore);
            } else if (courseId.equals("C2")) {
                student.setScore2(newScore);
            } else if (courseId.equals("C3")) {
                student.setScore3(newScore);
            }
            System.out.println(student.getStudentName() + "成绩修改成功!");
        } else if (student == null) {
            System.out.println("学生学号不存在!");
        } else {
            System.out.println("成绩修改失败!新成绩必须在0到100之间,请重新输入。");
        }
    }

    // 删除学生成绩
    public void deleteScore(String studentId,String teacherId) {
        Exp02Student_x student = students.get(studentId);
        Exp02Teacher_x teacher = teachers.get(teacherId);
        if (student != null) {
            String courseId=teacher.getCourseId();
            if (courseId.equals("C1")) {
                student.setScore1(-1);
            } else if (courseId.equals("C2")) {
                student.setScore2(-1);
            } else if (courseId.equals("C3")) {
                student.setScore3(-1);
            }
        } else {
            System.out.println("学生学号不存在!");
        }
    }
    // 学生查看所有成绩
    public void displayAllScores(String studentId) {
        Exp02Student_x student = students.get(studentId);
        if (student != null) {
            System.out.println("学生 " + student.getStudentName() + " 的成绩单:");
            if (student.getScore1() != -1) {
                System.out.println("语文成绩:" + student.getScore1());
            } else {
                System.out.println("语文成绩:成绩还未录入");
            }
            if (student.getScore2() != -1) {
                System.out.println("数学成绩:" + student.getScore2());
            } else {
                System.out.println("数学成绩:成绩还未录入");
            }
            if (student.getScore3() != -1) {
                System.out.println("英语成绩:" + student.getScore3());
            } else {
                System.out.println("英语成绩:成绩还未录入");
            }
        } else {
            System.out.println("学生学号不存在!");
        }
    }

    // 计算学生总分
    public int calculateTotalScore(String studentId) {
        Exp02Student_x student = students.get(studentId);
        if (student != null) {
            if (student.getScore1() == -1 || student.getScore2() == -1 || student.getScore3() == -1) {
                return -1; // 表示成绩未录入完毕
            } else {
                return student.getScore1() + student.getScore2() + student.getScore3();
            }
        } else {
            return 0;
        }
    }

    // 计算学生平均分
    public double calculateAverageScore(String studentId) {
        Exp02Student_x student = students.get(studentId);
        if (student != null) {
            int totalScore = calculateTotalScore(studentId);
            if (totalScore == -1) {
                return -1; // 表示成绩未录入完毕
            } else {
                return totalScore / 3.0;
            }
        } else {
            return 0;
        }
    }
}

Exp02ScoreManage_x.java

import java.util.Scanner;

public class Exp02ScoreManage_x {
    private Exp02Score_x scoreManager;

    public Exp02ScoreManage_x() {
        scoreManager = new Exp02Score_x();
        initializeData();
    }

    // 初始化数据
    public void initializeData() {
        scoreManager.initialize();
    }

    // 调用 Exp02Score_x 中各个类的成员方法
    public void scoreManageExec_x() {
        Scanner scanner = new Scanner(System.in);
        int role = 0;
        boolean exitProgram = false;
        while (!exitProgram) {
            System.out.println("请选择您的身份:");
            System.out.println("1. 教师");
            System.out.println("2. 学生");
            System.out.println("-1. 退出程序");
            System.out.printf("你的选择是:");
            role = scanner.nextInt();

            switch (role) {
                case 1:
                    System.out.println("请输入教师编号登录:");
                    String teacherId = scanner.next();
                    if (scoreManager.teacherLogin(teacherId)) {
                        System.out.println("登录成功!");
                        boolean exitTeacherMenu = false;
                        while (!exitTeacherMenu) {
                            System.out.println("请选择操作:");
                            System.out.println("1. 录入学生成绩");
                            System.out.println("2. 显示学生成绩");
                            System.out.println("3. 修改学生成绩");
                            System.out.println("4. 删除学生成绩");
                            System.out.println("0. 返回上一级菜单");
                            System.out.printf("你的选择是:");
                            int choice = scanner.nextInt();
                            switch (choice) {
                                case 1:
                                    System.out.println("请输入学生学号:");
                                    String studentId = scanner.next();
                                    System.out.println("请输入成绩:");
                                    int score = scanner.nextInt();
                                    scoreManager.addScore(studentId, score, teacherId);
                                    break;
                                case 2:
                                    System.out.println("请输入学生学号:");
                                    String queryStudentId = scanner.next();
                                    scoreManager.displayStudentScores(queryStudentId, teacherId);
                                    break;
                                case 3:
                                    System.out.println("请输入学生学号:");
                                    String modifyStudentId = scanner.next();
                                    System.out.println("请输入新的成绩:");
                                    int newScore = scanner.nextInt();
                                    scoreManager.modifyScore(modifyStudentId, newScore, teacherId);
                                    System.out.println("成绩修改成功!");
                                    break;
                                case 4:
                                    System.out.println("请输入学生学号:");
                                    String deleteStudentId = scanner.next();
                                    scoreManager.deleteScore(deleteStudentId, teacherId);
                                    System.out.println("成绩删除成功!");
                                    break;
                                case 0:
                                    exitTeacherMenu = true;
                                    break;
                                default:
                                    System.out.println("请输入有效的操作选项!");
                                    break;
                            }
                        }
                    } else {
                        System.out.println("教师编号不存在!");
                    }
                    break;
                case 2:
                    System.out.println("请输入学生学号登录:");
                    String studentId = scanner.next();
                    if (scoreManager.studentLogin(studentId)) {
                        System.out.println("登录成功!");
                        boolean exitStudentMenu = false;
                        while (!exitStudentMenu) {
                            System.out.println("请选择操作:");
                            System.out.println("1. 查看成绩");
                            System.out.println("0. 返回上一级菜单");
                            System.out.printf("你的选择是:");
                            int choice = scanner.nextInt();
                            switch (choice) {
                                case 1:
                                    scoreManager.displayAllScores(studentId);
                                    int totalScore = scoreManager.calculateTotalScore(studentId);
                                    double averageScore = scoreManager.calculateAverageScore(studentId);
                                    if (totalScore != -1 && averageScore != -1) {
                                        System.out.println("总分:" + totalScore);
                                        System.out.println("平均分:" + averageScore);
                                    } else {
                                        System.out.println("总分:成绩还未录入完毕,请耐心等候!");
                                        System.out.println("平均分:成绩还未录入完毕,请耐心等候!");
                                    }
                                    break;
                                case 0:
                                    exitStudentMenu = true;
                                    break;
                                default:
                                    System.out.println("请输入有效的操作选项!");
                                    break;
                            }
                        }
                    } else {
                        System.out.println("学生学号不存在!");
                    }
                    break;
                case -1:
                    exitProgram = true;
                    System.out.println("程序已退出!");
                    break;
                default:
                    System.out.println("请选择有效的选项!");
                    break;
            }
        }
        scanner.close();
    }
}

Main.java

public class Main {
    public static void main(String[] args) {
        Exp02_x exp02 = new Exp02_x();
        exp02.menu_x(); // 调用菜单方法
    }
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1545612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图&#xff0c;build的重要过程中会调用_element!.markNeedsBuild();&#xff0c;而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中&#xff0c;BuildOwner负责管理构建…

Java基础--128陷阱

问题引入 Integer a 123; Integer b 123; System.out.println(ab); 结果为true。 但是如果代码如下 Integer a 1230;Integer b 1230;System.out.println(ab); 这个的结果就是false。 问题解决 当Integer a 123时&#xff0c;其实他底层自动转换成了Integer a Inte…

数据库专题(oracle基础和进阶)

前言 本专题主要记录自己最近学的数据库&#xff0c;有兴趣一起补习的可以一起看看&#xff0c;有补充和不足之处请多多指出。希望专题可以给自己还有读者带去一点点提高。 数据库基本概念 本模块有参考&#xff1a;数据库基本概念-CSDN博客 数据库管理系统是一个由互相关联的…

Arduino+ESP8266+华为云物联网平台实现智能开关

前言 最近在做一个物联网项目&#xff0c;涉及到智能开关的开发。目前已经实现简单的TCP通信远程控制&#xff0c;但是考虑到后期的设备管理以及设备通信所需要的技术和服务器的维护成本&#xff0c;我决定将设备接入云平台。本文将详细阐述如何利用华为云的物联网平台&#x…

Linux系统下安装部署Linux管理面板1panel

目录 一 1panel介绍 1、1Panel简介 2、1Panel特点 二、本地环境规划 1、本此实验目的 2、本地环境部署 三、部署1Panel&#xff08;在线安装&#xff09; 1.创建安装目录 2.一键部署1Panel 3.检查1Panel服务运行状态 4.检查1Panel监听端口 四、关闭防火墙和selinux…

小动物主动跑轮和被动跑轮的功能和目的?

小动物主动跑轮和被动跑轮在运动方式、实验目的和设计构造方面上是有区别的。 运动方式不同。主动跑轮是由动物自主运动来推动跑轮转动的。这种设置可以真实地反映动物自发的运动情况。相对地&#xff0c;被动跑轮则是一种强迫运动的方式&#xff0c;通常由电机带动跑轮转动从…

视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等

前言 真没想到&#xff0c;距离视频生成上一轮的集中爆发(详见《Sora之前的视频生成发展史&#xff1a;从Gen2、Emu Video到PixelDance、SVD、Pika 1.0》)才过去三个月&#xff0c;没想OpenAI一出手&#xff0c;该领域又直接变天了 自打2.16日OpenAI发布sora以来(其开发团队包…

基于yolov8安全帽检测的系统

基于yolov8安全帽检测的系统 项目描述&#xff1a; 安全头盔检测&#xff08;计算机视觉&#xff09; 1.自训练数据集1538张数据图片&#xff0c;进行标注&#xff0c;并进行100轮的训练&#xff0c;准确率达0.966 2.使用 Flask 和 Ultralytics YOLOv8 模型开发了一个 Web 应…

Matlab有限差分法求解狄利克雷(Dirichlet)边界的泊松(Poisson)问题,边界值为任意值

参考l链接&#xff1a; 有限差分法简介有限差分法-二维泊松方程及其Matlab程序实现弹性力学方程 有限差分法matlab,泊松方程的有限差分法的MATLAB实现 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Matrix method for Poisson Equation …

景联文科技上新高质量大模型训练数据!

在过去的一年中&#xff0c;人工智能领域呈现出了风起云涌的态势&#xff0c;其中模型架构、训练数据、多模态技术、超长上下文处理以及智能体发展等方面均取得了突飞猛进的发展。 在3月24日举办的2024全球开发者先锋大会的大模型前沿论坛上&#xff0c;上海人工智能实验室的领…

[Linux]知识整理(持续更新)

前言 Linux的目录结构 Linux的目录结构是一个树型结构 Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘 Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面 Linux路径的描述方式 第一章 基本命令 命令格式 例:ls –la /etc 说明: 1)个别命令使用不遵循…

照片尺寸怎么修改?高效快速处理方法

在分享照片到不同平台时&#xff0c;也需要符合不同尺寸要求&#xff0c;在不同场景中&#xff0c;应该如何修改图片尺寸呢&#xff1f;还有不同的证件类型有着不同的证件照尺寸要求&#xff0c;因此我们需要根据要求对证件照尺寸进行调整&#xff0c;接下来就介绍几个可以图片…

35.基于SpringBoot + Vue实现的前后端分离-在线考试系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;采用SpringBoot Vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SpringBoot Vue技术的在线考试系统设计与实现管理工作系统…

Netty学习——源码篇6 Pipeline设计原理 备份

1 Pipeline设计原理 在Netty中每个Channel都有且仅有一个ChannelPipeline与之对应&#xff0c;它们的组成关系如下图&#xff1a; 通过上图可以看到&#xff0c;一个Channel包含了一个ChannelPipeline&#xff0c;而ChannelPipeline中又维护了一个由ChannelHandlerContext组成的…

HTTP工具类封装与http请求响应

一、前言 在Java web系统中经常需要与外部接口进行对接&#xff0c;比较多的方式就是是http的方式。在springboot中&#xff0c;我们可以直接使用封装的feign如&#xff1a;我们去请求微信的接口&#xff0c;定义一个client客户端&#xff0c;使用feign框架去请求就可以。但是…

全志A33编译踩坑!

领导给了个新sdk。然后开编。 编译的标准流程是这样 cd lichee ./build.sh config 这还得了&#xff0c;每次都选很烦&#xff08;虽然只需要选一次&#xff09;&#xff0c;于是新写法是这样 ./build.sh -p sun8iw5p1_android -k linux-3.4 -b evb 果断提示 ERROR: inv…

[深度学习]yolov8+streamlit搭建精美界面GUI网页设计源码实现三

【设计思路介绍】 为了使用YOLOv8和Streamlit搭建一个精美的界面GUI网页&#xff0c;你需要遵循几个关键步骤。以下是一个简化的流程&#xff0c;帮助你设计并实现这一目标&#xff1a; 1. 环境准备 安装YOLOv8 YOLOv8是一个先进的实时目标检测模型。你需要先下载并安装YOL…

Excel双击单元格后弹窗输入日期

Step1. 在VBE界面新建一个窗体(Userform1),在窗体的工具箱的空白处右键,选中添加附件,勾选Calendar control 8.0,即可完成日历的添加。 PS:遗憾的是, Office 64 位没有官方的日期选择器控件。唯一的解决方案是使用Excel 的第三方日历。 参考链接:How to insert calen…

2024最新最全Selenium自动化测试面试题!

1、什么是自动化测试、自动化测试的优势是什么&#xff1f; 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。 自动化测试的优势&#xff1a; 1、减少回归测试成本 2、减少兼容性测试成本 3、提高测试反馈速度 4、提高测试覆盖率 5、让测试工程师做更有意义的…

vue echarts 记录一个带tab切换的echarts页面 切换的时候如果有一个tab里的echarts没有数据 该如何清空echarts图的数据的问题

<template><div class"app-container"><el-form :model"queryParams" ref"queryForm" size"small" v-show"showSearch" label-width"85px"><el-form-item label"园所名称" prop&q…