JAVA综合案例:学生管理Map版

分析
JAVA综合案例:学生管理Map版_第1张图片
JavaBean
JAVA综合案例:学生管理Map版_第2张图片

Student

package com.czxy.domain;

/**
 * @author 桐叔
 * @email [email protected]
 * @description
 */
public class Student {
    private Integer id;
    private String name;
    private Integer age;

    public Student() {
    }

    public Student(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

2)User

package com.czxy.domain;

/**
 * @author 桐叔
 * @email [email protected]
 * @description
 */
public class User {
    private String username;        //账号
    private String password;        //密码
    private Integer age;

    public User() {
    }

    public User(String username, String password, Integer age) {
        this.username = username;
        this.password = password;
        this.age = age;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

2.3 StudentApplication

1)搭建基本结构

JAVA综合案例:学生管理Map版_第3张图片
2)*Manager
在这里插入图片描述

3)入门程序

package com.czxy;

import com.czxy.domain.Student;
import com.czxy.service.StudentManager;
import com.czxy.service.UserManager;

import java.util.Scanner;


public class StudentApplication {
    /*
    操作如下:
        1.添加学生(id、name)
        2.按照id/name排序,分升序asc/降序desc
     */
    public static void main(String[] args) {

        //准备数据
        Scanner scanner = new Scanner(System.in);
        StudentManager studentManager = new StudentManager();
        UserManager userManager = new UserManager();

        while(true) {
            System.out.println("欢迎进入xxx学生管理系统");
            System.out.println("您可以进行如下操作:");
            System.out.println("1.登录");
            System.out.println("2.添加学生");
            System.out.println("3.查询");
            System.out.println("4.退出");
            System.out.print("请输入您的操作命令:");
            String command = scanner.nextLine();
            switch (command) {
                case "1":
                    //添加学生
                    userLogin(scanner, userManager );
                    break;
                case "2":
                    //添加学生
                    addStudent(scanner, studentManager );
                    break;
                case "3":
                    //查询
                    printStudent(scanner, studentManager);
                    break;
                case "4":
                    System.exit(0);
                    break;
                default:
                    System.out.println("操作命令有误");
            }

        }
    }

    private static void userLogin(Scanner scanner, UserManager userManager) {

    }

    // 添加学生
    private static void addStudent(Scanner scanner, StudentManager studentManager) {
        //搜集数据
        System.out.print("请输入编号:");
        Integer id = Integer.parseInt(scanner.nextLine());
        System.out.print("请输入姓名:");
        String name = scanner.nextLine();
        System.out.print("请输入年龄:");
        Integer age = Integer.parseInt(scanner.nextLine());

        //将数据封装到JavaBean
        Student student = new Student(id,name,age);

        //添加
//        studentManager.add(student);

    }

    //以排序的方式打印学生
    private static void printStudent(Scanner scanner, StudentManager studentManager) {

    }


}

2.4 登录

1)登录逻辑

package com.czxy.service;

import com.czxy.domain.User;

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


public class UserManager {
    //提供Map集合存放用户数据  map.key用户名 map.value用户对象
    private Map<String, User> userData = new HashMap<>();
    // 当前登录用户信息
    private User currentLoginUser;

    public UserManager() {
        // 初始化数据(模拟注册)
        userData.put("jack", new User("jack","1234", 18));
        userData.put("rose", new User("rose","1234", 21));
    }

    /**
     * 用户登录
     * @param username
     * @param password
     */
    public void login(String username , String password) {
        // 通过用户名username获得用户信息
        User loginUser = userData.get(username);
        // 如果没有,用户名不存在
        if(loginUser == null) {
            System.out.println("账号不存在!!!");
            return;
        }
        // 再比较密码,不过不匹配,密码错误
        if(! loginUser.getPassword().equals(password)) {
            System.out.println("密码错误");
            return;
        }
        // 登录成功,记录当前登录用户的
        System.out.println("登录成功");
        this.currentLoginUser = loginUser;
    }

    /**
     * 获得登录用户信息
     * @return
     */
    public User getCurrentLoginUser() {
        return this.currentLoginUser;
    }
}

2)入口

JAVA综合案例:学生管理Map版_第4张图片

    //用户登录
    private static void userLogin(Scanner scanner, UserManager userManager) {
        //搜集数据
        System.out.print("请输入用户名:");
        String username = scanner.nextLine();

        System.out.print("请输入密码:");
        String password = scanner.nextLine();

        //登录
        userManager.login(username, password);
    }

2.5 添加学生

1)逻辑

package com.czxy.service;

import com.czxy.domain.Student;
import com.czxy.domain.User;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class StudentManager {
    // 提供Map集合存放学生信息 map.key登录用户名  map.value所有学生
    private Map<String, List<Student>> studentData = new HashMap<>();

    /**
     * 给指定用户添加学生信息
     * @param loginUser
     * @param student
     */
    public void add(User loginUser, Student student) {
        //基本校验:用户存在
        if(loginUser == null) {
            System.out.println("请先登录!!!");
            return;
        }

        //通过用户名获得用户数据
        List<Student> list = studentData.get(loginUser.getUsername());

        // 如果没有数据,第一次,创建List,同时同步到Map
        if(list == null) {
            list = new ArrayList<>();
            studentData.put(loginUser.getUsername(), list);
        }

        // 添加数据(可以自己完成数据是否存在的校验)
        list.add(student);
    }
}

2)入口

JAVA综合案例:学生管理Map版_第5张图片

    // 添加学生
    private static void addStudent(Scanner scanner, UserManager userManager, StudentManager studentManager) {
        //搜集数据
        System.out.print("请输入编号:");
        Integer id = Integer.parseInt(scanner.nextLine());
        System.out.print("请输入姓名:");
        String name = scanner.nextLine();
        System.out.print("请输入年龄:");
        Integer age = Integer.parseInt(scanner.nextLine());

        //将数据封装到JavaBean
        Student student = new Student(id,name,age);

        //当前登录用户信息
        User loginUser = userManager.getCurrentLoginUser();

        //添加
        studentManager.add(loginUser, student);

    }

2.6 查询

1)逻辑

JAVA综合案例:学生管理Map版_第6张图片

    /**
     * 打印所有
     * @param loginUser
     */
    public void print(User loginUser) {
        //基本校验:用户存在
        if(loginUser == null) {
            System.out.println("请先登录!!!");
            return;
        }
        //获得结果
        List<Student> list = studentData.get(loginUser.getUsername());
        if(list == null) {
            System.out.println("没有数据");
            return;
        }
        //打印
        for(Student student : list) {
            System.out.println(student);
        }
    }

2)入口

JAVA综合案例:学生管理Map版_第7张图片

    //以排序的方式打印学生
    private static void printStudent(Scanner scanner, UserManager userManager, StudentManager studentManager) {
        //当前登录用户信息
        User loginUser = userManager.getCurrentLoginUser();
        //登录用户的数据
        studentManager.print(loginUser);
    }

你可能感兴趣的:(java,java,开发语言)