我的第一个小案例:学生管理系统

package studentmanager;

//这是我的主类
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
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:学生管理系统的修改学生的代码编写
 */
public class StudentManager {
public static void main(String[] args) throws IOException {
//定义文件路径
String fileName ="students.txt";
wc: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);
int number = sc.nextInt();
//switch语句选择对应的方法,实现对应的功能
switch (number) {
case 1:
//查看所有学生
findStudent(fileName);
break;
case 2:
//添加学生信息
addStudent(fileName);
break;
case 3:
//修改学生信息
updateStudent(fileName);
break;
case 4:
//删除学生信息
deleteStudent(fileName);
break;
case 5:
default:
System.out.println("谢谢你的使用");
break wc;
}
}
}
/**
* 查看学生
* 作用:通过此方法可以查看到所有学生信息
* @throws IOException 
*/
public static void findStudent(String fileName) throws IOException {
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
//从文件中读取数据到集合中
readData(fileName, array);

if (array.size() == 0) {
System.out.println("不好意思,当前没有可供查询的学生信息");
} else {
System.out.println("学号\t\t姓名\t年龄\t居住地");
for (int i = 0; i < array.size(); i++) {
Student s = new Student();
s = array.get(i);
System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());
}
}
}
/**
* 添加学生
* 作用:通过集合的添加功能,给系统添加学生信息
* @throws IOException 
*/
public static void addStudent(String fileName) throws IOException{
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
//从文件中读取数据到集合中
readData(fileName, 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++) {
String oldId = array.get(i).getId();
if (id.equals(oldId)) {
System.out.println("对不起,你输入的学号已存在,请重新输入");
flag = true;
break;
}
}
if (flag == false) {
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.setAddress(address);
array.add(s);
//把集合中的数据重新写入文件中
writerData(fileName, array);
System.out.println("添加学生信息成功");
}
/**
* 修改学生
* 作用:用于更改学生信息
* @throws IOException 
*/
public static void updateStudent(String fileName) throws IOException{
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
//从文件中读取数据到集合中
readData(fileName, array);
 
//在输入学号后进行判断,该学号是否存在
Scanner sc =new Scanner(System.in);
String id;
if (array.size() == 0) {
System.out.println("不好意思,当前没有可供修改的学生信息");
} else {
wc:while (true) {
boolean flag = false;
System.out.println("请输入要修改学生的学号");
id = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
String oldId = array.get(i).getId();
if (id.equals(oldId)) {
break wc;
}else {
System.out.println("你输入的学号不存在");
}
}
}
System.out.println("请输入新学号");
id = sc.nextLine();
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.setAddress(address);
array.add(s);
//把集合中的数据重新写入文件中
writerData(fileName, array);
System.out.println("修改学生信息成功");
}
}
/**
 * 删除学生
 * 作用:用于删除学生信息
 * @param array
* @throws IOException 
 */
public static void deleteStudent(String fileName) throws IOException{
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
//从文件中读取数据到集合中
readData(fileName, array);
 
Scanner sc =new Scanner(System.in);
String id;
if (array.size() == 0) {
System.out.println("不好意思,当前没有可供删除的学生信息");
} else {
wc:while (true) {
boolean flag = false;
System.out.println("请输入要删除学生的学号");
id = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
String oldId = array.get(i).getId();
int index = i ;
if (id.equals(oldId)) {
array.remove(index);
System.out.println("删除成功");
break wc;
}else {
System.out.println("你输入的学号不存在");
}
}
}
}
//把集合中的数据重新写入文件中
writerData(fileName, array);
}
/**
 * IO流之输出流
 * 作用:通过集合生产文件,把学生信息存储起来
* @throws IOException 
 * 
 */
public static void writerData(String fileName,ArrayList<Student> array) throws IOException{
BufferedWriter bw =new BufferedWriter(new FileWriter(fileName));
for (int i = 0; i < array.size(); i++) {
Student s =new Student();
s =array.get(i);
StringBuilder sb =new StringBuilder();
sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress());
bw.write(sb.toString());
bw.newLine();

}
 
bw.close();
}
/**
 * IO流之输入流
 * 作用:把文件通过集合读入程序
* @throws IOException 
 * 
 */
public static void readData(String fileName,ArrayList<Student> array) throws IOException{
BufferedReader br =new BufferedReader(new FileReader(fileName));
String line;
while((line = br.readLine())!=null){
String []split = line.split(",");
Student s = new Student();
s.setId(split[0]);
s.setName(split[1]);
s.setAge(split[2]);
s.setAddress(split[3]);
array.add(s);  
}
br.close();
}

}

=======================================================

package studentmanager;

//学生类
public class Student {
//学号
private String id;
//名字
private String name;
//年龄
private String age;
//居住地
private String address;
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Student(String id, String name, String age, String address) {
super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,了解了您的需求。我可以帮您提供一些思路和代码实现。 首先,我们需要定义一个Student类作为学生的实体类,包含学号、用户名、真实姓名、密码、年龄和性别等属性,并且需要重写equals和hashCode方法以便后续使用。 ```java public class Student { private String id; // 学号 private String username; // 用户名 private String realName; // 真实姓名 private String password; // 密码 private int age; // 年龄 private String gender; // 性别 public Student(String id, String username, String realName, String password, int age, String gender) { this.id = id; this.username = username; this.realName = realName; this.password = password; this.age = age; this.gender = gender; } // getters and setters // ... @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Student)) return false; Student student = (Student) o; return id.equals(student.id); } @Override public int hashCode() { return Objects.hash(id); } } ``` 接下来,我们可以定义一个学生管理系统类,该类包含以下功能: 1. 注册学生 2. 登录学生 3. 删除学生 4. 查询学生 5. 修改学生信息 ```java import java.util.*; public class StudentManagementSystem { private Map<String, Student> students; // 学生集合,使用Map保存 public StudentManagementSystem() { students = new HashMap<>(); } // 注册学生 public void register(Student student) { if (students.containsKey(student.getId())) { System.out.println("该学号已存在!"); } else { students.put(student.getId(), student); System.out.println("注册成功!"); } } // 登录学生,返回登录成功的学生对象 public Student login(String id, String password) { if (students.containsKey(id)) { Student student = students.get(id); if (student.getPassword().equals(password)) { System.out.println("登录成功!"); return student; } else { System.out.println("密码错误!"); } } else { System.out.println("该学号不存在!"); } return null; } // 删除学生 public void delete(String id) { if (students.containsKey(id)) { students.remove(id); System.out.println("删除成功!"); } else { System.out.println("该学号不存在!"); } } // 查询学生 public List<Student> query(String name) { List<Student> result = new ArrayList<>(); for (Student student : students.values()) { if (student.getRealName().startsWith(name)) { result.add(student); } } return result; } // 修改学生信息 public void modify(Student student) { if (students.containsKey(student.getId())) { students.put(student.getId(), student); System.out.println("修改成功!"); } else { System.out.println("该学号不存在!"); } } } ``` 最后,我们可以编写一个测试类来测试我们的学生管理系统。 ```java public class Test { public static void main(String[] args) { StudentManagementSystem system = new StudentManagementSystem(); // 注册学生 Student student1 = new Student("1001", "user1", "张三", "123456", 18, "男"); system.register(student1); Student student2 = new Student("1002", "user2", "李四", "123456", 20, "女"); system.register(student2); // 登录学生 Student loginStudent = system.login("1001", "123456"); // 删除学生 system.delete("1002"); // 查询学生 List<Student> result = system.query("张"); for (Student student : result) { System.out.println(student.getRealName()); } // 修改学生信息 loginStudent.setAge(19); system.modify(loginStudent); } } ``` 这样,我们就完成了一个简单学生管理系统的实现。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值