短消息发送 java 数据结构

短消息发送和短消息接收有关操作,最多存储20条短消息,所编写的程序应包含且不限于如下功能
1短消息发送
2短消息接收,如果短消息总数超出20条,则删除最早的短消息。
3短列表显示所有短消息。
4阅读任意一条短消息。
5删除任意一条短消息。
6消除所有短消息。
7具有操作功能菜单。
(采用什么逻辑结构和存储结构)求标明

每个短消息可以通过一个自定义的类来表示,该类包含发送者、接收者、内容等属性。使用线性结构来存储短消息列表,例如使用队列(Queue)或链表(LinkedList)。

下面是一个简单的伪代码:

import java.util.LinkedList;
import java.util.Queue;

class ShortMessage {
    private String sender;
    private String receiver;
    private String content;

    public ShortMessage(String sender, String receiver, String content) {
        this.sender = sender;
        this.receiver = receiver;
        this.content = content;
    }

    // Getter and setter methods

    public String getSender() {
        return sender;
    }

    public void setSender(String sender) {
        this.sender = sender;
    }

    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

public class MessageSystem {
    private Queue<ShortMessage> messageQueue;

    public MessageSystem() {
        messageQueue = new LinkedList<>();
    }

    public void sendMessage(ShortMessage message) {
        if (messageQueue.size() >= 20) {
            messageQueue.poll(); // 删除最早的短消息
        }
        messageQueue.offer(message);
    }

    public void displayAllMessages() {
        System.out.println("===== Short Message List =====");
        for (ShortMessage message : messageQueue) {
            System.out.println("Sender: " + message.getSender());
            System.out.println("Receiver: " + message.getReceiver());
            System.out.println("Content: " + message.getContent());
        }
    }

    public void readMessage(int index) {
        if (index >= 0 && index < messageQueue.size()) {
            ShortMessage message = ((LinkedList<ShortMessage>) messageQueue).get(index);
            System.out.println("===== Message Details =====");
            System.out.println("Sender: " + message.getSender());
            System.out.println("Receiver: " + message.getReceiver());
            System.out.println("Content: " + message.getContent());
        } else {
            System.out.println("Invalid message index!");
        }
    }

    public void deleteMessage(int index) {
        if (index >= 0 && index < messageQueue.size()) {
            ((LinkedList<ShortMessage>) messageQueue).remove(index);
            System.out.println("Message deleted successfully.");
        } else {
            System.out.println("Invalid message index!");
        }
    }

    public void clearAllMessages() {
        messageQueue.clear();
        System.out.println("All messages cleared.");
    }

    public static void main(String[] args) {
        // 创建 MessageSystem 对象并执行相关操作
        MessageSystem messageSystem = new MessageSystem();

        // 发送短消息
        ShortMessage message1 = new ShortMessage("User1", "User2", "Hello!");
        messageSystem.sendMessage(message1);

        // 显示所有短消息
        messageSystem.displayAllMessages();

        // 阅读指定消息
        messageSystem.readMessage(0);

        // 删除指定消息
        messageSystem.deleteMessage(0);

        // 清空所有短消息
        messageSystem.clearAllMessages();
    }
}

首先定义一个 class SMS,包括日期、发送者、接收者、消息正文。
可以用 LinkList 存储。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/373087
  • 这篇博客也不错, 你可以看下java反射,反射常用方法,获取类模板,通过类模板对象创建实体对象,类中未定义有参或无参构造器的情况下创建对象,不调用方法尝试给一个类的私有属性赋值,通过反射获取一个类的父类并获取它实现的接口
  • 你还可以看下java参考手册中的 java-二维图形 - 如何在应用程序中显示和打印二维图形。-打印》教你如何向打印机渲染二维图形,打印复杂的文件,以及使用打印服务。-打印多页文件
  • 您还可以看一下 汪翠老师的java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码课程中的 接收从服务器端群发回来的消息并添加地主牌小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    为了实现这个程序,我会采用Java的面向对象编程思想,使用逻辑结构和存储结构来实现。

    逻辑结构: 1. 创建一个Message类,用于表示短消息的属性和行为。 2. 创建一个MessageSender类,用于发送短消息。 3. 创建一个MessageReceiver类,用于接收和管理短消息。 4. 创建一个MessageList类,用于存储最多20条短消息。

    存储结构: 1. 使用一个数组来存储短消息列表,在MessageList类中定义一个长度为20的数组来实现。 2. 每当发送一条短消息时,将其添加到数组中。 3. 当数组已满时,删除最早的短消息,即删除数组中的第一个元素。

    具体实现如下:

    1. 创建Message类来表示短消息:
    public class Message {
        private String content;
    
        public Message(String content) {
            this.content = content;
        }
    
        public String getContent() {
            return content;
        }
    }
    
    1. 创建MessageSender类来发送短消息:
    public class MessageSender {
        public void sendMessage(String content, MessageList messageList) {
            messageList.addMessage(new Message(content));
        }
    }
    
    1. 创建MessageReceiver类来接收和管理短消息:
    public class MessageReceiver {
        public void receiveMessage(MessageList messageList) {
            messageList.displayMessages();
        }
    
        public void readMessage(int index, MessageList messageList) {
            messageList.getMessage(index).getContent();
        }
    
        public void deleteMessage(int index, MessageList messageList) {
            messageList.deleteMessage(index);
        }
    
        public void deleteAllMessages(MessageList messageList) {
            messageList.clearMessages();
        }
    }
    
    1. 创建MessageList类来存储短消息:
    public class MessageList {
        private Message[] messages;
        private int count;
    
        public MessageList() {
            messages = new Message[20];
            count = 0;
        }
    
        public void addMessage(Message message) {
            if (count < 20) {
                messages[count] = message;
                count++;
            } else {
                deleteMessage(0);
                addMessage(message);
            }
        }
    
        public Message getMessage(int index) {
            if (index >= 0 && index < count) {
                return messages[index];
            }
            return null;
        }
    
        public void deleteMessage(int index) {
            if (index >= 0 && index < count) {
                for (int i = index; i < count - 1; i++) {
                    messages[i] = messages[i + 1];
                }
                messages[count - 1] = null;
                count--;
            }
        }
    
        public void clearMessages() {
            messages = new Message[20];
            count = 0;
        }
    
        public void displayMessages() {
            for (int i = 0; i < count; i++) {
                System.out.println("消息" + (i + 1) + ": " + messages[i].getContent());
            }
        }
    }
    

    以上就是我的解决方案,实现了具体要求中的所有功能,并使用了逻辑结构和存储结构来实现。在程序中,通过创建相应的对象来实现发送、接收、删除和显示短消息的功能,同时通过数组来存储短消息列表,并根据需求对数组进行操作。如果需要实现用户界面,可以在相应的类中添加对应的方法来实现。