关于#java#的问题:求这个类的代码注释

求帮我修改一下这个类的代码注释 ,有乱码的注释都修改一下,在一个代码块下写出这个代码块的作用

img

package org.aeroplane;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Client {
    private String flightName = null;//航班名称
    private int row = 0; // 多少排座位
    private int rowLength = 0; // 每排座位数
    private Flight flight = null;// 航班类
    private String cmdString = null; // 当前输入的命令
    private BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    /**
     * 程序入口
     * @param args
     */
    public static void main(String[] args)
    {
        new Client().commandShell(); // commandShell
    }

    /**
     *  命令提示语
     */
    private void commandShell() {
        System.out.println("\n\n================================");
        System.out.println(" Command Shell V3.01 ");
        System.out.println(" type 'exit' command to exit.");
        // 死循环的方式来控制程序循环执行
        while (true) {
            // 调用该方法获取输入的命令
            readCommand();
            // 解析输入的命令
            processCommand();
        }
    }

    /**
     *  输入提示语
     */
    private void readCommand() {
        if (flightName == null) {
            System.out.println("*********************************************");
            System.out.println("Please Create The Flight Data First!");
            System.out
                    .println("Use command: create  flight_name  rows  rowLenght <CR>");
            System.out
                    .println("*********************************************\n\n\n");
        }
        System.out.print("\nCOMMAND>");
        try {
            // 从键盘输入一行命令
            cmdString = br.readLine().trim();
        } catch (IOException e) {
            System.out.println(" command error!  ");
            cmdString = null;
        }
    }

    /**
     *  解析命令中的内容,根据第一个字符串来解析执行哪个功能
     */
    private void processCommand() {
        String[] cmds;
        String cmd;
        if (cmdString != null) {
            cmds = command(cmdString);
            if (cmds != null){
                //获取命令行中第一个命令内容
                cmd = cmds[0].toLowerCase();
                if (cmd.equals("create")) {
                    if (flightName == null)
                        createCommand(cmds);
                    else {
                        System.out.println("Create Error:can't handle more flights!");
                    }
                } else if (cmd.equals("reserve")) {
                    if (flightName != null)
                        reserveCommand(cmds);
                } else if (cmd.equals("cancel")) {
                    if (flightName != null)
                        cancelCommand(cmds);
                } else if (cmd.equals("list")) {
                    if (flightName != null)
                        listCommand(cmds);
                } else if (cmd.equals("exit")) {
                    System.out.println("Thanks. See you later!");
                    System.exit(0);
                } else {
                    //输入的第一个命令不满足上面的if条件就会执行到这里
                    System.out.println(" Bad command ! ");
                    cmdString = null;
                }
            }
        }
    }

    /**
     * 解析命令行输入的内容,将其分割成字符串数组
     * @param cmdStr
     * @return
     */
    private String[] command(String cmdStr) {
        int cc = 0;
        String[] cmd;
        StringTokenizer st = new StringTokenizer(cmdStr);
        if ((cc = st.countTokens()) == 0)
            return null;
        cmd = new String[cc];
        for (int i = 0; i < cc; i++)
            cmd[i] = st.nextToken();
        return cmd;
    }

    /**
     *  将字符串转为对应的int类型
     * @param valstr
     * @return
     */
    private int readInt(String valstr) {
        int val = 0;
        try {
            val = Integer.parseInt(valstr);
        } catch (Exception e) {
            val = Integer.MIN_VALUE;
        }
        return val;
    }

    /**
     *  创建航班功能,根据输入的命令,解析命令中的内容来创建航班信息
     *  该方法用于解析并创建一个航班对象。
     *  它接受一个字符串数组作为参数,该数组包含了创建航班所需的信息,
     *  包括航班名称、座位行数和每行座位数。如果参数数量不正确,将输出错误信息。
     *  如果参数正确,将尝试创建一个航班对象,并输出创建结果。
     *  如果创建失败,将输出错误信息。最终,该方法将返回一个航班对象。
     * @param cmds
     */
    private void createCommand(String[] cmds) {
        if (cmds.length != 4) {
            System.out.println("create command error!");
        }else {
            flightName = cmds[1];
            row = readInt(cmds[2]);
            rowLength = readInt(cmds[3]);
            if (row <= 0 || rowLength <= 0) {
                System.out.println("create command parameters error!");
                flightName = null;
                row = 0;
                rowLength = 0;
            } else {
                try {
                    flight = new Flight(flightName, row, rowLength);
                    System.out.println("create Flight OK!");
                } catch (Exception e) {
                    System.out.println(e);
                    flight = null;
                    flightName = null;
                    row = 0;
                    rowLength = 0;
                }
            }
        }
    }

    /**
     * 预定航班座位功能
     * 首先检查命令参数的数量是否正确,然后将乘客姓名存储在一个字符串数组中。
     * 接下来,它调用航班对象的reserve方法来预订座位,并将返回的预订号存储在一个整数数组中。
     * 最后,它输出每个乘客的预订号,或者如果没有连续的座位可用,则输出相应的错误消息。
     * @param cmds
     */
    private void reserveCommand(String[] cmds) {
        if (cmds.length <= 1) {
            System.out.println("reserve command error!");
            return;
        }
        String[] names = new String[cmds.length - 1];
        for (int i = 0; i < names.length; i++)
            names[i] = new String(cmds[i + 1]);
        int[] bn = flight.reserve(names);
        if (bn[0] != -1) {
            for (int i = 0; i < bn.length; i++)
                System.out.println(names[i] + "'s Booking Number is:" + bn[i]);
        } else
            System.out.println("No Such Sequential Seats Now!");
    }

    /**
     *  取消预定功能
     *  首先检查命令格式是否正确,然后读取预订号并检查其是否有效。
     *  然后调用航班对象的cancel方法取消预订,并根据返回值输出相应的提示信息。
     * @param cmds
     */
    private void cancelCommand(String[] cmds) {
        if (cmds.length != 2) {
            System.out.println("\ncancel command format error!");
            return;
        }
        int bookingNumber = readInt(cmds[1]);
        if (bookingNumber <= 0) {
            System.out.println("\ncancel command parameter error!");
            return;
        }
        boolean state = flight.cancel(bookingNumber);
        if (state)
            System.out.println(" Your seat has been cancelled! ");
        else
            System.out.println("The seat has not been reserved!");
    }

    /**
     *  展示航班列表功能
     *  列出当前航班上已经被预订的座位信息,包括乘客姓名、预订号、座位行号和座位位置。
     *  如果当前没有任何座位被预订,则输出提示信息“Now no seat is occupied!”。
     *  如果命令格式错误,则输出错误提示信息。
     * @param cmds
     */
    private void listCommand(String[] cmds) {
        if (cmds.length != 1) {
            System.out.println("\nlist command format error!");
            return;
        }
        Passenger[] passengerlist = flight.getPassengerList();
        int flag = 0;
        System.out.println("Name Booking Number Row Seat Position ");
        System.out.println("---------------------------------------------------------");
        if (passengerlist == null || passengerlist.length <= 0)
            System.out.println("Now no seat is occupied!");
        else {
            flag = 0;
            for (int b = 0; b < passengerlist.length; b++) {
                if (passengerlist[b] != null) {
                    flag = 1;
                    System.out
                            .println(formatStr(passengerlist[b].getName())
                                    + formatStr(""
                                    + passengerlist[b]
                                    .getBookingNumber())
                                    + formatStr("" + passengerlist[b].getRow())
                                    + formatStr(""
                                    + passengerlist[b]
                                    .getSeatPosition()));
                }
            }
            if (flag == 0)
                System.out.println("Now no seat is occupied!");
        }
    }

    /**
     * 将输入的字符串s格式化为长度为16的字符串,如果s的长度小于16,
     * 则在其后面添加空格使其长度为16。该方法返回格式化后的字符串。
     * @param s
     * @return
     */
    private String formatStr(String s) {
        for (int i = 0; i < 16 - s.trim().length(); i++)
            s += ' ';
        return s;
    }
}

你把你这代码块中的?处理下,是不是乱码了,设置utf-8

建议贴出源码,这个图片太大了,格式也不准确,不方便查看。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632