概述
自写IO流实现学生管理系统
主类
public class StudentDemo {
public static void main(String[] args) throws IOException{
String path ="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("");
System.out.println("请输入你的选择");
Scanner s=new Scanner(System.in);
String choice=s.nextLine();
switch(choice){
case "1":
SelectStudent.selectStudent(path);
break;
case "2":
AddStudent.addStudent(path);
break;
case "3":
DeleteStudent.deleteStudent(path);
break;
case "4":
UpdateStudent.updateStudent(path);
break;
case "5":
default:
System.out.println("谢谢您的使用!");
System.exit(0);
}
}
}
}
标准学生类
public class Student {
private String id;
//private static String id; 如果使用static的话、这个类里的所有使用这个属性的类全部共享一个值
private String name;
private String age;
private String adr;
public Student(){
}
public Student(String id,String name,String age,String adr){
this.id=id;
this.name=name;
this.age=age;
this.adr=adr;
}
public void setId(String id){
this.id=id;
}
public String getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(String age){
this.age=age;
}
public String getAge(){
return age;
}
public void setAdr(String adr){
this.adr=adr;
}
public String getAdr(){
return adr;
}
}
输入流方法类
public class ReadData {
public static void readStudent(String path,ArrayList<Student> arr) throws IOException {
BufferedReader br=new BufferedReader(new FileReader(path));
String line;
while((line=br.readLine())!=null){
String[] s=line.split(",");
Student stu=new Student();
stu.setId(s[0]);
stu.setName(s[1]);
stu.setAge(s[2]);
stu.setAdr(s[3]);
arr.add(stu);
}
br.close();
}
}
输出流方法类
public class WriteData {
public static void writeData(String path,ArrayList<Student> arr) throws IOException{
BufferedWriter bw=new BufferedWriter(new FileWriter(path));
for(int x=0;x<arr.size();x++){
Student s=arr.get(x);
StringBuilder sb=new StringBuilder();
sb.append(s.getId()+","+s.getName()+","+s.getAge()+","+s.getAdr());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
}
}
查询学生方法类
public class SelectStudent {
public static void selectStudent(String path) throws IOException{
ArrayList<Student> arr=new ArrayList<Student>();
ReadData.readStudent(path, arr);
if(arr.size()==0){
System.out.println("没有学生的信息!");
return;
}
System.out.println("学号t姓名t年龄t住址"); //t是Tab键的意思
for(int x=0;x<arr.size();x++){
Student show =arr.get(x);
System.out.println(show.getId()+"t"+show.getName()+"t"+show.getAge()+"t"+show.getAdr());
}
}
}
添加学生方法类
public class AddStudent {
public static void addStudent(String path) throws IOException{
ArrayList<Student> arr=new ArrayList<Student>();
ReadData.readStudent(path, arr);
Scanner sc=new Scanner(System.in);
String id;
boolean flag=false;
System.out.println("请输入学号");
while(true){
id=sc.nextLine();
for(int x=0;x<arr.size();x++){
//if(arr.get(x).getId()==id){
if(arr.get(x).getId().equals(id)){
flag=true;
break;
}
else{
flag=false;
}
}
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 adr=sc.nextLine();
Student s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAdr(adr);
arr.add(s);
WriteData.writeData(path,arr);
System.out.println("添加成功");
}
}
删除学生方法类
public class DeleteStudent {
public static void deleteStudent(String path) throws IOException{
ArrayList<Student> arr=new ArrayList<Student>();
ReadData.readStudent(path, arr);
Scanner sc =new Scanner(System.in);
System.out.println("请输入你要删除的学生学号");
while(true){
String id=sc.nextLine();
int index=-1;
for(int x=0 ; x<arr.size();x++){
Student s=arr.get(x);
if(s.getId().equals(id)){
index=x;
break;
}
}
if(index>=0){
arr.remove(index);
WriteData.writeData(path,arr);
System.out.println("删除成功");
break;
}
else{
System.out.println("没有此学号,请重新输入");
}
}
}
}
修改学生方法类
public class UpdateStudent {
public static void updateStudent(String path) throws IOException{
ArrayList<Student> arr=new ArrayList<Student>();
ReadData.readStudent(path, arr);
Scanner sc =new Scanner(System.in);
System.out.println("请输入你要修改的学生学号");
int index=-1;
while(true){
String id =sc.nextLine();
for(int x=0;x<arr.size();x++){
Student s =arr.get(x);
if(s.getId().equals(id)){
index=x;
break;
}
}
if(index>=0){
System.out.println("请输入新姓名");
String name =sc.nextLine();
System.out.println("请输入新年龄");
String age =sc.nextLine();
System.out.println("请输入新住址");
String adr =sc.nextLine();
Student s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAdr(adr);
arr.set(index, s);
WriteData.writeData(path,arr);
System.out.println("修改成功");
break;
}
else{
System.out.println("没有此学号,请重新输入");
}
}
}
}
最后
以上就是过时百合为你收集整理的IO流实现学生管理系统自写IO流实现学生管理系统的全部内容,希望文章能够帮你解决IO流实现学生管理系统自写IO流实现学生管理系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复