使用两种方法用Java实现模拟短消息接收和有关操作最多存储20条短消息所编写的程序应包含且不限于如下功能:①短消息接收如果短消息总数超出20条则删除最早的短消息。②短列表显示所有短消息。③阅读任意一条短消息。④ 删除任意一条短消息。⑤ 消除所有短消息。⑥ 具有操作功能菜单。⑦ 短消息发送
第一种方法:使用数组实现
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();
}
}
``
原文地址: https://www.cveoy.top/t/topic/hI80 著作权归作者所有。请勿转载和采集!