短消息发送和短消息接收有关操作,最多存储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 存储。
为了实现这个程序,我会采用Java的面向对象编程思想,使用逻辑结构和存储结构来实现。
逻辑结构: 1. 创建一个Message类,用于表示短消息的属性和行为。 2. 创建一个MessageSender类,用于发送短消息。 3. 创建一个MessageReceiver类,用于接收和管理短消息。 4. 创建一个MessageList类,用于存储最多20条短消息。
存储结构: 1. 使用一个数组来存储短消息列表,在MessageList类中定义一个长度为20的数组来实现。 2. 每当发送一条短消息时,将其添加到数组中。 3. 当数组已满时,删除最早的短消息,即删除数组中的第一个元素。
具体实现如下:
public class Message {
private String content;
public Message(String content) {
this.content = content;
}
public String getContent() {
return content;
}
}
public class MessageSender {
public void sendMessage(String content, MessageList messageList) {
messageList.addMessage(new Message(content));
}
}
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();
}
}
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());
}
}
}
以上就是我的解决方案,实现了具体要求中的所有功能,并使用了逻辑结构和存储结构来实现。在程序中,通过创建相应的对象来实现发送、接收、删除和显示短消息的功能,同时通过数组来存储短消息列表,并根据需求对数组进行操作。如果需要实现用户界面,可以在相应的类中添加对应的方法来实现。