Java 实现短消息接收系统:存储、显示、读取、删除和清空
一、逻辑结构:\n采用线性结构,使用数组来存储短消息,数组的长度为20。\n\n二、物理结构:\n采用顺序存储结构,使用一维数组来存储短消息。\n\n三、解决该问题的思路、方法和流程:\n1. 定义一个大小为20的一维数组,用来存储短消息;\n2. 定义一个变量count,用来记录当前已存储的短消息数量;\n3. 提供一个方法receiveMessage,用来接收短消息。当接收到短消息时,判断count是否已达到20,若已达到20,则删除最早的一条短消息,然后将新短消息添加到数组的末尾;若count未达到20,则直接将新短消息添加到数组的末尾,同时count加1;\n4. 提供一个方法showAllMessages,用来显示所有短消息。遍历数组,将数组中的短消息依次显示出来;\n5. 提供一个方法readMessage,用来阅读指定位置的短消息。输入一个位置,根据该位置在数组中找到对应的短消息,并显示出来;\n6. 提供一个方法deleteMessage,用来删除指定位置的短消息。输入一个位置,根据该位置在数组中找到对应的短消息,将其删除,并将后面的短消息向前移动一位;\n7. 提供一个方法clearAllMessages,用来清空所有短消息。将数组中的所有元素置为空,同时将count置为0;\n8. 提供一个方法showMenu,用来显示操作功能菜单。根据用户的选择,调用相应的方法;\n9. 在主函数中,通过循环显示菜单,直到用户选择退出。\n\n流程图如下:\n\n开始\n定义数组和count\n循环\n 显示菜单\n 根据用户选择调用相应的方法\n结束\n\n\n代码示例:\njava\nimport java.util.Scanner;\n\npublic class MessageSystem {\n private static final int MAX_SIZE = 20;\n private static String[] messages = new String[MAX_SIZE];\n private static int count = 0;\n\n public static void receiveMessage(String message) {\n if (count == MAX_SIZE) {\n for (int i = 0; i < MAX_SIZE - 1; i++) {\n messages[i] = messages[i + 1];\n }\n count--;\n }\n messages[count] = message;\n count++;\n }\n\n public static void showAllMessages() {\n for (int i = 0; i < count; i++) {\n System.out.println("短消息" + (i + 1) + ": " + messages[i]);\n }\n }\n\n public static void readMessage(int position) {\n if (position < 1 || position > count) {\n System.out.println("位置无效");\n } else {\n System.out.println("短消息" + position + ": " + messages[position - 1]);\n }\n }\n\n public static void deleteMessage(int position) {\n if (position < 1 || position > count) {\n System.out.println("位置无效");\n } else {\n for (int i = position - 1; i < count - 1; i++) {\n messages[i] = messages[i + 1];\n }\n count--;\n }\n }\n\n public static void clearAllMessages() {\n for (int i = 0; i < count; i++) {\n messages[i] = null;\n }\n count = 0;\n }\n\n public static void showMenu() {\n System.out.println("请选择操作:");\n System.out.println("1. 接收短消息");\n System.out.println("2. 显示所有短消息");\n System.out.println("3. 阅读短消息");\n System.out.println("4. 删除短消息");\n System.out.println("5. 清空所有短消息");\n System.out.println("6. 退出");\n }\n\n public static void main(String[] args) {\n Scanner scanner = new Scanner(System.in);\n int choice;\n do {\n showMenu();\n choice = scanner.nextInt();\n switch (choice) {\n case 1:\n System.out.println("请输入短消息内容:");\n String message = scanner.next();\n receiveMessage(message);\n break;\n case 2:\n showAllMessages();\n break;\n case 3:\n System.out.println("请输入要阅读的短消息位置:");\n int position = scanner.nextInt();\n readMessage(position);\n break;\n case 4:\n System.out.println("请输入要删除的短消息位置:");\n int deletePosition = scanner.nextInt();\n deleteMessage(deletePosition);\n break;\n case 5:\n clearAllMessages();\n break;\n case 6:\n System.out.println("退出程序");\n break;\n default:\n System.out.println("无效选择");\n }\n } while (choice != 6);\n }\n}\n
原文地址: https://www.cveoy.top/t/topic/pvn9 著作权归作者所有。请勿转载和采集!