1)学生成绩的添加,删除,查询,修改功能; (2)使用界面操作; (3)使用文件完成。 import java.io.StringReader; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.StringTokenizer; /* * Created on 2005-1-11 */ /** * @author 让炜 * @since 1.0 * * TODO 学生成绩治理系统 * 通过学号查找,修改,删除数据 * */ public class LittleProgram { static boolean isDelete = true; static boolean isFind = true; public static void main(String [] args)//主方法,程序从这里开始运行 throws IOException,NumberNotFoundException { int choice=-1; do{ LittleProgram lp = new LittleProgram(); System.out.println(); System.out.println("\t####################################"); System.out.println(); System.out.println("\t\t Java学生成绩治理系统1.1"); System.out.println("\t\t请用学号查找,修改,删除数据"); System.out.println(); System.out.println("\t####################################\n"); System.out.print("1.增加数据:\n"+ "2.查找数据:\n"+ "3.删除数据:\n"+ "4.清除所有数据:\n"+ "5.把数据全部打印到屏幕\n"+ "6.把成绩按学号排序\n"+ "7.修改数据\n"+ "8.统计已记录成绩学生数\n"+ "9.关于作者\n"+ "0.退出程序.\n" + "输入:"); BufferedReader in = //从终 new BufferedReader( //端接 new InputStreamReader(System.in));//收数 String inputLine = in.readLine(); //字选 choice= Integer.valueOf(inputLine).intValue();//项; switch(choice) { case 1: {//1.增加数据 String str = lp.inputData(); lp.addData(str); System.out.println("增加数据成功."); timeOut(1); }break; case 2: {//2.查找数据 long find = 0; 【知识点详解】 本文将介绍如何设计和实现一个简单的学生管理系统,该系统主要处理学生成绩的添加、删除、查询和修改功能。系统采用用户界面进行交互,并利用文件存储数据。 1. **数据结构与文件存储** - 系统可能使用HashMap作为主要的数据结构来存储学生的成绩信息,其中键(key)为学号,值(value)可以是另一个类(如Student类),包含学生的姓名和其他相关信息。 - 文件存储通常用于持久化数据,防止程序关闭后数据丢失。在这个例子中,可能使用Java的IO流(如BufferedReader和StringReader)来读写文件,将HashMap序列化或反序列化到文本文件。 2. **用户界面设计** - 用户界面是系统与用户交互的桥梁。在示例中,可能使用Java Swing库创建图形用户界面(GUI),包括菜单、按钮和文本输入框等组件。 - 菜单栏(JMenuBar)包含多个菜单项(JMenuItem),如“增加数据”、“查找数据”等,用户可以通过点击这些菜单项触发相应的功能。 - 按钮(JButton)则用于执行特定的操作,如“添加数据”按钮会触发成绩的添加过程。 3. **事件监听与处理** - 在Java Swing中,可以通过实现ActionListener接口或使用匿名内部类为菜单项和按钮添加事件监听器。当用户选择一个菜单项或点击一个按钮时,对应的actionPerformed()方法会被调用,执行相应的业务逻辑。 4. **业务逻辑实现** - **添加数据**:系统需要获取用户的输入,可能通过对话框或者文本字段,然后创建新的学生对象并将其添加到HashMap中,最后更新到文件。 - **查找数据**:系统根据学号查询学生信息,这通常涉及遍历HashMap找到匹配的键值对,然后显示相关信息。 - **删除数据**:根据学号删除特定的学生记录,这可能需要从HashMap中移除相应的键值对,同时更新文件。 - **修改数据**:同样需要先找到对应的学号,然后更新其相关属性,最后保存更改到文件。 - **排序数据**:可能通过实现Comparable接口或者使用Collections.sort()方法按照学号或其他标准对HashMap中的元素进行排序。 - **统计学生数量**:计算HashMap中键的数量即可得出已记录成绩的学生数。 5. **异常处理** - 程序中使用了try-catch语句来捕获可能出现的异常,如IOException和NumberNotFoundException。这确保了即使在遇到错误时,程序也能以适当的方式处理,而不是直接崩溃。 6. **程序流程控制** - 主方法(main())中使用do-while循环来保持用户界面的持续运行,直到用户选择退出。每次循环都会显示菜单,等待用户输入,然后执行相应的操作。 7. **数据库集成** - 提供的标签中提到了SQL数据库,但主要内容没有涉及到数据库操作。在实际的系统中,可能会考虑使用数据库(如SQLite或MySQL)存储学生数据,而不是简单地使用文件。这样可以提供更高效的数据管理和检索,支持多用户并发访问。 8. **设计模式** - 虽然这个示例没有明确提及设计模式,但在构建这类应用时,可能会用到单例模式(Singleton)来管理数据库连接,工厂模式(Factory)来创建学生对象,或者策略模式(Strategy)来处理不同的数据操作策略。 这个学生管理系统展示了基础的Java GUI编程和数据管理概念,是学习和实践软件开发的良好起点。随着需求的增加,系统可以进一步扩展,如引入数据库连接、增加权限管理、优化用户界面等。
- johnny25032012-07-17资源有待丰富,对表妹的毕业设计起到了一定的作用。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 003 LVGL PC端模拟搭建-配套工程与安装包(0积分下载)
- AutoHotkey 是简易而功能强大的热键脚本语言 使用者可将键盘、鼠标甚至游戏摇杆的移动和点击动作记录下来 本仓库用于记录使用 Autohotkey 创建的代码 .zip
- Apache Maven 3.9.9
- ansible使用说明
- Python基础学习-12匿名函数lambda和map、filter
- MATLAB实现基于LP拉普拉斯映射的聚类可视化(含完整的程序和代码详解)
- MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测(多指标,多图)(含完整的程序和代码详解)
- AMI aptio 5.x BIOS状态码(POST CODE)及开机Beep声含义表(Checkpoints & Beep Codes for Debugging R2.0)
- MATLAB实现POA-CNN-LSTM鹈鹕算法优化卷积长短期记忆神经网络多输入单输出回归预测(含完整的程序和代码详解)
- Matlab实现基于RF随机森林的电力负荷预测模型(含完整的程序和代码详解)