Java编写一个记事本小程序,实现录入记录的事件,用数据文件的方式保存每天的事情安排,实现按天查询并显示记事列表的功能,数据保存用文本文件实现

时间: 2023-08-31 12:28:23 浏览: 66
### 回答1: 这是一个简单的记事本程序的示例,实现了录入、保存和查询功能: ``` import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Scanner; public class Notebook { // 记事本数据文件的路径 private static final String DATA_FILE_PATH = "notebook.txt"; public static void main(String[] args) throws IOException { // 创建 Scanner 对象,用于读取用户输入 Scanner scanner = new Scanner(System.in); while (true) { // 显示菜单 System.out.println("1. 录入事件"); System.out.println("2. 查询事件"); System.out.println("3. 退出程序"); System.out.print("请输入选项:"); // 读取用户输入的选项 int option = scanner.nextInt(); // 根据选项执行相应的操作 switch (option) { case 1: // 录入事件 inputEvent(scanner); break; case 2: // 查询事件 queryEvent(scanner); break; case 3: // 退出程序 return; default: System.out.println("无效的选项,请重新输入。"); } } } // 录入事件 private static void inputEvent(Scanner scanner) throws IOException { // 读取用户输入的日期 System.out.print("请输入日期(格式:yyyy-MM-dd):"); String dateString = scanner.next(); // 读取用户输入的事件内容 System.out.print("请输入事件内容:"); scanner.nextLine(); // 把回车读进来 String event = scanner ### 回答2: 实现这个记事本小程序的主要步骤如下: 1. 首先,我们需要创建一个Java工程,并在其中创建一个名为"Notebook"的类。 2. 在"Notebook"类中,我们可以定义一个用于保存每天事情安排的数据结构,例如一个List对象,该对象的每个元素是一个字符串,表示当天的一条记录事件。 3. 实现录入记录的事件功能。可以在控制台上提示用户输入当天的记录事件,并将用户输入的内容添加到List对象中。 4. 保存记录的事件。可以将List对象中的内容写入一个文本文件中,以便后续查询使用。使用Java的FileWriter和BufferedWriter类来实现文件写入操作。 5. 实现按天查询并显示记事列表的功能。用户可以输入日期来查询该日期的记事列表。读取事先保存的文本文件内容,解析其中的日期和记录事件,并将符合查询条件的记录展示在控制台上。 需要注意的是,文本文件的格式可以自定义,例如每行用时间戳表示日期,后面跟着冒号和记录事件的内容。对于查询功能,可以逐行读取文本文件的内容,使用正则表达式匹配日期,找到符合查询条件的记录。 同时,需要在程序中处理异常情况,例如用户输入错误日期格式或者找不到对应的文件等等。 以上是一个简单记事本小程序的基本实现思路,具体的实现细节可以根据自己的需求进行调整和优化。根据这个思路编写代码,即可实现一个基本的记事本小程序。 ### 回答3: Java编写记事本小程序如下: 首先,创建一个名为Note的类,该类包含日期和事件描述两个属性,并提供相应的get和set方法。 ``` public class Note { private String date; private String description; public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } ``` 然后,创建一个名为NotePad的类,该类实现记事本的主要功能。 ``` import java.io.*; public class NotePad { private File dataFile; // 存储数据的文件 public NotePad(String filePath) { dataFile = new File(filePath); } public void addRecord(Note note) { try (FileWriter writer = new FileWriter(dataFile, true)) { writer.write(note.getDate() + ";" + note.getDescription() + "\n"); } catch (IOException e) { e.printStackTrace(); } } public void searchRecords(String date) { try (BufferedReader reader = new BufferedReader(new FileReader(dataFile))) { String line; while ((line = reader.readLine()) != null) { String[] record = line.split(";"); if (record[0].equals(date)) { System.out.println(record[1]); } } } catch (IOException e) { e.printStackTrace(); } } } ``` 最后,编写一个名为Main的类,该类作为程序的入口。 ``` import java.util.Scanner; public class Main { public static void main(String[] args) { NotePad notePad = new NotePad("data.txt"); Scanner scanner = new Scanner(System.in); String input; while (true) { System.out.println("请选择操作:"); System.out.println("1. 添加记录"); System.out.println("2. 按天查询记录"); System.out.println("3. 退出"); input = scanner.nextLine(); if (input.equals("1")) { System.out.println("请输入日期(格式:yyyy-MM-dd):"); String date = scanner.nextLine(); System.out.println("请输入事件描述:"); String description = scanner.nextLine(); Note note = new Note(); note.setDate(date); note.setDescription(description); notePad.addRecord(note); } else if (input.equals("2")) { System.out.println("请输入日期(格式:yyyy-MM-dd):"); String date = scanner.nextLine(); notePad.searchRecords(date); } else if (input.equals("3")) { break; } else { System.out.println("输入有误,请重新选择操作。"); } } } } ``` 使用此程序,用户可以选择添加记录、查询记录或退出程序。添加的记录会保存到名为data.txt的文本文件中,查询时会按照指定日期进行筛选并显示记录列表。

相关推荐

最新推荐

recommend-type

java记事本的设计与实现

本组课程设计的课题是“记事本的设计与实现”,设计的记事本系统应具有新建、打开、保存、剪切、复制、粘贴、查找、字体设置等基本功能,满足用户对文件的处理,文本文档的编辑和字体的设置等要求。
recommend-type

JAVA简单记事本程序设计实验报告(带源码)

JAVA简单记事本程序设计实验报告(带源码) ...4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项 文件 新建、打开、保存、退出 编辑 剪切、拷贝、粘贴、查找 帮助 关于 5.实现文件和编辑菜单里的功能
recommend-type

vb仓库管理系统(可执行程序+源码+ 开题报告+ 答辩稿)【VB】.zip

vb仓库管理系统(可执行程序+源码+ 开题报告+ 答辩稿)【VB】
recommend-type

甘胺酸市场 - 全球产业规模、份额、趋势、机会和预测,按类型、应用、地区和竞争细分,2019-2029F.docx

甘胺酸市场 - 全球产业规模、份额、趋势、机会和预测,按类型、应用、地区和竞争细分,2019-2029F
recommend-type

cryptography-37.0.1-cp36-abi3-win_amd64.whl

Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

中文翻译Introduction to Linear Algebra, 5th Edition 2.1节

中文翻译Introduction to Linear Algebra, 5th Edition 2.1节 线性代数的核心问题是求解方程组。这些方程都是线性的,即未知数仅与数相乘——我们绝不会 遇见 x 乘以 y。我们的第一个线性方程组较小。接下来你来看看它引申出多远: 两个方程 两个未知数 x − 2y = 1 3x + 2y = 11 (1) 我们一次从一个行开始。第一个方程 x − 2y = 1 得出了 xy 平面的一条直线。由于点 x = 1, y = 0 解 出该方程,因此它在这条直线上。因为 3 − 2 = 1,所以点 x = 3, y = 1 也在这条直线上。若我们选择 x = 101,那我们求出 y = 50。 这条特定直线的斜率是 12,是因为当 x 变化 2 时 y 增加 1。斜率在微积分中很重要,然而这是线 性代数! 图 2.1 将展示第一条直线 x − 2y = 1。此“行图”中的第二条直线来自第二个方程 3x + 2y = 11。你 不能错过两条线的交点 x = 3, y = 1。点 (3, 1) 位于两条线上并且解出两个方程。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

识别MATLAB微分方程求解中的混沌行为:分析非线性方程混沌行为的实用技巧

![matlab求解微分方程](https://img-blog.csdnimg.cn/2021062810300367.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTQ3OTY3OA==,size_16,color_FFFFFF,t_70) # 1. MATLAB微分方程求解概述 微分方程是描述物理、工程和金融等领域中动态系统的数学模型。MATLAB提供了强大的工具来求解微分方程,包括内置求解器和自定义函数
recommend-type

physon如何做ERP系统

作为一个AI语言模型,我可以给您提供一些基本的建议和思路: 1.明确需求和目标:在开始开发ERP系统之前,需要明确您的业务需求和目标,了解您的业务流程、流程数据、员工角色和权限、财务管理等方面的要求,这样才能更好的设计和开发ERP系统。 2.选择技术框架和开发工具:选择合适的技术框架和开发工具是ERP系统开发的关键。选择一种流行的技术框架和工具可以提高开发效率和质量。 3.设计数据库:ERP系统需要一个功能强大的数据库来存储数据。设计数据库需要考虑数据的完整性、安全性和可扩展性。 4.设计系统架构:系统架构是ERP系统的骨架,需要考虑系统的可扩展性、可维护性和性能。 5.开发和测试:
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。