学生管理系统--实现了系统的增删改查~

时间:2022-01-20 21:37:23
使用简单的方式,实现控制台输出学生管理系统的增删改查,其中使用到了简单的IO流知识.
 
 import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Scanner; /* * /* * 这是我的学生管理系统的主类 *  * 步骤如下: * A:定义学生类 * B:学生管理系统的主界面的代码编写 * C:学生管理系统的查看所有学生的代码编写 * D:学生管理系统的添加学生的代码编写 * E:学生管理系统的删除学生的代码编写 * F:学生管理系统的修改学生的代码编写 */public class StudentManager {    public static void main(String[] args) throws IOException {        String fileName="student.txt";                 while(true){            //这是学生管理系统的主界面            System.out.println("--------欢迎来到学生管理系统--------");            System.out.println("1 查看所有学生");            System.out.println("2 添加学生");            System.out.println("3 删除学生");            System.out.println("4 修改学生");            System.out.println("5 退出");            System.out.println("请输入你的选择:");            //创建键盘录入对象            Scanner sc = new Scanner(System.in);            String choiceString = sc.nextLine();            //用switch语句实现选择            switch(choiceString) {            case "1":                //查看所有学生                findAllStudent(fileName);                break;            case "2":                //添加学生                addStudent(fileName);                break;            case "3":                //删除学生                deleteStudent(fileName);                break;            case "4":                //修改学生                updateStudent(fileName);                break;            case "5":            default:                System.out.println("谢谢你的使用");                System.exit(0); //JVM退出                break;            }         }    }         //从文件读取数据到存储到集合    public static void readData(String fileName, ArrayList<Student> array) throws IOException{        //创建输入缓冲流对象        BufferedReader br=new BufferedReader(new FileReader(fileName));                 String line;        //获得每一行的字符串,赋值给line        while((line=br.readLine())!=null){            //截取字符数组            String [] str=line.split(",");            //创建学生对象接收数据            Student s=new Student();            s.setId(str[0]);            s.setName(str[1]);            s.setAge(str[2]);            s.setAdress(str[3]);            //将获取到的数据存储到集合中            array.add(s);        }        br.close();    }         //把集合中的数据存储到文件中    public static void writeData(String fileName, ArrayList<Student> array) throws IOException{        //创建输出缓冲流对象        BufferedWriter bw=new BufferedWriter(new FileWriter(fileName));        //遍历集合,获取到数据        for(int x=0;x<array.size();x++){            //将集合中的每一行数据赋值给学生对象            Student s=array.get(x);                         //创建StringBuilder对象用来拼接字符串            StringBuilder sb= new StringBuilder();            sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAdress());            //写入文件中            bw.write(sb.toString());            bw.newLine();            bw.flush();        }            bw.close();    }         //查看所有学生的代码编写    public static void findAllStudent(String fileName) throws IOException{        //首先创建集合对象        ArrayList<Student> array=new ArrayList<>();        //获取到学生信息        readData(fileName,array);                 //判断是否有数据        if(array.size()==0){            System.out.println("当前没有学生信息,请重新您的选择");            return;        }        System.out.println("学号\t\t姓名\t年龄\t地址");        //遍历集合获取数据        for(int x=0;x<array.size();x++){            //定义学生对象,用来存储学生信息            Student s=array.get(x);            System.out.println(s.getId()+"\t\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAdress());        }                      }         //添加学生代码编码    public static void addStudent(String fileName) throws IOException{        //创建集合对象        ArrayList<Student> array=new ArrayList<>();        //从文件中读取数据        readData(fileName, array);        //创建键盘录入对象        Scanner sc= new Scanner(System.in);        //定义字符串类型的id,后面也需要使用,所以定义到循环外面        String id;        while(true){            System.out.println("请输入新的学生学号:");            id=sc.nextLine();            //定义布尔那类型的变量,用来判断            boolean flag=false;                         //判断学号是否存在            //遍历集合获取元素            for(int x=0;x<array.size();x++){                //定义学生对象,获取到每一个学生                Student s=array.get(x);                //判断这个输入的id在学生对象中是否存在                if(s.getId().equals(id)){                    flag=true;                    break;//跳出for循环                }            }            if(flag){                System.out.println("学号已存在,请重新您的选择:");            }else{                break;            }        }        System.out.println("请输入新的姓名:");        String name=sc.nextLine();        System.out.println("请输入新的年龄:");        String age=sc.nextLine();        System.out.println("请输入新的地址:");        String address=sc.nextLine();                 //创建学生对象存储输入的信息        Student s=new Student();        s.setId(id);        s.setName(name);        s.setAge(age);        s.setAdress(address);                 //将学生对象存储到集合        array.add(s);        //将集合中的重新存储到文件中        writeData(fileName, array);        System.out.println("添加成功!");    }         //删除学生代码的编写    public static void deleteStudent(String fileName) throws IOException{        //首先定义一个集合        ArrayList<Student> array=new ArrayList<>();        //读取出学生信息        readData(fileName, array);                 while(true){        //创建键盘录入对象        Scanner sc=new Scanner(System.in);        System.out.println("请输入您要删除的学号:");        String id=sc.nextLine();        //定义一个索引            int index=-1;                         //遍历集合获取到元素            for(int x=0;x<array.size();x++){                Student s=array.get(x);                if(s.getId().equals(id)){                    index=x;                    break;                }            }            if(index==-1){                System.out.println("您所需要删除的学员信息不存在,请重新您的选择!");            }else{                array.remove(index);                //把集合中的文件重新写回到文件                writeData(fileName, array);                System.out.println("删除学生成功!");                break;            }                 }         }         //修改学生代码的编写    public static void updateStudent(String fileName) throws IOException{        //创建集合对象        ArrayList<Student> array=new ArrayList<>();        //读取文件        readData(fileName, array);        //定义索引        int index=-1;        //创建键盘输入对象        Scanner sc=new Scanner(System.in);        String id;                 while(true){        System.out.println("请输入您要修改的学生ID:");            id=sc.nextLine();        //遍历集合获取元素        for(int x=0;x<array.size();x++){            Student s=array.get(x);            if(s.getId().equals(id)){                index=x;                break;            }           }                          if(index==-1){            System.out.println("您输入的不存在,请重新您的选择!");        }else{            System.out.println("请输入新的姓名:");            String name=sc.nextLine();            System.out.println("请输入新的年龄:");            String age=sc.nextLine();            System.out.println("请输入新的地址:");            String address=sc.nextLine();                         //创建学生对象            Student s=new Student();            s.setId(id);            s.setName(name);            s.setAge(age);            s.setAdress(address);                         //修改集合中的学生对象            array.set(index, s);            //将集合写入到文件中            writeData(fileName, array);            //给出提示            System.out.println("修改成功!");            break;        }    }} }