简单的通过控制台操作的学生信息管理系统(数据保存在ser文件,序列化-反序列化操作文件)
对象类:
1、学生
package com.xuedao.pojo;
import java.io.Serializable;
//学生
public class Student implements Serializable{
private int id;
private String name;
private int age;
private String sex;
public Student(int id, String name, int age, String sex) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public Student() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
2、管理员
package com.xuedao.pojo;
import java.io.Serializable;
//管理员
public class User implements Serializable{
private String name;
private String password;
public User() {
super();
}
public User(String name, String password) {
super();
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [name=" + name + ", password=" + password + "]";
}
}
方法类
package com.xuedao.pojo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class Handle {
File file = new File("student.ser");
List<Student> list = new ArrayList<>();
File fileUser = new File("user.ser");
List<User> listUser = new ArrayList<>();
Scanner s = new Scanner(System.in);
//添加学生
public void addStu() throws IOException, ClassNotFoundException {
System.out.println();
System.out.println("学生学号:");
int id = s.nextInt();
System.out.println("学生姓名:");
String name = s.next();
System.out.println("学生年龄:");
int age = s.nextInt();
System.out.println("学生性别:");
String sex = s.next();
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
list = (List<Student>) in.readObject();
Student stu = new Student(id, name, age, sex);
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
list.add(stu);
out.writeObject(list);
out.flush();
in.close();
out.close();
System.out.println("添加成功!退出。");
hom();
}
//查询学生信息
public void check() throws IOException, ClassNotFoundException {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
list = (List<Student>) in.readObject();
in.close();
for (Student x : list) {
System.out.println(x);
}
hom();
}
//主页面
public void home() throws IOException, ClassNotFoundException {
Handle h = new Handle();
System.out.println("---欢迎来到学生管理系统!---");
System.out.println(" 1:登录");
System.out.println(" 2:注册");
System.out.println(" 3:退出");
System.out.println("-----------------------");
int a = s.nextInt();
switch (a) {
case 1:
h.login();
break;
case 2:
h.register();
break;
case 3:
return;
default:
System.out.println("没有此选项!请重新选择!");
home();
System.out.println("-----------------------");
break;
}
}
//登录
public void login() throws IOException, ClassNotFoundException {
System.out.println("-----------------------");
System.out.println("请分别输入用户名和密码进行登录!");
System.out.println("用户名:");
String name = s.next();
System.out.println("密码:");
String password = s.next();
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileUser));
listUser = (List<User>) in.readObject();
in.close();
Iterator<User> it = listUser.iterator();
while(it.hasNext()) {
User user = it.next();
if(user.getName().equals(name)||user.getPassword().equals(password)) {
System.out.println("登录成功!");
System.out.println("-----------------------");
hom();
}
}
System.out.println("输入用户名或密码错误,请重新登录");
login();
// if(yonghu.equals("admin")||mima.equals("admin")) {
// //登录成功 到登录成功的界面
// //提示:
// System.out.println("登录成功!");
// System.out.println("-----------------------");
// hom();
// //此处为登录之后的方法
// }else {
// System.out.println("账号密码错误,请重新登录!");
// login();
// }
}
//注册
public void register() throws IOException, ClassNotFoundException {
System.out.println("请输入用户名:");
String name = s.next();
System.out.println("请输入密码:");
String password = s.next();
User user = new User(name,password);
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileUser));
if(fileUser.length() == 0) {
in.close();
return;
}
listUser = (List<User>) in.readObject();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fileUser));
listUser.add(user);
out.writeObject(listUser);
out.flush();
in.close();
out.close();
System.out.println("注册成功!返回主页。");
home();
}
//查询指定学生
public void checkStu() {
}
//登录成功后的界面
public void hom() throws IOException, ClassNotFoundException {
print();
int a = s.nextInt();
switch (a) {
case 1:
addStu();
break;
case 2:
check();
break;
case 3:
deleStu();
break;
case 0:
home();
break;
default:
System.out.println("-----------------------");
System.out.println("没有此选项,请重新选择!");
hom();
break;
}
}
//删除
private void deleStu() throws ClassNotFoundException, IOException {
System.out.println("请输入你想删除的学生姓名:");
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
list = (List<Student>) in.readObject();
String a = s.next();
Iterator<Student> it = list.iterator();
while(it.hasNext()) {
Student stu = it.next();
if(stu.getName().equals(a)) {
it.remove();
}
}
//
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(list);
out.flush();
out.close();
in.close();
System.out.println("删除成功!返回");
hom();
}
public void print(){
System.out.println("-----学生信息系统主页-----");
System.out.println();
System.out.println("根据指令选择操作:");
System.out.println(" 1. 添加学生信息");
System.out.println(" 2. 学生信息列表");
System.out.println(" 3. 删除指定学生信息");
System.out.println(" 0. 返回登录");
}
}
主函数
----运行----
package com.xuedao.main;
import java.io.IOException;
import com.xuedao.pojo.Handle;
public class MainClass {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Handle h = new Handle();
h.home();
// // h.add();
}
}
运行后界面