简单的学生信息管理系统(Java简单实现,控制台操作)

学生管理系统功能要求

写一个完整版学生管理系统
具有登陆功能
用户名以及密码为 admin
查询学生信息
修改学生信息
删除学生信息

功能实现模块

界面控制

package day20;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class StudentManage {
	/*
	 * 写一个完整版学生管理系统
	 * 
	 * 具有登陆功能,用户名为 admin 以及密码
	 * 
	 * 查询学生信息
	 * 
	 * 修改学生信息
	 * 
	 * 删除学生信息
	 * 
	 */
	static Map<Integer, Student> shm = new HashMap<>();// 定义一个map存储数据
	static int i = 0; // 实现map添加数据后自增
	static int j = 0; // 标志标号i

	public static void main(String[] args) {
		// 定义一个标志退出while循环
		boolean flag = true;
		while (flag) {
			// Scanner scanner = new Scanner(System.in);
			// // 输入数据
			// String nextLine = scanner.nextLine();
			// // 分割数据
			// String[] split = nextLine.split(":");
			System.out.println("请输入登录密码,格式为  : 用户名:密码");
			String[] split = scanner(":");// 调用自定义的scanner()方法
			// 验证数据
			if (split.length == 2 && "m".equals(split[0]) && "m".equals(split[1])) {
				// 登录成提示
				System.out.println("登录成功~~~");
				// 执行学生相关管理
				/*
				 * add添加单个学生 , select查询单个学生, selectAll查询全部学生 , del删除单个学生,
				 * delAll删除全部学生, update修改单个学生, exit 退出。
				 * 
				 */
				// 获取操作命令
				boolean insideflag = true;
				while (insideflag) {
					Scanner scanner = new Scanner(System.in);
					System.out.println("add添加单个学生 \t " + "select查询单个学生 \t" + "selectAll查询全部学生 \t" + "del删除单个学生 \t"
							+ "delAll删除全部学生  \t" + "update修改单个学生  \t" + "exit 退出 \t");
					String order = scanner.nextLine();
					switch (order) {
					case "add":
						System.out.println("请输入添加学生的信息,格式为:学号-姓名-成绩");
						String[] split2 = scanner("-");
						if (split2.length == 3) {
							// 增加学生
							// Scanner scanner2 = new Scanner(System.in);
							// String nextLine2 = scanner2.nextLine();
							// String[] split2 = nextLine2.split("-");
							add(Integer.parseInt(split2[0]), split2[1], Integer.parseInt(split2[2]));
							System.out.println(i+1 + "位学生添加成功····");
							i++;
							break;
						} else {
							System.out.println("请输入正确的学生的信息,格式为:学号-姓名-成绩");
						}
						break;

					case "select":
						// 查询单个学生
						System.out.println("请输入要查询学生的标号");
						int scannerInfo = scannerInfo();
						select(scannerInfo);

						System.out.println("查询单个完成···");
						break;
					case "selectAll":
						selectAll();

						System.out.println("查询全部完成···");
						break;
					case "del":
						selectAll();
						System.out.println("请输入要删除学生的标号");
						int scannerInfo2 = scannerInfo();
						del(scannerInfo2);
						break;
					case "delAll":
						delALL();
						break;
					case "update":
						System.out.println("输入学生标号和修改姓名,格式是 : 标号-姓名");
						String[] scanner2 = scanner("-");
						if(scanner2.length == 2) {
						selectAll();

						update(Integer.parseInt(scanner2[0]), scanner2[1]);
						System.out.println("修改成功");
						}else {
							System.out.println("请输入正确的标号和修改姓名格式是 : 标号-姓名");
							break;
						}
						break;
					case "exit":
						flag = false;
						insideflag = false;
						System.out.println("退出成功···");
					default:
						break;
					}
				}
			} else {
				// 登录失败提示
				System.out.println("登录失败,请重新输入~~~");

			}

			// 关闭输入流
			// scanner.close();用不到已经关闭
		}
	}

	

	// 学生信息输入流
	public static String[] scanner(String str) {
		// String str 传入分割字符串
		Scanner scanner = new Scanner(System.in);
		String nextLine = scanner.nextLine();
		String[] split = nextLine.split(str);
		return split;
	}

	// 获取命令操作信息
	public static int scannerInfo() {
		Scanner scanner = new Scanner(System.in);
		String nextLine = scanner.nextLine();
		int parseInt = Integer.parseInt(nextLine);
		return parseInt;
	}

	// 添加学生
	public static void add(int sid, String name, int score) {
		Student student = new Student(sid, name, score);

		shm.put(student.getId(), student); // 添加key和value = student

	}

	// 查询单个学生,查询对应的key或者value
	public static void select(int key) {
		Student stu = shm.get(key);
		System.out.printf("学生学号是:%d,学生姓名是:%s,学生分数是:%d,", stu.getId(), stu.getName(), stu.getScore());
		System.out.println("");
	}

	// 查询全部学生
	public static void selectAll() {
	
		for (Student stu : shm.values()) {

			System.out.printf("学生学号是:%d,学生姓名是:%s,学生分数是:%d,", stu.getId(), stu.getName(), stu.getScore());

			System.out.println("");

		}
	}

	// 删除单个学生
	public static void del(int key) {

		System.out.println(shm.get(key).getName() + "已经被删除");
		shm.remove(key);
	}

	// 删除全部学生
	public static void delALL() {
		shm.clear();
		System.out.println("删除成功···");
	}

	// 修改单个学生的姓名
	public static void update(int key, String name) {
		System.out.println("修改前是:" + shm.get(key));
		shm.get(key).setName(name);
		System.out.println("修改后是:" + shm.get(key));
	}

}

POJO类-student

package day20;

public class Student {
	//属性
	private int sid;
	private String name;
	private Integer score;
	public int getId() {
		return sid;
	}
	//属性的get和set方法
	public void setId(int sid) {
		this.sid = sid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	//重写toString
	@Override
	public String toString() {
		return "Student [id=" + sid + ", name=" + name + ", score=" + score + "]";
	}
	//三参构造方法
	public Student(int sid, String name, int score) {
		super();
		this.sid = sid;
		this.name = name;
		this.score = score;
	}

}

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值