JAVA 简单学生管理系统的增删改查

  在我们学习JAVA时,增删改查是很重要的环节,以下是用学生管理系统为例,简单的运用增删改查,并用BufferedReader和BufferedWriter类对数据进行读取和存储;

面对这个问题,我们可以分为两个类,一个学生类和学生管理系统类;

首先我们要定义学生类,学号,姓名,年龄,家庭地址;

package studentManager1;

public class student {
private String id;
private String name;
private String age;
private String adrss;
public student() {
	super();
	// TODO Auto-generated constructor stub
}

public student(String id, String name, String age, String adrss) {
	super();
	this.id = id;
	this.name = name;
	this.age = age;
	this.adrss = adrss;
} 

public String getid() {
	return id;
}
public void setid(String id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getAge() {
	return age;
}
public void setAge(String age) {
	this.age = age;
}
public String getAdrss() {
	return adrss;
}
public void setAdrss(String adrss) {
	this.adrss = adrss;
}

}

接下来学生管理系统类,分为主界面,数据读入,数据写入,增删改查的一些方法;

先是主界面;

public class studentManager {
public static void main(String[] args) throws IOException {
	String Filename="bw4.txt";
	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,退出");
	System.out.println("请选择你要进行得操作");
	Scanner sc=new Scanner(System.in);
	String choicstring=sc.nextLine();
	switch(choicstring) {    //运用switch语句进行选择
	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);
		break;
		}
	
	}
}

剩下就是对方法的完善,在写增删改查方法之前我们要先写ReaderDate和WriterDate方法对文件中的数据进行读取和存储;

public static void readDate(String Filename,ArrayList<student> array) throws IOException {
	BufferedReader br=new BufferedReader(new FileReader(Filename));//运用BufferedReader来对文件中的数据进行读取
	String line;
	while((line=br.readLine())!=null) {
		String[] strarray=line.split(",");
		student s=new student();
		s.setid(strarray[0]);
		s.setName(strarray[1]);
		s.setAge(strarray[2]);
		s.setAdrss(strarray[3]);
		array.add(s);
	}
	br.close();
}
public static void writerDate(String Filename,ArrayList<student> array) throws IOException {
	BufferedWriter bw=new BufferedWriter(new FileWriter(Filename));//运用BufferedWriter对数据进行写入文件
	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.getAge()).append(",").append(s.getAdrss());
		bw.write(sb.toString());
		bw.newLine();
		bw.flush();
	}
	bw.close();
}

 写完这两个方法我们就可以对增删改查方法进行编写;

以下就是我们完整的学生管理类,可以对数据进行简单的增删改查;

package studentManager1;

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;
//简单的学生管理系统的增删改查
public class studentManager {
public static void main(String[] args) throws IOException {
	String Filename="bw4.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 choicstring=sc.nextLine();
	switch(choicstring) {    //运用switch语句进行选择
	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);
		break;
		}
	
	}
}

public static void readDate(String Filename,ArrayList<student> array) throws IOException {
	BufferedReader br=new BufferedReader(new FileReader(Filename));//运用BufferedReader来对文件中的数据进行读取
	String line;
	while((line=br.readLine())!=null) {
		String[] strarray=line.split(",");
		student s=new student();
		s.setid(strarray[0]);
		s.setName(strarray[1]);
		s.setAge(strarray[2]);
		s.setAdrss(strarray[3]);
		array.add(s);
	}
	br.close();
}
public static void writerDate(String Filename,ArrayList<student> array) throws IOException {
	BufferedWriter bw=new BufferedWriter(new FileWriter(Filename));//运用BufferedWriter对数据进行写入文件
	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.getAge()).append(",").append(s.getAdrss());
		bw.write(sb.toString());
		bw.newLine();
		bw.flush();
	}
	bw.close();
}

private static void updatestudent(String Filename) throws IOException {
	// TODO Auto-generated method stub
	ArrayList<student> array=new ArrayList<>();//对数据进行修改的方法
	readDate(Filename,array);
	System.out.println("请输入想要修改学生得学号:");
	Scanner in=new Scanner(System.in);
	String id=in.nextLine();
	int index=-1;
	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 {
			student s=new student();
			System.out.println("请修改学号:");
			id=in.nextLine();
			s.setid(id);
			System.out.println("请修改姓名:");
			String name=in.nextLine();
			s.setName(name);
			System.out.println("请修改年龄:");
			String age=in.nextLine();
			s.setAge(age);
			System.out.println("请修改地址:");
			String adrss=in.nextLine();
			s.setAdrss(adrss);
			array.set(index, s);
			writerDate(Filename, array);
			System.out.println("修改成功!");
		}	
}

private static void addstudent(String Filename) throws IOException {
	// TODO Auto-generated method stub
	ArrayList<student> array=new ArrayList<>();//添加数据的方法
	readDate(Filename,array);
	Scanner in=new Scanner(System.in);
	String id;
	while(true) {
	System.out.println("请输入学号:");
	 id=in.nextLine();
	boolean flag=false;
	for(int i=0;i<array.size();i++) {
		student s1=array.get(i);
		if(s1.getid().equals(id)) {
			flag=true;
		}
	}
	if(flag) {
		System.out.println("你输入得学号已经存在,请重新输入:");
	}else {
		break;
	}
}
	System.out.println("请输入姓名:");
	String name=in.nextLine();
	System.out.println("请输入年龄:");
	String age=in.nextLine();
	System.out.println("请输入学生地址:");
	String adrss=in.nextLine();
	student s=new student(id,name,age,adrss);
	array.add(s); 
	writerDate(Filename, array);
	System.out.println("添加学生成功!");
}	


private static void deletestudent(String Filename) throws IOException {
	// TODO Auto-generated method stub
	ArrayList<student> array=new ArrayList<>();//删除数据的方法
	readDate(Filename,array);
	System.out.println("请输入你想要删除得学号:");
	Scanner in=new Scanner(System.in);
	String id=in.nextLine();
	int index=-1;
	for(int i=0;i<array.size();i++) {
		student s=array.get(i);
		if(s.getid().equals(id)) {
			index=i;
			break;
		}
	}
	if(index==-1) {
		System.out.println("对不起,没有此学号!");
	}else {
		array.remove(index);
		writerDate(Filename, array);
		System.out.println("删除学生成功!");
		}
}

private static void findAllstudent(String Filename) throws IOException {
	// TODO Auto-generated method stub
	ArrayList<student> array=new ArrayList<>();//查找数据的方法
	readDate(Filename, array);
	if(array.size()==0) {
		System.out.println("对不起,现在没有学生数据可查询!");
		return;
	}
	System.out.println("学号\t\t姓名\t年龄\t地址");
	for(int i=0;i<array.size();i++) {
		student s=array.get(i);
		System.out.println(s.getid()+"\t\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAdrss());
	}
  }
}

猜你喜欢

转载自blog.csdn.net/weixin_41946004/article/details/86707201