第一种方法:使用数组实现

import java.util.Scanner;

public class MessageReceiver {
    private static final int MAX_MESSAGES = 20;
    private String[] messages;
    private int count;

    public MessageReceiver() {
        messages = new String[MAX_MESSAGES];
        count = 0;
    }

    public void receiveMessage(String message) {
        if (count == MAX_MESSAGES) {
            deleteOldestMessage();
        }
        messages[count] = message;
        count++;
    }

    public void deleteOldestMessage() {
        for (int i = 0; i < count - 1; i++) {
            messages[i] = messages[i + 1];
        }
        count--;
    }

    public void displayMessages() {
        if (count == 0) {
            System.out.println("No messages");
        } else {
            for (int i = 0; i < count; i++) {
                System.out.println("Message " + (i + 1) + ": " + messages[i]);
            }
        }
    }

    public void readMessage(int index) {
        if (index >= 1 && index <= count) {
            System.out.println("Message " + index + ": " + messages[index - 1]);
        } else {
            System.out.println("Invalid message index");
        }
    }

    public void deleteMessage(int index) {
        if (index >= 1 && index <= count) {
            for (int i = index - 1; i < count - 1; i++) {
                messages[i] = messages[i + 1];
            }
            count--;
            System.out.println("Message " + index + " deleted");
        } else {
            System.out.println("Invalid message index");
        }
    }

    public void deleteAllMessages() {
        count = 0;
        System.out.println("All messages deleted");
    }

    public void displayMenu() {
        System.out.println("1. Receive message");
        System.out.println("2. Display messages");
        System.out.println("3. Read message");
        System.out.println("4. Delete message");
        System.out.println("5. Delete all messages");
        System.out.println("6. Exit");
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        MessageReceiver messageReceiver = new MessageReceiver();

        int choice = 0;
        while (choice != 6) {
            messageReceiver.displayMenu();
            System.out.print("Enter your choice: ");
            choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    System.out.print("Enter the message: ");
                    scanner.nextLine(); // consume the newline character
                    String message = scanner.nextLine();
                    messageReceiver.receiveMessage(message);
                    System.out.println("Message received");
                    break;
                case 2:
                    messageReceiver.displayMessages();
                    break;
                case 3:
                    System.out.print("Enter the message index: ");
                    int index = scanner.nextInt();
                    messageReceiver.readMessage(index);
                    break;
                case 4:
                    System.out.print("Enter the message index: ");
                    index = scanner.nextInt();
                    messageReceiver.deleteMessage(index);
                    break;
                case 5:
                    messageReceiver.deleteAllMessages();
                    break;
                case 6:
                    System.out.println("Exiting...");
                    break;
                default:
                    System.out.println("Invalid choice");
                    break;
            }
        }

        scanner.close();
    }
}

第二种方法:使用ArrayList实现

import java.util.ArrayList;
import java.util.Scanner;

public class MessageReceiver {
    private static final int MAX_MESSAGES = 20;
    private ArrayList<String> messages;

    public MessageReceiver() {
        messages = new ArrayList<>();
    }

    public void receiveMessage(String message) {
        if (messages.size() == MAX_MESSAGES) {
            deleteOldestMessage();
        }
        messages.add(message);
    }

    public void deleteOldestMessage() {
        messages.remove(0);
    }

    public void displayMessages() {
        if (messages.isEmpty()) {
            System.out.println("No messages");
        } else {
            for (int i = 0; i < messages.size(); i++) {
                System.out.println("Message " + (i + 1) + ": " + messages.get(i));
            }
        }
    }

    public void readMessage(int index) {
        if (index >= 1 && index <= messages.size()) {
            System.out.println("Message " + index + ": " + messages.get(index - 1));
        } else {
            System.out.println("Invalid message index");
        }
    }

    public void deleteMessage(int index) {
        if (index >= 1 && index <= messages.size()) {
            messages.remove(index - 1);
            System.out.println("Message " + index + " deleted");
        } else {
            System.out.println("Invalid message index");
        }
    }

    public void deleteAllMessages() {
        messages.clear();
        System.out.println("All messages deleted");
    }

    public void displayMenu() {
        System.out.println("1. Receive message");
        System.out.println("2. Display messages");
        System.out.println("3. Read message");
        System.out.println("4. Delete message");
        System.out.println("5. Delete all messages");
        System.out.println("6. Exit");
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        MessageReceiver messageReceiver = new MessageReceiver();

        int choice = 0;
        while (choice != 6) {
            messageReceiver.displayMenu();
            System.out.print("Enter your choice: ");
            choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    System.out.print("Enter the message: ");
                    scanner.nextLine(); // consume the newline character
                    String message = scanner.nextLine();
                    messageReceiver.receiveMessage(message);
                    System.out.println("Message received");
                    break;
                case 2:
                    messageReceiver.displayMessages();
                    break;
                case 3:
                    System.out.print("Enter the message index: ");
                    int index = scanner.nextInt();
                    messageReceiver.readMessage(index);
                    break;
                case 4:
                    System.out.print("Enter the message index: ");
                    index = scanner.nextInt();
                    messageReceiver.deleteMessage(index);
                    break;
                case 5:
                    messageReceiver.deleteAllMessages();
                    break;
                case 6:
                    System.out.println("Exiting...");
                    break;
                default:
                    System.out.println("Invalid choice");
                    break;
            }
        }

        scanner.close();
    }
}
``
使用两种方法用Java实现模拟短消息接收和有关操作最多存储20条短消息所编写的程序应包含且不限于如下功能:①短消息接收如果短消息总数超出20条则删除最早的短消息。②短列表显示所有短消息。③阅读任意一条短消息。④	删除任意一条短消息。⑤	消除所有短消息。⑥	具有操作功能菜单。⑦	短消息发送

原文地址: https://www.cveoy.top/t/topic/hI80 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录