用java写一个通知公告系统

编写一个通知公告系统可以分为几个关键步骤,让我们逐步来实现:

1. 数据模型设计

首先,我们需要设计通知公告的数据模型,一个简单的通知公告可以包括以下字段:

  • id: 公告ID
  • title: 公告标题
  • content: 公告内容
  • author: 发布者
  • datePosted: 发布日期

在 Java 中,可以创建一个 Notice 类来表示公告:

java
import java.time.LocalDate; public class Notice { private int id; private String title; private String content; private String author; private LocalDate datePosted; // 构造函数 public Notice(int id, String title, String content, String author, LocalDate datePosted) { this.id = id; this.title = title; this.content = content; this.author = author; this.datePosted = datePosted; } // Getters and setters public int getId() { return id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public LocalDate getDatePosted() { return datePosted; } public void setDatePosted(LocalDate datePosted) { this.datePosted = datePosted; } }

2. 公告管理功能

接下来,实现公告管理的基本功能,包括添加公告、查看公告列表等。

java
import java.util.ArrayList; import java.util.List; public class NoticeBoard { private List<Notice> notices; public NoticeBoard() { this.notices = new ArrayList<>(); } // 添加公告 public void addNotice(Notice notice) { notices.add(notice); } // 获取所有公告 public List<Notice> getAllNotices() { return notices; } // 获取指定ID的公告 public Notice getNoticeById(int id) { for (Notice notice : notices) { if (notice.getId() == id) { return notice; } } return null; // 如果找不到对应ID的公告 } }

3. 用户界面和交互

为了演示,我们可以创建一个简单的命令行界面来与用户交互,让他们能够添加公告、查看公告列表等。

java
import java.time.LocalDate; import java.util.Scanner; public class NoticeApp { private static NoticeBoard noticeBoard = new NoticeBoard(); private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { boolean exit = false; while (!exit) { System.out.println("1. 添加公告"); System.out.println("2. 查看所有公告"); System.out.println("3. 退出"); System.out.print("请选择操作:"); int choice = scanner.nextInt(); scanner.nextLine(); // 消耗换行符 switch (choice) { case 1: addNotice(); break; case 2: viewAllNotices(); break; case 3: exit = true; System.out.println("退出系统。"); break; default: System.out.println("无效的选项,请重新输入。"); break; } } scanner.close(); } private static void addNotice() { System.out.print("请输入公告标题:"); String title = scanner.nextLine(); System.out.print("请输入公告内容:"); String content = scanner.nextLine(); System.out.print("请输入发布者:"); String author = scanner.nextLine(); // 获取当前日期作为发布日期 LocalDate datePosted = LocalDate.now(); // 自动生成ID(可以简单地使用当前公告数量作为ID) int id = noticeBoard.getAllNotices().size() + 1; // 创建公告对象 Notice notice = new Notice(id, title, content, author, datePosted); // 添加公告到公告板 noticeBoard.addNotice(notice); System.out.println("公告添加成功!"); } private static void viewAllNotices() { System.out.println("所有公告列表:"); for (Notice notice : noticeBoard.getAllNotices()) { System.out.println("ID: " + notice.getId()); System.out.println("标题: " + notice.getTitle()); System.out.println("内容: " + notice.getContent()); System.out.println("发布者: " + notice.getAuthor()); System.out.println("发布日期: " + notice.getDatePosted()); System.out.println("--------------------------------"); } } }

4. 运行和测试

编译和运行 NoticeApp.java,然后您就可以通过命令行进行公告的添加和查看操作了。

这只是一个简单的示例,实际的应用中可能会涉及更复杂的功能,如权限管理、日期范围查询等。根据实际需求,可以进一步扩展和优化这个通知公告系统。