3.31实训第十五天

内容回顾

考试

编程题

1.编程实现双色球案例:

共8个号码,其中红球7个,范围 1-32,蓝球1个 范围是1-17

package com.gaohuan;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class DoubleColorBall {
    public static void main(String[] args) {
        List<Integer> redBalls = generateRedBalls(6, 1, 32);
        int blueBall = generateBlueBall(1, 17);

        System.out.println("红球号码:" + redBalls);
        System.out.println("蓝球号码:" + blueBall);
    }

    // 生成红球号码
    public static List<Integer> generateRedBalls(int count, int min, int max) {
        List<Integer> redBalls = new ArrayList<>();
        Random random = new Random();

        while (redBalls.size() < count) {
            int num = random.nextInt(max - min + 1) + min;
            if (!redBalls.contains(num)) {
                redBalls.add(num);
            }
        }

        return redBalls;
    }

    // 生成蓝球号码
    public static int generateBlueBall(int min, int max) {
        Random random = new Random();
        return random.nextInt(max - min + 1) + min;
    }
}

2、按照如下要求,设计相关类、属性、方法。

分析以下需求,并用代码实现

        定义项目经理类

                 属性:姓名 工号 工资 奖金

                 行为:工作work

        定义程序员类

                 属性:姓名 工号 工资

                 行为:工作work

        要求:向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法

        设计完成将父类、项目经理类、程序员类、测试类打包提交即可

package com.gaohuan;

public abstract class Employee {
    // 共有属性
    protected String name;
    protected String id;
    protected double salary;

    // 构造器
    public Employee(String name, String id, double salary) {
        this.name = name;
        this.id = id;
        this.salary = salary;
    }

    // 共有行为 - 工作
    public abstract void work();

    // getter 和 setter 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
}

package com.gaohuan;

public class Programmer extends Employee {
    // 构造器
    public Programmer(String name, String id, double salary) {
        super(name, id, salary);
    }

    // 重写父类的work方法
    @Override
    public void work() {
        System.out.println(name + " is coding and fixing bugs.");
    }
}
package com.gaohuan;

public class ProjectManager extends Employee {
    private double bonus; // 项目经理特有的奖金属性

    // 构造器
    public ProjectManager(String name, String id, double salary, double bonus) {
        super(name, id, salary);
        this.bonus = bonus;
    }

    // 重写父类的work方法
    @Override
    public void work() {
        System.out.println(name + " is managing the project and earning a bonus.");
    }

    // getter 和 setter 方法
    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }
}
package com.gaohuan;

public class TestEmployee {
    public static void main(String[] args) {
        // 创建项目经理实例
        ProjectManager projectManager = new ProjectManager("王五", "PM-001", 8000, 2000);
        projectManager.work();
        System.out.println("Project Manager's Salary: " + projectManager.getSalary());
        System.out.println("Project Manager's Bonus: " + projectManager.getBonus());

        // 创建程序员实例
        Programmer programmer = new Programmer("李三", "PROG-001", 6000);
        programmer.work();
        System.out.println("Programmer's Salary: " + programmer.getSalary());
    }
}

3、创建一个Map集合的对象,分别向集合中添加元素

{“name”:“野马哥”,“age”:“18”,“hoby”:“烫头”,“physiology”:“非常帅”}

并使用三种方式进行遍历集合中的元素。

package com.gaohuan;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapExample {
    public static void main(String[] args) {
        // 创建Map对象
        Map<String, String> map = new HashMap<>();

        // 向Map中添加元素
        map.put("name", "野马哥");
        map.put("age", "18");
        map.put("hobby", "烫头");
        map.put("physiology", "非常帅");

        // 第一种遍历方式:使用keySet()遍历key,通过key获取value
        System.out.println("遍历方式一:使用keySet()");
        for (String key : map.keySet()) {
            System.out.println("键: " + key + ", 值: " + map.get(key));
        }

        // 第二种遍历方式:使用entrySet()遍历键值对
        System.out.println("遍历方式二:使用entrySet()");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("键: " + entry.getKey() + ", 值: " + entry.getValue());
        }

        // 第三种遍历方式:使用Map.Entry的iterator()遍历键值对
        System.out.println("遍历方式三:使用Map.Entry的iterator()");
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            System.out.println("键: " + entry.getKey() + ", 值: " + entry.getValue());
        }
    }
}

4、编写一个简单的TCP服务器程序和一个对应的客户端程序。服务器应能够接受客户端的连接,接收客户端发送的字符串消息,并将该消息回显给客户端。客户端应能够连接到服务器,发送一条字符串消息,并接收来自服务器的响应。

package com.gaohuan;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

//服务端
public class EchoServer {
    public static void main(String[] args) {
        final int PORT = 12345;

        try {
            ServerSocket serverSocket = new ServerSocket(PORT);
            System.out.println("服务器已启动,等待客户端连接...");

            // 等待客户端连接
            Socket clientSocket = serverSocket.accept();
            System.out.println("客户端已连接");

            // 获取输入流
            BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            // 获取输出流
            PrintWriter output = new PrintWriter(clientSocket.getOutputStream(), true);

            String message;
            // 循环接收和回显消息
            while ((message = input.readLine()) != null) {
                System.out.println("客户端发送的消息:" + message);
                output.println("服务器收到消息:" + message); // 回显消息给客户端
            }

            // 关闭连接
            clientSocket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

package com.gaohuan;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

//客户端
public class EchoClient {
    public static void main(String[] args) {
        final String SERVER_IP = "localhost";
        final int SERVER_PORT = 12345;

        try {
            // 连接服务器
            Socket socket = new Socket(SERVER_IP, SERVER_PORT);
            System.out.println("已连接到服务器");

            // 获取输入流
            BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
            // 获取输出流
            PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
            // 获取服务器响应流
            BufferedReader serverResponse = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            String message;
            // 循环发送和接收消息
            while (true) {
                System.out.print("请输入要发送的消息:");
                message = input.readLine();
                if (message.equals("exit")) {
                    break;
                }
                output.println(message); // 发送消息给服务器
                System.out.println("服务器回复:" + serverResponse.readLine()); // 接收并打印服务器的回复
            }

            // 关闭连接
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

您可以通过以下步骤安装libsvm 3.31: 1. 首先,您可以从libsvm***libsvm的扩展包。您可以选择适合您的操作系统的版本,并下载zip文件。 2. 下载完成后,解压缩zip文件。您可以将解压缩后的文件夹放在您选择的位置。 3. 在解压缩后的文件夹中,您可以找到libsvm的主要文件和文件夹。其中包括libsvm.jar和wlsvm.jar等必需的文件。您可以将这些文件复制到您的项目或工程目录中,以便在使用libsvm时可以引用它们。 4. 此外,您还可以在解压缩后的文件夹中找到一些预编译的二进制文件,例如libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64和svmpredict.mexw64等。这些文件可以用于MATLAB等编程语言的集成。如果您打算在MATLAB中使用libsvm,您可以将这些文件复制到MATLAB的工作目录中,以便在MATLAB中调用它们。 5. 安装完成后,您可以根据libsvm的使用说明进行配置和调用。您可以在libsvm的官方主页上找到详细的使用文档和示例代码,以帮助您开始使用libsvm进行机器学习和数据分类任务。 请注意,以上是一般的安装步骤,具体的安装步骤可能会因操作系统和使用环境的不同而有所差异。建议您在安装之前参考libsvm的官方文档和使用说明,以确保正确安装和使用libsvm。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [weka 集成LibSVMm所需的jar(wlsvm.zip),另附libsvm.zip和liblinear.zip](https://download.csdn.net/download/qq_42988711/87906163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SVM之Libsvm工具包的安装教程](https://blog.csdn.net/qq_43493562/article/details/110918276)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [[Matlab]在Matlab中安装与使用LibSVM工具箱(小白指南)](https://blog.csdn.net/zytjasper/article/details/103168354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值