简单的通过控制台操作的学生信息管理系统

本文介绍了如何通过控制台操作实现一个简单的学生信息管理系统,包括学生和管理员类的定义,以及文件I/O操作中序列化(Student和User对象)与反序列化的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的通过控制台操作的学生信息管理系统(数据保存在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();
	}

}

运行后界面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值