栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简易Java学生数组系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简易Java学生数组系统

具体完整代码:简单Java系统--学生数组系统-Java文档类资源-CSDN文库

db--数据源
entity--实体类
dao--数据访问,直接操作数据源的
service--业务逻辑
view--表现,视图  菜单
util--工具类
view-->service-->dao-->db
package com.liling.view;

import com.liling.entity.Student;
import com.liling.entity.User;
import com.liling.service.StudentService;
import com.liling.service.StudentServiceI;
import com.liling.service.UserService;
import com.liling.service.UserServiceI;
import com.liling.util.InputUtil;

import java.util.Scanner;

public class Main {
    private Scanner scanner = new Scanner(System.in);
    UserService userService = new UserServiceI();
    public void mainMenu(){
        User user = null;
        while (true){
            System.out.println("欢迎来到学生数组系统");
            System.out.println("1.注册n2.登录n3.退出");
            System.out.println("请输入你的选择:");
            int num = InputUtil.getNum(scanner);
            switch (num){
                case 1:
                    System.out.println("开始注册");
                    user = getUser();
                    boolean flag1 = userService.register(user);
                    if(flag1){
                        System.out.println("注册成功");
                    }else {
                        System.out.println("注册失败");
                    }
                    break;
                case 2:
                    user = getUser();
                    boolean flag2 = userService.login(user);
                    if(flag2){
                        System.out.println("登录成功");
                    }else {
                        if(!userService.judgeA(user)){
                            System.out.println("账号错误");
                            break;
                        }else if(!userService.judgeP(user)){
                            System.out.println("密码错误");
                            break;
                        }
                    }
                    enterSystem();
                    break;
                case 3:
                    System.out.println("退出");
                    return;
                default:
                    System.out.println("请重新输入");
            }
        }
    }

    private User getUser(){
        System.out.println("请输入账号");
        String account = scanner.next();
        System.out.println("请输入密码");
        String password = scanner.next();
        User user = new User(account, password);
        return user;
    }

    private void enterSystem(){
        StudentService studentService = new StudentServiceI();
        while (true){
            System.out.println("欢迎进入学生数组系统");
            System.out.println("1.添加学生信息n2.删除学生信息n3.修改学生信息n4.查询学生信息n5.修改个人密码n6.返回上级菜单");
            System.out.println("请输入你的选择:");
            int num = InputUtil.getNum(scanner);
            switch (num){
                case 1:
                    Student student = getStudentInfo();
                    boolean flag = studentService.addStudentInfo(student);
                    if(flag){
                        System.out.println("添加学生信息成功");
                    }else{
                        System.out.println("添加学生信息失败");
                    }
                    break;
                case 2:
                    System.out.println("请输入待删除学生的学号:");
                    String studentID2 = scanner.next();
                    boolean flag1 = studentService.deleteByStudentID(studentID2);
                    if(flag1){
                        System.out.println("删除学生信息成功");
                        Student[] students = studentService.inquireAllStudentInfo();
                        iterArray(students);
                    }else {
                        System.out.println("删除学生信息失败");
                    }
                    break;
                case 3:
                    System.out.println("请输入待修改学生的学号:");
                    String studentID1 = scanner.next();
                    System.out.println("请输入替换地址信息");
                    String address = scanner.next();
                    if(studentService.modify(studentID1, address)){
                        System.out.println("修改学生信息成功,具体信息如下:");
                        System.out.println(studentService.inquireByID(studentID1));
                    }else {
                        System.out.println("修改学生信息失败");
                    }
                    break;
                case 4:
                    System.out.println("系统所有学生信息如下:");
                    Student[] students = studentService.inquireAllStudentInfo();
                    iterArray(students);
                    System.out.println("请输入待查询学生的学号:");
                    String studentID = scanner.next();
                    Student student1 = studentService.inquireByID(studentID);
                    if(student1 != null){
                        System.out.println(student1);
                    }else {
                        System.out.println("未查询到学号为" + studentID + "的学生信息");
                    }
                    break;
                case 5:
                    User user = getUser();
                    System.out.println("请输入新密码:");
                    String newPassword = scanner.next();
                    System.out.println("请输入确认新密码:");
                    String confirm = scanner.next();
                    if(userService.login(user)){
                        if(!newPassword.equals(confirm)){
                            System.out.println("两次输入的密码不一致");
                        }else {
                            userService.alterP(user, newPassword);
                            System.out.println("修改密码成功");
                            System.out.println(user);
                        }
                    }else {
                        if(!userService.judgeA(user)){
                            System.out.println("账号错误");
                        }else if(!userService.judgeP(user)){
                            System.out.println("密码错误");
                        }
                    }
                    break;
                case 6:
                    return;
                default:
                    System.out.println("请重新输入");
            }
        }
    }

    private Student getStudentInfo(){
        System.out.println("请输入学生学号:");
        String studentID = scanner.next();
        System.out.println("请输入学生姓名:");
        String name = scanner.next();
        System.out.println("请输入学生性别:");
        char gender = scanner.next().charAt(0);
        System.out.println("请输入学生年龄:");
        int age = InputUtil.getNum(scanner);
        System.out.println("请输入学生手机号码:");
        String phoneNumber = scanner.next();
        System.out.println("请输入学生家庭住址:");
        String address = scanner.next();
        Student student = new Student(studentID, name, gender, age, phoneNumber, address);
        return student;
    }

    private void iterArray(Student[] students){
        if(students == null || students.length == 0){
            System.out.println("系统中无学生数据");
            return;
        }
        for(Student student : students){
            System.out.println(student);
        }
    }
}
package com.liling.util;

import java.util.InputMismatchException;
import java.util.Scanner;

public class InputUtil {
    public static int getNum(Scanner scanner){
        while (true){
            try {
                int num = scanner.nextInt();
                return num;
            }catch (InputMismatchException e){
                scanner = new Scanner(System.in);//清楚缓存
                System.out.println("输入有误,请重新输入");
            }
        }
    }
}
package com.liling.service;

import com.liling.entity.User;

public interface UserService {
    boolean register(User user);//注册

    boolean login(User user);//登录

    boolean judgeA(User user);//判断输入的账号是否正确

    boolean judgeP(User user);//判断输入的密码是否正确

    boolean alterP(User user, String newPassword);
}
package com.liling.service;

import com.liling.dao.UserDao;
import com.liling.dao.UserDaoI;
import com.liling.entity.User;

public class UserServiceI implements UserService{
    private final UserDao userDao;

    public UserServiceI(){
        userDao = new UserDaoI();//初始化
    }
    @Override
    public boolean register(User user) {
        boolean flag = userDao.inquireByAccount(user.getAccount());//查询系统中是否已经存在该账号
        if(flag){
            System.out.println("此账号已存在");
            return false;
        }else {
            return userDao.insert(user);//插入到数据源中
        }
    }

    @Override
    public boolean login(User user) {
        return userDao.inquireByAccountAndPassword(user);
    }

    @Override
    public boolean judgeA(User user) {
        if(userDao.judgeAccount(user)){
            return true;
        }
        return false;
    }

    @Override
    public boolean judgeP(User user) {
        if(userDao.judgePassword(user)){
            return true;
        }
        return false;
    }

    @Override
    public boolean alterP(User user, String confirm) {
        userDao.AlterPassword(user, confirm);
        return true;
    }
}
package com.liling.service;

import com.liling.entity.Student;

public interface StudentService {
    boolean addStudentInfo(Student student);
    Student[] inquireAllStudentInfo();
    Student inquireByID(String studentID);
    boolean modify(String studentID, String address);
    boolean deleteByStudentID(String studentID);
}
package com.liling.service;

import com.liling.dao.StudentDao;
import com.liling.dao.StudentDaoI;
import com.liling.entity.Student;

public class StudentServiceI implements StudentService{
    private StudentDao studentDao;

    public StudentServiceI(){
        studentDao = new StudentDaoI();
    }

    @Override
    public boolean addStudentInfo(Student student) {
        boolean flag = studentDao.inquireByStudentID(student.getStudentID());
        if(!flag){//在系统中没有找到该学号
            return studentDao.addStudentInfo(student);
        }
        return false;
    }

    @Override
    public Student[] inquireAllStudentInfo() {
        return studentDao.inquireAllStudentInfo();
    }

    @Override
    public Student inquireByID(String studentID) {
        return studentDao.inquireByID(studentID);
    }

    @Override
    public boolean modify(String studentID, String address) {
        if(studentDao.inquireByStudentID(studentID)){
            return studentDao.update(studentID, address);
        }
        return false;
    }

    @Override
    public boolean deleteByStudentID(String studentID) {
        boolean flag = studentDao.inquireByStudentID(studentID);
        if(flag){
            return studentDao.delete(studentID);
        }
        return false;
    }
}
package com.liling.entity;

public class Student {
    private String studentID;//学号
    private String name;//姓名
    private char gender;//性别
    private int age;//年龄
    private String phoneNumber;//手机号码
    private String address;//家庭住址

    public Student(){

    }

    public Student(String studentID, String name, char gender, int age, String phoneNumber, String address) {
        this.studentID = studentID;
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.phoneNumber = phoneNumber;
        this.address = address;
    }

    public String getStudentID() {
        return studentID;
    }

    public void setStudentID(String studentID) {
        this.studentID = studentID;
    }

    public String getName() {
        return name;
    }

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

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student{" +
                "studentID='" + studentID + ''' +
                ", name='" + name + ''' +
                ", gender=" + gender +
                ", age=" + age +
                ", phoneNumber='" + phoneNumber + ''' +
                ", address='" + address + ''' +
                '}';
    }
}
package com.liling.entity;

import java.util.Objects;

public class User {
    private String account;//账户
    private String password;//密码

    public User(){

    }

    public User(String account, String password) {
        this.account = account;
        this.password = password;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

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

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof User)) return false;
        User user = (User) o;
        return Objects.equals(getAccount(), user.getAccount()) &&
                Objects.equals(getPassword(), user.getPassword());
    }

    @Override
    public String toString() {
        return "User{" +
                "account='" + account + ''' +
                ", password='" + password + ''' +
                '}';
    }
}
package com.liling.db;

import com.liling.entity.Student;
import com.liling.entity.User;

public class DataBase {
    public static Student[] students = {
            new Student("10001","1号",'女',18,"12345","上海"),
            new Student("10002","2号",'男',19,"23451","北京"),
            new Student("10003","3号",'女',20,"34512","深圳"),
            new Student("10004","4号",'男',21,"45123","江西")
    };
    public static User[] users = {
            new User("30298","34630"),
            new User("19376","73679")
    };
}
package com.liling.dao;

import com.liling.entity.User;

public interface UserDao {
    boolean inquireByAccount(String account);//查询系统中是否已经存在该账号
    boolean inquireByAccountAndPassword(User user);//查询系统中用户的账号和密码
    boolean judgeAccount(User user);//判断输入的账号是否正确
    boolean judgePassword(User user);//判断输入的密码是否正确
    boolean insert(User user);//插入到数据源中
    boolean AlterPassword(User user, String newPassword);
}
package com.liling.dao;

import com.liling.db.DataBase;
import com.liling.entity.User;

import java.util.Arrays;

public class UserDaoI implements UserDao{
    @Override
    public boolean inquireByAccount(String account) {
        for(User user: DataBase.users){
            if(user.getAccount().equals(account)){
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean inquireByAccountAndPassword(User user) {
        for(User user1 : DataBase.users){
            if(user.equals(user1)){
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean judgeAccount(User user) {
        for(User user1 : DataBase.users){
            if(user.getAccount().equals(user1.getAccount())){
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean judgePassword(User user) {
        for(User user1 : DataBase.users){
            if(user.getPassword().equals(user1.getPassword())){
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean insert(User user) {
        DataBase.users = Arrays.copyOf(DataBase.users, DataBase.users.length + 1);//数组扩容
        DataBase.users[DataBase.users.length - 1] = user;//将注册的数据插入到数据源中
        return true;
    }

    @Override
    public boolean AlterPassword(User user, String newPassword) {
        user.setPassword(newPassword);
        return true;
    }
}
package com.liling.dao;

import com.liling.entity.Student;

public interface StudentDao {
    boolean inquireByStudentID(String studentID);
    boolean addStudentInfo(Student student);
    Student[] inquireAllStudentInfo();
    Student inquireByID(String studentID);
    boolean update(String studentID, String address);
    boolean delete(String studentID);
}
package com.liling.dao;

import com.liling.db.DataBase;
import com.liling.entity.Student;

import java.util.Arrays;

public class StudentDaoI implements StudentDao{
    @Override
    public boolean inquireByStudentID(String  studentID) {
        for(int i = 0; i < DataBase.students.length; i++){
            if(DataBase.students[i].getStudentID().equals(studentID)){
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean addStudentInfo(Student student) {
        DataBase.students = Arrays.copyOf(DataBase.students, DataBase.students.length + 1);//数组扩容
        DataBase.students[DataBase.students.length - 1] = student;//将注册的数据插入到数据源中
        return true;
    }

    @Override
    public Student[] inquireAllStudentInfo() {
        return DataBase.students;
    }

    @Override
    public Student inquireByID(String studentID) {
        for(Student student : DataBase.students){
            if(student.getStudentID().equals(studentID)){
                return student;
            }
        }
        return null;
    }

    @Override
    public boolean update(String studentID, String address) {
        for(int i = 0; i < DataBase.students.length; i++){
            if(DataBase.students[i].getStudentID().equals(studentID)){
                DataBase.students[i].setAddress(address);
                break;
            }
        }
        return true;
    }

    @Override
    public boolean delete(String studentID) {
        Student[] newStudent = new Student[DataBase.students.length - 1];
        int k = 0;//新数组下标
        for(int i = 0; i < DataBase.students.length; i++){
            if(DataBase.students[i].getStudentID().equals(studentID)){
                continue;
            }
            newStudent[k] = DataBase.students[i];
            k++;
        }
        DataBase.students = newStudent;
        return true;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号