方法调用的便捷: 实现登录Login 主界面实现书籍查询借阅还书

分层:每个代码块实现不同的功能     方法调用明确的分工 

新建包 view 视图层 service服务层 dao持久层(主要实现增删改查)Test(测试类)

Test———>调用view

View———>service

service——>Dao

代码如下:仅供参考

Test 测试类(主函数):
package src.lib.test;

import src.lib.view.View;        //方法调用视图层

public class Test {
	public static void main(String[] args) {
		//初始化界面
		View view = new View();
		view.init();// 初始界面
	}
}

Test主要用于测试运行...

View视图层
package src.lib.view;

import java.util.Scanner;

import src.lib.service.BookService;
import src.lib.service.UserService;

/**
 * 视图类
 * */
public class View {
	Scanner sc = new Scanner(System.in);
	UserService userService = new UserService();
	BookService bookService = new BookService();
	/**
	 * 初始化界面
	 * */
	public void init() {
		System.out.println("1.登录\n2.注册\n3.退出系统");
		System.out.println("请选择:");
		int num = sc.nextInt();
		switch (num) {
		case 1:
			//登录界面
			login();
			break;
		case 2:
			//注册界面
			reg() ;
			break;
		case 3:
			//退出系统
			System.out.println("谢谢,再见");
			break;

		}
	}
	
	/**
	 * 登录界面
	 * */
	public void login() {
		System.out.println("请输入用户名:");
		String username = sc.next();
		System.out.println("请输入密码:");
		String password = sc.next();
		//判断用户名是否存在
		if(userService.isLogin(username, password)) { //判断是否存在
			System.out.println("登录成功");
			//主界面
			zjm();
		}else {//不存在
			System.out.println("用户名密码错误!");
			//初始界面
			 init() ;
		}
	}
	
	
	/**
	 * 注册界面
	 * */
	public void reg() {
		System.out.println("请输入用户名:");
		String username = sc.next();
		System.out.println("请输入密码:");
		String password = sc.next();
		System.out.println("请在输入一次密码:");
		String password2 = sc.next();
		//判断2次密码是否一致
		if(password.equals(password2)) {  //一致
			//判断用户能不能注册
			if(userService.isLoginByUsername(username)) {
				//注册
				userService.reg(username, password);
				System.out.println("注册成功");
			}else {
				System.out.println("用户已经存在,注册失败");
			}
			//注册失败 
         
		}else { //不一致
			System.out.println("两次密码输入不一致,注册失败!");
		}
			init();
		   //去初始界面
	}
	
	/**
	 * 主界面
	 * */
	public void zjm() {
		System.out.println("1.查询书籍列表\n2.借书\n3.还书\n4.返回上一级");
		System.out.println("请选择:");
		int num = sc.nextInt();
		switch (num) {
		case 1:
			//查询界面
			findbookView();
			break;
		case 2:
			//借界面 0
			jhView(0);
			break;
		case 3:
			//还界面 1
			jhView(1);
			break;
		case 4:
			//返回上一级
			init();
			break;
		}
	}
	
	/**
	 * 书籍列表界面
	 * */
	public void findbookView() {
		books();
		zjm();
	}
	
	public void books() {
		System.out.println("序号\t书籍名称\t库存");
		String[][] books= bookService.findBooks();
		for(int i = 0;i<books.length;i++) {
			System.out.println((i+1)+"\t"+books[i][0]+"\t"+books[i][1]);
		}
	}
	
	/**
	 * 借还界面
	 * */
	public void jhView(int cz) {
		books();
		System.out.println("请输入序号:");
		int num = sc.nextInt()-1;
		//根据 借还进行更新 
		if(bookService.jh(num, cz)) {//成功
			if(cz==1) {
				System.out.println("还书成功");
			}else {
				System.out.println("借书成功");
			}
		}else {//不能借
			if(cz==1) {
				System.out.println("还书失败");
			}else {
				System.out.println("借书失败");
			}
		}
		
		//查询书籍然后去主界面
		findbookView();
	}
}

View视图主要注重于显示

Service服务    实现功能 判断验证
package src.lib.service;

import src.lib.dao.UserDao;

public class UserService {
	UserDao userDao = new UserDao();
	/**
	 * 用户是否存在
	 * */
	public  boolean isLogin(String username,String password) {
		String users [][] =userDao.findUsers();
		for(int i = 0;i<users.length;i++) {
			if(users[i][0].equals(username)&& users[i][1].equals(password)) {
				return true;
			}
		}
		return false;
	}
	
	
	/**
	 * 用户名是否存在
	 * false  用户存在不可以注册    true 可以注册
	 * */
	public  boolean isLoginByUsername(String username) {
		String users [][] =userDao.findUsers();
		for(int i = 0;i<users.length;i++) {
			if(users[i][0].equals(username)) {
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 注册
	 * 
	 * */
	public  void reg(String username,String password) {
		userDao.addUser(username, password);
	}
}

Servive注重于实现功能判断验证     调用Dao层

注重书籍类服务    一一对应
package src.lib.service;

import src.lib.dao.BookDao;
    

public class BookService {
	BookDao bookDao = new BookDao();
	/**
	 * 查询书籍列表
	 * */
	public  String[][] findBooks() {
		return bookDao.findBooks();
	}
	/**
	 * 0 j  1 h
	 * c t   s f
	 * */
	
	public boolean jh(int no,int cz) {
			String[][] books = findBooks() ;
			 int ck = Integer.parseInt(books[no][1]);  //实际库存
			if(cz==0) { //借书
				//判断是否能借
//					库-1>0
			  if(ck-1>=0) {
				  //更新库存
				  bookDao.updateBooks(no, ck-1);
				  return true;
			  }else {
				  return false;
			  }
			}else {//还书
				//判断是否能还
//				库存+1小=总量
				 int zl = Integer.parseInt(books[no][2]);  //总量
				  if(ck+1<=zl) { //库存+1小于等于总量表示可以还书
					  //更新库存
					  bookDao.updateBooks(no, ck+1);
					  return true;
				  }else {
					  return false;
				  }
			}
	}
}

BookService 书籍类业务

书籍bookao
package src.lib.dao;

public class BookDao {
	/**
	 * 书名  库存   总量 
	 * */
	String[][] books = {{"《甜蜜糖果屋》","3","3"},{"《月光下的对白》","1","1"},{"《炎炎的夏日》","2","2"}};
	
	/**
	 * 查询所有书籍
	 * */
	public  String[][] findBooks() {
		return books;
	}
	/**
	 * 更新书籍
	 *  序号   数量
	 * */
	public void updateBooks(int sn,int num){
		   
	
		books[sn][1] = num+"";
	}
	
	
}

Dao层注重增删改查

用户增删改查
package src.lib.dao;

public class UserDao {
	String users[][] = {{"admin","123"}};
	/**
	 * 查询所有用户
	 * */
	public  String[][] findUsers() {
		return users;
	}
	
	/**
	 * 添加用户
	 * */
	public void addUser(String username,String password) {
		 String [][] nusers = new String[users.length+1][2];
		 for(int i= 0;i<users.length;i++) {
			 nusers[i][0] =users[i][0];
			 nusers[i][1] =users[i][1];
		 }
		 nusers[users.length][0] = username;
		 nusers[users.length][1] = password;
		 users = nusers;
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值