?博客首页:痛而不言笑而不语的浅伤
?欢迎关注?点赞 ? 收藏 ⭐留言 ? 欢迎讨论!
?本文由痛而不言笑而不语的浅伤原创,CSDN首发!
?系列专栏:《Java每日一练》
?首发时间:2022年6月4日
❤:热爱Java学习,期待一起交流!
??作者水平有限,如果发现错误,求告知,多谢!
?有问题可以私信交流!!!
目录
运行展示
界面初始化
查看所有学生
添加学生
删除学生
修改学生
退出系统
完整源代码
* 标准的IO版学生管理系统
*
* * 分析:
* 1.定义学生类
* 2.学生管理系统主界面的代码编写
* 3.学生管理系统的查看所有学生的代码编写
* 4.学生管理系统的添加学生的代码编写
* 5.学生管理系统的删除学生的代码编写
* 6.学生管理系统的修改学生的代码编写
其实挺简单的,就最基本的Java基础语法部分。很适合初学者练习。其实主要从Java面向对象和IO流的一个熟练掌握。最后是转换成jar文件,通过软件弄成了.exe的文件。执行exe文件就是如下运行结果。数据的保存是在同目录下的TXT文件,需要注意的是TXT文件和可执行的exe文件一定要放在同一文件夹内,不然会报错。
运行展示
界面初始化
public class StudentManagerTest_IO {public static void main(String[] args) throws Exception {File f1 = new File("G:\\学生管理系统\\Student1.txt");// 创建持久相对路劲String findName = f1.getName();// 学生管理系统主界面的代码编写// 死循环执行程序while (true) {System.out.println("----------欢迎使用老马教育学生管理系统----------");System.out.println("请输入你要执行的操作:");System.out.println("1 查看所有学生");System.out.println("2 添加学生");System.out.println("3 删除学生");System.out.println("4 修改学生");System.out.println("5 退出系统");
查看所有学生
// 学生管理系统的查看所有学生的代码编写public static void findAllStudent(String findName) throws Exception {// 创建集合对象存储学生数据ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 遍历集合到输出控制台// 首先判断集合中是否有数据if (array.size() == 0) {System.out.println("不好意思,目前没有学生信息可供查询,请重新你的选择!");} else {System.out.println("所有学生信息如下:");System.out.println("|-------|-------|-------|-------|");System.out.println("|" + "学号" + "\t" + "|" + "姓名" + "\t" + "|" + "年龄" + "\t" + "|" + "地址" + "\t" + "|");System.out.println("|-------|-------|-------|-------|");for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println("|" + s.getId() + "\t" + "|" + s.getName() + "\t" + "|" + s.getAges() + "\t" + "|"+ s.getAddress() + "\t" + "|");System.out.println("|-------|-------|-------|-------|");}System.out.println();System.out.println();}}
添加学生
// 学生管理系统的添加学生的代码编写public static void addStudent(String findName) throws Exception {// 创建存储数据的集合对象ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 创建键盘录入对象Scanner sc = new Scanner(System.in);String id;// 判断该学号是否已被占用while (true) {// 定义标记boolean flag = false;// 添加学号System.out.println("请您输入要添加的学生学号:");id = sc.nextLine();for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getId().equals(id)) {flag = true;break;}}if (flag) {System.out.println("不好意思,你输入的学号已被占用,请你重新你的选择:");break;} else {// 添加姓名System.out.println("请您输入学生姓名:");String name = sc.nextLine();System.out.println("请您输入学生年龄:");String ages = sc.nextLine();System.out.println("请您输入学生居住地址:");String address = sc.nextLine();// 创建学生对象Student s = new Student();s.setId(id);s.setName(name);s.setAges(ages);s.setAddress(address);// 把学生对象作为元素添加到集合中array.add(s);// 调用写数据方法writerData(findName, array);// 添加成功的提示语System.out.println("添加学生信息成功!");break;}}}
删除学生
// 学生管理系统的删除学生的代码编写public static void deleteStudent(String findName) throws Exception {// 创建学生数据存储的空集合ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 创建键盘录入对象Scanner sc = new Scanner(System.in);// 定义标记int index = -1;// 定义学号变量String id;// 删除学生信息// 数据要删除学生信息的学生学号System.out.println("请您输入要删除学生信息的学生学号:");id = sc.nextLine();for (int i = 0; i < array.size(); i++) {Student s = array.get(i);// 判断是否有要删除的这个学号if (s.getId().equalsIgnoreCase(id)) {index = i;break;}}if (index == -1) {System.out.println("您想要删除的学生信息不存在,请重新您的选择!");} else {array.remove(index);// 调用写文件方法writerData(findName, array);// 提示语System.out.println("删除学生信息成功!");}}
修改学生
// 学生管理系统的修改学生的代码编写public static void alterStudent(String findName) throws Exception {// 创建存储学生数据的空集合ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 创建键盘录入对象Scanner sc = new Scanner(System.in);// 定义标记int index = -1;// 定义学生学号变量String id;// 输入学号判断while (true) {// 输入学号System.out.println("请您输入想要修改学生信息的学号:");id = sc.nextLine();for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getId().equals(id)) {index = i;}}if (index == -1) {System.out.println("您想要修改的学生信息不存在,请您重新输入学号:");} else {// 修改姓名System.out.println("请您输入学生姓名:");String name = sc.nextLine();// 修改年龄System.out.println("请您输入学生年龄:");String ages = sc.nextLine();// 修改居住地址System.out.println("请您输入居住地址:");String address = sc.nextLine();// 创建学生对象Student s = new Student();s.setId(id);s.setName(name);s.setAges(ages);s.setAddress(address);// 添加到集合array.set(index, s);// 调用写文件方法writerData(findName, array);// 提示语System.out.println("修改学生信息成功!");break;}}}}
退出系统
// 退出系统System.out.println("感谢您的使用,辛苦了!");System.exit(0);break;
完整源代码
package com.laoma_02;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Scanner;/* * 标准的IO版学生管理系统 * * * 分析: * 1.定义学生类 * 2.学生管理系统主界面的代码编写 * 3.学生管理系统的查看所有学生的代码编写 * 4.学生管理系统的添加学生的代码编写 * 5.学生管理系统的删除学生的代码编写 * 6.学生管理系统的修改学生的代码编写 * * */public class StudentManagerTest_IO {public static void main(String[] args) throws Exception {File f1 = new File("G:\\学生管理系统\\Student1.txt");// 创建持久相对路劲String findName = f1.getName();// 学生管理系统主界面的代码编写// 死循环执行程序while (true) {System.out.println("----------欢迎使用老马教育学生管理系统----------");System.out.println("请输入你要执行的操作:");System.out.println("1 查看所有学生");System.out.println("2 添加学生");System.out.println("3 删除学生");System.out.println("4 修改学生");System.out.println("5 退出系统");// 创建键盘录入对象Scanner sc = new Scanner(System.in);// 输入所匹配的序号并执行操作String option = sc.nextLine();switch (option) {case "1":// 查看所有学生信息findAllStudent(findName);break;case "2":// 添加学生信息addStudent(findName);break;case "3":// 删除学生信息deleteStudent(findName);break;case "4":// 修改学生信息alterStudent(findName);break;case "5":// 退出系统System.out.println("感谢您的使用,辛苦了!");System.exit(0);break;default:System.out.println("您输入的选择不存在,请您重新输入!");break;}}}// 把文件中的数据读到集合中public static void readData(String findName, ArrayList<Student> array) throws Exception {// 创建输入缓冲流对象BufferedReader br = new BufferedReader(new FileReader(findName));// 创建数组读取文本文件数据并按照执行格式分割,然后把读取的数据作为元素存储到集合,最后遍历集合到输出控制台// 定义索引String line;while ((line = br.readLine()) != null) {// 读取文本文件数据并按照执行格式分割String[] strArray = line.split(",");// 创建学生对象Student s = new Student();s.setId(strArray[0]);s.setName(strArray[1]);s.setAges(strArray[2]);s.setAddress(strArray[3]);// 把读取的数据作为元素存储到集合array.add(s);}// 释放资源你br.close();}// 把集合中的数据写入文件中public static void writerData(String findName, ArrayList<Student> array) throws Exception {// 创建输出缓冲流对象BufferedWriter bw = new BufferedWriter(new FileWriter(findName));for (int i = 0; i < array.size(); i++) {Student s = array.get(i);StringBuilder sb = new StringBuilder();sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAges()).append(",").append(s.getAddress());bw.write(sb.toString());bw.newLine();bw.flush();}// 释放资源bw.close();}// 学生管理系统的查看所有学生的代码编写public static void findAllStudent(String findName) throws Exception {// 创建集合对象存储学生数据ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 遍历集合到输出控制台// 首先判断集合中是否有数据if (array.size() == 0) {System.out.println("不好意思,目前没有学生信息可供查询,请重新你的选择!");} else {System.out.println("所有学生信息如下:");System.out.println("|-------|-------|-------|-------|");System.out.println("|" + "学号" + "\t" + "|" + "姓名" + "\t" + "|" + "年龄" + "\t" + "|" + "地址" + "\t" + "|");System.out.println("|-------|-------|-------|-------|");for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println("|" + s.getId() + "\t" + "|" + s.getName() + "\t" + "|" + s.getAges() + "\t" + "|"+ s.getAddress() + "\t" + "|");System.out.println("|-------|-------|-------|-------|");}System.out.println();System.out.println();}}// 学生管理系统的添加学生的代码编写public static void addStudent(String findName) throws Exception {// 创建存储数据的集合对象ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 创建键盘录入对象Scanner sc = new Scanner(System.in);String id;// 判断该学号是否已被占用while (true) {// 定义标记boolean flag = false;// 添加学号System.out.println("请您输入要添加的学生学号:");id = sc.nextLine();for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getId().equals(id)) {flag = true;break;}}if (flag) {System.out.println("不好意思,你输入的学号已被占用,请你重新你的选择:");break;} else {// 添加姓名System.out.println("请您输入学生姓名:");String name = sc.nextLine();System.out.println("请您输入学生年龄:");String ages = sc.nextLine();System.out.println("请您输入学生居住地址:");String address = sc.nextLine();// 创建学生对象Student s = new Student();s.setId(id);s.setName(name);s.setAges(ages);s.setAddress(address);// 把学生对象作为元素添加到集合中array.add(s);// 调用写数据方法writerData(findName, array);// 添加成功的提示语System.out.println("添加学生信息成功!");break;}}}// 学生管理系统的删除学生的代码编写public static void deleteStudent(String findName) throws Exception {// 创建学生数据存储的空集合ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 创建键盘录入对象Scanner sc = new Scanner(System.in);// 定义标记int index = -1;// 定义学号变量String id;// 删除学生信息// 数据要删除学生信息的学生学号System.out.println("请您输入要删除学生信息的学生学号:");id = sc.nextLine();for (int i = 0; i < array.size(); i++) {Student s = array.get(i);// 判断是否有要删除的这个学号if (s.getId().equalsIgnoreCase(id)) {index = i;break;}}if (index == -1) {System.out.println("您想要删除的学生信息不存在,请重新您的选择!");} else {array.remove(index);// 调用写文件方法writerData(findName, array);// 提示语System.out.println("删除学生信息成功!");}}// 学生管理系统的修改学生的代码编写public static void alterStudent(String findName) throws Exception {// 创建存储学生数据的空集合ArrayList<Student> array = new ArrayList<Student>();// 调用读数据方法readData(findName, array);// 创建键盘录入对象Scanner sc = new Scanner(System.in);// 定义标记int index = -1;// 定义学生学号变量String id;// 输入学号判断while (true) {// 输入学号System.out.println("请您输入想要修改学生信息的学号:");id = sc.nextLine();for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getId().equals(id)) {index = i;}}if (index == -1) {System.out.println("您想要修改的学生信息不存在,请您重新输入学号:");} else {// 修改姓名System.out.println("请您输入学生姓名:");String name = sc.nextLine();// 修改年龄System.out.println("请您输入学生年龄:");String ages = sc.nextLine();// 修改居住地址System.out.println("请您输入居住地址:");String address = sc.nextLine();// 创建学生对象Student s = new Student();s.setId(id);s.setName(name);s.setAges(ages);s.setAddress(address);// 添加到集合array.set(index, s);// 调用写文件方法writerData(findName, array);// 提示语System.out.println("修改学生信息成功!");break;}}}}
最后呢?文章到这里就结束啦,你们学废了吗?
好啦!今天的练习就到这里。看吧这么努力的你又学到了很多,新的一天加油鸭!!!
你的点赞是对我最大的鼓励。
你的收藏是对我文章的认可。
你的关注是对我创作的动力。