添加学生
// 学生管理系统的添加学生的代码编写
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;