简单用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);
}
}