简单用java做一个图书管理系统



首先,我们创建一个View类当做它的视图页


package view;

import service.BookService;
import service.UserService;

import java.util.Scanner;

public class View {
    Scanner sc = new Scanner(System.in);
    BookService bookService = new BookService();
    UserService all = new UserService();

    /**
     * 主界面
     */
    public void manuUI(){
        System.out.println("***********欢迎进入图书管理系统***********");
        System.out.println("请选择:");
        System.out.println("1:登录\n2:注册\n3:退出系统");
        int choose = sc.nextInt();
        switch (choose){
            case 1: loginUI();break;
            case 2: registUI();break;
            default: System.out.println("欢迎下次光临!!");break;
        }
    }

    /**
     * 登录UI界面
     */
    public void loginUI(){
        System.out.println("***********欢迎进入图书登录系统***********");
        System.out.println("请输入用户名:");
        String username = sc.next();
        System.out.println("请输入密码:");
        String password = sc.next();
        if (all.getLogin(username,password)){   //true登录成功
            System.out.println("登录成功");
            mainUI();
        }else {
            System.out.println("用户名密码错误");
            manuUI();
        }
    }

    /**
     * 注册UI界面
     */
    public void registUI(){
        System.out.println("***********欢迎进入图书注册系统***********");
        System.out.println("创建一个用户名:");
        String username = sc.next();
        System.out.println("创建一个密码:");
        String password = sc.next();
        if (all.getUser(username)) {    //注册失败
            System.out.println("注册失败,用户已存在");
        }else {     //注册成功
            passwordUI(password);
            all.getRegist(username,password);
        }
        manuUI();
    }

    /*
    * 注册两次密码注册有误,则重新注册或返回上一级
    * */
    public void passwordUI(String password){
        System.out.println("请在输入一次密码");
        String password1 = sc.next();
        if (password.equals(password1)){
            System.out.println("注册成功");
        }else {
            System.out.println("两次密码输入不一致,请重新输入");
            registUI();
        }
    }
    /*
    * 主界面
    * */
    public void mainUI() {
        System.out.println("***********欢迎进入图书馆主系统***********");
        System.out.println("请选择:");
        System.out.println("1:查看书籍列表\n2:借书\n3:还书\n4:返回上一个界面");
        int choose = sc.nextInt();
        switch (choose){
            case 1:
                //查看书籍裂变
                checkBooks();
                mainUI();
                break;
            case 2:
                //借书
                isBorrowBooks(0);
                break;
            case 3:
                isBorrowBooks(1);
                //还书
                break;
            default:
                //退出系统
                manuUI();
                break;
        }
    }

    /*
    * 查看书籍列表
    * */
    public void checkBooks(){
        System.out.println("序号\t\t\t名称\t\t\t状态\t\t\t");
        String[][] book = bookService.getBook();
        for (int i = 0; i < book.length; i++) {
            System.out.println(i+1 + "\t\t\t" + book[i][0] + "\t\t\t" + book[i][1]);
        }
    }
    /*
    * 借书
    * */
    public void isBorrowBooks(int isJh){
        checkBooks();
        System.out.println("请输入:");
        int num = sc.nextInt()-1;
        //借还书是否成功
        if(bookService.isBorrowBooks(num,isJh)){    //成功借书的情况
            bookService.updateStatus(num,isJh);
            if (isJh == 0){
                //借书
                System.out.println("借书成功");
            }else {
                System.out.println("还书成功");
            }
            checkBooks();
            System.out.println("请输入任意值返回上一层");
            String anything = sc.next();
            mainUI();
        }else {
            //错误信息提示
            if (isJh == 0){ //借书
                System.out.println("借书失败");
            }else {
                System.out.println("还书失败");
            }
            mainUI();
        }
    }
}

其次,我们建立个Test类来当做我们的测试类

package test;

import view.*;

public class Test {
    public static void main(String[] args) {
        View ui = new View();
        ui.manuUI();
    }
}

再添加dao层做我们的数据层,用来存放数据做到增删改查
Userdao & Bookdao类

package dao;

public class UserDao {
    public static String user[][] = {{"admin","123456"},{"admin1","888888"}};
    /*
    * 展示用户信息
    * */
//    public void addUser(){
//        for (int i = 0; i < user.length; i++) {
//            System.out.println(user[i][0] + user[i][1]);
//        }
//    }

    /**
     *
     * @param username 表示传入的用户名
     * @param password 表示传入的密码
     * @return
     */
    public boolean addLogin(String username,String password){
        for (int i = 0; i < user.length; i++) {
            if (user[i][0].equals(username) && user[i][1].equals(password))
                return true;
        }
        return false;
    }
    /**
     *
     * @param username 传入新增的用户
     * @return
     */
    public boolean addUser(String username){
        for (int i = 0; i < user.length; i++) {
            if (user[i][0].equals(username))
                return true;
        }
        return false;
    }
    /**
     *  添加用户
     * @param username 表示注册时的用户名不能一致
     */
    public boolean addRegist(String username,String password){
        String newuser[][] = new String[user.length+1][2];
        //将老数组赋值给新数组
        for (int i = 0; i < user.length; i++) {     //数据复制
            newuser[i][0] = user[i][0];
            newuser[i][1] = user[i][1];
        }
        //添加新数组数据
        newuser[user.length][0] = username;
        newuser[user.length][1] = password;

        //覆盖老数组
        newuser = user;
        return true;
    }
    /*
    *
    * */
    public boolean addPassWord(String password,String password1){
        if (password.equals(password1)){
            return true;
        }else {
            return false;
        }
    }
}
package dao;

public class BookDao {
    public static String[][] book = {
            {"斗罗大陆","已借出"},
            {"斗破苍穹","未借出"},
            {"星辰变","未借出"},
            {"武动乾坤","未借出"},
            {"妖神记","未借出"}
    };
    /*
    * 查看书籍
    * */
    public String[][] addBook(){
        return book;
    }
    /*
    * 查看当前书籍状态
    * */
    public String addStatus(int num){
        return  book[num][1];
    }
    /*
    * 更行书籍状态
    * */
    public void updataStatus(int num,String status){
        book[num][1] = status;
    }
}

再然后,我们建立一个service层用来处理我们的逻辑
分别为BookService&UserService类

package service;

import dao.BookDao;

public class BookService {
    BookDao bookDao = new BookDao();

    /*
    * 查询书籍列表
    * */
    public String[][] getBook(){
        return bookDao.addBook();
    }

    /**
     * @param num
     * @param isJh isJh传入0和1,如果0则借书,否则还书    false为失败,true为成功
     * @return
     */
    public boolean isBorrowBooks(int num,int isJh){
        String status = bookDao.addStatus(num);
        if (isJh == 0) {
            //借书
            if (status.equals("未借出")){
                return true;
            }else {
                return false;
            }
        }else{
            //还书
            if (status.equals("已借出")){
                return true;
            }else {
                return false;
            }
        }
    }

    public void updateStatus(int num,int isJh){
        if (isJh == 0){     //借书
            bookDao.updataStatus(num,"已借出");
        }else {
            bookDao.updataStatus(num,"未借出");
        }
    }
}
package service;

import dao.UserDao;

import java.util.Scanner;

public class UserService {
    Scanner sc = new Scanner(System.in);
    UserDao user = new UserDao();

    /**
     * 登录
     *
     */
    public boolean getLogin(String username,String password){
        return user.addLogin(username,password);
    }

    public boolean getUser(String usermame){
        return user.addUser(usermame);
    }

    /*
    * 注册
    * */

    public boolean getRegist(String username,String password){
        return user.addRegist(username,password);
    }

    /*
    * 判断注册时第一次密码和第二次密码是否一致
    * */
    public boolean getPassWord(String password,String password1){
        return user.addPassWord(password,password1);
    }
}